[Recovery] TWRP 2.8.7.x for the G925T on 5.1.1 (OF6) + [Kernel]Aou's OH6 Stock Kernel - T-Mobile Samsung Galaxy S6 Edge

Intro:
I've put in a serious number of hours poking around my G925T that I've upgraded to the official G925TUVU2COH6 firmware, trying to get TWRP installed and working on our device. With help from @bigbiff, @_that, and several testers in this thread, we finally have something working solid for our device. Before continuing, please take a moment to read through the extremely-relevant warnings below:
WARNING: Intentionally modifying your System partition from TWRP recovery, without first flashing a custom kernel (kernel must have no "verify" mount parameter in fstab), will likely cause a soft-brick (boot-loop). Before flashing this (or any) custom recovery/kernel, it is advised that you know how to restore your phone back to OH6 stock using Odin.
Note: Flashing a custom kernel (while keeping a stock System/ROM) may cause your device to report a security threat. If you proceed without caution, the device will literally attempt to re-flash the stock OH6 kernel again. It is possible to freeze "Security Log Agent" (or uninstall it completely), and this should keep your device from reporting this problem. Other reports say that using "Smart Manager" might also report the security threat, and there are some options out there for replacing it with a patched version.
Rooted Phones: Do NOT allow "com.tmobile.pr.adapt" to obtain root permissions, EVER. This app might be something that T-Mobile uses to determine if your device has ever been rooted. I would recommend freezing/disabling this app.
Unlocked Phones: If you have unlocked your phone, you might run into problems with 5.1.1. There have been reports of phones stuck in a boot-loop when upgrading from 5.0.2 -> 5.1.1 when the phone has been unlocked or EFS/IMEI has been tampered with. Combine this with the new "FRP LOCK" (Factory Reset Protection) in 5.1.1, and you might find yourself with a complete brick with no warranty. This issue may or may not have anything to do with rooting or custom firmware.
WARNING: Flashing any custom firmware to your device will trip the KNOX Warranty Bit. At this time, this is irreversible, and might cause you problems when returning faulty devices to T-Mobile or Samsung. YMMV.
Click to expand...
Click to collapse
How-To-Install (The Short Version):
Recognize that this will trip KNOX.
Be sure you're actually already running the 5.1.1 (OH6) firmware. If you're on 5.0.2 (OCG, for example), this thread is not for you.
Turn on "OEM unlocking" in Settings -> Developer options. This is the dreaded "FRP LOCK" that prohibits custom firmware from being flashed to the G925T/G920T (and maybe others) - it's something new in 5.1.1.
Download and Odin-flash my v13 of TWRP 2.8.7.x.
Download and Odin-flash (or TWRP-flash) my v1 build of the OH6 kernel. G920T users should use the appropriate G920T kernel for their device.
(Optional): Download and TWRP-flash Chainfire's SuperSU v2.49 (.zip format).
(Advice): Use Titanium Backup or some other app to freeze/disable/uninstall "SecurityLogAgent" (remove nagging about security) and "com.tmobile.pr.adapt" (remove nagging about root, helps with sleep, and may be used by T-Mobile to determine your rooted status).
Enjoy TWRP + Root with an almost-completely-stock OH6 kernel/system!
Click to expand...
Click to collapse
Official TWRP for G925T:
It's official! Thanks to all of our hard work in this thread, plus a bunch of work getting things fine-tuned and finalized by @bigbiff, our device is now officially supported by TeamWin! Check out the official page here. Development will continue here on this thread until further notice, and I'll always be building the latest-and greatest from source and making it available in this thread (not to mention this is the go-to place to get the latest version of my kernel).
Click to expand...
Click to collapse
Downloads:
Here's the Odin-flashable OF6 kernel I've built:
Version 1 (6/25/15) - built from OF6 stock kernel source, no modifications
Version 2 (6/27/15) - built from OF6 stock kernel source, fixes boot-loop
Version 3 (6/28/15) - built from OF6 stock kernel source, fixes boot-loop and allows root
Version 4 (6/28/15) - built from OF6 stock kernel source, fixes boot-loop, allows root, and fixes Deep Sleep - also available as a TWRP-flashable .zip or Flashify .img
Here's the Odin-flashable OF8 kernel I've built:
Version 1 (8/10/15) - built from OF8 stock kernel source, fixes boot-loop, allows root, and fixes Deep Sleep - also available as a TWRP-flashable .zip or Flashify .img
Here's the Odin-flashable OH6 kernel I've built:
Version 1 (9/15/15) - built from OH6 stock kernel source, fixes boot-loop, allows root, and fixes Deep Sleep - also available as a TWRP-flashable .zip or Flashify .img
Here's the Odin-flashable TWRP recovery I've put together:
Version 13 (7/10/15) - also available as a Flashify .img
And, in case you need it, here's the stock OF8 recovery as an Odin-flashable:
OF8 Stock Recovery - No guarantees it won't trip KNOX (it shouldn't), but if you're needing this, you've probably already tripped KNOX. Sorry, I'm too lazy to package and upload a flashable OH6 stock kernel.
G920T users! I bring you a gift! I took the G920TUVU2DOH6 Samsung source, built it with the same modifications as I did the G925T kernel to allow modified System partitions (allows root w/o bootloop), and then stuck that into the G920T OH6 stock kernel provided by @icepuente (thanks!). Also, some additional thanks to @icepuente for testing it, too!
Version 1 (9/21/15) - FOR G920T - built from G920TUVU2DOH6 stock kernel source, fixes boot-loop, allows root, and fixes Deep Sleep - also available as a TWRP-flashable .zip or Flashify .img
Click to expand...
Click to collapse
Building this OH6 kernel from source:
Setup your build environment for compiling Android.
Download the latest NDK, unpack, etc., etc.
Download the OH6 source code directly from Samsung.
Update the Makefile's CROSS_COMPILE to use the NDK toolchain. Mine ended up looking like this: /home/aou/android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-
make exynos7420-zerolte_tmo_defconfig
For some reason, gcc treats CONFIG_ALWAYS_ENFORCE as always defined, and therefore the kernel will, of course, always enable SELinux: Enforcing. This makes it "impossible" to root Android 5.1.1. There is a workaround:
rm -rf security/selinux
svn export https://github.com/glewarne/S6-UniKernel/trunk/security/selinux security/selinux (snags a copy of their security/linux folder...)
Go give the guys over at the UniKernel thread some "Thanks!" for making this workaround in their kernel, especially @AndreiLux - he was the one to author this change to their source that fixes this problem.
Replace drivers/scsi/sd.c with Sujit Reddy Thumma's Deep Sleep fixed version, referenced in the UniKernel's source:
curl https://raw.githubusercontent.com/glewarne/S6-UniKernel/master/drivers/scsi/sd.c > drivers/scsi/sd.c
make -j#
Go snag that juicy arch/arm64/boot/Image - This is your kernel zImage.
Go download the official OH6 Odin package and extract the boot.img (kernel) from it.
Unpack the official kernel using the mkbootimg_tools, available here, replace the kernel file in the unpacked boot.img, and then repack it into a boot.img again. This boot.img would need to be tarballed and md5summed to be Odin flashable.
You'll want to remove the ,verify from both of these files in the ramdisk: fstab.samsungexynos7420 and fstab.samsungexynos7420.fwup
At the bottom of default.prop, you'll want to add these two lines:
Code:
ro.securestorage.support=false
androidboot.selinux=0
Building TWRP from source:
Setup your build environment for compiling Android.
Download the latest NDK, unpack, etc., etc. Mine ended up in ~/android/NDK.
Git clone the TWRP zerolte kernel source somewhere useful. Mine was cloned into ~/android/kernel:
git clone https://github.com/TeamWin/android_kernel_samsung_zerolte.git -b android-5.1 ~/android/kernel
The next several steps The next several steps are performed in & relative to this path.
Update the Makefile's CROSS_COMPILE to use the NDK toolchain. Mine ended up looking like this: /home/aou/android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android- (to match my NDK path above - note I couldn't use the relative ~ path for /home/aou).
make exynos7420-zerolte_defconfig (ignore warnings about 'jump')
make -j# (replace # with number of CPU cores + 1)
Note the location of the output kernel - you'll need it in a little bit. In my case, it would be ~/android/kernel/arch/arm64/boot/Image.
Setup your Omnirom compile environment. Mine's in ~/android/omni. The next several steps are performed in & relative to this path.
Git clone the TWRP zeroltetmo device source into device/samsung/zeroltetmo:
rm -rf device/samsung/zeroltetmo && git clone https://github.com/TeamWin/android_device_samsung_zeroltetmo.git -b android-5.1 device/samsung/zeroltetmo
For some reason, TWRP doesn't build too well with the Omnirom's version of busybox. Replace the whole external/busybox folder with that from cm-12.1 source:
rm -rf external/busybox && git clone https://github.com/CyanogenMod/android_external_busybox.git -b cm-12.1 external/busybox
Remember that kernel we built? Rename/copy it to replace device/samsung/zeroltetmo/kernAl. In my case:
cp ~/android/kernel/arch/arm64/boot/Image device/samsung/zeroltetmo/kernAl
At this time (7/10/15), we need to cherry-pick a change by Dees Troy from the TWRP Gerrit. This is the stuff about forcing Read-Only mode on first boot, which will help with some of the boot-loop stuff (if you still have a stock kernel). You can grab the changes fairly easily using:
cd bootable/recovery && git fetch https://gerrit.omnirom.org/android_bootable_recovery refs/changes/15/14015/3 && git cherry-pick FETCH_HEAD && cd ../..
Since we're using Omnirom source and we're going to use lunch later, we need to create device/samsung/zeroltetmo/vendorsetup.sh. We can do that like this:
echo add_lunch_combo omni_zeroltetmo-eng > device/samsung/zeroltetmo/vendorsetup.sh
Do a . build/envsetup.sh (note the space between the period and "build" - was important for my environment).
lunch for omni_zeroltetmo-eng
make -j# recoveryimage (again, number of CPU cores +1)
Take that precious out/target/product/zeroltetmo/recovery.img and tarball/md5sum it to be Odin flashable.
Flash away!
Click to expand...
Click to collapse
Notes about accidentally causing a boot-loop:
The OF6/OF8/OH6 kernel, out-of-the-box, checks the hash/signature of your system partition. Modifying your system partition in any way (without flashing a custom kernel that does not perform this check) will cause your device to boot-loop.
Additionally, if you decide to use TWRP to mount your System partition read-write (despite warnings), upon exiting TWRP properly, it will make some changes to your system partition for you (namely, renames /system/recovery-from-boot.p to /system/recovery-from-boot.bak to prevent some systems from re-writing over your custom recovery). This would cause the boot-loop.
You obviously have some options to avoid causing a bootloop!
Option 1a: Flash my v4 kernel above. It does not have the hash/signature checks, plus it sets SELinux to permissive (allowing root!). You'll still need to root the device manually by flashing Chainfire's SuperSU.
Option 1b: Flash a different custom kernel that does not have these checks. The S6 UniKernel seems to work fine, for example.
Option 2: Don't modify your System partition, and don't let TWRP exit properly while you have the "read-only" checkbox unchecked (in the Mount screen).
Recovering from a boot-loop:
Something go wrong? Skip a step? No big deal. To get our device back in working order, you have a couple options:
Option 1: Flash the official OH6 firmware via Odin again. In my experience, the package DOES NOT wipe your data or sdcard partitions, so it really isn't that big of a deal to do. It just takes downloading a monster-size file, and the foreknowledge on how to flash it. But, caveat, don't blame me if something goes wrong with restoring the stock firmware!
Option 2: See Options 1a & 1b in the first list above. By flashing a custom kernel that doesn't have the hash/signature checks included, it should fix the boot-loop.
Click to expand...
Click to collapse
More Notes:
Huge thanks to @bigbiff for reading through prior versions of this post and updating the TWRP source code to work without device without the need of heavy modification. Additional thanks to @_that for his invaluable help in this project.
Click to expand...
Click to collapse

Hope this get resolved thanks soo much @Aou !

That's some progress made
Good to hear!

Nice work @Aou

Yay! Progress has been made! Congratulations, @Aou!

http://forum.xda-developers.com/showthread.php?t= check that out looks like root via a odin able unified kernel pre rooted and twrp
Sent from my SM-G925T using XDA Free mobile app

@tylerholbrook - I'm not sure what you're linking to? (broken link?)
And, to update everyone following this post, I've just uploaded v7 and a custom OF6 kernel, and replaced my DIY instructions with what I've done this time around. MUCH simpler with 2.8.7.0!
Also:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Is this proof enough for anyone that 5.1.1 does NOT lock the bootloader?

Aou said:
@tylerholbrook - I'm not sure what you're linking to? (broken link?)
And, to update everyone following this post, I've just uploaded v7 and a custom OF6 kernel, and replaced my DIY instructions with what I've done this time around. MUCH simpler with 2.8.7.0!
Also:
Is this proof enough for anyone that 5.1.1 does NOT lock the bootloader?
Click to expand...
Click to collapse
http://forum.xda-developers.com/gal...-stockmod-kernel-t3100395/page50#post61551321
try that one,, sorry, on my computer now. Its in the unified development section for the unified kernel.. They have a working TWRP for the non edge and there is a patched kernel that should give root for us when flashed in odin. If I read correctly. I'm still on 5.0.2 or I would test it, I just dont want to upgrade and it not work and be stuck having to flash the whole factory image. I need root for tethering ect..
---------- Post added at 08:34 AM ---------- Previous post was at 08:30 AM ----------
tylerholbrook said:
http://forum.xda-developers.com/gal...-stockmod-kernel-t3100395/page50#post61551321
try that one,, sorry, on my computer now. Its in the unified development section for the unified kernel.. They have a working TWRP for the non edge and there is a patched kernel that should give root for us when flashed in odin. If I read correctly. I'm still on 5.0.2 or I would test it, I just dont want to upgrade and it not work and be stuck having to flash the whole factory image. I need root for tethering ect..
Click to expand...
Click to collapse
@Aou somehow Sunderwear got another mysterious update OTA that was prerooted to my understanding... more info on that is in the TMobile galaxy s6 thread in the general section.

tylerholbrook said:
http://forum.xda-developers.com/gal...-stockmod-kernel-t3100395/page50#post61551321
try that one,, sorry, on my computer now. Its in the unified development section for the unified kernel.. They have a working TWRP for the non edge and there is a patched kernel that should give root for us when flashed in odin. If I read correctly. I'm still on 5.0.2 or I would test it, I just dont want to upgrade and it not work and be stuck having to flash the whole factory image. I need root for tethering ect..
---------- Post added at 08:34 AM ---------- Previous post was at 08:30 AM ----------
@Aou somehow Sunderwear got another mysterious update OTA that was prerooted to my understanding... more info on that is in the TMobile galaxy s6 thread in the general section.
Click to expand...
Click to collapse
I'll have to mess with those tomorrow. Thanks!
(okay, now I really need to go to bed! Work in the morning...)

Aou said:
I'll have to mess with those tomorrow. Thanks!
(okay, now I really need to go to bed! Work in the morning...)
Click to expand...
Click to collapse
Ha yeah no problem. Really hoping it works for us but they had success on the 920x versions as well as a fully working TWRP that could probably be used to branch and get yours fully working. Fingers crossed :good: Thanks for your hard work!

Bam. 5.1.1 root

Did you see bigbiff released a TWRP for the other guys where everything works. Should I test out v7? I just don't want a bootloop lol

ktetreault14 said:
Did you see bigbiff released a TWRP for the other guys where everything works. Should I test out v7? I just don't want a bootloop lol
Click to expand...
Click to collapse
For the other guys? Mind linking me up?

Adizzzle said:
For the other guys? Mind linking me up?
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?t=3080940

The only missing piece of the puzzle

Thank you for having this so I didn't I'm have to reodin

Sorry a little confused here does that mean we have a new TWRP image available for the G925T/W8

Well I can't take a backup but it doesn't screw my boot up

ktetreault14 said:
Well I can't take a backup but it doesn't screw my boot up
Click to expand...
Click to collapse
Really? It didn't screw up your boot? Interesting...
In any event, the v7 I had uploaded last night was not actually v7. It was some bastardized hybrid of v6 and v7. I re-uploaded the REAL v7.
Still breaks System at this time, but I'm working on it. The TWRP for the international S6 seems to have pretty much all the same source as mine, at least what they're showing right now. I'll double check and verify some stuff.
As for root, great! I'm looking into baking the same thing into my kernel, so those who want to say closer to TMO stock can do so without fear. It's possible that the SuperSU flashable zip would work on 5.1.1 if we just set SEAndroid to "permissive" which is what I see that those guys are doing, primarily. The rest is just convenience - taking advantage of:
a) some emergency-flash feature that samsung has baked in (lets the device flash or execute something on boot, if it needs to), and
b) some modified int.rc script and injecting root and starting it with every boot.
I'm looking into this, and fixing my TWRP. Also looking into the feasibility of flashing/repairing the System partition from my existing v7 broken TWRP...

Aou said:
Really? It didn't screw up your boot? Interesting...
In any event, the v7 I had uploaded last night was not actually v7. It was some bastardized hybrid of v6 and v7. I re-uploaded the REAL v7.
Still breaks System at this time, but I'm working on it. The TWRP for the international S6 seems to have pretty much all the same source as mine, at least what they're showing right now. I'll double check and verify some stuff.
As for root, great! I'm looking into baking the same thing into my kernel, so those who want to say closer to TMO stock can do so without fear. It's possible that the SuperSU flashable zip would work on 5.1.1 if we just set SEAndroid to "permissive" which is what I see that those guys are doing, primarily. The rest is just convenience - taking advantage of:
a) some emergency-flash feature that samsung has baked in (lets the device flash or execute something on boot, if it needs to), and
b) some modified int.rc script and injecting root and starting it with every boot.
I'm looking into this, and fixing my TWRP. Also looking into the feasibility of flashing/repairing the System partition from my existing v7 broken TWRP...
Click to expand...
Click to collapse
Yeah it didn't break system. It also didn't let me backup. Though. Haven't tried other yet.

Related

[KERNEL] root/init.d support for stock insecure kernel

Hello,
Some users requested this so I put it together as well as a template for devs to include with their kernels.
i927_rooted_initd_boot.tar.md5
Flash this via ODIN as usual.
The initial ramdisk can be found here on my github: android_samsung_i927_initrd
Feel free to use/modify this devs, just give credit.
Credit to: the provider of the insecure stripped down kernel
Da_G for his script in the ramdisk
Enjoy.
This kernel works great, provides root on stock ROM as expected and scripts run. Good work.
It may be useful...
For the i927_rooted_initd_boot.tar.md5 file:
CRC32: 7031B711
MD5: FED634B455931E667FFE31BEC3857A66
SHA-1: F4B8AEBF3C6C531C4C24CDBB425DDAAB530C6350
I do not have root after flashing this kernel.
Edit: I finally got it working by reflashing and rebooting.
utkanos said:
Hello,
Some users requested this so I put it together as well as a template for devs to include with their kernels.
i927_rooted_initd_boot.tar.md5
Flash this via ODIN as usual.
The initial ramdisk can be found here on my github: android_samsung_i927_initrd
Feel free to use/modify this devs, just give credit.
Credit to: the provider of the insecure stripped down kernel
Da_G for his script in the ramdisk
Enjoy.
Click to expand...
Click to collapse
If you don't mind, how did you go about getting init.d to work? I am working on a similar kernel but have not yet been able to get my scripts to run.
Wetzel402 said:
If you don't mind, how did you go about getting init.d to work? I am working on a similar kernel but have not yet been able to get my scripts to run.
Click to expand...
Click to collapse
It's in the source I posted on my github.
https://github.com/utkanos/android_samsung_i927_initrd/blob/master/init.superuser.sh
Thanks! I actually looked through your git earlier today but must have read over that line. Looks very easy to get going on a Samsung device. I tried that exact line on my device but it didn't work unfortunately. I think I may have a work around but haven't tested it yet.
I can't seem to get rooted with this. I've got it stock besides have flashed CWM via Odin.
I should just be able to get root by flashing a custom ROM and kernel through CWM, right? This device is a little different than my last one.
this is for GB only if you are using ICS then install likekernel or other root ICS based kernel.
Am on GB, but thanks anyways. I got it by other methods.

[BOOT][4.2+][UNOFFICIAL] MultiROM for TF300T [2014-02-13]

MultiROM lets you install multiple ROMs into subfolders, just by flashing them using a modified TWRP.
This is an unofficial port of MultiROM originally developed for the Nexus series to our beloved TF300T.
Big thanks @Tasssadar for the original work!
THIS IS AN EARLY VERSION OF THIS PORT, NOT ALL FEATURES ARE FULLY TESTED.
But please test and give feedback, so I can eventually remove above line.
Features
Run a primary Android ROM from the normal partitions.
Run multiple secondary ROMs from subfolders on an SD card or on an external USB stick/drive.
Easily add/update your primary and secondary ROMs using a modified version of TWRP.
Install Ubuntu and Ubuntu Touch as secondary ROMs Not supported yet.
And more...
Changes vs. official MultiROM
This section is mostly useful for people using MultiROM on another device. New users can safely ignore it.
My first test - installing a plain CM 11, installing MultiROM, and then installing OmniROM with its own kernel - failed gloriously. The reason was that the official MultiROM re-uses the kernel of the currently installed Android system and that kernel does not include the kexec hardboot patch required for MultiROM to work properly.
The beauty of MultiROM is that - once installed with a proper kernel - it allows an average user that has never heard about kexec and never installed a custom kernel to run multi-boot at the touch of a finger. So I decided that my first simple use case must be supported.
The obvious solution was to ship a working kernel with MultiROM, save the currenly installed kernel for the primary ROM and boot that via kexec. The idea is to sacrifice another 10 secs on booting the primary ROM for making MultiROM much easier to install and to use. However, this decision led to several changes in the TWRP user interface:
The "share kernel with primary ROM" option was removed. Each ROM has its own boot image and is always booted via kexec.
The "Inject current boot sector" on the MultiROM screen button was replaced with a "Reinstall" button. Use this, if you have overwritten the boot sector, for example via fastboot. Mind, reinstalling MultiROM will save the current boot partition and use it for booting straight into the primary ROM, so better make sure this works, before running reinstall, or you won't be able to boot into your primary ROM after reinstallation.
The "Add/Remove boot.img" button on the ROM management screen has been replaced with "Replace boot.img" and can be used to easily install a custom kernel for that ROM.
Looking forward to your feedback on this major change!
Downloads
Downloads are available from the "Downloads" tab at the top of the page.
MultiROM installer including the modified TWRP:
multirom-vXX-YYYYMMDD-UNOFFICIAL-tf300t.zip
TWRP for MultiROM (not needed, if you use the installer):
twrp-multirom-vXX-YYYYMMDD-UNOFFICIAL-tf300t.blob
Installing and Upgrading MultiROM
Please read the following instructions carefully, and make sure you understand each step and what it will do to your tablet. The steps are working for me, but you are ultimately responsible, for what you are doing with your own tablet. I will not be responsible, if you brick your tablet, or if your wife gets angry at you for being too preoccupied with your tablet.
Make a backup!
MultiROM will modify your system, and if anything goes wrong, this backup will be more than helpful.
Check the version of your bootloader.
On the bootloader screen, check the version shown on the top left. MultiROM was ported and tested on version 10.6.1.27.5. If your bootloader version is 10.6.1.27.1 or 10.6.1.15.3 you should have no issues. Version 10.6.1.8 might work, but is likely to cause issues; upgrading is highly suggested. For any other version, make sure you first upgrade your bootloader, or you risk ending up with a brick,
Flash the lastest multirom-vXX-YYYYYYYY-UNOFFICIAL-tf300t.zip
Reboot right away!
Make sure you see the blue progressbar on the first boot screen and you see another automatic reboot.
Then the MultiROM boot screen should show up.
Now you should be able to boot your primary ROM via MultiROM. For next steps, check out "Installing ROMs" in the next post.
Uninstall MultiROM
The uninstaller for the official MultiROM has not been ported yet, but you can get rid of MultiROM following these steps:
Flash your favourite (not MultiROM) recovery.
Restore your boot partition from a backup or re-flash your ROM.
Remove the "multirom" folder on the sdcard.
The latter is optional. You may keep it around for trying MultiROM again later.
Changes
2014-03-16:
Fixed MultiROM reinstallation from TWRP.
Some fixes for swapping primary/secondary ROMs.
Some fixes for primary ROM initrd.
Added support for Ubuntu Touch (needs upcoming manager app).
2014-03-02:
Support secondary ROMs on SD card (not fully tested).
Use packaged initrd instead of the primary ROM's.
Some bug fixes.
2014-02-13:
Allows flashing 4.2-based ROMs without removing the assert line in the updater-script.
Several bug fixes for more stability.
Note that changes may be documented, before the downloads are available. Please check back a little later in that case.
Future Work
In no particular order:
Provide uninstaller.
Add the missing features listed above.
Fix TWRP for encrypted filesystems.
Allow replacing the kernel for any ROM, keeping the ramdisk.
Remove unnecessary drivers (net, sound, camera) from the kernel (currently breaks building the kernel).
XDA:DevDB Information
MultiROM for TF300T, a Tool/Utility for the Asus Transformer TF300T
Contributors
f69m
Version Information
Status: Alpha
Created 2014-02-11
Last Updated 2014-03-16
Installing ROMs
Custom 4.2- and 4.4-based ROMs
To install/update your primary ROM, just flash it as usual with the modified MultiROM TWRP, using "Install" from the main screen.
Installing a secondary ROM is just as easy, but use:
Advanced > MultiROM > Add ROM
You can update a secondary ROM by flashing it from the ROM management screen, using;
Advanced > MultiROM > List ROMs > [select your ROM] > Flash ZIP
OTA updates using the update manager coming with your ROM should work fine for both primary and secondary ROMs.
Note: It is no longer necessary to remove the assertion from a 4.2 updater-script.
Gaps, SuperSU, etc.
You can flash additional ZIP files for a secondary ROM from the ROM management screen, using:
Advanced > MultiROM > List ROMs > [select your ROM] > Flash ZIP
Asus Stock ROM
Asus stock ROM has a different installer and won't work the same way as custom ROMs.
Here are the steps to install stock ROM as your primary ROM:
Sorry, I have not tested this myself yet, please let me know, how it works out.
Unzip the Asus ROM twice to get the blob.
Flash the blob using fastboot.
Boot into stock ROM.
Re-install the modified TWRP using fastboot (use the separate download).
In TWRP: Advanced > MultiROM > Reinstall.
This should give you a working MultiROM setup with stock ROM as your primary ROM.
If you need more detailed instructions on the first two steps, please refer to the guides in the General section.
Ubuntu Touch
Coming soon...
Ubuntu
Not working yet.
Notes on Specific ROMs
CROMi-X 5.3
Don't try to install CROMi-X as a secondary ROM. It has an amazing installer, but that will nuke your primary ROM's /system partition.
Trouble-shooting
If your primary or one of your secondary ROMs is not booting properly, it can help to restore the boot partition of the primary ROM and then do a clean reinstall of MultiROM.
No worries, you can move your installed secondary ROMs to the side and move them back later.
First try restoring the boot partition from your latest backup, before installing MultiROM and reboot.
If your device boots cleanly into your primary ROM, without showing the MultiROM boot screen, you can skip ahad to step 3.
Next try flashing an unmodified recovery, re-flash your primary ROM and reboot.
If your device boots cleanly into your primary ROM without showing the MultiROM boot screen, you are ready to go to step 3.
Otherwise you should post your issue.
Use a root terminal or a root exlorer to remove the folder /data/media/0/multirom.
Alternatively you can rename that folder, keeping your installed ROMs.
Note: though this folder is on the sdcard, you have to use the path given; trying to use /sdcard or /storage you will get "permission denied", when trying to remove or rename the folder.
Reflash the latest multirom-v*.zip and reboot.
Make sure you see the blue progressbar on the first boot screen and you see another automatic reboot.
Then the MultiROM boot screen should show up.
Try booting your primary ROM. It should now start cleanly.
Try installing a secondary ROM, or move it back to /data/media/0/multirom/roms/ from the folder you renamed above.
Just moving back the folder will make it show up on the MultiROM boot screen.
Please read and follow each step carefully.
If these steps do not make all your ROMs boot properly, please post about your issue in this thread.
Source Code Repositories
The easiest way to build MultiROM is using my manifest following the build instructions below.
Here is a list of the MultiROM-specific repositories that can be built by adding them to the OmniROM tree:
Latest manifest:
https://github.com/f69m/android
MultiROM (check out to "bootable/multirom"):
https://github.com/f69m/multirom
TWRP for MultiROM (check out to "bootable/recovery"):
https://github.com/f69m/multirom-twrp
libbootimg (check out to "external/libbootimg"):
https://github.com/Tasssadar/libbootimg
TF300T device config (check out to "device/asus/tf300t"):
https://github.com/f69m/android_device_asus_tf300t
TF300T kernel (check out to "kernel/asus/tf300t"):
https://github.com/f69m/android_kernel_asus_tf300t
Look out for branches named "multirom-*" in above repositories.
Please check the manifest for the latest stable branch.
Build Instructions
Using my manifest makes it easy to check out the MultiROM repositories and a small part of the OmniROM tree needed for building.
Code:
repo init -u git://github.com/f69m/android -b multirom
repo sync
manifest/pick-cherries.sh
source build/envsetup.sh
lunch mrom_tf300t-userdebug
make -j4 multirom_zip
Sweet! Thanks man, this looks pretty cool!
Sent from my SGH-T999 using xda app-developers app
Finally, first download is up!
Let me know, how it works for you.
Thanks for your work.
Now I use CROMi-X 5.3 ROM. If I install MultiROM and TWRP for MultiROM, the exist CROMi-X 5.3 ROM can keep on primary ROM??
z1022 said:
Now I use CROMi-X 5.3 ROM. If I install MultiROM and TWRP for MultiROM, the exist CROMi-X 5.3 ROM can keep on primary ROM??
Click to expand...
Click to collapse
Absolutely, just flash the multirom-*.zip file (includes TWRP), and you should be able to boot into CROMi-X via MultiROM.
But I have not tested with CROMi-X yet, so make sure you have a backup!
Sent from my TF300T using Tapatalk
Thanks
I will try later and report back.
CROMi kernel should be not included the kexec. Can I use the Multirom to install second ROM ??
z1022 said:
I will try later and report back.
Click to expand...
Click to collapse
Great, looking forward to hearing about your experiences.
CROMi kernel should be not included the kexec.
Click to expand...
Click to collapse
The CROMi-X kernel does not need kexec for my MultiROM port to work. This is different from the official MultiROM for Nexus. See post #1 on more details.
Can I use the Multirom to install second ROM ??
Click to expand...
Click to collapse
Of course, that's the whole idea!
Check post #2 for instructions.
Sent from my TF300T using Tapatalk
Hi f69m!
1000 THANKS!
I successfully installed this MultiROM on TF201 with bootloader from TF300T v. 10.6.1.27.1 ! :laugh:
As Primary ROM i have NIGHTLY CM11 for TF300T. As "virtual" ROM i installed the same ROM (i want to examine the new GRIMKERN_KitKat).
All works properly with 1 exception:
Don't works the touchscreen during "blue" window for ROM-selection.
So I had to specify the "default" firmware in TWRP.
Dasdranamin said:
Hi f69m!
1000 THANKS!
I successfully installed this MultiROM on TF201 with bootloader from TF300T v. 10.6.1.27.1 ! :laugh:
Click to expand...
Click to collapse
Wow, amazing!
All works properly with 1 exception:
Don't works the touchscreen during "blue" window for ROM-selection.
So I had to specify the "default" firmware in TWRP.
Click to expand...
Click to collapse
Hmm, not quite sure, what you mean with "blue" window. You mean the MultiROM menu that comes up after boot? If yes, could you send me a copy of /proc/last_kmsg after booting your ROM? It has the kernel log of MultiROM; maybe I can spot the issue there.
Sent from my TF300T using Tapatalk
f69m said:
Wow, amazing!
Hmm, not quite sure, what you mean with "blue" window. You mean the MultiROM menu that comes up after boot? If yes, could you send me a copy of /proc/last_kmsg after booting your ROM? It has the kernel log of MultiROM; maybe I can spot the issue there.
Click to expand...
Click to collapse
Yes. That's what I meant.
Dasdranamin said:
Yes. That's what I meant.
Click to expand...
Click to collapse
Thanks for the log. It is a different touchscreen, but don't see anything that should cause issues.
In TWRP touch is working fine?
I'll have a look at the differences in the input handers and will probably send you a special version with more logging.
Sent from my TF300T using Tapatalk
f69m said:
Thanks for the log. It is a different touchscreen, but don't see anything that should cause issues.
In TWRP touch is working fine?
Click to expand...
Click to collapse
Yes, in TWRP touch works without any problem!
I'll have a look at the differences in the input handers and will probably send you a special version with more logging.
Click to expand...
Click to collapse
That would be great! Thanks in advance!
f69m said:
Great, looking forward to hearing about your experiences.
The CROMi-X kernel does not need kexec for my MultiROM port to work. This is different from the official MultiROM for Nexus. See post #1 on more details.
Of course, that's the whole idea!
Check post #2 for instructions.
Sent from my TF300T using Tapatalk
Click to expand...
Click to collapse
Install MultiROM and try to install Omni 4.4.2. ROM in second. However, stick in OMNI booting Screen.
z1022 said:
Install MultiROM and try to install Omni 4.4.2. ROM in second. However, stick in OMNI booting Screen.
Click to expand...
Click to collapse
I successfully installed just now on TF201 Omni 4.4.2. ROM TF300T Homebuild versions [20140126] (it's last ROM with MultiWindow feature) + Gapps Mini Modular Package.
All works properly. :good: MultiWindow too.
how long omni finished the booting.
---------- Post added at 11:59 PM ---------- Previous post was at 11:50 PM ----------
z1022 said:
Install MultiROM and try to install Omni 4.4.2. ROM in second. However, stick in OMNI booting Screen.
Click to expand...
Click to collapse
Try CM11 in second ROM. still stick in CM11 booting screen.
z1022 said:
how long omni finished the booting.
Click to expand...
Click to collapse
First time about 5 min (with Gapps).
Next times about 2 min.
Nice! cant wait to try this, thanks for your hard work!
Hi f69m,
I found: in "MultiROM menu that comes up after boot" I can select a ROM by VOLUME UP/DOWN and confirm by POWER (like in "old" CWM). :laugh:

ABANDONED [TWRP][20151015] dr4stic's TWRP 2.8.7.0 w/ stuff (Most Variants)

I BUILD ABANDON A TWRP!
THIS PROJECT IS ABANDONED (2015-12-06)
Blastagator's 2.8.7.3 release fixes the problem that started my quest: the sepolicy squashing that damaged the gapps permissions on CM-12 OS updates. Given that I had many more issues that came from my choice of CM-12.1 as a base (instead of whatever TWRP wanted) and that I lacked the time, inclination or expertise to pursue the issues, I have chosen to abandon this project. If it worked for you and you didn't need the extra features that were buggy, then by all means enjoy. However this project is no longer supported.
What is it?
It's TWRP! It's for a number of the G2's! Which ones? The ones supported by whatever the current CyanogenMod is. GSM: D800/1/2/3, CDMA: LS980, VS980. This is because, despite the TWRP documentation, I use CyanogenMod as a base, and if CyanogenMod doesn't currently support the given model, then I won't be supporting it with my TWRP. This TWRP is built with hints from (and thanks for) @blastagator's TWRP.
README.FIRST / DISCLAIMER
THERE BE DRAGONS HERE!!! USE THIS AT YOUR OWN RISK!!!
This is your one AND ONLY warning. I am not responsible for whatever happens to your phone. This software has the feature set to let you backup all of your partitions, but it also has the power TO BOTCH each and every partition on your device. This includes your EFS and other sensitive things. It is entirely possible that you may end up bricking your device. I really hope that doesn't happen, but I am also not responsible if it does. Please, behave responsibly and know that if you've taken the time to get this installed, well... your warranty is void.
Features
Flashes Gapps properly so that it doesn't crash on reboot
Thermal Support
Material Theme
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Known Issues / Red Flags
I've only really tested on the D800 because that's what I have access to. However I've reports that it works fine on the other variants.
Reports that it doesn't work with blastagator's hybrid LP bootstack. (User says reboots into bootloader)
F2FS Support currently a bit borked. (User's say formatting doesn't work and causes ROM to bootloop, or is very slow and doesn't work.)
Users using AROMA will have issues installing things. Something about the installation process causes the recovery to reboot.
Cherry Picks / Links
Device Repo: https://github.com/dr4stic/twrp_device_lge_g2-common
CyanogenMod / 89474: Make recovery permissive (manually applied) - (20151003 - current)
TWRP / 12728: [WIP] gui: stock theme rework - (20151015 - current)
CyanogenMod / 110402: f2fs: Import latest F2FS + AIO Optimization - (upcoming)
TWRP / 14355: Fix broken fsflags support (upcoming)
TWRP / 14462: Support resuming block based OTAs (upcoming)
Releases / Changelog:
2.8.7.0 - 20151015
Added directives to tell twrp where our media REALLY is (blastagator suggested bad things happen if I don't)
Cherry picked a more material like theme because Rashed97 whined about ugliness
D800: twrp-2.8.7.0-20151015-d800.zip - 11.6 MB (MD5 Sum: 7e46ea96fed69a5cde9da73e26d6742e)
D801: twrp-2.8.7.0-20151015-d801.zip - 11.4 MB (MD5 Sum: 7a71cda865b0f32c1403938eb76eeb5e)
D802: twrp-2.8.7.0-20151015-d802.zip - 11.4 MB (MD5 Sum: 52143681915a53b910040fb6501dd324)
D803: twrp-2.8.7.0-20151015-d803.zip - 11.4 MB (MD5 Sum: e8ee2f05ca06be1924a45e49da29e439)
LS980: twrp-2.8.7.0-20151015-ls980.zip - 11.4 MB (MD5 Sum: f76642bd7f5bb2b0eb8bb2a20e4adfed)
VS980: twrp-2.8.7.0-20151015-vs980.zip - 11.4 MB (MD5 Sum: bdfdb1e2132ab08a8f7e42c06e3699a4)
2.8.7.0 - 20151003
Initial release
Download 2.8.7.0 - 20151003: D800 | D801 | D802 | D803 | LS980 | VS980
Thanks To:
The TWRP Development Team
@blastagator
@Rashed97
dr4stic said:
Hello folks,
I BUILD A TWRP!
Click to expand...
Click to collapse
When I see how many projects are done for the G2, I really think I should give a try... Anyway, !gg mate, I'll try this recovery .
What did you change? Or did you just build my repos and post a new thread?
blastagator said:
What did you change? Or did you just build my repos and post a new thread?
Click to expand...
Click to collapse
It's not just a download and rebuild, if that's what you're asking (and, I'm not trying to upset the apple cart or anything).
The build started as the end of my trying to figure out what the problem was with CM and Gapps that required it to be re-flashed each time a rom update was flashed. I experimented with running commands by hand, dissecting upgrade scripts, found that contexts were either not being set or being lost, etc... etc... And at some point the only answer I could come up with was that it was the recovery. I tried the CM recovery, which is worse than the black death, and it worked fine. Since your TWRP is the latest, I didn't understand why it wasn't keeping contexts. At that point I decided to build my own TWRP, so I started from the only official docs I could find. That's what my base started as.... the cm-10.1 repos they have on their github for g2.
After realizing that simply wasn't going to work, I started re-working and basing off of CM. I didn't necessarily want to look at your work because in my mind yours was done right and based on latest CM. I eventually looked at it for some hints (hence my attribution). It wasn't until I realized your device repos looked odd to me that I realized what happened. Your device repos were based from back when the G2 stuff was barely starting out on CM-12.1... it was still very 12.0 (which, in itself was a ball of vomit for the g2). It lacked the selinux stuff (which is why it was losing contexts) and you also used an alternate kernel (unsurprisingly, cuz the CM stuff was still in a state of vomit). There are no judgements. At the time you built the recovery, it's what was available and working. I don't think the G2 got selinux turned up until some time in very early August.
So, I decided to fork copies of the latest CM device repos which all work now, base everything off the current CM kernel (I figured this was safest for compatibility). I actually looked through the TWRP sources to hunt for actual BoardCommonConfig.mk settings (the docs seemed VERY lacking) and an understanding of how they all interacted. I looked at your repo for hints, but I didn't just copy it. As a result I use more current settings (a few of yours are actually deprecated). I'm assuming because of the age of your repo that your builds were lokified and you bumped them after the fact. Mine have all the changes that came with 12.1 including a lack of loki and being bumped as part of the build process. The rc files are all stock CM. Many things simply don't exist from your version because the recovery environment seems REALLY restricted once it's built. The few things that I did borrow, I moved into more appropriate locations and file names to be more respectful of the build process.
So, to answer your question: it started as a rather long and annoying bug hunt, then turned into a long but fruitful learning experience, and once I had a version that worked, I posted it for the few folks on the CM forum for whom this is a real pain in the ass.
It certainly wasn't a quick process and a grab for glory.... hell, once I realized that the CM build process needed to build a full ROM to get all the appropriate files into the recovery image, each one of those device builds took over an hour to build.
I started a new thread because I wanted to have a specific place where I could respond to issues if they arose, or at least tell people that I didn't care about their piddly little problems. I wanted a little more control over the support process, to be able to modify the OP with pertinent issues and links as they came up. It's something I wish had happened with CM-12.1 "official" threads.
There are things that I'm not sure of, and I try to indicate as much in the OP. The thread regulars indicated the history of needing thermal support, but I'm not sure if I got it right. Neither your recovery nor mine actually got the thermal libraries or binary included in the file system, however the process seems to be running. Nor are the configuration files included on the file system. f2fs support seems to simply be an additional package, and since the official G2 repos theoretically have f2fs support, I added that and moved along. The tools seem to be included on the file system.
I'm in the process of posting my changes to github, probably tomorrow since I'm still sorta learning to do that and I have things to do tonight. You can see them then. If you post an updated version of your recovery with my modifications, I'll happily close this thread.
@dr4stic
There's no "thermal support" official twrp uses their kernel, which blasts all cores on max freq, generating needless amounts of heat.
From the sounds of it, you're using the stock cm12.1 kernel, so there should be no heat issues. If the CPU gets hot, it will throttle as it is supposed to.
So that's what his twrp means when it says thermal support. It uses our phones kernel so it operates like it would on a ROM.
Lawlrus said:
There's no "thermal support" official twrp uses their kernel, which blasts all cores on max freq, generating needless amounts of heat.
From the sounds of it, you're using the stock cm12.1 kernel, so there should be no heat issues. If the CPU gets hot, it will throttle as it is supposed to.
So that's what his twrp means when it says thermal support. It uses our phones kernel so it operates like it would on a ROM.
Click to expand...
Click to collapse
@Lawlrus, thank you for the explanation! After I investigated I assumed that's what was going on, but I didn't want to assume and then tell people something I wasn't sure about. I noticed that mine gets a slight toastier than blastagator's, but not a significant difference. I attributed it more to kernel tuning with the finalized CM kernel than anything else.
dr4stic said:
It's not just a download and rebuild, if that's what you're asking (and, I'm not trying to upset the apple cart or anything).
I'm in the process of posting my changes to github, probably tomorrow since I'm still sorta learning to do that and I have things to do tonight. You can see them then. If you post an updated version of your recovery with my modifications, I'll happily close this thread.
Click to expand...
Click to collapse
Nah man, I'm not upset. I made it so easy (or tried to make it easy, at least) to build my source so other people could muck with it. My curiosity stems from wanting to add any improvements in to my build.
I briefly messed with cm12 device trees but didn't have luck the first go around so I didn't bother going down that road. Will definitely keep an eye on this thread.
My builds are built with the Omni 4.4 Source, and these changes:
https://github.com/blastagator/cm_device_lge_g2-common/blob/cm-11.0/blastagator_g2-common.xml
The device trees are actually based on cm-11, not 12.
As for SELinux, issues probably stem from this: https://github.com/blastagator/aicp...mmit/85953d0cf8dd3d33406ad8a745ced99e5039f766. When I committed it I thought it set SELinux to permissive. However, it actually completely disables SELinux, so the kernel won't automatically preserve contexts, etc. This seems like the most likely culprit for your issue. I will run a test build and revert that commit, if you'd like it to test.
As to cm-12, in general: I'm certainly interested in moving up, I just never really had a reason to spend any time on it.
blastagator said:
Nah man, I'm not upset. I made it so easy (or tried to make it easy, at least) to build my source so other people could muck with it. My curiosity stems from wanting to add any improvements in to my build.
I briefly messed with cm12 device trees but didn't have luck the first go around so I didn't bother going down that road. Will definitely keep an eye on this thread.
Click to expand...
Click to collapse
PM me with your email. I'll shoot you the diff I made. The only reason I haven't posted it to github is that I wanna show the changes piecemeal instead of in one big diff. If you can call it big... it's really just 4 changes
Honestly, I'm not sure why they recommend against building on CM. Despite their documentation being utter crap, the build itself was easy once I figured out where the pieces were all supposed to go.
And yeah... CM 12.1 at the time you built things was an absolute mess. But the stuff in the official repo's is really rock solid now. Well, maybe not tonight, it seems there were a bunch of g2 changes and one in particular is gonna break the build for tonight
Tried the d800. Device went into fastboot mode, doesn't boot into recovery. Back to blastagators.
dr4stic said:
PM me with your email. I'll shoot you the diff I made. The only reason I haven't posted it to github is that I wanna show the changes piecemeal instead of in one big diff. If you can call it big... it's really just 4 changes
Honestly, I'm not sure why they recommend against building on CM. Despite their documentation being utter crap, the build itself was easy once I figured out where the pieces were all supposed to go.
And yeah... CM 12.1 at the time you built things was an absolute mess. But the stuff in the official repo's is really rock solid now. Well, maybe not tonight, it seems there were a bunch of g2 changes and one in particular is gonna break the build for tonight
Click to expand...
Click to collapse
Github makes tracking all of this better. My suggestion is that you first create a "fork" of blastgator's repo on Github, and then "clone" the repo on your local machine. Apply your diffs to it. Commit and Push (to your fork). Then issue a pull request to Blastgator.
sandys1 said:
Github makes tracking all of this better. My suggestion is that you first create a "fork" of blastgator's repo on Github, and then "clone" the repo on your local machine. Apply your diffs to it. Commit and Push (to your fork). Then issue a pull request to Blastgator.
Click to expand...
Click to collapse
Thanks for your suggestion. I'm already talking to blastagator. The problem is that his current build isn't actually based on CM-12, we are working from different sources.
jacoghi said:
Tried the d800. Device went into fastboot mode, doesn't boot into recovery. Back to blastagators.
Click to expand...
Click to collapse
I have a few d800's, it's the device I use. Which bootloader are you on? JB? KK? LP?
I have the hybrid LP bootstack, from blastagator, which includes the KK aboot. Blastagator's twrp works without hitches
jacoghi said:
I have the hybrid LP bootstack, from blastagator, which includes the KK aboot. Blastagator's twrp works without hitches
Click to expand...
Click to collapse
Just a few things...
Are you talking about the "Bump LP" bootstack on this page?
Are you sure you downloaded the d800 recovery?
If you did, could you verify the md5 of the file you downloaded against the one I list in the OP?
Thanks.
dr4stic said:
Just a few things...
Are you talking about the "Bump LP" bootstack on this page?
Are you sure you downloaded the d800 recovery?
If you did, could you verify the md5 of the file you downloaded against the one I list in the OP?
Thanks.
Click to expand...
Click to collapse
Yep to all of them. I flashed your image using blastagators twrp and got the fastboot mode. Let me know should you need any extra info. Thanks
jacoghi said:
Yep to all of them. I flashed your image using blastagators twrp and got the fastboot mode. Let me know should you need any extra info. Thanks
Click to expand...
Click to collapse
Do you use cm-12.1? Which ROM do you use (and version) if you don't mind me asking.
dr4stic said:
Do you use cm-12.1? Which ROM do you use (and version) if you don't mind me asking.
Click to expand...
Click to collapse
I'm using cloudy 3.3 right now with xceeds kernel. After I got the fastboot mode, I could boot my system normally, if that helps. Rebooted again, got fastboot once more. Then booted system up again and installed autorec, which corrected the problem.
Well, messed around with this for a bit, decided to format /data to f2fs.
Dont do that. Not on this recovery. Formatting to f2fs takes forever (probably hangs entirely as i waited at least 10 minutes before rebooting)
Then noticed my /data wouldnt mount on reboot, causing my rom to bootloop and, even worse, the recovery to bootloop.
Due to a (probably unrelated) bug the lg flash tool didnt work either, so had to open up the device to boot in qhsusb mode and manually format /data to ext4.
This is the closest I've been to a complete brick on this phone since I got it.
Please update the OP to warn people about f2fs.
Nice work on the kernel update, but I personally am going to avoid this recovery until the above issue is solved
My problem is that it would not reboot nor power off while in this recovery. But it works by pressing power button.
It is ok now by removing the theme file ui.zip.

Need help compiling sedikernel (or any kernel)

Hello,
In order to debug the bluetooth problem, I'm trying to compile a kernel for the Captivate Glide. I can't get it to boot properly.
@steadfasterX 's SediROM is the highest-version ROM I know of on which bluetooth works so I've got it installed (version 2.1.2) on the phone.
The steps I've taken so far:
1. I have sedikernel from https://github.com/steadfasterX/kernel_samsung_i927 at commit 088aa4109ad144c583f32da5ffba7bac200f0575
2. I copied /proc/config.gz from a running phone, which contains CONFIG_LOCALVERSION="-sediKERNEL-v1.0", ungzipped it and saved it as .config . Haven't changed anything in it yet.
3. I ran `make CROSS_COMPILE=arm-linux-gnueabihf- zImage` (also tried arm-none-eabi- (both from Debian Jessie) as well as ~/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- from the NDK)
4. I also made a TWRP backup of the boot partition, and used split_bootimg.pl from William Enck to split it into a kernel and initrd
5. I then ran mkbootimg with the initrd extracted in step 4 and the kernel obtained in step 3 in arch/arm/boot/zImage
6. Finally I flashed this new boot.img onto the phone with odin (Heimdall, specifically)
I see the white "SAMSUNG" logo (which is normal when booting) with a yellow-triangle with an exclamation mark in it. No further boot stage happens (no bootanim from sediROM). If I re-pack the original kernel with bootimg and flash that via odin, then after the next boot the yellow triangle changes into a blue one and sediROM boots correctly.
I'm a bit stuck at the moment, not sure what's going wrong there. Probably the kernel panics for some reason. Is there a way to read the kernel boot messages before android starts? Any help would be greatly appreciated.
Thanks!
Successful!
Thanks to a lot of help from @steadfasterX on IRC I finally managed to compile a working kernel
Here's a list of steps I had to follow in addition to https://github.com/steadfasterX/android_device_samsung_i927/blob/sediROM_CM-ICS/README.md :
1. as discussed on IRC, `repo sync` was not finding a branch. Needed to add
Code:
revision="refs/heads/ics-release"
in .repo/manifests/default.xml in the line with
Code:
CyanogenMod/android_vendor_qcom_opensource_v8
2. I removed the spurious comma in device/samsung/i927/cm.dependencies
3. In device/samsung/i927/, I changed vendorsetup.sh to point to vendorsetup.sh.nopatching rather than .patching (none of the patches could be applied)
4. lunch target was therefore the one with -eng, not -userdebug
5. I installed java 6 manually (didn't have sudo)
6. I installed schedtool
7. I adjusted the path to Java and my toolchain in build_sediROM.sh (taken from https://github.com/steadfasterX/android_buildtools )
8. I downgraded GNU make from 4.0 to 3.81
9. I installed linux-headers and created a symlink from /usr/include/asm-generic to /usr/include/asm
10. I changed the toolchain prefixes in device/samsung/i927/BoardConfig.mk to have 4.4.3 rather than 4.7
11. I built with
Code:
BUILDID=samsung/i927 LOKIFY=0 ../android_buildtools/build_sediROM.sh bootimage
12. I used the original ramdisk I had extracted from sediROM's boot image, rather than the one that was built (we discussed this on IRC too)
This got me a working kernel, yay
uukgoblin said:
Thanks to a lot of help from @steadfasterX on IRC I finally managed to compile a working kernel
Here's a list of steps I had to follow in addition to https://github.com/steadfasterX/android_device_samsung_i927/blob/sediROM_CM-ICS/README.md :
1. as discussed on IRC, `repo sync` was not finding a branch. Needed to add
Code:
revision="refs/heads/ics-release"
in .repo/manifests/default.xml in the line with
Code:
CyanogenMod/android_vendor_qcom_opensource_v8
2. I removed the spurious comma in device/samsung/i927/cm.dependencies
3. In device/samsung/i927/, I changed vendorsetup.sh to point to vendorsetup.sh.nopatching rather than .patching (none of the patches could be applied)
4. lunch target was therefore the one with -eng, not -userdebug
5. I installed java 6 manually (didn't have sudo)
6. I installed schedtool
7. I adjusted the path to Java and my toolchain in build_sediROM.sh (taken from https://github.com/steadfasterX/android_buildtools )
8. I downgraded GNU make from 4.0 to 3.81
9. I installed linux-headers and created a symlink from /usr/include/asm-generic to /usr/include/asm
10. I changed the toolchain prefixes in device/samsung/i927/BoardConfig.mk to have 4.4.3 rather than 4.7
11. I built with
Code:
BUILDID=samsung/i927 LOKIFY=0 ../android_buildtools/build_sediROM.sh bootimage
12. I used the original ramdisk I had extracted from sediROM's boot image, rather than the one that was built (we discussed this on IRC too)
This got me a working kernel, yay
Click to expand...
Click to collapse
its really long guide. You have to replace kernel modules, wifi wouldnt work without modules.
Imho best is compile kernel, modules, replace zImage + modules in this
file and flash from recovery. You dont need to compile whole android just the kernel, you dont need java and other special things, this method is much more faster.
bubor said:
its really long guide. You have to replace kernel modules, wifi wouldnt work without modules.
Imho best is compile kernel, modules, replace zImage + modules in this
file and flash from recovery. You dont need to compile whole android just the kernel, you dont need java and other special things, this method is much more faster.
Click to expand...
Click to collapse
You are right for the kernel but we discussed on IRC to build ram disk too then you need all that stuff but most important he wants to build CM too.
However I'm always a fan of making it right so building a ram disk is the correct way of creating a bootimage. But to start its ok replacing kernel and modules first.
.
Sent from my LG-H815 using XDA Labs
steadfasterX said:
Sent from my LG-H815 using XDA Labs
Click to expand...
Click to collapse
correct way is rebuild whole android, and reflash everything, wipe data/cache
You dont want to make new ramdisk without replace system. System and ramdisk bound together.
I hope you find something, and fix bluetooth or voip audio.
good luck
bubor said:
correct way is rebuild whole android, and reflash everything, wipe data/cache
You dont want to make new ramdisk without replace system. System and ramdisk bound together.
I hope you find something, and fix bluetooth or voip audio.
good luck
Click to expand...
Click to collapse
Well no and yes. I build kernels including ram disk without building system. This is not necessary as long both are compatible.
But you are right that booting fails when system and ram disk are not compatible so the correct way depends
However @uukgoblin I hope you get the fix you want :fingers-crossed:
Sent from my LG-H815 using XDA Labs
steadfasterX said:
Well no and yes. I build kernels including ram disk without building system. This is not necessary as long both are compatible.
But you are right that booting fails when system and ram disk are not compatible so the correct way depends
However @uukgoblin I hope you get the fix you want :fingers-crossed:
Sent from my LG-H815 using XDA Labs
Click to expand...
Click to collapse
would you tell me an example when kernel doesnt compatible with ramdisk but kernel does compatible with system?
bubor said:
would you tell me an example when kernel doesnt compatible with ramdisk but kernel does compatible with system?
Click to expand...
Click to collapse
No no my friend that's not what I said. :cyclops:
I meant if you have CM 9 as system you can build a boot image which includes kernel and a CM9 based ram disk without building cm9 system again. :laugh:
.
Sent from my LG-H815 using XDA Labs

[ROM][UNOFFICIAL|CUSTOM|LOCKEDBL][Q/A10][hotdog] /e/ OS for OnePlus 7T Pro - BYE Google, HELLO privacy and security (LOCK your BOOTLOADER)!

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
brought to you by the
Code:
/*
* I'm not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed (like it did for me...).
* Please do some research if you have any concerns about features included in the products you find here before flashing it!
* YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you.
* Your warranty will be void if you tamper with any part of your device / software.
* Same statement for XDA.
*/
About /e/
/e/ is not just another ROM - it is a mobile ecosystem (ROM + online services) that:
is open source
is pro-privacy
is compatible with most existing Android applications
cares about usability
is as far as possible freed from shackles by Google and OEMs
already exists!
It’s the alternative to the Apple/Google duopoly on the smartphone.
... so again and just to be clear: /e/ is not just a ROM, it is more a complete privacy ecosystem and consists of:
an installable mobile operating system for smartphones, which is forked from Android and strongly “ungoogled”
a set of sorted and improved default open source applications
various online services that are linked to the mobile operating system, such as: a meta search engine for the web, drive (with synchronization), mail, calendar, notes, tasks.
Features
Based on the stable Lineage OS
microG fully pre-installed with Signature Spoofing in restricted mode!
All features described on the /e/ page: What is e
All features and fixes of LineageOS
My builds are all signed with a custom private key for best trust. This also means you have to factory reset when coming from another ROM!
My builds come with full OTA update support
... you know that thing which informs you that a new update is there and where you just click to download + install
You can LOCK YOUR BOOTLOADER - if you like
Build variants (UNOFFICIAL, CUSTOM)
UNOFFICIAL builds:
full OTA support
no other differences to pure /e/. It is just an unofficial build (if you want to have it official test my builds and report also SUCCESS! this ROM is currently awaiting to get approved by /e/ for official builds)
CUSTOM builds:
2 variants: rooted (magisk) or unrooted
removed: the app "Apps" (see FAQ why)
added: F-Droid, F-Droid priv ext, F-Droid additional repos (disabled by default), AuroraStore, Lawnchair-latest (taken from their TG group), PhoneSky (google play store - patched for microG), Magisk app when choosen the rooted variant
patched with this safetynet patch (this will not bypass safetynet though)
fully patched for AVB / dm-verity support - means you can lock your bootloader! (all builds since 3rd of Sep 2021) - yes even the rooted variant can run on locked bootloader!
SHRP included (accepted by a locked bootloader) - means when you want to use a different recovery you have to flash / re-flash it after flashing / upgrading the ROM. Including this is needed to not brick devices running on locked bootloader.
.. read all the details about locking your bootloader in this post
Known issues:
Keep in mind that this is brand new stuff so it may (still) contain unknown issues!
So back up regularly and frequently!
none known (yet)
If you find a bug not listed let me know and SHARE LOGS! -> READ FAQ#1 for how to provide proper logs.
Requirements
Latest TWRP or SHRP build (while I am testing with SHRP only)
Do a full (i.e. not just TWRP/SHRP - as those do not backup your internal storage) backup before doing anything!
Planning to lock your bootloader? Read this first
Installation
Planning to lock your bootloader?
Read on here
Detailed guide:
follow MSe1969's guide here
Quick guide (assuming you have TWRP/SHRP already):
Full clean install as described here (FAQ #2). DO NOT REPORT ISSUES when you have skipped that step!
Flash /e/
Optional (if you want root): Flash Magisk
Flashing OpenGapps ????? NO No no! you don't want that on a google-free phone! /e/ contains everything you need to live without Google! So flashing OpenGapps on /e/ is like using a bit more secure LOS but that's not the point of /e/. Either try without or go with LOS (imho).
Boot it (will take a bit on first boot!!! be patient!)
Enjoy the most easy way to have a privacy focused and google-free phone!
Download
Get your builds from my leech server (new installs or re-installs)
https://leech.binbash.rocks:8008/e-os/a10/hotdog/ (planning to lock your bootloader? Read this first)
If you have a previous version of my(!) /e/ Q installed already and just want to update to a newer release:
Android settings -> Updater (yes my builds have built-in OTA support!)
Note:
Builds are updated as soon as possible. There is no build cycle.
Information pertaining to your device is displayed accordingly.
The current build is the latest for your device.
Changelogs
Join my Telegram groups (see "Support" topic)
Support
Of course in this thread but also by Telegram. I have created a generic group for all stuff around Android : here
and another one if you want to keep up2date whenever I build something (TWRP, SHRP, LOS, /e/, ...): here
Credits
MSe1969, wth.. you did an AWESOME job
LineageOS (the base of /e/)
The /e/ foundation and all related devs making this experience possible!
and all I forgot (let me know if that's the case ofc) ..
Sources
/e/ : https://gitlab.e.foundation/e
my build manifest
MSe1969's stuff
Frequently Asked Questions (FAQ)
Q #0: For CUSTOM builds only: Why is the /e/ App store not included??? It is GREAT!
Mainly due to security and privacy concerns. Wth? I thought /e/ is secure and privacy focused? Yes it is but.. read on:
First of all the App store itself has no security or privacy issues. It is opensource and I see no issues with the app itself!
... the most important point for a smartphone is the availability of apps. I mean having a secure device which respects your privacy is great but it will have no chance to win when you cannot get easily apps on it.
... and the most dangerous part for a smartphone is installing apps because here is where Malware can easily step in! So whatever you do never install APK files from a website directly unless you can be 100% safe it is trustworthy.
It is all about trust again and when you look in the sources of the /e/ Apps store you find it connects to: cleanapk.org.
/e/ makes that not a secret though as you can read here.
So who is behind that cleanapk.org? Why is /e/ trusting them? While reading through the /e/ forums I found that this page hosts (as far as we know) apps mirrored from apkpure + fdroid.
.. and it's completely unclear who hosts that site and where is behind it. On the other site /e/ (Gael, the founder as well) states clearly they are not in any relation to that site. "They just using their api".
here some facts:
you cannot get the owner by a whois request
They have a info page here which just roughly describes where the apps are coming from and how
There is no detailed privacy statement or even an info if they keep your data GDPR compliant or not
No way for devs to get their apps removed or updated
The /e/ foundation clearly states they have no relationship to that repository of apps but some things are interesting aren't they:
IP's of /e/ and cleanapk are at least nearby
During an ongoing discussion about exactly that topic something took my attention: the welcome notification on api.cleanapk.org was exactly at that time: https://archive.is/U1E0y (I mean.... )
/e/ itself was audited several times by a site named "infosec-handbook" and of course even they find that app store at least "mysterious"
During that mentioned discussion and after pointing Gael to that - the welcome message suddenly changed to what it is today..
The full topic where even Gael is talking (not that friendly) is: here
TL;DR:
/e/ is providing apps (the most used way to get infected by malware) by an API which is at least questionable.
I do not say /e/ is doing questionable things and as said before the /e/ ROM is 100% trustworthy (otherwise I would not do any builds for it) but that cleanapk.org site is truly another story.
An interesting quote of Gael can make one read between the lines (I marked the interesting ones bold and cursive):
Some users have reported that they are using Aurora, [...] (context: we will never integrate this) because it’s infriging the play store terms of services.
For this, we have to use indirect mechanisms, that don’t infrige the play store TOS, and therefore, we are using a service that is not officially part of the /e/ project, and which is called cleanapk.org
On the long run, we other plans with partners, to offer something more transparent, but it’s too soon to talk about this.
Click to expand...
Click to collapse
Of course /e/ needs to ensure that what they are doing is 100% legal and offering an app repository like cleanapk.org is not.
My personal assumption is that /e/ is offering that repo - indirectly so not officially by the e.foundation itself.
A relation between is for sure nothing they want to have public as this would cause legal questions.
So the last question is:
Q: Why do I consider AuroraStore "better" then using cleanapk.org and so removed the /e/ apps store and adding AuroraStore instead?
A: Because I definitively know where the apps are coming from when using Aurora instead of /e/. Not just the app itself is OSS (like the /e/ one) the apps are coming directly from the play store instead of an unknown source.
Q #01: I want to report an issue. What is the proper way to do so?
I'm glad that you are asking: before doing so check the KNOWN ISSUES topic in the OP and ofc the other FAQ's listed here!
if you have an audio issue follow FAQ #6 instead.
Often selinux can cause issues so try that at very first:
Code:
if you have magisk installed:
adb shell
su
setenforce permissive
When " usb debugging root" is enabled in developer settings:
adb root
adb shell
setenforce permissive
Try again and if the issue is gone when in permissive mode: provide me a logcat as described here -> on step 3 I need the SELINUX log (option D)
If your issue is not solved with selinux permissive click here to proceed:
If your issue is not listed there follow the directions here briefly and I may can fix it:
logcat GUIDE
Ensure you have done a full CLEAN install before doing so (refer to FAQ #2 for what that means).
Warning: NO SUPPORT when:
- magisk is installed (known to cause issues sometimes - regardless of the ROM or version)
- Xposed is installed (known to cause issues sometimes - regardless of the ROM or version)
If you have installed any of these UNINSTALL or better do a FULL CLEAN install (see FAQ #2) before doing anything else. Often enough these above causes several issues like battery draining, problems on booting and much more. Even when they may work properly you should re-produce your issue without them first and follow the above to grab the log.
Magisk is a great piece of software and besides that it is Open Source which SuperSu never was.
I just saying I do not "support" issues when you have Magisk installed. Why? It is (like Xposed) extendable with modules (made by whoever) and those can cause billions of issues.
Other then that magisk was sometimes the reason for battery drain etc. Magisk modifies the boot "process" and sits very deep in the system (which is needed to make it work ofc) but that has the potential to make a system/ROM unstable or result in strange behaviors.
so in order to support a specific issue I have to be sure the ROM is in a "clean" state, no magisk, no xposed.
Pro-Tip: a very first test is to set magisk on core functions only to see if an extension causes your issue or not.
Q #02: I want to install clean, how? What is a clean install? What is the recommended way to flash a new ROM version?
A clean install ensures that there are no leftovers from any previous install. One can say that there are 2 phases of a clean flash:
1) regular
2) full - when you (still) encounter issues
Usually the regular one is fully ok when flashing a new ROM version but if you encounter strange issues nobody else is reporting or if a release post is recommending it you should do a full clean install instead.
A regular clean install can be done like this:
WIPE -> Advanced -> select: System + Cache
Flash the ROM
reflash root addon/magisk if you want root
A full clean install needs 2 steps more then the regular:
follow the steps for regular clean
go back in WIPE -> touch the "FORMAT data" button and type "yes" to format the internal storage (you will LOOSE ALL YOUR DATA - obviously)
REBOOT -> Recovery
Flash the ROM
reflash root addon/magisk if you want root
It is absolutely recommended to create a backup before and COPYING IT to your PC(!) before doing the above.
Q #03: Are there any plans or a chance of official /e/ builds?
Yes. With your help! What you can do? Test and report EVEN SUCCESS in this thread.
Q #4: Is there a FAQ specific for /e/?
Sure:
FAQ: click
Forum: click
HOWTOs: click (a great resource for all your first questions)
App alternatives (to replace google variants): click
Q #5: issues with audio (e.g. echo's, silence on one or the other site, ..)? Read here how to provide a specific log for that:
Do the following steps:
1) Ensure you have adb set up on your PC, and have adb debugging and adb root enabled in developer options on your phone
2) Then perform the following (all one command)
On Linux:
adb root ; adb shell "stop audioserver; logcat -c -b all; start audioserver" && sleep 10 && adb logcat -b all |egrep -vi "(dialer|telecom|ril|gsm|touch|brightn|dct|QC-time-services|SST|sensors|AlarmMan|Lights|perfp)"
Click to expand...
Click to collapse
On windows:
adb root ; adb shell "stop audioserver; logcat -c -b all; start audioserver && sleep 10 && logcat -b all |egrep -vi '(dialer|telecom|ril|gsm|touch|brightn|dct|QC-time-services|SST|sensors|AlarmMan|Lights|perfp)' "
Click to expand...
Click to collapse
3) Then re-produce your audio issue and cancel the logcat from step 2 before hanging up!
4) Share the logcat output from the console screen using paste.omnirom.org
Q #6: I'm scared about that microG , I don't want to expose my phone so is this /e/ version a security risk?
First of all you need a lot of trust installing ANY custom ROM. A developer can do nasty things right? Besides that yes microG allowing to let apps act like as they are another app, also known as signature spoofing. This CAN be a good and a bad thing. Read on why my builds are different:
In general the microG patch is an all or nothing. A ROM which supports microG (i.e. signature spoofing) have that feature enabled, always.
The difference in my /e/ builds is that I am using the "restricted" option of signature spoofing so as long as you trust me you are as safe as without microG.
Q #7: What is the difference between CUSTOM and UNOFFICIAL builds?
See OP
Q #8: Will my banking app (or other root detecting app) work with this ROM?
The answer is .. well .. simple. it depends.
First of all the following technique works regardless of what ROM you are using or what device. It worked with my LG G4, OnePlus 6T and now OP7tpro so its a generic "maybe-solution"
Read on here:
I am using a german banking app which works even when root gets detected. It will prompt and say thats bad but I am still able to use it. The same was the case for the TAN generator app of the same bank but it fully stopped working one day after a (forced) app upgrade.
So I started to play around and found a solution which works for me since several years but there is no guarantee it will work for you or for how long it will work. The process and steps must be followed briefly and nothing more, nothing less must be done.
The following references a banking app but it applies to any app which rejects starting when root or a custom ROM has been detected:
you need root, i.e. Magisk. This ROM has a custom build which includes Magisk already.
uninstall the currently not working banking app(s)
install & setup a work-profile manager like Insular, Shelter, (if you do not care about google trackers: Island), or [fill-in-another] ,.....
configure Magisk that it hides itself (i.e. re-package Magisk with a random name) & reboot just to be sure. and yes that works on signed and locked ROMs, too
newer Magisk versions will clone themself into the island profile during the repackage process so open island then switch to the island tab and remove the magisk app there (so not from the "mainland"!)
install the banking app(s) - BUT DO NOT start it!
clone that app into your work-profile (i.e. open Insular/Shelter/Island/.. find the app, clone it there), repeat that step for any app needed
configure Magisk hide for this app(s) and ensure you select all options (some apps can be expanded in magisk hide, select all options then)
remove any icons of your app(s) from your launcher but DO NOT UNINSTALL them!! (never)
in your work-profile manager (Insular/Shelter/Island/...) find your app and create a quick start launcher (repeat that for any app needed)
now start your banking app quick link (again it HAS to be the one created by your work-profile manager). usually you can identify that you are using the right one bc it has a mini icon of your work-profile manager on top of the regular app icon
enjoy. if it does still detect root or a custom ROM you either have not followed the above steps briefly or you are out of luck.
Background:
You cannot uninstall the app(s) from android (ever) because otherwise Magisk hide will not work. so you always need to keep that app(s) but never starting it.
It can make sense to try another work-profile manager if the above way fails for you as the app devs using different techniques
Q #9: Will DRM protected content work? | Will this ROM satisfy Safetynet?
Likely not. Yes this ROM is signed, selinux is enforcing and you can lock your bootloader but these days this is not enough anymore. While there are some workarounds available these might stop at any time. So do not expect that this will work or work for a long time.
LOCK your bootloader​Yes you read correctly: you can lock your bootloader again! Why is that so amazing? The most important thing: security. When your bootloader is locked no one can install or modify without you notice it. Let's say you loose your phone and your bootloader is unlocked. The person can boot into fastboot and flash a custom recovery of his choice and have full access to your data (if not having a pin set) but also can tamper e.g. your system partitions like installing malware. Yea for that the attacker needs physical access to your phone but there is malware around and this is REAL which uses bugs to install themselves even on your system partition. For this the attacker does NOT need physical access to your phone.
On a locked bootloader the device won't boot anymore as a modification like that will be detected.
Anyways.. yea one can say both attack variants are not THAT critical or affecting you as you are paying attention on what you do but .. there is a always a risk of undetectable malware like the good old drive-by downloads etc. so .. its all up to you if you want to have that extra barrier or not..
But before we begin
a HUUUUGE thanks to @WhitbyGreg !!!
All this here would not be possible without his great guide here ! Ofc I need to adapt it and integrate all this within my automation process but it would have been a LOT harder without his thread(s).
So if you love it having a locked bootloader now - give HIM some thanks clicks, donations, hugs.. as well
Checklist: is locking the bootloader something for me?​If you answer anyone - even just 1 - of the following with YES - then KEEP AWAY FROM LOCKING your bootloader!
I want to remove (not just disable) system apps (often called bloatware)
I want to add / convert apps into system apps (e.g. Titanium Backup offers such an option)
For rooted variant: I want to update Magisk to the latest version
For rooted variant: I want to change init scripts, XMLs or anything else within system/, product/ etc partitions
For rooted variant: I want to use an ad-blocker which modifies the "hosts" file (system partition)
I want to install another recovery then the one coming with the ROM (SHRP)
I want to flash GApps (LOL! this is /e/ !! even on unlocked bootloader this won't work!)
I want to flash anything else in recovery which modifies: boot, recovery, system or any other partition then userdata
Do you have answered at least 1 of the above with YES ? Then do NOT lock your bootloader. It WILL brick your device if you try.
if you can live with the above - GO GO GO
Lock your bootloader - process​Downloads
ROM without root: https://leech.binbash.rocks:8008/e-os/a10/hotdog/ (all CUSTOM(!) builds since 2021-09-03)
AVB key: https://github.com/sfX-android/update_verifier/blob/master/hotdog_eos-q_custom_pkmd.bin
ROM with root: https://leech.binbash.rocks:8008/e-os/a10_rooted/hotdog/ (all CUSTOM(!) builds since 2021-09-03)
AVB key: https://github.com/sfX-android/update_verifier/blob/master/hotdog_eos-q_custom-rooted_pkmd.bin
backup all your data. I am serious EVERYTHING. we need to FORMAT the userdata partition during the lock process and there is no way around. so use TB or Swiftbackup, Migrate or any other. Always a good idea to also having a TWRP/SHRP backup just for the case..
boot your current recovery
flash the ROM of your choice (with or without root)
reboot to the bootloader / fastboot
if you flashed the ROM with root: fastboot flash avb_custom_key hotdog_eos-q_custom-rooted_pkmd.bin
if you flashed the ROM without root: fastboot flash avb_custom_key hotdog_eos-q_custom_pkmd.bin
type: fastboot oem lock
approve locking the bootloader on the phone's screen
< take a deeeeeeep breath >
recovery (SHRP) will load automatically
choose wipe -> format(!) data (there is no way around)
boot android -> you will notice a new bootloader message warning you that you have a custom ROM installed - but it will load
congrats! you now running on a locked bootloader + /e/ OS!
for the rooted variant: start the Magisk app (requires internet), accept the install request and open the magisk app afterwards and let it reboot when asked
enjoooooy
Locked - now what?​OEM unlock option
The above does not mention one additional step: disabling OEM unlock in developer options. For a reason. I mean you CAN uncheck that option now that all is running fine but you don't get any more security tbh.
The reason is if you keep it checked an attacker is able to unlock your device but it WILL format the encryption keys when done. that means no way to access your data anyways. If you want to avoid even that then feel free to uncheck OEM unlock in developer settings as well but then a brick will require low level recovery tools to bring your device back to life.
Magisk (rooted variant)
I recommend to disable automatic update checking within magisk settings - remember: when flashing a newer version of magisk it WILL brick your device. you have to wait for me updating it within the ROM.
Anything you do within Magisk can EASILY BRICK your device, installing a magisk module which tampers your system partition: BRICK. So really really check if a module touches anything mentioned in the above checklist topic. Using the magisk variant has HIGH potential of bricking your device.
You can use all standard root functions, magisk hide and even re-pack the magisk app though.
Bricked
Always keep an eye on the above "Checklist" topic! If you change/do something mentioned there you will brick your device with a snap of a finger.
Android does not boot anymore because you flashed a newer version of Magisk or changed something within the protected partitions:
boot recovery (power off, press power on and vol down the same time and keep it pressed until you see the shrp logo)
flash the current ROM version or a later release and reboot
recovery does not load bc you flashed another recovery:
wait for the next OTA and it get fixed automatically
or unlock the bootloader again (this will need to FORMAT the userdata partition)
Sounds like a cool ROM, however I'm curious, what issues might I run into having no Google services? Are most apps going to work ok?
L4WL13T said:
Sounds like a cool ROM, however I'm curious, what issues might I run into having no Google services? Are most apps going to work ok?
Click to expand...
Click to collapse
hard to say. there are some which might not work and/or apps you should avoid (as they contain trackers etc). There is a good list of alternatives in FAQ 4 above
steadfasterX said:
​
Do a full (i.e. not just TWRP/SHRP - as those do not backup your internal storage) backup before doing anything
Click to expand...
Click to collapse
Do TWRP backups even work on this device? Last I heard, it was broken.
Hi! Why is there no gesture based navigation??? I'd love to see it!!!
at first glance the system is very surprising, like the very idea of a system without GAPPS. Looking forward to the development)
ap81z said:
Hi! Why is there no gesture based navigation??? I'd love to see it!!!
at first glance the system is very surprising, like the very idea of a system without GAPPS. Looking forward to the development)
Click to expand...
Click to collapse
Yea they removed it bc their launcher does not support it yet. There is an open issue on their bug tracker. I don't know when they will fix it tbh but i need it so bad that i found a way to include it. It's a kind of dirty hack but ... it works and will find its way in my next CUSTOM build..
steadfasterX said:
Yea they removed it bc their launcher does not support it yet. There is an open issue on their bug tracker. I don't know when they will fix it tbh but i need it so bad that i found a way to include it. It's a kind of dirty hack but ... it works and will find its way in my next CUSTOM build..
Click to expand...
Click to collapse
ok, I'll be waiting!!!
forgot to mention it here (another reason why users should join my automation channel):
Gestures are supported since the latest version.
breaking news:
I was working on using this device as my DD again but I have very strict requirements:
/e/ OS must work (reason: privacy focus, google-free) [ DONE ]
encryption must work (reason: security, e.g. loosing or selling the phone) [ DONE ]
selinux must run in enforcing [ DONE ]
/e/ OS must be signed with own private key (reason: allowing secure OTA and local/recovery upgrades) [ DONE ]
SHRP must work (reason: a password on startup can be set - allowing to have rich recovery feature set but secured - when the bootloader is locked!) [ DONE ]
and here the fun began:
/e/ OS must run on locked bootloader [ DONE ]
SHRP must run on locked bootloader [ DONE ]
OTA must work on locked bootloader [ WIP ]
so overall I am pretty much where I want to be and can provide a privacy focused, secure, google-free and locked bootloader experience soon...
stay tuned
Ever wanted to lock your bootloader - not on STOCK but on a custom ROM?​Most ppl don't know (or don't care) that almost all Oneplus devices offer such an option - if the ROM dev is willing to take the journey implementing it.
This is now possible when running my /e/ OS CUSTOM builds (read more in the OP about the diff between CUSTOM and UNOFFICIAL) and not just that my new CUSTOM builds coming either pre-rooted or not - whatever you wish more.
I have to say that this was something on my to-do list since I bought this device more then 1 year ago. After a lot of work in the past months I am finally where I am and can use it as my DD again. Something which makes me reeeeeeally happy lol
Dunno but maybe someone enjoys having a locked bootloader like I do
Read all the details and how it works: here
Hey just for info, I'v tried without relocking bootloader, to install aa auto as I do on lineage, and it give me the same result as locked bootloader, a black screen, I know that it's not your job to debug aaauto since it's a de-google rom. But the rom is unusable in my case, another question, why Play Store is installed by default ?
Thanks
Also I doesn't find any option to change 60hz/90hz ?
Thetimelost said:
Hey just for info, I'v tried without relocking bootloader, to install aa auto as I do on lineage, and it give me the same result as locked bootloader, a black screen, I know that it's not your job to debug aaauto since it's a de-google rom. But the rom is unusable in my case, another question, why Play Store is installed by default ?
Thanks
Click to expand...
Click to collapse
The CUSTOM builds containing the play store as i need it for some apps which do their license check over it. You csn simply deactivate it or use the UNOFFICIAL build instead (which do not allow locking the BL though).
Thetimelost said:
Also I doesn't find any option to change 60hz/90hz ?
Click to expand...
Click to collapse
Hmm good q. Is there an option for that in LOS? Maybe that's a limitation by /e/ but dunno tbh
steadfasterX said:
The CUSTOM builds containing the play store as i need it for some apps which do their license check over it. You csn simply deactivate it or use the UNOFFICIAL build instead (which do not allow locking the BL though).
Hmm good q. Is there an option for that in LOS? Maybe that's a limitation by /e/ but dunno tbh
Click to expand...
Click to collapse
Thanks for the answer ! Yes on LOS there is an option for it, and after use my op7t pro for 2 year with 90hz I directly spot the difference. ^^
Thetimelost said:
Thanks for the answer ! Yes on LOS there is an option for it, and after use my op7t pro for 2 year with 90hz I directly spot the difference. ^^
Click to expand...
Click to collapse
Hm interesting mine is running at 90 hz all the time it seems. Weird bc /e/ is based on LOS so maybe its an option in a11 first?
When will we get Android 11?
andr052h said:
When will we get Android 11?
Click to expand...
Click to collapse
Why do you want to have it?
steadfasterX said:
Why do you want to have it?
Click to expand...
Click to collapse
I mean, I really like what you have done with your current build, and would love to see that applied to the new Android 11 version as-well.
andr052h said:
I mean, I really like what you have done with your current build, and would love to see that applied to the new Android 11 version as-well.
Click to expand...
Click to collapse
Well first of all I thought no one uses my ROM anyways so there was no need for me upgrading to a11. This ROM is rock stable and does what i need as a daily driver and gets monthly security patches. Many ppl just want to have a newer android version just bc there is one and not bc for a specific reason. That's why I'm asking.
I personaly prefer a good working ROM over having always the newest android version just because there is one
Other then that i may upgrade to a11 but not anytime soon. Main reason is that I am using this as my daily driver so it would be hard alsi dev on it..

Categories

Resources