Tasssadar / multirom

MultiROM for Nexus 7 and LG Optimus One
http://forum.xda-developers.com/showthread.php?t=2011403
GNU General Public License v3.0
415 stars 274 forks source link

Support for arm64 kexec-tools, add hook for starting decryption daemon on Snapdragon 810, fix decryption on N preview #76

Open zhuowei opened 8 years ago

zhuowei commented 8 years ago

This pull request adds two new hooks called before encryption start and at encryption cleanup. My Nexus 6P port uses them to start qseecomd.

In addition, a shim for property_get is added to get decryption to not hang on Nexus 6P.

Finally, a new submodule, kexec-tools-arm64 is added, which works for kexec on arm64. Currently it's hardcoded for Snapdragon 810 but will be modified to use addresses from the BoardConfig.

This pull request depends on Hashbang173's patches to make Multirom build in an Omni-6.0 tree and also swaps out the ADBD implementation to one from Omni-6.0. I have not tested building in an older tree, so there's likely breakage.

HashBang173 commented 8 years ago

Have you successfully kexec'd with multirom on arm64?

zhuowei commented 8 years ago

@HashBang173 Yes I have - CyanogenMod 13 with its kernel boots fine on Nexus 6P with hardboot.

npjohnson commented 8 years ago

@Tasssadar You had asked about merging our changes upstream.

These commits build in an Omni 6.0 tree, and allow successful build for both Angler and Shamu.

This means (I'd assume) that this causes no conflicts with existing 32 bit devices (at least for Shamu).

In my opinion this is ready to merge. It should allow MultiROM's menu to build and be run fairly generically on 64 bit devices, as well as allow MR-Kexec_tools to buidl for 64 bit targets.

zhuowei commented 8 years ago

@Tasssadar This is mostly ready to merge (has been running on Nexus 6P without issues for a month now); remaining issues are with adbd (not sure if the 6.0 adbd included here can compile in a <6.0 tree).

Also, added a patch to get the decryption UI working when injected into N preview (fstab's forceencrypt parameter got renamed). N doesn't boot yet because of vendor partition issues on Nexus 6P and also because of issue #79.

Tasssadar commented 8 years ago

Thanks! Is the extra adb repo still needed? https://github.com/Tasssadar/multirom_adbd should build with 64bit devices now.

zhuowei commented 8 years ago

@Tasssadar I haven't tried building with your adbd yet; do you know if it builds in an Omni 6.0 tree?

Tasssadar commented 8 years ago

I don't know, but it should, and if not, then it's gonna probably be one-line fix.

sndnvaps commented 8 years ago

@zhuowei kexec-tools-arm64 not work for all arm64 device ... it was break by dtb.....

AnClark commented 7 years ago

Not only Nexus 6P, but also other more devices using Qualcomm's SoC are encrypted via QSEECOM. So further efforts are still needed. It's better to port full QSEECOM support into MultiROM.