View Single Post
Posts: 288 | Thanked: 1,103 times | Joined on Jul 2014
#71
AND WE HAVE INPUT. No app was necessary, all that's needed is to change the group for /dev/input/eventX from video to input, before you try booting into CM (Cyanogenmod). You will also have to modify the init.rc file to start android serviceshere is my modified init.rc file (from Nexus 5) for reference.

This was tested on Alpha 14 on the Nexus 5 but it should still work on other versions and other phones.

1. Modify init.rc to start android services at boot time. (only needed to be done once) / If you're copying my modifed init.rc file then it goes in the root directory.
2. Restart
3. In terminal navigate to "/dev/input/"
4. run command "devel-su find . -name 'event*' -exec chown :input {} +" (this resets every time you restart the phone)
5. In the terminal navigate to "/system/bin/"
6. run command "kill -stop [pid of lipstick]; ./surfaceflinger &"
7. It should now boot into CM from within Sailfish

CAVEATS:
  • Once you boot into CM from Sailfish, it's not always possible to get back into Sailfish. (Can do but only via ssh)
  • If you do get back into Sailfish then you will NOT be able to boot back into CM, unless you restart the phone. Now possible providing you pause surfaceflinger and unpause lipstick, again only currently possible via SSH
  • WiFi and Mobile Data will only work in CM if it's been turned in Sailfish before hand.
  • You cannot call or text from within CM.

EDIT2: Found out how to start surfaceflinger properly setprop ctl.start surfaceflinger(but for some reason doesn't always work)
EDIT 3: Made it clear for those not knowing init.rc goes in the root directory.

Last edited by nh1402; 2015-11-03 at 20:29. Reason: updated progress to keep this tutorial thing up to date
 

The Following 13 Users Say Thank You to nh1402 For This Useful Post: