Adaptations/libhybris/Manta

Installing
Sailfish OS 2.1.3.7 rootfs CM11 Snapshot M12 Base

What works an doesn't work
PSA if you are excited to install this on Nexus 10, don't be, it barely works at the moment. I am hard at work trying to figure this out and whinging on the IRC, but if you want to give it a shot feel free! see Hot to Build at the bottom!

Works: Display Touch Haptic Feedback Wifi Connection Ambient Light Sensor Buttons (I was able to take screenshots, refer to the XDA thread for them)

Problems: Rotation is off by 90 degrees Gralloc and hwcomposer issues so setup wizard fails and none of the apps work Bluetooth doesn't work Sound most likely won't work since Pulseaudio failed in the logs RTC Alarms are untested but most likely do not work Ambiances don't take up the entire display Jolla Startup wizard pre user session doesn't take up entire display

XDA thread
Sailfish OS on manta XDA thread

Changelog
Nothing really special has happened since the initial (not working) build. Mostly just me trying new things out.

alpha0 - initial build alpha0.2 - fixed touch screen (evdev touch = 2 not 0) alpha0.3 - oom verify and Mali Quirks added to droid-configs alpha 0.4 - rebuild with dev-tools and minimer alpha 0.5 - changed icon scale from 1.0 to 1.25 (300/245=1.22), also changed EGL_PLATFORM to fbdev since hwcomposer module API is 1

Once I get a build with working apps and setupwizard I will switch from alpha0 to alpha1! Very exciting to think about.

How to build
There are multiple tweaks required to get this working and up and running, first of all refer to the hadk! I will be basing this off of my experiences and the things I needed to fix, the instructions will not be very good, they will mostly just assume you have the hadk open in another tab and are following along while occasionally checking these instructions. Not really instructions, more like advice and tips & tricks.

1. First of all you really can't go wrong with sources! Here are all of mine!

My Github I only have manta stuff but when I add grouper stuff I will edit this remember to make sure your branch is correct in your local_manifest! When you copy and paste from hadk you will be tempted to leave the branch as stable/cm-11.0 but my branches are either hybris-11.0 or just master. You should see the branch on the site in a little box, just replace stable/cm-11.0 with whatever is in that box. You may also get issues with $DEVICE and stuff being undefined in platform sdk, just add the following lines to ~/.mersdk.profile: export DEVICE="manta" export VENDOR="samsung" export PORT_ARCH="armv7hl" export ANDROID_ROOT="/home/(your username)/hadk"

2. repo init and repo sync source code can be much smaller! instead of using 25GB of HDD space, use around 7 and cut sync times in half! add --depth to repo init | and -c to repo sync ; with these flags you can't fail!

3. When building kernel you will most likely get a mount point error, this is because $HYBRIS_FSTABS points to device/*/manta where there are two fstab files. replace /hybris/android.mk with my modified one that fixes this by pointing it to /device/*/manta/fstab.manta

fstab fix

4. Now you will need to add fixup mountpoints, you can either do as it says and run the command (I forgot it) or you can just use mine

manta mountpoints

5. Kernel should have no errors accept for an SELINUX config error, which is unrelated to the gralloc issues. audit is set to N so this should be no problem.

6. When setting up all your rpm stuff and droid configs, you will most likely be using my repos. The issue with this is that it for some reason refuses to also sync the actual mer-hybris stuff that is symlinked in the repo. You will have to "cd" into each folder and run a command.

cd into each droid-hal directories (rpm, hybris/droid-configs, hybris/droid-hal-version-manta) and run: git submodule update --init

You should be all good there, if not, just delete the rpm directories, remove my rpm droid-hal repos from your local_manifest, and just manually follow all the instructions on the hadk and manually add all my commits (there aren't many)

7. build_packages.sh may fail because of ngfd-droid-vibrator or native-vibrator. This is an annoying bug that I have failed to find a good fix for. Removing the line in the build_packages.sh script that builds this package, then deleting all traces of it in your $ANDROID_ROOT directory, and finally opening hybris/droid-configs/patterns/jolla-hw-adaptation-manta.yaml and removing the ngfd-*-vibrator line helps. It may error out again, if so, keep trying. If you get fed up and angry go to #sailfishos-porters and whine about it. This is a known problem.

8. Yay you have a build and you flashed it and now the lockscreen doesn't work and you can't get passed! telnet 192.168.2.15 2323 passwd nemo (set a password) exit ssh nemo@192.168.2.15 (enter the password you just made in telnet) touch /home/nemo/.jolla-startupwizard-done touch /home/nemo/.jolla-startupwizard-sfos2-tutorial touch /home/nemo/.jolla-startupwizard-usersession-done

Now you should be able to unlock and do... nothing. Everything will break and fail to start up and when you reboot the UI will occasionally glitch out horribly. Welcome to the debug party, its time to explore the unfixed. Good luck.