[ROM][UNOFFICIAL][A10][F500,LS991,H81x,US991,VS986] LineageOS 17.1 - G4 Android Development

{
"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"
}
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 LineageOS:
LineageOS is a free, community built, aftermarket firmware distribution of Android, which is designed to increase performance and reliability over stock Android for your device.
LineageOS is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. Linked below is a package that has come from another Android project that restore the Google parts. LineageOS does still include various hardware-specific code, which is also slowly being open-sourced anyway.
​**** These builds are for both: official unlocked and UsU'd devices **** ​UsU? http://bit.do/unlockg4​
Requirements
Your device need to be unlocked either officially (h815 international or h811) or by UsU
Your bootloader stack should be on MM 20p (20x for H811) or higher! (see FAQ #8 for how to upgrade your bootloader stack witbout lgup).
.... and for your convenience I have alternatively created TWRP flashable files for that !!!! (click)
in particular that means this thread is for:
F500 (UsU'd)
H810 (UsU'd)
H811
H812 (UsU'd)
H815 (official unlocked or UsU'd)
H819 (UsU'd)
LS991 (UsU'd)
US991 (UsU'd)
VS986 (UsU'd)
Latest TWRP - PREVIEW build: click
Do a full Nandroid backup before doing anything!
Installation
This single very first step is for UsU'd devices only:
If you have ever flashed the UsU baseband package: Clean flash the modem partition from your backup in TWRP.
If you do not know if you ever flashed it simply flash your modem partition again and you can be sure. This can't do any harm.
If you have no backup:
- TWRP flashable MM modems (N might not work)
Full clean install as described here (FAQ "#2") is highly recommended. DO NOT REPORT ISSUES when you have skipped that step!
Flash LOS
Optional (f-droid is already included): Flash GApps (10.0 - ARM64) if you like to use google apps
Optional (if you want root): Flash Magisk (ensure you read FAQ #1 when using Magisk though)
Boot (will take a bit on first boot!!!)
Enjoy
Features
Pure LineageOS ROM experience
F-Droid included (Open Source alternative to Google Play)
Known issues:
Keep in mind that this is brand new stuff so it may (still) contain unknown issues!
It wasn't until Pie felt stable enough for everyday use that I released it publicly, but I still can't test everything on my own, so a lot of things only show up after a release.
So back up regularly and frequently!
Check the current issues at the github tracker (feel free to help, provide logs etc!)
If you find a bug not listed, follow the instructions here and provide me with the logs: FAQ #1
Download
Get your builds from my leech server
https://leech.binbash.rocks:8008/lineage/17.1
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
see commits at github or ideally you join my matrix or telegram groups (see topic "Support")
Credits
LineageOS
aoleary (cam fix, bunch of fixes needed for a10 bringup)
DevUt (cam fix, being a punch ball)
tullyp (cam fix, vs986 fixes & tests)
and more..
Sources
build manifest
Support
Post in this thread
Quick support by [Matrix] || build notification by [Matrix]
Quick support by Telegram: sfX_Android || build notification in sfX_ci

Frequently Asked Questions (FAQ)
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 encountered a kernel panic follow FAQ #6 in this post instead.
If you have issues with "just" the boot process follow FAQ #7 for a very easy way to grab the boot logs.
if you have an audio issue follow FAQ #10 instead.
If your issue is not listed there click here to proceed:
If your issue is not listed there follow the directions here briefly and I may can fix it.
Often selinux can cause issues so try that at very first:
Code:
adb shell
su
(or "adb root" when enabled in developer settings)
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 that does not solve your issue follow the logcat GUIDE to provide a valid log depending on what your issue is.
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 with LOS 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. The LOS root-addon is tested with LOS and made for it so that is not an issue but for the rest there are so many things which can going wrong..
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
reflash opengapps if you want to use Google crap
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
reflash opengapps if you want to use Google crap
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 LOS builds?
TL;DR answer is: no.
Background:
LineageOS has "some" requirements before they accept it to do official builds: device-support-requirements.
For sure we do not met all and the most problematic one will be the kernel reqs as do provide a good battery life and a fast kernel kessaras had made unacceptable (for LOS) changes regarding several parts of that requirement topic. So a new kernel (branch) is needed to remove all the improvements we made which are not accepted. This process alone can take weeks (if you do not want to loose every good thing here). A much easier approach here would be to build a "just working" LOS stock kernel without any improvements and fixes and tell everyone: "Flash LOS, then a TITAN kernel afterwards". So while that might be the easier approach it will nevertheless take time to do that kernel and include the reqs + sec patches to the day.
Besides that a bit work is needed to fulfill some of the others like that.
Other then that and that is one of the most important things here:
Even when the device was accepted going official in the past (14.1... long time ago..) an incredible amount of changes happened to get oreo and now pie running. All these will be put to the test. Which actually means every commit we made will be discussed (worst case, yea, but ..) and changed. That can be from a simple "the commit message is wrong" to "pls re-write the code here". You maybe get an idea that this process is nerve-wracking (for me) and costs a lot of my free time.
Before RIL has been fixed (which had happened in the end of June 2019 first) it would have been impossible, I guess.
Now the base is fine, we could put a big amount of time into going to official to get finally ........ yea, what?
Well.. I would free resources on my build and leech server (I don't care - atm)
I would save bandwidth (I don't care - atm)
I would not need to tamper around anymore with (i.e jenkins) build issues (I don't care - atm)
you?
you would get a (LOS signed) build with a slow kernel, bad battery life and all the goodies missing... unless I build LOS kernels to bring those things back.
ok but to be honest. I can fully understand that request and I would feel better by myself when I were you. You do not know me so are my builds trustworthy ? Who knows. I could be a bad guy. :fingers-crossed:
Besides that I wrote above "I don't care - atm" so that might change in the future right? Correct.. there is no guarantee how long I can provide new builds or offer them on my leech server. There is nothing at the horizon that this might change soon but who knows? I can say that I am incredible happy with my OnePlus 6T and - believe it or not - I run STOCK OxygenOS here.. Why? It is just enough for me. So no need to do any dev there - which means all my dev time is still going here - to the G4. It is also a personal project to learn stuff around the Android eco system and woa.. who knows maybe Q came one day to the G4 as well..
... and yea official builds would give you some kind of guarantee that builds will happen - while that might change with my unofficial builds some day.
So.. as said in the TLDR above: No I personally do not have any plans in going official for the described reasons.
If someone else wants to go that way and needs help, I am here. But I cannot spend my whole free time on that.
Q #04: Google Play shows that my device is not "certified" - how can I fix that?
First of all you must be on the latest build. I fixed that from the latest July (2019) builds on.
If your issue persists click here to proceed:
The second thing is you must not be rooted by the LOS root addon (afaik). Magisk has its own protections to ensure you stay certified but I hadn't the time to test the LOS root-addon.
You also need to know that google play remembers your devices last state so if you are on the latest build and still having that issue do this and it will be certified again:
android settings -> apps -> find play store -> clear data (yes data, not cache) -> reboot -> open play store -> wait 2..5 minutes -> check certified state again
Q #05: It looks like the CPU cores 5 and 6 are disabled - how can I fix that?
TLDR;
There is no fix required! it is fully ok when those are idle. they get hot plugged whenever needed.
Details:
we have 2 clusters of CPU cores resulting in a Hexa-core CPU set: (4x1.4 GHz Cortex-A53 & 2x1.8 GHz Cortex-A57)
the big one (2 CPU cores - higher performance = more battery drain, more heat which potentially causing the: bootloop issue) and the little (4 CPU cores - less battery drain but a bit slower) are handled dynamically based on the load of your device.
the big cluster will run ONLY when it is NEEDED - i.e. high load.
so when you look closer: those are not DISABLED they are IDLE which is a big difference.
Q #06: I get a kernel panic or green/purple/blue screen how to grab logs for this?
You need a ROM with pstore fully enabled and working (pstore = debug kernel panics/oops happened in a ROM)!
All builds starting from 2019-08-15 on support pstore due to: commit#1, commit#2, commit#3
This is a 2-site change if you want to make use of it in TWRP you must install the latest TWRP "PREVIEW" release as well (TWRP is only able to show pstore logs when the ROM is able to write them so I needed to fix pstore in the ROM first (see above commits #1 + #2 )).
Besides those 2 patches these kernel configs were set: PSTORE
You can check if a ROM does support writing pstore logs by:
as soon as possible on a fresh boot:
Code:
adb shell
dmesg | grep "ramoops|pstore"
Code:
[ 0.000000] cma: Found [email protected], memory base 0x000000001fe00000, size 2 MiB, limit 0xffffffffffffffff
[ 0.000000] cma: CMA: reserved 2 MiB at 0x000000001fe00000 for ramoops_mem
[ 0.200846] cma: Assigned CMA region at 0 to ramoops.78 device
[B][ 3.957553] console [pstore-1] enabled
[ 3.957939] ramoops: attached [email protected], ecc: 16/0[/B]
[ 3.958079] drv probe : 200 ramoops 3744
[ 6.262463] SELinux: initialized (dev pstore, type pstore), uses genfs_contexts
or (if you are not fast enough) this ensures mostly the same check:
Code:
adb shell
ls -la /dev/pmsg0
Code:
crw-rw-rw- 1 camera camera 254, 0 2015-01-05 04:54 /dev/pmsg0
If you get no output your ROM does not support pstore logs.
From now on when you encounter a kernel panic and you are able to reboot without taking out the battery (taking out the battery will erase RAM):
1) reboot (without taking out the battery!) to either TWRP or (if you have root access) to your ROM
2) grab everything need from here: /sys/fs/pstore/ (e.g. adb pull /sys/fs/pstore/)
If you don't have a pc near you can do it directly from the device as well:
Enable the terminal app in developer options or download any
Open the terminal app.
su
cd /sdcard/Download
tar czf pstore.tgz /sys/fs/pstore
Attach pstore.tgz to your post.
It is crucial important that you do this only after the reboot happened . It's not important "when" though - as long as the device stays powered on.
Developers note:
convert PMSG log (requires a linux system):
Code:
tr -cd '\11\12\15\40-\176' < pmsg-ramoops-0 | sed 's/TENS\s/\n/g' > readable-pmsg.txt
Q #07a: I get a kernel panic on boot or having other boot issues but the pstore log are empty! What should I do?
Q #07b: How can I provide a clean boot log?
Since a while there is a very easy way to provide debug logs for the boot process. Before my convenient logging you had to follow FAQ #1 to grab them and it was a bit of PITA for some users.
So here you go for a much easier way:
boot Android
once booted : reboot to TWRP
when you have a bootloop instead: take the battery out just before the bootloop occurs, or better press the key combo to get into TWRP all the time to eventually get there directly
once in TWRP ensure that "Cache" is mounted in the "Mount" menu (if not mount it by ticking the box)
open a terminal on your PC and type:
Code:
adb pull /cache/debug/boot_lc_crash.txt
adb pull /cache/debug/boot_lc_full.txt
adb pull /cache/debug/boot_lc_kernel.txt
paste one by one to a paste service like https://del.dog/ , https://paste.systemli.org/ or https://paste.omnirom.org/
Q #8: upgrade your bootloader stack only?! Read here how:
If you don't mind you can use lgup as long as you do not have an UsU'd device! For UsU devices follow the UsU FAQ #20 instead of this one!!!!!
If you just wanna upgrade the bootloader stack without loosing data: Check the OP of this thread because:
it has a link to TWRP flashable files for updating your bootloader with 1 click ..
Anyways if you still want to go on doing it manually instead of the easy way then:
Download a KDZ of your device model.
Keep in mind that there a frankenstein devices out there (means refurbished devices with mixed hardware inside so you think u have model XXX as it was shown in Android but the mainboard is NOT the same!).
How to identify a Frankenstein device? Read FAQ #21 in the UsU thread.
IMPORTANT: Check the ARB of that KDZ (SALT v3.11 will show the ARB of a KDZ on extract!) - If you are unsure - DO NOT PROCEED. you can easily hard brick your device if!
Extract that KDZ with SALT - DO NOT USE ANY OTHER TOOL FOR EXTRACTING! The known windows tools like LG Firmware extract does not extract what we need here and not in the way we need it! So do not use that! You have been warned..
Open a terminal in the directory where you SALT backup before flashing UsU (or your extracted KDZ) is.
Then put your device in fastboot mode and type these commands (you have another file extension? read FAQ #24 of the UsU thread):
Again this guide is NOT for UsU'd devices!!!
Code:
fastboot flash aboot aboot.bin
fastboot flash factory factory.bin
fastboot flash hyp hyp.bin
fastboot flash modem modem.bin
fastboot flash pmic pmic.bin
fastboot flash rpm rpm.bin
fastboot flash sbl1 sbl1.bin
fastboot flash sdi sdi.bin
fastboot flash sec sec.bin
fastboot flash tz tz.bin
Alternative with TWRP (if the above fastboot cmds work for you no need to do this!):
Again this guide is NOT for UsU'd devices!!!
Code:
Boot TWRP
adb push factory.bin /tmp/
adb push hyp.bin /tmp/
adb push modem.bin /tmp/
adb push pmic.bin /tmp/
adb push rpm.bin /tmp/
adb push sbl1.bin /tmp/
adb push sdi.bin /tmp/
adb push sec.bin /tmp/
adb push tz.bin /tmp/
adb push aboot.bin /tmp/
adb shell sync
adb shell "dd if=/tmp/factory.bin of=/dev/block/bootdevice/by-name/factory"
adb shell "dd if=/tmp/modem.bin of=/dev/block/bootdevice/by-name/modem"
adb shell "dd if=/tmp/hyp.bin of=/dev/block/bootdevice/by-name/hyp"
adb shell "dd if=/tmp/pmic.bin of=/dev/block/bootdevice/by-name/pmic"
adb shell "dd if=/tmp/rpm.bin of=/dev/block/bootdevice/by-name/rpm"
adb shell "dd if=/tmp/sbl1.bin of=/dev/block/bootdevice/by-name/sbl1"
adb shell "dd if=/tmp/sdi.bin of=/dev/block/bootdevice/by-name/sdi"
adb shell "dd if=/tmp/sec.bin of=/dev/block/bootdevice/by-name/sec"
adb shell "dd if=/tmp/tz.bin of=/dev/block/bootdevice/by-name/tz"
adb shell "dd if=/tmp/aboot.bin of=/dev/block/bootdevice/by-name/aboot"
Download this verify tool to ensure the flashing was successful: [ATTACH]4687157[/ATTACH] ([URL="http://leech.binbash.it:8008/misc/verifyflash.zip"]mirror --> verifyflash.zip[/URL])
Usage:
extract verifyflash.zip
adb push verifyflash.sh /tmp/
adb shell chmod 755 /tmp/verifyflash.sh
adb shell /tmp/verifyflash.sh
Read the output of the flashing on the screen and in your terminal. Do NOT flash anything else! Just the above - but ALL of the above! (if you miss a single file you will HARD BRICK)
If something is failing do NOT continue and try to re-do the above commands. if it still fails write in this thread or better come into IRC (when between Monday and Friday)!
If something failing here it WILL brick your phone.
Q #9: A life without Google?! Read here how:
A life without Google ? Is that possible ? ...and why you should consider it ?
So why? That's easy to answer and if those are worth it depends totally on your personal needs:
1) BATTERY. Google services are draining a LOT of your battery, so to get the most out of your battery you should abandon Google gapps
2) PRIVACY. Almost all Google apps phoning home to Google! You don't care about that? You really should. You have nothing to hide? Oh dear believe me you have no idea how much of your private data you do NOT want to share. Keep also in mind that you give your private data not to a company only , there are always humans behind and what they do.. You do not believe me? Read on
BREAKING NEWS:
You can go on with the following steps or simply head-over to /e/ OS which is LOS but completely Google-Free + microG fully working pre-installed:
check it out here!
WARNING:
The last build supporting this spoofing method was 20210307. Everything later has that patch removed. Sorry for any inconvenience but maintaining that patch took more time then thought and for those who really care about privacy there is now /e/ OS available containing full microG support. I will leave the instructions here for those who cannot or do not want to switch to /e/ OS.
So if you feel one or both reasons might fit your personal needs here are some first steps to go (if you do NOT want to switch to /e/ OS):
1) all my builds come with FDroid which is a special app store containing just free open-source apps. As this might be a very limited I recommend to install Aurora from here which is a frontend for Google play. So search in FDroid for "Aurora Store" and let it install. Start Aurora and choose anonymous!!! and you can install everything from play as before.
2) install the microG repo in FDroid. Just open that link from your G4 and it will install the repo:
https://microg.org/fdroid/repo?fing...EB6DAB39B73157451582CBD138E86C468ACC395D14165
3) due to the fact that many apps depends on Google services as backend you need to do 2 things now:
a) developer options -> scroll down to signature spoofing and enable it *(read FAQ #11 why)
b) Download the current stable "Services Core" apk from here: https://microg.org/download.html and install it like that:
Code:
adb install com.google.android.gms-[REPLACETHIS].apk
c) if you have root:
Code:
adb shell
su
mount -o remount,rw /system
exit
adb push /tmp/com.google.android.gms-[REPLACETHIS].apk /system/priv-app/GsmCore.apk
if you do not have root, boot to TWRP now and mount system, then:
Code:
adb push /tmp/com.google.android.gms-[REPLACETHIS].apk /system/priv-app/GsmCore.apk
4) Install a location backend provider to make location services work without Google (yea Google is spying you..).
There are several available, just search for them in F-Droid:
Apple UnifiedNlp Backend uses Apple’s Wifi database.
LocalGsmNlpBackend uses downloaded GSM Cell data (local)
LocalWifiNlpBackend uses (on-device generated) WiFi data (local)
Déjà Vu Location Service uses (on-device generated) WiFi + GSM Cell data (local) * recommended
MozillaNlpBackend uses Mozilla Location Services * recommended
Radiocells.org UnifiedNlp Backend uses Radiocells.org
Also install a reverse location backend:
- e.g. NominatimNlpBackend (currently the only I know)
5) Now it's time to configure microG. Go in the app drawer and open microG settings:
you will be prompted or a notification is showing for setting permissions, go through all of them and choose allow.
UnifiedNlp settings:
- Configure the location backend service (choose the one you installed in step 4)
- Configure the address lookup backend (choose the one you installed in step 4)
Go back to the main screen of microG:
Choose Self-Check:
- Tap "System grants signature spoofing permission" and you wou get a request for allowing that (which you should do..)
- Tap Battery optimizations ignored to ensure microG is function properly
- Ensure "UnifiedNlp is registered in system" is checked (if not repeat the above steps for pushing the APK to system/priv-app)
- Ensure "Location Backends" is checked (if not repeat UnifiedNlp settings above)
Read the installation wiki for microG and install whatever else you might need:
- https://github.com/microg/android_packages_apps_GmsCore/wiki/Installation
6) reboot & re-do the self-check in microG settings
7) ensure the location service is *NOT* set to GPS-only (for LOS that means enable battery saving)
8) some general things now:
you might need to switch to alternatives sometimes. I use Waze instead of Google maps even though Google would work (but I don't like the Google spys). I use FairEmail as I love my privacy and supporting open-source. Usually you can find always an alternative, often paid apps offer activations and buying without Google play and that is often even cheaper (e.g. AquaMail costs 39€ on play and 30€ on their website etc).
There is one thing which really hurts me when it comes to gapps-less life: no smart lock. I really enjoyed it but for me the both reasons above have more weight then this.
So as you can see a life without Google has its advantages but also some changes are needed. If it's worth it depends on you. I can just recommend it
Q #10: 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 audo 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 #11: I'm scared about that microG , I don't want to expose my phone so is this LOS 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 LOS is 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. That's what I don't like.
I want the user to decide if he wants to take the risk or not and not exposing a feature for everyone even when they don't need it.
That's why the user must enable it explicitly in developer options before it gets activated (as described in FAQ #9).
All details of the implementation and why can be found here:
https://github.com/steadfasterX/android_signature_spoofing
https://github.com/Suicide-Squirrel/issues_pie/issues/30
Q #12: The ROM is lagging and/or the device gets very hot/warm, what can I do to help fixing that?
Ensure you read and understand about the ILAPO first.
If you encounter any overheat or lagging issues follow this:
Code:
adb shell
logcat -b all -d | egrep -i "thermal|kill" > /sdcard/Download/log.txt
ps -A >> /sdcard/Download/log.txt
free -m >> /sdcard/Download/log.txt
logcat -b crash -d >> /sdcard/Download/log.txt
exit
adb pull /sdcard/Download/log.txt
Share the log.txt as an attachment of your reply (bc txt is fine for that) or - as usual - by your favorite paste service
Q #13: I have graphic glitches / issues, what can I do?
My builds using skiaGL instead of OpenGL since a while. skia is the new and faster renderer coming with pie by default but it can cause graphic glitches in some applications and/or situations.
Is there any fix for skiaGL coming? No, details here .
To check if your current ROM version is using skiaGL do this:
Code:
adb shell getprop debug.hwui.renderer
If you get an empty result it means skiaGL is active.
If for any reason you wanna go back and enforce OpenGL you can do so by
temporary (immediately activated):
Code:
adb root (must be enabled in dev options)
adb shell setprop debug.hwui.renderer opengl
or make that change persistent:
Code:
boot TWRP
backup system
mount system
adb shell
echo "debug.hwui.renderer=opengl" >> /system/build.prop
sync
reboot

Reserved

Hooray​
Special credits and thanks to @aoleary , @tullyp and @DevUt (and well me..) we now see Android 10 coming to the G4! We had A10 running since 1 and a half year already but were not able to fix the camera. Due to the never ending tests by @tullyp and @aoleary plus @DevUt 's C knowledge they finally fixed that camera! That was a very long journey until now but hey here we are! Without @tullyp we might never seen this coming and he also was a great help when it comes to vs986 fixes and tests - so thanks again dude
TL;DR:
praise these guys
LOS 17.1 is very stable imho and well almost everything should work. Due to the camera issue we stopped working on other more minor issues (like NFC etc) but I still wanted to release LOS in the current state. It is not enforcing atm but I know you guys usually do not care anyways all that is on the todo list and might come anytime.
Check out all current known issues here
Jenkins has been setup now with LOS 17.1 and you can always find information and the current build state here
Other then that: have fun and consider joining my channels if you have any questions or need help.
Cheers
sfX

Greetings, sfx, everyone else.
Updated with full wipe from PIE. *
Seems a lot faster. Fantastic job.
* Quick question, is encryption working? Had to do full wipe because A10 was not accepting my encryption password from Pie.
Regards. Thank you very much for this breakthrough in our older phone.

hteles said:
Greetings, sfx, everyone else.
Updated with full wipe from PIE. *
Seems a lot faster. Fantastic job.
* Quick question, is encryption working? Had to do full wipe because A10 was not accepting my encryption password from Pie.
Regards. Thank you very much for this breakthrough in our older phone.
Click to expand...
Click to collapse
pls see the OP and here 1 post above yours:
tip: check out "untested core features/functionalities"

Hey.
Will try soon later to encrypt the phone. Just downloaded all my Spotify playlists a few hours ago so i can ear music while working.
My G4 is my "music center" , no SIM is inserted. Auto Brightness it is working.
Don't know about the others unknowns ( Hotspot, calls .. )

can i use 4 core kernel boot on this rom?

theartanis said:
can i use 4 core kernel boot on this rom?
Click to expand...
Click to collapse
You can with any ROM . Just follow the x cores guide.

Hi sfx, great build!! I first time ever solved g4 battery consumpion problem. Unbelivable!

After flashing this ROM, my phone does only boot to TWRP recovery. If I select reboot to system, it reboots to recovery. If I power it down and up, it reboots to recovery. If I reboot to fastboot then reboot, it reboots again to recovery !!!!!! I'm getting mad, sorry.
So I have re-installed the previous LineageOS 16.0 and... it boots up normally to Android !
So what am I doing wrong with this version 17.1? I have the H815 official unlocked btw.
EDIT ---------------------------------
I have tried both version 17.1 of 17 February and 3 February and none of them works on my H815.
So I'm simply moved back to version 16.0 that works.

Real-Baso said:
After flashing this ROM, my phone does only boot to TWRP recovery. If I select reboot to system, it reboots to recovery. If I power it down and up, it reboots to recovery. If I reboot to fastboot then reboot, it reboots again to recovery !!!!!! I'm getting mad, sorry.
So I have re-installed the previous LineageOS 16.0 and... it boots up normally to Android !
So what am I doing wrong with this version 17.1? I have the H815 official unlocked btw.
EDIT ---------------------------------
I have tried both version 17.1 of 17 February and 3 February and none of them works on my H815.
So I'm simply moved back to version 16.0 that works.
Click to expand...
Click to collapse
FAQ #6 step 2 -> share the pstore log if avail
and do FAQ #7
Also ensure u have the latest PREVIEW recovery (pie) installed and share the recovery log too (see my sig)

how good the chance is a H818N variant can work with this rom?

hkdoublecat said:
how good the chance is a H818N variant can work with this rom?
Click to expand...
Click to collapse
It will work perfectly fine - if you ever find a way to unlock it.

bluetooth not working properly and booting time massive. Over a minute with lg logo and after that normal lineage booting. H815 unlocked officially.

Anyone else having trouble with the reliability of the proximity sensor turning off the display?
Never mind if it's fine for you, then it's due to my dirty install...

Related

[TWRP][any G4][BL LOCKED] TWRP-in-FIsH for all LOCKED G4 devices

TWRP on locked devices is impossible right?
Oh no wait there are hacks up to KK which work but I couldn't find anything for LL (sorry if I missed something) and so nothing for the G4
Here is where the FIsH steps in
{
"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"
}
FIsH: [F]luffy [i]ncredible [s]teadfasterX [H]ijack​
FIsH is different from Safestrap or other hijacks because it should be understood as a kind of framework for any boot image you want to boot.
FIsH will not harm the Android boot chain!
It is NOT multirom
It is NOT efidroid
It is NOT Safestrap
It is NOT twrp.
.... but FIsH can boot any of the above. U got it? FIsH is the hack to boot whatever you want.
Will FIsH void your warranty? Not more or less then rooting your device.
Will FIsH unlock your bootloader? No read again.
Is there a risk with FIsH? For example could it soft-brick my device? Well.. absolutely! Safe is the death only. There are always risks especially for untested devices. I do all I can to keep this risk as low as possible and I provided a way to get out of bootloops but again you will get no guarantees here and elsewhere.
.. and it is more then just a hack for the G4 (any model) it is a hack for ALL devices of ANY vendor! wtf? yes.
Sure you have to met the pre-requirements and there has to be done some things to get it ported but those are straight forward.
Go to IRC channel #androidfish if u can't wait but I will publish a public porting guide when it is ready.
Are there plans to make more out of it for the G4? Absolutely. I'm currently working on an "efidroid in FIsH" version which will let you flash & boot (hopefully) any custom ROM u like.
ALL DETAILS ABOUT HOW FIsH WORKS HAVE BEEN RELEASED IN ANOTHER THREAD (check my signature).
So going back to topic. This is:
TWRP in FIsH for the LG G4 (any model) - Bootloader LOCKED
Do you have a bootloader unlocked device?
If the answer is YES: you don't need it
Do you have a bootloader locked device and want TWRP?
If the answer to BOTH is YES. you need it. you can't install TWRP on a locked device.. up to now. FIsH allows you to do so.
If your question is: Can this ENABLE root for my device?
NO! you actually NEED root to activate TWRP for your device with this method.
Important: Here are the pre-requirements you have to met!
If you can't get them:
Close this page and FORGET it (until the day you may met those reqs)!
Requirements!
root by SuperSU >=v2.76 (greater or equal v2.76) (atm this means you have to downgrade/install LL. It also means that you have to upgrade your SuperSU to this version by e.g. FlashFire if you have a lower version installed!)
you have to be able to disable SELinux in your booted Android (which should be the case when you have a full rooted device)
Those above are hard facts so it may never work with MM. That also means if MM can get fully rooted by SuperSU and you can use "setenforce 0" the method should work there as well!
Before you think about downgrading to LL read about ANTI-ROLLBACK protection some LG devices and MM versions may have!
Anti-Rollback means you CAN NOT downgrade - it would brick your device.
I will NOT provide downgrading guides there are plenty of them so search and read.
If you can not meet ALL of the above 2 requirements lay down and cry. For the others: calm down and read on!
You can test requirement 2 (disable SELinux) by:
adb shell
su
setenforce 0
getenforce
-> you should see "Permissive" as a result. If you see "Enforcing" or error messages you may doing something wrong or it just do not work for you.
Limitations!
Keep in mind what I said above: FIsH does NOT unlock your bootloader.
That means with TWRPinFIsH you can NOT:
Install a custom ROM like CM/Lineage (this will modify boot = soft brick. for this u need "efidroid in FIsH" - coming soon)
Install a custom Kernel (this will modify boot = soft brick)
Install a custom recovery (this will modify recovery = may soft brick)
In short: nothing which modifies boot or recovery partitions.
You can of course flash everything which is modifying /system /data only (e.g. xposed,...)
That means you could install even a custom ROM which works with the stock kernel so with unmodified boot image. Let's say the creator of imperium or genisys provide a release without the containing boot image. You could flash it..
State / Roadmap
FULL takeover/hijack of boot -> DONE (the modifications required are not voiding the Android boot signing chain!)
replace RAM disk -> DONE
boot own RAM disk (TWRP!) -> DONE (atm TWRP 2.8.7-0) <-- TWRP-in-FIsH v1.0 private BETA
Upgrade bundled TWRP to latest version -> DONE (TWRP 3.1.0-0) <-- TWRP-in-FIsH v1.0 final release
Download
READ THE REQUIREMENTS above before proceeding!
Then UNDERSTAND the requirements before proceeding! <-- omg this is crucial important!!!! Ensure that you really do not skip this step!
READ THE LIMITATIONS above before proceeding!
Then UNDERSTAND the limitations before proceeding! <-- omg this is crucial important!!!! Ensure that you really do not skip this step!
... and NEVER ask for ETA's!
if you can say:
Yes! I have read and totally understood the limitations AND the requirements!
then proceed. Otherwise read again until you got it.
Keep in mind that this is a HACK. It may soft-brick your device. you have been warned!
The concept is the same for all models but again no guarantees here for anything.
There is ALWAYS a risk and you should better backup what you do not want to loose before starting downloading this.
Go to the DOWNLOADS tab in this thread.
TWRP-in-FIsH is now integrated into my TWRP build server and so whenever a new change happens in TWRP you will get the same automatically on next build. This way it is much easier to release new TWRP versions made for FIsH.
From now on you will find nightlies (untested automatic builds) here:
Jenkins build status
Nightlies download server
Installation (Linux)
You can just install any newer version over an old one.
boot Android and connect USB cable
download the newest version to your PC and open a terminal in that directory
tar xzf TWRPinFIsH*.tgz (tar xzf TWRP-in-FIsH*.tgz since v2.0)
cd openFIsH (cd android_FIsH since v2.0)
./install.sh
check the output of that script. you should not see any errors there (hopefully)
Installation (Android / no PC)
Requirements:
TWRP-in-FIsH v4.2 or higher!
BusyBox pre-installed (e.g.: with this app )
You can just install any newer version over an old one.
Thanks to @ReeS86 starting from v4.2 on TWRP-in-FIsH has an enhanced installer which can run without any PC - directly on your Android device!
It would be nice if you could give him a thx click (here) for his contribution !
Bring TWRP-in-FIsH to your Android device
Example-1 with any PC (windows, linux, ...): adb push TWRP-in-FIsH.tgz /sdcard (replace TWRP-in-FIsH.tgz this with the real file name)
Example-2 within an Android Terminal:
cd /sdcard
wget http://full-URL-to-file (replace full-URL-to-file with the real direct download link)
Example-3 with just a browser: well just download it.. but remember where it gets saved!
extract it
Example from within Android Terminal:
cd /sdcard (or the folder where you have downloaded TWRP-in-FIsH)
tar xzf TWRP-in-FIsH.tgz (replace TWRP-in-FIsH.tgz this with the real file name)
run the installer (but do it correctly)
Example from within Android Terminal:
su
cd /sdcard/android_FIsH
sh ./install.sh (using sh is absolutely important otherwise it will fail)
done
Installation (Windows)
If none of the above methods is working for you: use FWUL
First run (no PC required)
This FIsH gets installed PERMANENTLY! That means:
You can boot up TWRP the same way as described here again without re-installing.
If you re-install your STOCK image you have to re-install TWRPinFIsH as well.
reboot Android
you should now see: LED goes from blue to GREEN
NOW directly when u see this GREEN LED press VOLUME DOWN and do NOT release
wait until the device vibrates and the LED changed to RED. Then release the Volume Down button.
Wait until FIsH completed and TWRP should be shown --> This means FIsH has done it's job well!
This is a good time to do a full backup isn't it ? Manually mount the SYSTEM partition as it gets not auto mounted atm and do a full backup
reboot from here (safely ignore the msg "no OS installed" and reboot anyways) and you should see Android booting (hopefully ... if not see bottom)
Daily Usage (no PC required)
reboot Android
you should now see: LED goes from blue to GREEN
NOW directly when u see this GREEN LED press VOLUME DOWN and do NOT release
wait until the device vibrates and the LED changed to RED. Then release the Volume Down button.
Wait until FIsH completed and TWRP should be shown --> This means FIsH is doing it's job still very well
AGAIN: keep your mind up! You HAVE to ensure that whatever you do and whatever you flash -> NEVER TOUCH BOOT/RECOVERY! If you flash a ZIP ensure first that it do not modify them! Otherwise you WILL softbrick. You have been warned (several times now)
FIsH helpers
If you just want to reboot directly from within Android check out these:
Thanks to @sdembiske who has onboarded the developer @AntaresOne we have an option to reboot into FIsH very comfortable now!
Check it out here: QuickReboot App
Trouble / Bootloop fix
if you encounter a bootloop (should never happen but who knows) you have 3 choices at least:
Option 1a: (TWRP-Bootloop) Within TWRP open Advanced -> File Manager -> Goto: /system/su.d and click "select" button -> Delete
Option 1b: (TWRP-Bootloop) From your PC: adb shell rm -rf /system/su.d/
Important: Catch the fish log (see next topic)
Option 2 (this works also for a bootloop without twrp): boot into download mode and use LGLaf to get a shell
then:
setenforce 0 <-- if that doesn't work you may have to do a FULL restore to stock
mount -oremount,rw /system
rm -rf /system/su.d/
reboot. You are out of the bootloop.
Important: Catch the fish log (see next topic)
Option 3: Last resort: Reflash STOCK. sorry.. there is always a risk..
Catch the FIsH logs
reboot back to Android and catch the fish log (IMPORTANT!):
adb shell "su -c cat /cache/fish/fish.log"
adb shell "su -c cat /cache/fish/fish.log.old"
Upload it to https://paste.omnirom.org and paste the link in the IRC channel (see next topic)
Support / IRC Channel
IRC means Internet Relay Chat and you will get best support there only.
Choose how to get in:
PC (HexChat and Pidgin are only 2 of them! This list is not complete!)
Android (Yaaic, AndChat, HoloIRC, AndroIRC are only a few of them! This list is not complete!)
Web (KiwiIRC-Web,FreenodeWebchat])
When you have to choose a channel it is: #Carbon-user
When you be asked for a server network choose: freenode
Known issues (may never get fixed)
Due to the fact that TWRPinFIsH is a brutal hijack of the booting process several things may not work as expected.
This will normally not harm anything but you have to know about.
System IMAGE backup:
Using this new option is a bulletproof method to backup and restore in TWRP-in-FIsH because you have to keep in mind that FIsH is a giant and brutal hack and even when a usual backup & restore is proven to work fine I would recommend to use both backup methods - if you can.
HINT: This method requires an ext4 or exfat partition on your external SD card otherwise image backups will fail due to the file size.
@sdembiske reports success using the internal storage as target for the backup but if you do this keep in mind that you have to move that backup to your PC manually to ensure you have it by hand for the worst case.
ZIP / ROM flashing:
omg really you wanna hear that again? OK: DON'T TOUCH BOOT / RECOVERY. And you be safe.
When you try to install a ROM it will modify at least BOOT. That means soft-brick!
When you try to install a custom Kernel.. omg really? It will definitively SOFT-BRICK! Maybe you should read the limitations again??
When you try to install a ZIP like xposed, supersu, Vipermod and others ensure that those are not modifying BOOT or RECOVERY partitions. For those mentioned it would be very unlikely but who knows.
When you find a stock based ROM which is not modifying boot you can flash it. But ensure that it does not modify anything on boot!!! You could ask the devs of imperium etc if they can provide such a zip..
SYSTEM partition (since v2.0: may be not a restriction on your device model!):
when you boot into TWRPinFIsH you may see an error message regarding the fact that /system cannot be mounted.
you can mount /system manually without a problem - BUT - it will work only if you do NOT select "mount system read-only". It has to be unchecked to work.
after you have mounted /system manually and you want to take a backup you may see "0 bytes". Just press refresh and the size will be updated. If not: Do you have mounted it correctly (see above).
FIRMWARE partition (since v2.0: may be not a restriction on your device model!):
cannot be mounted - even not manually. You have to live with it.
Double Tap to wakeup (in TWRP):
You may heave seen/heard that this works in the official / usual TWRP for the G4 for unlocked devices. Unfortunately this cannot work in TWRP-in-FIsH due to the nature of this hijack. You have to live with it.
Installing more than 1 ZIP at a time (may be not a restriction on your device model!):
It is not possible to install more than 1 ZIP at the same time. TWRP gives you the option to install multiple ZIP files but the problem is you have to re-mount /system after each ZIP flashing. This is due to a problem with mounting /system readonly and most ZIPs will exactly try to do this when they finished their work - leaving you with an unmounted /system.
This will be not the case for every ZIP combination - so it is possible that you can flash some ZIPs at the same time while others not.
atm I believe you have to live with it.
Credits (without them - no TWRP-in-FIsH!!!)
If you feel that someone / you is missing on this list lemme know!
Chainfire for SuperSU! This is the main part of FIsH!
TeamWin for TWRP of course!
@cray_Doze, @dssmex and @KeiranFTW for their hijack implementations which given me many input (e.g. https://forum.xda-developers.com/showthread.php?t=2608408)
@Aaahh for his great first steps to a G4 hijack -> His work had given me the motivation back to continue when I was about to stop all this
@dibbled for creating the android FIsH logo
steadfasterX for being steadfast!
@jasonlindholm for your donation it was highly appreciated!
XDA:DevDB Information
TWRP-in-FIsH_LGG4, Tool/Utility for the LG G4
Contributors
steadfasterX, Aaahh, TheMadScientist420, KeiranFTW, cray_Doze, dssmex, TeamWin, ChainFire, the_naxhoo, SimoxTav, Rees86, uio88, sdembiske, jasonlindholm, ... and all new other contributors who gave me feedback for this!
Source Code: https://github.com/Carbon-Fusion/android_FIsH
Version Information
Status: Stable
Current Stable Version: 4.2
Stable Release Date: 2017-06-21
Current Beta Version: 5.0
Beta Release Date: 2017-12-19
Created 2017-03-14
Last Updated 2017-12-19
List of confirmed devices (as of 2017-06-04)
If you own a device missing on this list - let me know and I will add it here.
F500L Korean variant - locked (Thanks @Syntist)
H810 - locked (Thanks @shane87)
H812 - locked (Thanks @ReeS86)
H815 International - unlocked (Thanks @steadfasterX yea its mine and i have no locked device to test with That's why i needed ur help. but i test with PURE stock and without touching the boot chain so its similar to locked devices.)
H815 EUR - locked (Thanks @uio88)
H815P - locked (Thanks @KnightOdin)
H815T - locked (Thanks @the_naxhoo)
H815L - locked (Thanks @foxyfoxyblah)
H818P - locked (Thanks @SimoxTav, @alitavas)
LS991 Sprint - locked (Thanks @TheMadScientist420)
VS986 - locked (Thanks @g_ding84)
List of confirmed flashing experiences (as of 2017-05-19)
If you tested a ZIP missing or unknown on this list - let me know and I will add/update it here. Write the exact version tested would be helpful as well.
Xposed - confirmed to work (tested: Xposed version 87 (SDK 21). THANKS for your report @g_ding84, @the_naxhoo, @KnightOdin, @shane87)
Viper4Android - confirmed to work (tested: Viper4Android 5.4 stock zip with Dolby Atmos. THANKS for your report @g_ding84 , @the_naxhoo, @SimoxTav)
SuperSU - confirmed to work (tested: v2.79. Thanks for reporting @g_ding84)
A.R.I.S.E - confirmed to work (tested: v.2.94 -> Am3d Eq, Viper4arise, Viper4Android Xhifi, Esira. Thanks for your report @alitavas
Android O emoji package - confirmed to work (thanks for your report @alitavas)
Editing system/build.prop - confirmed to work --> read carefully HOW (thanks for the howto & report @sdembiske )
Xtreme music 9.2 - confirmed to work (thanks for your report @jason_l367)
ANY OTHER ZIP - unknown ----> Please report back if you have flashed one missing here
Releases
TWRP-in-FIsH v5 (5.0)
Released: 2017-12-19
Download: Go to the Downloads tab
Changelog for FIsH: previously used version <---> this version
Changelog for TWRP-in-FIsH device tree: previously used version <---> this version
Changelog for:
- TWRP v3.2.0-0
- TWRP v3.2.1-0
Summary changelog (read the above FULL changelogs for details!):
new TWRP version
all important fixes from the main TWRP releases like corrected time and EFS backup, added Bootloader backups etc.
Many enhancements and fixes in FIsH, e.g. enhanced and fixes issues in the installer and qseecomd (device encryption) added to the brand new exclude service option
Everything is better now
Old releases:
TWRP-in-FIsH v4 (4.2)
Released: 2017-06-21
Download: Go to the Downloads tab
Changelog for FIsH: previously used version <---> this version
Changelog for TWRP-in-FIsH device tree: previously used version <---> this version
Changelog for TWRP: v3.1.1-0
Summary changelog (read the above FULL changelogs for details!):
Installer is now able to detect and run from within Android* (read the NOTES in the OP - topic "Installation (Android / no PC)"!)
Added the option to backup /system as an IMAGE* (read the following HINT!)
Using this new option is a bulletproof method to backup and restore in TWRP-in-FIsH because you have to keep in mind that FIsH is a giant and brutal hack and even when a usual backup & restore is proven to work fine I would recommend to use both backup methods - if you can.
HINT: This method requires an ext4 or exfat partition on your external SD card otherwise image backups will fail due to the file size.
@sdembiske reports success using the internal storage as target for the backup but keep in mind that if you do this you have to move that backup to your PC manually to ensure you have it by hand for the worst case.
Everything is better now
(.... TWRP updated, many FIsH improvements, added an option to backup /system as image,... read ALL the above changelogs!)
TWRP-in-FIsH-v3_LGG4_LL
Released: 2017-04-16
Download: here
Changelog: on github
Summary:
Big speed improvements
adding model detection as property (ro.product.detection -> should be "success")
fixing unify detection
adding all known devices to unification
- these both above will fix issues where your device was not detected correctly in TWRP and fails to install a ZIP which requires this!
Installer:
./install.sh --check will give you the option to check if TWRP-in-FIsH works for your or not - without changing anything on your device.
TWRP-in-FIsH-v2.0_LGG4_LL
(as far as im able to remember.. i have changed so many things inside..)
Released: 2017-03-24
Changelog: on github
Summary:
TWRP-in-FIsH now has a meaningful package name (TWRP-in-FIsH-v2.0-BETA1_LGG4_LL.tgz) which reflects all required information
The installer is checking for the SDK level now instead of the Android release version! This means ANY Lollipop version will work without modifications of the installer
new: completely overworked WIDE parts of FIsH
In order to be more easy portable all variables users may need to adjust are moved to FIsH.porting
while FIsH.me contains global variables for FIsH a user/dev normally would NOT change.
The log has been enriched with some more useful information
The stopping of android services is now more aggressive
Apropos aggressive: now we use fuser to kill ALL processes before trying to unmount a disk (excluding init and ourself)
Another porting stuff was added: we extract the FISHFOOD but WITHOUT a possibly existing file </init>. When you prepare your own ramdisk it may or may not contain a file /init but we do not want to overwrite the current running /init by just cpio yet.
The reason is: it makes a difference in the Linux world to use cp or mv or cpio > to overwrite!
The short version: using mv is the best choice here. So we extract first without /init (if there is one) and then extract /init ONLY but to a different directory. Afterwards we use mv to overwrite the current /init with either an extracted /init or your own init name configured by the new FOODBIN variable.
Unfortunately this has not that positive effect I hoped but I leave it there because it is the way it should be done nevertheless.
Now FIsH also:
- checks the exec bit before it tries to start it! Im still thinking of adding a reboot if not.. but this could cause bootloops.. on the other hand doing nothing will leave the device in a unusuable state.. well it should more or less never happen though but..
- save the current SELinux mode
- trying to restore the saved SELinux mode when something goes wrong (at the end this will make no sense but it doesnt hurt)
- umounts when a mount point is mounted ONLY
Besides that FIsH now comes with callmeFIsH - a caller script which gets executed at very first.
The only task callmeFIsH has is to prepare the whole FIsH to get started out of /system and then starting FIsH from /res. After this it immediately exists to not keep open tasks on /system.
Also new are some parts of the installer e.g. starting adb server first and then wait for a connected device before continue the installation.
The installer is keeping track of an older FIsH install and removes the previous one before as well
The installer also now giving a hint that you may have to change to PTP mode on your G4 to get detected
For completeness: Same TWRP version inside so nothing changed here..
During these changes I have renamed the package folder from openFIsH to android_FIsH. Please keep this in mind when you extract the FIsH
So after you extract the BETA package you have to do
"cd android_FIsH"
instead.
TWRPinFIsH_v1.0
Released: 2017-03-18
Changelog:
first public release
.
As current. To further op. When released remeber bl is still locked do not modify recovery and or boot partitions. Will throw secure boot errors done tried and found out. Was able to restore orig boot and recovery images.
On ls991.
So lets get our flash on. I wanna see some good clean flashing and no hits below the bootloader
TheMadScientist420 said:
As current. To further op. When released remeber bl is still locked do not modify recovery and or boot partitions. Will throw secure boot errors done tried and found out. Was able to restore orig boot and recovery images.
On ls991.
So lets get our flash on. I wanna see some good clean flashing and no hits below the bootloader
Click to expand...
Click to collapse
Well .. Correct. For me it is totally clear but this will be not for the average user maybe.. I will add it to the OP. Thx
Sent from my LG-H815 using XDA Labs
Thanks for all your effort with this development. So, i understand that we can boot into TWRP and we can backup and restore our system, right? But we can also flash roms, mods or kernels without unlock BL?
Again, thanks for your time on this project, this are really big news for our device!
Jkmoran said:
Thanks for all your effort with this development. So, i understand that we can boot into TWRP and we can backup and restore our system, right? But we can also flash roms, mods or kernels without unlock BL?
Again, thanks for your time on this project, this are really big news for our device!
Click to expand...
Click to collapse
2 posts up.
---------- Post added at 07:12 PM ---------- Previous post was at 07:10 PM ----------
Jkmoran said:
Thanks for all your effort with this development. So, i understand that we can boot into TWRP and we can backup and restore our system, right? But we can also flash roms, mods or kernels without unlock BL?
Again, thanks for your time on this project, this are really big news for our device!
Click to expand...
Click to collapse
Yes and no. I flashed viper 4 android. But because of signed bl. Any recovery or modified boot image will not work just yet. Still a wip.
Reserved. I hope to install this in my H815p soon...
TheMadScientist420 said:
2 posts up.
---------- Post added at 07:12 PM ---------- Previous post was at 07:10 PM ----------
Yes and no. I flashed viper 4 android. But because of signed bl. Any recovery or modified boot image will not work just yet. Still a wip.
Click to expand...
Click to collapse
Hey i just want to say thanks for acknowledging thqt i helped you more than what happens in the sprint thread. I have a post 2400 views where i tore my g4 down 3 days after purchase to show a thermal paste mod. 2400 views and 1 thanks. Id thank u properly but unfort ive hit my 8 thanks a day limit
---------- Post added at 07:25 PM ---------- Previous post was at 07:22 PM ----------
Newmak said:
Reserved. I hope to install this in my H815p soon...
Click to expand...
Click to collapse
It will come in due time. The third release was sent out in one day. Progress is moving rite along my friend.
Some of us have been waiting since day one. I have about 15 months. Or nov 15 we are all anxious for offic release. And please make sure to give the man his cr3dit where due. Took time out of his day to do a team view session to test on mine at like 5 am this mornin. Some of the greatest minds have not been able to do this. And now look. Lol all the nay sayers
---------- Post added at 07:30 PM ---------- Previous post was at 07:25 PM ----------
Newmak said:
Reserved. I hope to install this in my H815p soon...
Click to expand...
Click to collapse
sorry i didnt actually answer ure ?
this should work on all g4s and possibly many other lgs and or devices
I have only one question. Will this TWRP be able to modify boot partition as well? Isn't that the whole point of the locked bootloader? If it will be able to modify any partition, it is a big, big win for us.
tmihai20 said:
I have only one question. Will this TWRP be able to modify boot partition as well? Isn't that the whole point of the locked bootloader? If it will be able to modify any partition, it is a big, big win for us.
Click to expand...
Click to collapse
No read the OP again (wait for efidroid-in-FIsH).
tmihai20 said:
I have only one question. Will this TWRP be able to modify boot partition as well? Isn't that the whole point of the locked bootloader? If it will be able to modify any partition, it is a big, big win for us.
Click to expand...
Click to collapse
Lol op and about 4 or 5 posts up. Same ? Just asked.
Either was locked bl or not this is a majpr victory for the g4. They said it couldnt be done and
Hopefully You could port this also to G Flex 2?
dadaa1 said:
Hopefully You could port this also to G Flex 2?
Click to expand...
Click to collapse
he has stated should work on any android device running loli as long as u meet the prequisites
root and kernal set to permissive if he doesnt some one probly could adapt it from here no prob once its offic released
---------- Post added at 06:36 AM ---------- Previous post was at 06:04 AM ----------
dont know how much feed back uve been gettin but figured id chime in again
so after all night playing lol still sick as a dog cant sleep about 4 hours on 2 days feel high and drunk lol
ive do have to mount system everytime i load twrp to backup restore or flash but i flashed viper flashed xposed again just to check it out
bricked about 10 times and have restored perfectly everytime.
bricks my own fault trying and testing most def incompatible mods and fixes but so far through every brick recovery is holding strong and steady havnt installed the beta 3 yet
should i is much changed from there?
TheMadScientist420 said:
he has stated should work on any android device running loli as long as u meet the prequisites
root and kernal set to permissive if he doesnt some one probly could adapt it from here no prob once its offic released
---------- Post added at 06:36 AM ---------- Previous post was at 06:04 AM ----------
dont know how much feed back uve been gettin but figured id chime in again
so after all night playing lol still sick as a dog cant sleep about 4 hours on 2 days feel high and drunk lol
ive do have to mount system everytime i load twrp to backup restore or flash but i flashed viper flashed xposed again just to check it out
bricked about 10 times and have restored perfectly everytime.
bricks my own fault trying and testing most def incompatible mods and fixes but so far through every brick recovery is holding strong and steady havnt installed the beta 3 yet
should i is much changed from there?
Click to expand...
Click to collapse
Thanks for ur ongoing support here. please always go to IRC if possible:
PC (HexChat and Pidgin are only 2 of them! This list is not complete!)
Android (Yaaic, AndChat, HoloIRC, AndroIRC are only a few of them! This list is not complete!)
Web (KiwiIRC-Web,http://webchat.freenode.net/?channels=androidfish)
Whenever you have to choose a channel it is: #androidfish
When you be asked for a server network choose: freenode
.
Just wanted to let you know the current device list.
If you own a device missing in this list send me a PM with subject FIsH !
Please do not write me if your device is shown here already!
List of confirmed devices (as of 2017-03-15)
H815 International - unlocked (Thanks @steadfasterX yea its mine and i have no locked device to test with That's why i needed ur help. but i test without touching the boot chain so its similar to locked devices.)
LS991 Sprint - locked (Thanks @TheMadScientist420)
H815T - locked (Thanks @the_naxhoo)
H818P - locked (Thanks @SimoxTav)
H812 - locked (Thanks @ReeS86)
steadfasterX said:
Just wanted to let you know the current device list.
If you own a device missing in this list send me a PM with subject FIsH !
Please do not write me if your device is shown here already!
List of confirmed devices (as of 2017-03-15)
H815 International - unlocked (Thanks @steadfasterX yea its mine and i have no locked device to test with That's why i needed ur help. but i test without touching the boot chain so its similar to locked devices.)
LS991 Sprint - locked (Thanks @TheMadScientist420)
H815T - locked (Thanks @the_naxhoo)
H818P - locked (Thanks @SimoxTav)
H812 - locked (Thanks @ReeS86)
Click to expand...
Click to collapse
Nice work Waiting my Flex 2 LGH955 to arrive from warranty, I hope this can be ported to "LG Damed" locked flex 2 also
With efidroid in FIsH, will we able to install any custom rom such as android 7.0 based roms?
nikomedes said:
With efidroid in FIsH, will we able to install any custom rom such as android 7.0 based roms?
Click to expand...
Click to collapse
Limitations!
Keep in mind what I said above: FIsH does NOT unlock your bootloader.
That means with TWRPinFIsH you can NOT:
Install a custom ROM like CM/Lineage (this will modify boot = soft brick. for this u need "efidroid in FIsH" - coming soon)
Install a custom Kernel (this will modify boot = soft brick)
Install a custom recovery (this will modify recovery = may soft brick)
In short: nothing which modifies boot or recovery partitions.
You can of course flash everything which is modifying /system /data only (e.g. xposed,...)
nikomedes said:
With efidroid in FIsH, will we able to install any custom rom such as android 7.0 based roms?
Click to expand...
Click to collapse
Yes, with Efidroid you should be able to flash Custom ROM.
You can search about efidroid if you want to know more.
and thank you very much @steadfasterX , Good job bro ! :good:

[GUIDE][AOSP][A10] Phh treble Q GSI non-root with Safetynet as a daily driver

This post is for specific ROM focusing on encrypted un-rooted setup https://github.com/phhusson/treble_experimentations/releases v217+
Usual lecture from your local system administrator: your warranty will be void, all you do is your own risk
Known issues:
- bluetooth in-call echo (patch needs to be applied)
- AVC mediacodec on Pie vendor issue (patch needs to be applied)
- VoLTE not tested, other things please report in this thread if discovered
Prerequisites:
- unlocked bootloader
- global stock Pie/Q rom already flashed (may also work for In/Cn variants - needs to be tested)
- A/B PHH GSI with Gapps unpacked (system-quack-arm64-ab-gapps.img is inside downloadable system-quack-arm64-ab-gapps.img.xz)
- stock fastboot rom unpacked (we need vbmeta.img)
- data and localstorage should be backed up, the process requires factory reset
Fastboot flash method:
- `fastboot flash system system-quack-arm64-ab-gapps.img`
- `fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img`
- reboot to system, do not put effort into setup, just get to settings
- if you do not have/not willing to flash twrp, patches need to be applied at this point with some root file explorer (see below)
- apply settings->phh->securize, the device should reboot and be stuck on android logo
- press and hold vol-up + power buttons, get to recovery
- for TWRP, format data partition (not just wipe, but format is needed, like mke2fs via adb/terminal); for stock recovery - wipe data
- reboot to system and setup
To apply patches via TWRP, just flash one of attached zips (Pie/Quack)
To apply patches without twrp, replace files in vendor filesystem with ones in vendor folder of the patch archive
To dirty flash new version, see post #2
Updating to new version without encryption issues
Prerequisite: TWRP
1. Flash new system image, like system-quack-arm64-ab-gapps.img, do not reboot
2. Mount system read-write
3. In terminal (adb) execute:
Code:
touch /system_root/system/phh/secure
rm /system_root/system/xbin/su
rm /system_root/system/bin/phh-su
rm /system_root/system/etc/init/su.rc
rm /system_root/system/bin/phh-securize.sh
rm -Rf /system_root/system/app/me.phh.superuser/
rm -Rf /data/su || true
Note: /system_root path prefix is for LR TWRP, if your recovery puts system to different folder when mounted, then adjust accordingly
Reboot. Done.
On v216 with EEA rom, deep sleep and AVC seem to be working for me without any patches. Also, if AVC doesn't work on a rom, the rest of the codecs might not work either - I've noticed this on LOS with VP9.
Can't test if VoLTE works, as I've dirty flashed it and phone services sqlite db is newer than this rom supports (and if I plug in a SIM, the phone services just crash).
I've used phh for the past week and I concur that it is stable enough for a daily driver.
Do you have root?
To resurrect telephony provider after installing older one (like aosp over los) I usually clean provider data in data/data and/or /data/user_de/0
Hello may I know how to fix the status bar to make it away from the rounded area? Thank you.
Developer options - display cutout - hide
btvbtv said:
Do you have root?
To resurrect telephony provider after installing older one (like aosp over los) I usually clean provider data in data/data and/or /data/user_de/0
Click to expand...
Click to collapse
Wait, do you know where the precise location of the sqlite db? The package name didn't show up in data and cleaning storage+cache within settings didn't seem to work (probably since it was a persistent service).
Otherwise, I'll probably clean flash phh sometime later anyway (I'm using the camera for scanning my exam papers these weeks, and I don't feel like setting up my accounts again so soon).
Hi i tried both phh asop v216 and Havoc-3.5 gsi based on v216 with lastest android 9 vendor.
On Asop RIL works well but not on Havoc i don't know why as they have same basis.
Got a couple of questions in PM lately.
I believe the forum is just for that - to ask the community.
If I do not answer each and every question - that's probably due to that fact that I do not know all the answers.
Still, the question in the thread has a chance of being answered by someone else, as opposed to pm.
Can someone please test and confirm if VOLTE works and is this daily driver capable? Thanks
I would argue that in my country no carrier has volte even with lte. Would be awesome to have a volunteer to test.
Updated to new version securized - all good
https://forum.xda-developers.com/showpost.php?p=82631277&postcount=2
seems to run pretty smooth.
I just realized that the security patch is dated on 1st december 2019 whilst v216 was may 2020.
Is there a possibility to use gestures like in PixelExperience while being securized?
Securize fakes security patch date from vendor. BTW, new a10 vendor has May security patch.
No idea for native gestures. Many apps for that in market. Accessibility service they use might add a small lag though.
Easily best AOSP rom on the phone

[ROM][12.1][Official]crDroid Android[v8.14][March 2023 ASB]

NOTICE: crDroid 8.x (Android 12) is moving into maintenance-only release mode, and no new feature changes should be expected.
I'll be merging monthly Android Security Bulletins from upstream as they're available, and pushing releases, but they'll be blind builds going forward.
Please consider updating to crDroid 9.x (Android 13):
crDroid 9.x XDA thread - OP 6/6T
{
"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"
}
*** Disclaimer ***​I am not responsible for any damage you cause to your device.
I hope you like reading.
You have been warned.
crDroid is built on top of LineageOS, and is designed to increase performance and reliability over stock Android for your device, while also attempting to bring you many of the best features in existence today.
​Features:​General:​See our current feature list at our GitHub!
Device-specific:​
OnePlus Camera & Gallery fully working (using APKs directly from OOS 11.1.2.2 or apkmirror.com with verifiable signatures; currently shipping OnePlus Camera v3.14.40 and OnePlus Gallery v4.0.297); including 60fps video recording in 1080p & 4K, watermark, depth effect, smart content detection, actually-working HDR, et al.
DeviceExtras for OnePlus-feature-specific customizations including alert slider modes, DC dimming, High Brightness Mode including customizable Auto-HBM threshold, customizable rendered FPS overlay, digital earpiece/mic gain controls, built-in UI jitter test, turn off when not using because it conflicts with DASH charging), and 3-category vibration strength control (thanks to AnierinBliss for all his work on this implementation).
OnePlus-style color modes available through LiveDisplay (6 & 6T have slightly different implementations and you may not notice a difference, but think of "Natural" and "Wide Gamut" like uncalibrated versions of "sRGB" and "DCI-P3").
Ongoing kernel tuning (trying to get the best of both worlds tuning existing QTI perfd & scheduler & lmk, rather than cutting over to Google libperfmgr/powerhints/userspace lmk, definite improvements over vanilla LOS, mostly importing/adapting work by EdwinMoq and mcdachpappe).
Everything you never wanted to know about slots & A/B devices (but have been forced to find out):​
Spoiler: Show/Hide
"Clean flash": Removing device protection & clearing user settings before installing a bootable system install zip by formatting data.
"Dirty flash": Flashing a ROM zip (usually upgrading to new version, sometimes just re-flashing the existing one) without wiping data or anything first.
"Wipe data": This used to be synonymous with "factory reset" in TWRP, without formatting the data partition and losing the contents of internal storage. Now, with TWRP being deprecated and using built-in LineageOS-based recovery, "wipe data" and "factory reset" mean the same thing as "format data" (which means, everything in internal storage gets erased).
"Format data": Formats the data partition itself, resets all file-based encryption keys, loses all contents of internal storage, and in fact deletes all "user 0" directories (this has some implications for internal storage before & after first boot).
"User 0" directories are a series of directories that store userdata for the primary user, "Owner", and get created in various places throughout the filesystem on first system boot if they don't exist already. Anything you copy to "internal storage" while booted in recovery after "formatting data" will actually be copied to /data/media/ instead of /data/media/0/, and will become invisible to regular file browsing after first boot once the system has created /data/media/0, since the system will prefer to use that path for internal storage from then on (so you'll need a root file browser to delete things from /data/media, or just ADB sideload things instead of copying after formatting but before booting).
"OTA package": Originally an abbreviation for "over the air", referring to how a software update could be delivered (as opposed to having to take your phone to a carrier's store for a firmware update via serial/USB connection). The common usage in Android circles is any installation zip file that actually includes a bootable system. Is always installed to the currently "inactive slot", and will trigger a slot switch upon the next reboot.
Some partitions are duplicated (system, vendor, boot, and a couple others, but not data) and have a "slot A" & "slot B" copy.
"Slot A" and "slot B" are absolute designations, but most installer zip scripts use the relative designations: "active" and "inactive". Whichever slot you're booted from currently is "active", and the other one is "inactive".
Installing a zip file that's flagged as being an OTA package will 1) install the contents to the "inactive" slot, and then 2) flag the bootloader to switch which slot is considered "active" and "inactive" upon next reboot; causing it to attempt to boot from the formerly-inactive slot's boot partition.
The OxygenOS full OTA zip files and all custom ROM installer zip files are considered "OTA packages" and will trigger a slot switch on next boot after installation.
You can install multiple OTA zip packages one after the other without rebooting in both the stock recovery and TWRP; they will all get installed into the correct partitions in the "inactive" slot, one on top of the other, and then it will swap active & inactive upon reboot.
We don't use what are called "delta" updates, which can patch existing partitions by block or by file; we use full filesystem images. So for us, OTA zip packages are really just a bunch of partition filesystem image files all wrapped up into a "payload.bin" with some extra instructions & metadata/checksums, so when you flash a ROM, it overwrites entire partitions at a time instead of individual files or filesystem blocks within that partition. So if you've changed something in a partition like system that gets written as part of flashing an OTA zip, all your changes are gone. The only thing in the system partition afterward will be what was in the system.img that was included in the ROM zip payload.
The partitions that crDroid, LineageOS, and most custom ROMs for OnePlus 6 & 6T install to when flashing are boot (contains recovery & kernel), dtbo, system, vbmeta, and now vendor as of Android 12. If you are planning on going back to an Android 11 ROM that does not build the vendor partition from source (so everything except SyberiaOS, essentially), you'll need to flash the OOS stock vendor partition to both slots from fastboot before installing the OTA zip.
"Prebuilt vendor" vs. "source-built" vendor partitions: when first trying to get a custom ROM working on a new device now that we have separate system & vendor partitions & Google's "Project Treble" is a thing, you'll often just leave the contents of the vendor partition alone, because that's where all the proprietary or device-specific stuff lives (manufacturer specific hardware drivers & interfaces, any DRM libraries, custom frameworks & selinux policies for talking to them), and you make a compatibility map of what framework versions you're compiling against in system and what vendor version they're compatible with or supersede or you overlay updated things that should replace stuff in the vendor partition and keep it in system_ext instead. But you're also limited in that if there are some things in vendor, you CAN'T work around it from the ROM side (like, OnePlus Camera working correctly). So often, once the basics are functioning, the goal is to move to building the contents of the vendor partition from source, because you then have the freedom to fix problems with sepolicy, library/framework mismatches, etc. and make things work with the custom ROM instead of only working with the OEM's flavor of Android, and you can still copy individual pre-compiled files from the stock vendor filesystem image if needed (like if there's no open-source equivalent for some driver). We finally got a source-built vendor bringup for OnePlus SDM845 (enchilada & fajita) as part of the Android 12 (lineage-19.1) bringup, so some things work better, and some things work worse, but at least it's possible to fix things and keep moving forward to newer Android versions. However, since we're still dependent upon at least SOME binary blobs copied over from OxygenOS 11.1.2.2, the vendor patch level will remain at the release date for the last release of OOS 11, because we can't know for sure that some component isn't vulnerable, no matter how new all of the source-built components are.
"Updating firmware" simply means we're flashing updated contents from the manufacturer into all the OTHER partitions besides the ones that the ROM OTA zip touches. There are another dozen or more of those, besides system & boot, that the full OxygenOS OTA zip would normally write to when you install it. The contents of the system & vendor partitions in custom ROMs for our device are generally built against a particular version of OxygenOS; in this case OOS 11.1.2.2 was the final release by OnePlus before they announced the end of support & updates for the OnePlus 6 series. Some people are still on older firmware that is now dramatically different than what the current custom ROM was intended to deal with (that is, all the stuff from OxygenOS is still based on Android 10, while the ROM is expecting compatibility with Android 11), and while I tend to agree that OxygenOS 10 was better than 11, that doesn't matter when you're talking about installing this custom ROM over it. So please; update to OOS 11.1.2.2 firmware (see instructions below).
Notes on stock recovery & TWRP:​
Spoiler: Show/Hide
TWRP is deprecated & unsupported, for purposes of bug reporting & getting help with crDroid. I liked it personally, and I agree with all the reasons for wanting to try and keep using it; but the source has been described as a hot mess, the official releases for enchilada & fajita have not had good compatibility with Android 12 or newer (trouble with decrypting file-based encryption for userdata), and there are too many variations & unofficial TWRP-based recoveries for me to keep track of.
Meanwhile, the stock crDroid recovery (based on LineageOS) intentionally cannot decrypt userdata, and doesn't correctly process addon.d OTA survival scripts on A/B devices; so after using it to flash any OTA zips, you'll need to reboot to recovery and manually flash things like Magisk or GApps installers. But for all those shortcomings, it has working fastbootd (aka "Userspace fastboot", which is what happens when you go to "Advanced", then choose "Enter fastboot") that lets you flash one image to both slots at once with a single command, and unlocks critical partitions... while the OnePlus OEM bootloader (where it says "Fastboot Mode" in a square, then goes to the big green "START" text over white & dark red terminal font type text) can't be used to flash every partition to update firmware. Personally, I still think of it as wannabe-class and not a "proper" custom recovery until the Lineage team 1) implements userdata decryption so you can manage files in /data and install updates from internal storage, 2) allows for a factory reset the way we've always all understood it ("wipe data") WITHOUT nuking the contents of internal storage for no good reason ("formatting data"), and 3) gets the updater to call backuptool correctly & process addon.d OTA survival scripts on A/B devices. But they're not going to, and since crDroid is LineageOS-based; it's what we've got, and fastbootd is the best way to update firmware.
The takeaway: If you want to try different custom recoveries (new builds of TWRP, OrangeFox, PBRP, whatever), feel free; and let us know how it works! But you're on you're own doing that; it's an unsupported configuration.
For purposes of doing updates, plan on doing your initial installation from bootloader & recovery then applying subsequent system OTA updates using the built-in Updater tool (Settings > System > Updater), both with new OTA releases and when choosing a file from "Local Installation". It executes OTA survival scripts correctly from /system/addon.d/ as well. I've personally tested and it correctly preserved Magisk canary for several versions, and MindTheGapps & NikGapps on my tester fajita and MinMicroG "system" install package on my daily driver enchilada.
The built-in recovery DOES support use of a USB thumb drive and will mount it in OTG mode, so any place in the instructions you see "adb sideload", you can instead copy all your things to a FAT32- or exFAT-formatted USB stick and then apply the update from there instead.
Flashing Instructions:​Pre-installation prerequisites:​
Spoiler: Show/Hide
Make sure your bootloader is unlocked (and don't plan on relocking it ffs).
Make sure you have a reasonably-current, working installation of android platform tools (adb & fastboot command line binaries & necessary drivers) on your computer, USB drivers, and a known-good USB cable (see links in post #2).
Make sure you've downloaded the most recent full OxygenOS OTA installer zip (11.1.2.2), crDroid zip, matching crDroid boot.img, and whatever Magisk/GApps/microG installation packages you want to use to your computer (see links in post #2).
Make sure you've backed up whatever data you want to keep to somewhere that's not on your phone; for a new install, we're going to format the data partition and you're going to lose everything from internal storage.
If you don't KNOW you already have OOS 11.1.2.2 flashed to BOTH slots, follow the "Updating Firmware" instructions below. You may also want a utility like 7-zip in order to extract .tgz files under Windows.
Updating Firmware:​
Spoiler: Show/Hide
Reboot phone to bootloader (no USB cable connected until you've entered OEM bootloader).
If you're not already using the stock crDroid recovery, you'll need to 'fastboot flash boot path/to/boot.img' on the computer, substituting in the path & filename for the current crDroid boot.img that you downloaded as part of the prerequisites listed above.
Reboot to bootloader again (actually loads new bootloader contents that you just flashed).
Use Vol +/- buttons to select "Recovery mode" and press Pwr button to boot stock recovery.
Tap "Advanced", then tap "Enter fastboot" (the already-selected first option).
Follow the instructions for extracting the partition images from the official OxygenOS Updater full OTA zip you already downloaded using the "payload-dumper-go" utility, and flashing them one at a time, from https://wiki.lineageos.org/devices/enchilada/fw_update or https://wiki.lineageos.org/devices/fajita/fw_update, except for the very last command ('fastboot reboot').
If you're only updating firmware and were already on crDroid, you can just 'fastboot reboot' which will go back to booting the system normally. If this is part of coming to crDroid 9.x from another ROM, continue with the first-time installation instructions below.
First-time installation:​(when coming from any other ROM or stock OOS or crDroid 7.x or earlier)
Spoiler: Show/Hide
*Back up anything you want to keep from three phone's internal storage to your computer/cloud storage, because we're going to format the userdata partition in this process.*
Download boot.img & rom zip to computer.
Reboot phone to bootloader.
Flash boot image to both slots ('fastboot flash boot_a boot.img' then 'fastboot flash boot_b boot.img').
Reboot phone to bootloader.
Use vol +/- keys to select recovery mode & press power button to enter recovery.
On phone, choose "Apply update" > "ADB sideload" & then from computer, 'adb sideload path/to/rom.zip' (substituting the actual path to the actual filename) to sideload the installation zip; the orange recovery header graphic will disappear until the process has completed ("error" messages like "no error", or finishing at 47% on the computer are normal).
On phone, choose "Factory reset / Wipe data", and confirm (note: this will erase everything from the phone's internal storage; make sure that you have backed up anything you want to keep first!).
On phone, choose "Advanced" > "Reboot recovery" to reboot into recovery on the newly-flashed slot.
Use adb sideload to flash any magisk or GApps or microG installer zips (some installers might require you to choose "Advanced" > "Mount/unmount system" first).
Reboot into system.
???
Profit!
Update installation:​
Spoiler: Show/Hide
Use the built-in Updater ("Settings > System > Updater") to apply OTA updates as they become available, or to manually flash a ROM zip by going to the three-dot menu in the upper right and choosing "Local update". Seriously, that's it; it processes addon.d survival scripts correctly, including Magisk, MindTheGapps, NikGapps, MinMicroG, and presumably others.
If you must flash from recovery, then be aware that the stock crDroid recovery does NOT process addon.d OTA survival scripts correctly on our A/B system-as-root device, so you'll need to do the following:
Reboot phone to recovery.
Choose "Apply update > Apply from ADB" on the phone, and 'adb sideload path/to/installation.zip' from a terminal on the computer (or use a USB drive with appropraite files copied to it and choose OTG as the update source instead).
After installation has completed and the menus have reappeared on the phone, go back, then choose "Advanced > Reboot to recovery" on the phone.
Choose "Apply update > Apply from ADB" on the phone, and 'adb sideload path/to/installation.zip' for each addon like Magisk or GApps installation zip you need in order to match what was initially installed on the phone.
Reboot system.
Please see post #2 for current boot.img files, information about Google apps & microG, release notes, installation notes, known issues, and lots of helpful links.
Please see post #3 for information about bug reporting & troubleshooting.
Sources:​ROM:​https://github.com/crdroidandroid
Device trees:​https://github.com/crdroidandroid/android_device_oneplus_enchilada
https://github.com/crdroidandroid/android_device_oneplus_fajita
https://github.com/crdroidandroid/android_device_oneplus_sdm845-common
https://github.com/crdroidandroid/android_hardware_oneplus/tree/12.1-op6
Kernel:​https://github.com/crdroidandroid/android_kernel_oneplus_sdm845
Vendor-specific:​https://gitlab.com/crdroidandroid/proprietary_vendor_oneplus_enchilada
https://gitlab.com/crdroidandroid/proprietary_vendor_oneplus_fajita
https://gitlab.com/crdroidandroid/proprietary_vendor_oneplus_sdm845-common
https://gitlab.com/crdroidandroid/android_vendor_oneplus_apps
https://github.com/Terminator-J/vendor_ih8sn
Download:​ROM:​https://crdroid.net/enchilada/8
https://crdroid.net/fajita/8
Changelog:​https://crdroid.net/enchilada/8#changelog
https://crdroid.net/fajita/8#changelog
Links:​Visit the official website at crDroid.net
crDroid OnePlus 6/6T Telegram Group
crDroid Community Telegram Group
crDroid Updates Telegram Channel
Donate to help our team pay server costs (PayPal or Patreon)
Donate to support me in maintaining this device (PayPal or Patreon)
General Notes:​
Maintainer is only actively working on crDroid 9.x (Android 13) primarily and running that as daily driver. We'll be relying on community members in the Telegram group to verify any regressions/new issues in Android 12.1 builds, but will continue to release as new monthly security patches are merged in crDroid sources.
Yes this ROM supports package signature spoofing permission for microG compatibility out of the box (but will work without ANY GApps/microG implementation installed as well).
Requires OOS 11.1.2.2 firmware (last official release). You should consider using an Android 10 ROM if you want to continue using Android 10 firmware.
Tested against latest Magisk canary, works well.
No there won't be official builds with inline GApps; please don't ask. The dev team's policy is vanilla-only whenever possible (and it's very possible with our devices).
​Google Apps:​Maintainer doesn't often use Google Apps personally as daily driver, but here are some notes gathered from peoples' testing:
TL;DR: Use MindTheGapps.
Otherwise, in general, try to go with the lightest weight package you can and don't replace the stock dialer/messaging apps (just download them from Play Store and set defaults).
Since we are LineageOS-based, here are the Lineage team's recommendations & reasoning:
https://wiki.lineageos.org/gapps.html
MindTheGapps are recommended and considered the default supported configuration for either Android 11 or 12 (per the LineageOS wiki, linked above). Assistant works great out of the box.
Note on Google Keyboard: If installed as a system app, GBoard will actually do on-device speech recognition when it doesn't have a network connection, so you might want to try adding the Nik Addon for Gboard on top of MTG, just to get on-device speech recognition as an input method (someone please test this out & report back?), but not required for regular usage and GBoard works perfectly well installed from the Play Store as a user app after first boot as well.
MindTheGapps survives built-in System Updater OTA updates, works fine after doing manual update with built-in recovery, and passes SafetyNet.
http://downloads.codefi.re/jdcteam/javelinanddart/gapps
NikGapps also seems to work in Android 12.1, although it has had some issues with clobbering overlays leading to system apps triggering the privacy indicators that shouldn't be doing that. Recommend using Core plus addons, rather than going heavier from the beginning (we don't have much space left in the system partition).
You'll need Googlesearch (the actual "Google" app) and Velvet (Assistant pacakges), plus GBoard (gets offline speech recognition if installed to system) and either SetupWizard or PixelSetupWizard for the best voice-recognition & assistant experience.
Not the recommended GApps package, but give it a shot if you like the customization options. Survives built-in System Updater OTA updates, might have issues with re-flashing during manual updates from built-in recovery (needs testing by some brave soul), passes SafetyNet afaik.
https://nikgapps.com/downloads#downloads
Flame Gapps also seems to work well in Android 11 (haven't heard reports about Android 12.1 yet), although the "basic" package is a little heavier than Nik Core, at least it doesn't start replacing stock dialer & messages. Also survives OTA & passes SafetyNet, not sure about manual updates with built-in recovery.
https://flamegapps.github.io/download.html
OpenGApps are not recommended, for reasons outlined in the LineageOS wiki link above.
BitGApps ... exist. No idea how that's going.
Please report what worked for you, whether or not it survives updates when using the System Updater, whether or not it survives manual "dirty" update flashing via built-in recovery, and whether it passed SafetyNet, so I can keep this list updated.
crDroid 8.14 - March 2023 ASB release notes/changelog: ​Changelog since v8.13 hotfix 1 release:
Merged February and March 2023 Android Security Bulletins & any changes from upstream LineageOS device/kernel/vendor trees (lineage-19.1 branch).
Whatever the ROM dev teams changed upstream in LineageOS and crDroid sources (not much? they're busy with Android 13).
Other misc fixes ... probably.
Installation notes:​
In case of bootloop (boot animation stuck for longer than about 2 minutes and never gets to lock screen), reboot to recovery and manually flash the ROM zip either via ADB sideload from computer, or from a FAT32-formatted USB thumb drive via OTG, then reboot to recovery again, and re-flash your same Google Apps/microG/Magisk/whatever install zips (again via ADB sideload or USB OTG), and reboot system. This *should* take care of any lingering errors with old things getting stuck in your /system/addon.d/ directory that might be trying to preserve old privileged system apps without privileged permissions (which is what causes those boot loops in the first place).
The built-in OTA updater in Settings > System > Updater goes a lot faster if you go into Updater preferences and toggle on "prioritize updater process", and make sure the screen stays on by using the Caffeine QS tile, or "never sleep while charging" toggle in Developer Options, or changing your Display timeout to 30 minutes.
If you experience issues with OnePlusCamera & OnePlusGallery after updating from an old version, first get App Info and clear storage & cache for both. You might have luck with "update" installing the same apk version in-place (it will ask if you want to update the app, even though it's the same version). I used OP Camera v3.14.40, which is available from here: https://www.apkmirror.com/apk/onepl.../oneplus-camera-3-14-40-android-apk-download/ and OP Gallery v4.0.297, available from here: https://www.apkmirror.com/apk/onepl...eplus-gallery-4-0-297-2-android-apk-download/. Reports are that it usually works just fine updating from official 8.7, but here are some troubleshooting steps for just-in-case.
​Known issues:​
The usual LineageOS Android 12 things (mostly that big ugly blank spot at the top after reboot before unlocking).
(fajita-only) The "Pocket detection" toggle in crDroid Settings > Miscellaneous will interfere with "Screen off UDFPS" (crDroid Settings > Lock screen > UDFPS customization) and "Prevent accidental wakeup" (Display settings). If you use it, turn off the others, or you might run into the screen-won't-turn-on issue. Personally, I was just dealing with having to press the power button a few extra times, because disabling "Pocket detection" ended up with me almost calling emergency services several times a day.
Thankfully this seems to be fixed in crDroid 9 (Android 13), so I definitely recommend upgrading once that's released.
Maintainer is busy af in real life and takes forever to get releases out.
Helpful links:​
Download ROM: enchilada / fajita
Download current boot.img files: enchilada / fajita (also attached below)
Android platform tools (adb & fastboot)
OxygenOS 11.1.2.2 Full OTA: enchilada / fajita
Firmware update instructions (LineageOS Wiki): enchilada / fajita
MSMTool (oh now you're in trouble - use latest unless you have a good reason to intentionally downgrade): enchilada / fajita
Magisk (recommend latest canary version)
LOGS OR IT DIDN'T HAPPEN​How to make bug reports (and how not to):​i appreciate bug reports, but I also need details. If an app is crashing ("FCing", meaning "force closing") then at a bare minimum, copy the crash log URL and share that with your report.
That probably won't be enough, though, which is why there are two main logs that I'll ask for:
1. logcat​You can either use the built-in MatLog tool to acquire this, or get it via USB debugging and adb on the computer (which was in the prerequisites section of the XDA first post, so you installed platform-tools and have adb & fastboot on your PATH, riiiight? )
Using MatLog
MatLog is shipped built-in, and it works great. It's built for an older API though, so you'll need to manually grant it permission to access all files (it doesn't know enough to ask since it's a system app and assumes itself to be privileged). If you don't, then you can only use the "Sharing" interface to save logs, rather than saving them to internal storage.
To use, open the MatLog app, and go into settings and tick the box for "omit sensitive info" so that you don't end up sharing your IMEI or email addresses with the world. Probably still best if you PM me the logs instead of share to the group.
Ideally if it's a reproducible problem, reboot, open MatLog, do the thing that causes the buggy behavior, switch back to MatLog, tap on the menu and choose "Save Zip", then send me the resulting file (they're saved to /sdcard/matlog/saved_logs/). Otherwise, try to open it as soon after the issue as possible and Save Zip.
Using ADB (Android debug bridge)
Since we're currently building as "userdebug", you can always grab a logcat even without being rooted. I'm assuming you've got adb and fastboot installed & can run them from a terminal.
Enable Developer Options if you haven't already by going to "Settings" > "About Phone" > scroll down to the bottom and tap on the "Build number" field 7 times to enable, then back up to System and choose the new "Developer options" menu, and toggle on "Enable USB debugging".
Connect the phone to computer via USB, then on the computer open a terminal type adb devices to start the server & verify you can see the phone. At this point you might get a prompt on the phone asking if you want to trust the computer with some ID for debugging; tell it yes (probably always yes, in case you need to do troubleshooting later due to a boot loop). You should see your phone's serial number listed under the output of adb devices in the terminal window. If not, you probably need to install OnePlus USB drivers.
Run adb logcat from the terminal and get ready for a wall of text. Ctrl-C to stop the firehose after about 10 seconds. Save the output to a file. Note: this is the stupid way assuming you just opened a command window or built-in PowerHhell in Windows. Any linux shell or current version of PowerShell should instead be able to just run adb logcat > logcat.txt to dump the output directly to a text file in the current working directory without the wall of text; just give it about 10-15 seconds and Ctrl-C to stop the capture.
That's it! PM me the file, with any other details about what's happening and your setup (device, how you flashed, GApps, and so on).
2. dmesg​Requires root, probably USB debugging, platform-tools added to your PATH, and knowledge of what the below instructions mean
Open a root shell on the phone (via local terminal or adb shell via USB).
Run dmesg and save the output to a text file.
PM me the dmesg.txt file, along with a logcat capture as well, and a detailed description of what the problem is, what the behavior is you noticed, how to reproduce, details of your setup (which device, what GApps, what Magisk modules, any custom kernels, how you installed, and so on).
Protip: If you're not rooted, since this is a "userdebug" build, you can go into Settings > System > Developer options, turn on the toggle for "Rooted debugging", and then on your computer, do adb root to restart the adb server process. The next adb shell you run from the computer will get superuser privilege instead and you can run dmesg or do other things without having to root with Magisk.
If you are rooted, I highly recommend installing & using SysLog (by Tortel), available on the Play Store and on F-Droid; it's a GUI app that lets you easily capture both logcat & dmesg & can generate zip archives to send to your favorite maintainer, while allowing for scrubbing potentially sensitive data, and has some other advanced filtering options.
3. A detailed description of the actual problem & how to reproduce​Maintainer is not a mind-reader
Describe what the actual problematic behavior is, compared to what the expected behavior is. Don't just throw a logcat at me and expect me to figure out what you think was actually wrong. Explain how to reproduce the bug, and what you were doing at the time. Give me details about your configuration: are you actually on the most current version, did you clean install, did you use the recommended MindTheGapps package, are you rooted & if so what add ons/modules/root-required utilities are you using regularly, etc.
A picture is worth a thousand words. Moving pictures even moreso. If you can use screenshots, or better yet a screen recording, to show me how something is failing, that helps a TON.
Realize that a number of things are beyond my control. I'm not a software developer, I'm not on the ROM dev team, and some things might never get resolved. It's *still* better than OnePlus though, hey?
Feature requests are not bug reports. If you don't have a stack of tested commits that you can submit as a pull request for the dev team to merge, it's not likely to happen. But you can always ask politely!
Other Notes:​It's your device to use the way you want of course, but don't expect support for your bug reports if you:​
didn't update firmware in both slots.
didn't do a clean flash.
installed with TWRP/any other custom recovery (or, worse yet, installed that custom recovery after).
aren't using the built-in kernel.
are using extensive root-required modifications & Magisk modules like Project Themer, Xposed/Riru, Dolby Atmos, Viper4A, modified Adreno GPU drivers, etc.
immediately start flashing stuff like "finalize.zip" or migrate restore zips instead of following the actual instructions.
are running decrypted (ugh, just don't).
re-locked your bootloader for some reason... you're on a custom ROM; don't do that.
followed some other installation method different than the steps in the first post.
"Supported" status - Updating from crDroid 7.x:​To be considered a "supported configuration", I need for folks to do a clean installation when jumping from Android 11 to 12, rather than trying to migrate from crDroid 7.x (Android 11, prebuilt vendor partition) to 8.x (Android 12.1, source-built vendor partition). So do your backups accordingly, because internal storage on the phone is gonna get wiped.
It generally works to do a dirty upgrade from recovery, as long as you reboot to recovery & flash a newer version of the EXACT SAME GOOGLE APPS PACKAGE AS YOU HAD BEFORE, but there's going to be odd things broken and you're really better off doing a clean install for a new major Android version number change.
Connectivity issues:​If you are having problems with mobile data under Android 12, try some of the following (and please let us know if one/all actually fixed things for you):
Go into Settings > Network & internet, scroll down to "Adaptive Connectivity" and turn it off
Go into Settings > Network & internet > Calls & SMS, and make sure your primary SIM is actually selected for calls, messages, and mobile data, then back up one menu level, go into SIMs, select your SIM if needed, and make sure "Mobile data" is toggled on
Go into Settings > Network & internet > SIMs, select your SIM, and change the radio mode to one of the ones that *doesn't* start with "NR", like "LTE/TDSCDMA/CDMA/EvDO/GSM/WCDMA" (or the one without the CDMA/EvDO stuff if you know you're not on a CDMA carrier)
Go into Settings > Network & internet > SIMS, select your SIM, go into Access Point Names, and make sure you've got the correct APN selected
Go into Phone (whatever you have for the default dialer), keypad, type in *#*#4636#*#* to open the "Testing" activity, choose "Phone information", then in the three-dot menu in the upper-right, choose "Select Radio Band" and choose the correct region instead of leaving it on "Automatic"
thank you boss, thx for this hard work
crDroidAndroid-12.1-20220709-enchilada-v8.6.zip
is it Beta version..?
Yay we're finally official! Come 'n' get it kids!
syamkumar.tpl said:
crDroidAndroid-12.1-20220709-enchilada-v8.6.zip
is it Beta version..?
Click to expand...
Click to collapse
Nope, I just PR'd last night to go official and it was accepted.
crDroid 8.x has stricter requirements for device maintainers with Android 12 releases, so until now I've only been able to classify the 8.x builds I've been working on for the last several months as betas, and honestly I haven't had the time until now to set up all of the XDA pages, so they've just been linked in the Telegram chat group.
(also, please don't link to the sourceforge files directly -- having people go through the crdroid.net website and have ads displayed helps fund the ROM dev team's server costs. Unless you don't WANT the ROM to keep getting developed, of course...)
Terminator.J said:
If you're feeling super-adventurous, you *might* be able to update to the latest release of 7.x (I'm finally getting around to making official 7.19 builds now), then reboot to bootloader, flash the boot.img to current slot, reboot bootloader, start recovery, flash the 8.x ROM zip from recovery, reboot recovery AGAIN, flash an Android 12.1-compatible version of the same Google apps or microG package you were using, plus Magisk if you're using that, and boot into system... but... I have no idea how well that will work, or not.
I can't afford to consider that an officially-supported configuration, because I have no idea what will be broken or not; but I'm interested to know if it works for you.
Click to expand...
Click to collapse
Thank you for your work!
I just updated on my OnePlus 6 crDroid from version 7.19 to 8.6. For a quick check what I checked is working fine, all data is preserved.
Thanks!
tomasz-c said:
Thank you for your work!
I just updated on my OnePlus 6 crDroid from version 7.19 to 8.6. For a quick check what I checked is working fine, all data is preserved.
Thanks!
Click to expand...
Click to collapse
Oh holy crap, it worked?! That's... kind of amazing. I didn't expect it to work, ngl. Thanks for the report, and enjoy!
___
If you don't mind me asking; what GApps (if any) did you have before & which package did you flash as part of the update, what recovery or with built-in updater in Settings > System > Updater, etc etc.?
Terminator.J said:
Oh holy crap, it worked?! That's... kind of amazing. I didn't expect it to work, ngl. Thanks for the report, and enjoy!
Click to expand...
Click to collapse
Yes, it worked And could you explain why it surprised you? Looks like it was more risky than I thought but I made copies beforehand, of course.
All the apps I checked work without any problem. Contacts, SMS, call history, photos and other data on storage and data of other apps are preserved.
I didn't remove the encryption before the update and my pin (sign) works fine.
In the previous post I forgot to add an important piece of information: I don't use GApps so I didn't test it.
At first I uploaded boot.img to both slots (because I forgot that in the description for the update it said to upload to one) but I guess it doesn't matter. I uploaded crDroidAndroid-12.1-20220709-enchilada-v8.6.zip to slot B, rebooted it booted after a long while (probably updating something) Android 12.1, when I saw that it worked I rebooted to recovery and uploaded it to slot A as well.
Terminator.J said:
If you don't mind me asking; what GApps (if any) did you have before & which package did you flash as part of the update, what recovery or with built-in updater in Settings > System > Updater, etc etc.?
Click to expand...
Click to collapse
I only now saw the questions in the second part of your post.
Basically, I did it as you stated in the instructions: "First time installation:" only without the "Factory reset / Wipe data" step and without installing GApps, because I don't use them.
To begin with, I updated to the latest version of crDroid 7.x (7.19)
Reboot phone to bootloader
fastboot flash boot_a crDroidAndroid-12.1-20220709-enchilada-v8.6_boot.img
fastboot flash boot_b crDroidAndroid-12.1-20220709-enchilada-v8.6_boot.img
Reboot phone to bootloader.
Use vol +/- keys to select recovery mode & press power button to enter recovery.
On phone, in red menu recovery choose "Apply update" > "Apply from ADB" > "ADB sideload" & then from computer,
adb sideload crDroidAndroid-12.1-20220709-enchilada-v8.6.zip
Reboot to system
When I saw that everything worked I rebooted to recovery and uploaded the zip image to the second slot via ADB Sideload.
I didn't have GApps before and didn't install them afterwards because I don't use them.
I noticed that on the keyboard AOSP in Polish:
- swiping does not work,
- spell check does not work,
- word prompting does not work,
All these things worked on crDroid 7.19. Now they also work but in other popular languages, such as German or English.
I've tried deleting all AOSP keyboard app data and reconfiguring it from scratch, but that doesn't help.
Could I ask someone who has a clean installation to check this? Because without confirming it, it's unlikely to report the error.
8.7 testing releases available in the OP 6/6T TG channel if anyone is feeling adventurous!
Thanks for your hard work.
ROM runs pretty well, although there are some minor yet annoying issues (don't know if they have been mentioned in the Telegram group but I'll list them here anyway).
Sometimes the notification shade noticeably lags.
Text selection menu (cut, copy, etc) doesn't appear after selecting, I have to long tap the selection again for it to appear. It happens for both input fields and usual text (e.g. on a web page)
Gboard doesn't always save the buffer content into the clipboard manager. Same applies for the paste suggestions. Maybe I should install it as a system app? (I'm pretty sure I used it as a user app on crDroid 7 though)
Apps seem to unload from RAM more aggressively than on crDroid 7.
I guess they were removed in crDroid 8, but there used to be settings for weather on lock screen and smart charging (auto-disabling charging at XX%).
In quick settings, when I tap mobile data, it takes very long for the animation to switch on/off while Wi-Fi is on (only the animation). Sometimes it will get stuck at on or off until I reopen the notification shade. Also if you quickly reopen the shade, the animation will change instantly without any lag. (All this is true regardless of the Mobile data always active developer setting)
runtosafety said:
Thanks for your hard work.
ROM runs pretty well, although there are some minor yet annoying issues (don't know if they have been mentioned in the Telegram group but I'll list them here anyway).
Sometimes the notification shade noticeably lags.
Text selection menu (cut, copy, etc) doesn't appear after selecting, I have to long tap the selection again for it to appear. It happens for both input fields and usual text (e.g. on a web page)
Gboard doesn't always save the buffer content into the clipboard manager. Same applies for the paste suggestions. Maybe I should install it as a system app? (I'm pretty sure I used it as a user app on crDroid 7 though)
Apps seem to unload from RAM more aggressively than on crDroid 7.
I guess they were removed in crDroid 8, but there used to be settings for weather on lock screen and smart charging (auto-disabling charging at XX%).
In quick settings, when I tap mobile data, it takes very long for the animation to switch on/off while Wi-Fi is on (only the animation). Sometimes it will get stuck at on or off until I reopen the notification shade. Also if you quickly reopen the shade, the animation will change instantly without any lag. (All this is true regardless of the Mobile data always active developer setting)
Click to expand...
Click to collapse
So, dirty little not-so-secret: I'm not really sure what I'm doing most of the time. There are a lot of things that seem to be regressions in Android 12, and I believe I've set up overlays correctly to configure crDroid-specific features. But... There are plenty of things where I don't know where to begin, and just assume that it's something that one of the actual core ROM dev team for crDroid (I am a device maintainer, not part of the core dev team) will eventually deal with, or it's just an issue with our specific device, or ... Whatever. Occasionally it's a thing that maybe I can dig up bug reports and logs and reproduce and figure out what's up and fix it.
Most of the things you mention are entirely beyond my control.
1. I believe you. Dunno what to do there; this will probably be an upstream ROM thing that needs to get fixed, but possibly relies on an overlay I need to fix. Usually things like this, I try and try to get to the bottom of it and pull my hair out and waste hours & hours and then it's something that was in the frameworks anyway and I don't know enough Java or Kotlin or C/C++ to have possibly been able to fix it, and then someone else fixes it and I could've just waited and it would've been fine in a month or two.
2. Yeah, I've had that too; seems to depend on app. Can you send me a log after it happens?
3. I'm using GBoard as a user app myself, although that's with MinMicroG, and haven't had problems with it. But I believe you. What GApps are you using?
4. Yeah, I noticed that too. There's work to do tuning things, but I'm not sure where to begin. I'm in a little over my head trying to keep the best of both worlds between just running with the Qualcomm QTI perfd kernel driver, and cutting over to using Google's libperfmgr with power hinting, and their corresponding low memory killer drivers (the "EdwinMoq" commits you may have heard mention of). It feels like I'm getting better performance/battery life right now, with trying to just use some of the "clean up and do some tuning without dropping QTI perfd" commits as an approach, but it might be overkill. If I remove all those things, then we basically end up functioning just like vanilla LineageOS on stock kernel for battery life/performance/smoothness. I'm open to suggestions there.
5. Yes, they were removed. Lock screen was reworked a lot in Android 12, as well as background services, and running the OmniJAWS service (which was intended for older Android versions anyway) apparently broke. Smart charging functionality can be brought back by using the Advanced Charging Control (acc) Magisk module. Best results seem to be by installing the last release of AccA (the graphical front-end), and then manually setting it to use acc module v2022.2.22.1 (newer "android 12 compatible" ones actually kinda fail to work), and then check for a charging switch that supports "battery idle mode" (and toggle on "prioritize battery idle mode").
6. Quick Settings and data handling in Android 12 is... man I don't even know. See point #1. It's not just our device though, from what I've seen scroll by in the crDroid maintainer chat.
Status update (11 August):
There's a lot of stuff I'd like to work on fine-tuning, because I might not be a pro AOSP dev, but I like having things feel polished.
LineageOS has been working on merging the August ASB, maybe they're done by now; and I know Neobuddy89 has been working on merging that into crDroid sources (it wasn't ready to build/test as of a few days ago, but probably fine now).
We finally hit summer weather here and it's been too hot for me to work in the back room where my build computer (and monitor setup) lives, and my wife took the summer off teaching and I've been busy working... And working on real life household projects, cleaning, repairs, dealing with the aftermath of my cousin-in-law passing away, taking care of the kids since school is out; lots of things.
I want to fine-tune things of course, but I'll have to save that for the August security patch or later.
I'll just throw 7.20 (whatever test version) and 8.7 test 2 out to OTA for now as the official releases, because "real artists ship"... And I can't sync crDroid sources now to keep working on July ASB releases because it would probably end up pulling in August changes anyway.
Definitely seems like they've been good enough to release for weeks, I've been daily driving and haven't run into regressions, and I can't let "it's not perfect yet!" prevent people from getting updates.
Terminator.J said:
So, dirty little not-so-secret: I'm not really sure what I'm doing most of the time. There are a lot of things that seem to be regressions in Android 12, and I believe I've set up overlays correctly to configure crDroid-specific features. But... There are plenty of things where I don't know where to begin, and just assume that it's something that one of the actual core ROM dev team for crDroid (I am a device maintainer, not part of the core dev team) will eventually deal with, or it's just an issue with our specific device, or ... Whatever. Occasionally it's a thing that maybe I can dig up bug reports and logs and reproduce and figure out what's up and fix it.
Most of the things you mention are entirely beyond my control.
1. I believe you. Dunno what to do there; this will probably be an upstream ROM thing that needs to get fixed, but possibly relies on an overlay I need to fix. Usually things like this, I try and try to get to the bottom of it and pull my hair out and waste hours & hours and then it's something that was in the frameworks anyway and I don't know enough Java or Kotlin or C/C++ to have possibly been able to fix it, and then someone else fixes it and I could've just waited and it would've been fine in a month or two.
2. Yeah, I've had that too; seems to depend on app. Can you send me a log after it happens?
3. I'm using GBoard as a user app myself, although that's with MinMicroG, and haven't had problems with it. But I believe you. What GApps are you using?
4. Yeah, I noticed that too. There's work to do tuning things, but I'm not sure where to begin. I'm in a little over my head trying to keep the best of both worlds between just running with the Qualcomm QTI perfd kernel driver, and cutting over to using Google's libperfmgr with power hinting, and their corresponding low memory killer drivers (the "EdwinMoq" commits you may have heard mention of). It feels like I'm getting better performance/battery life right now, with trying to just use some of the "clean up and do some tuning without dropping QTI perfd" commits as an approach, but it might be overkill. If I remove all those things, then we basically end up functioning just like vanilla LineageOS on stock kernel for battery life/performance/smoothness. I'm open to suggestions there.
5. Yes, they were removed. Lock screen was reworked a lot in Android 12, as well as background services, and running the OmniJAWS service (which was intended for older Android versions anyway) apparently broke. Smart charging functionality can be brought back by using the Advanced Charging Control (acc) Magisk module. Best results seem to be by installing the last release of AccA (the graphical front-end), and then manually setting it to use acc module v2022.2.22.1 (newer "android 12 compatible" ones actually kinda fail to work), and then check for a charging switch that supports "battery idle mode" (and toggle on "prioritize battery idle mode").
6. Quick Settings and data handling in Android 12 is... man I don't even know. See point #1. It's not just our device though, from what I've seen scroll by in the crDroid maintainer chat.
Click to expand...
Click to collapse
Just updated, I'll see if 8.7 has fixed that.
See the spoiler below for logs.
NikGApps Basic. Yeah, I only noticed it's not a recommended option after installing (although that's what I used on crDroid 7 where I didn't have that issue).
Spoiler: Text selection log
Code:
08-16 22:44:05.021 2387 2387 D BatteryInfoBroadcast: onReceive: android.intent.action.BATTERY_CHANGED isPowerSaveMode: false
08-16 22:44:05.022 2387 2387 D BatteryDefenderNotification: isPlugged: true | isOverheated: false | defenderEnabled: false | isCharged: false
08-16 22:44:07.564 1035 1035 D vendor.qti.vibrator: Vibrator on for timeoutMs: 10
08-16 22:44:07.566 1035 4878 D vendor.qti.vibrator: Starting on on another thread
08-16 22:44:07.576 1035 4878 D vendor.qti.vibrator: Notifying on complete
08-16 22:44:07.577 1035 1035 D vendor.qti.vibrator: QTI Vibrator off
08-16 22:44:07.583 12805 12805 I cr_CompositorSurfaceMgr: Transitioning to surface with format: -1
08-16 22:44:07.592 12805 12805 D androidtc: Initializing SystemTextClassifier, type = System
08-16 22:44:07.593 12805 12805 W androidtc: TextClassifier called on main thread
08-16 22:44:07.595 3597 3597 I AiAiTextClassifier: onCreateTextClassificationSession = TextClassificationSessionId {8321aa96-9441-474e-9836-c6170d716612}
08-16 22:44:07.596 3597 3597 I AiAiTextClassifier: AiaiTextClassifierServiceConnector.onSuggestSelection
08-16 22:44:07.600 12805 12805 I cr_CompositorSurfaceMgr: surfaceCreated format: 0
08-16 22:44:07.667 12805 12805 I cr_CompositorSurfaceMgr: SurfaceState : detach from parent : -3
08-16 22:44:07.668 12805 12805 E cr_CompositorSurfaceMgr: surfaceDestroyed format : -3
08-16 22:44:09.149 1347 4506 D WindowManager: perform drag: [email protected] surface=Surface(name=drag surface)/@0x3a9d179 flags=100 data=ClipData { text/plain {T(8)} }
08-16 22:44:09.149 1347 4506 D WindowManager: registering drag input channel
08-16 22:44:09.171 1347 4506 D WindowManager: broadcasting DRAG_STARTED at (366.0, 1025.0)
08-16 22:44:09.171 1347 1731 W WindowManager: Unexpected ACTION_DOWN in drag layer
08-16 22:44:09.179 1035 1035 D vendor.qti.vibrator: Vibrator on for timeoutMs: 10
08-16 22:44:09.180 1035 4884 D vendor.qti.vibrator: Starting on on another thread
08-16 22:44:09.191 1035 4884 D vendor.qti.vibrator: Notifying on complete
08-16 22:44:09.192 1035 1035 D vendor.qti.vibrator: QTI Vibrator off
08-16 22:44:09.534 1347 1731 D WindowManager: Got UP on move channel; dropping at 366.0,1025.0
08-16 22:44:09.537 1347 1731 D WindowManager: sending DROP to Window{e1f7993 u0 com.vivaldi.browser.snapshot/com.google.android.apps.chrome.Main}
08-16 22:44:09.542 12805 12805 I ViewRootImpl[Main]: Reporting drop result: true
08-16 22:44:09.542 1347 8568 D WindowManager: Drag into new candidate view @ [email protected]
08-16 22:44:09.542 1347 8568 D WindowManager: Drop result=true reported by [email protected]
08-16 22:44:09.542 1347 8568 D WindowManager: unregistering drag input channel
08-16 22:44:09.542 1347 8568 D WindowManager: broadcasting DRAG_ENDED
08-16 22:44:09.542 1347 1731 D WindowManager: Drag ending; tearing down input channel
08-16 22:44:09.545 1347 1731 W InputManager-JNI: Input channel object 'drag (client)' was disposed without first being removed with the input manager!
08-16 22:44:10.880 3014 3086 I PhenotypeProcessReaper: Memory state is: 125
08-16 22:44:11.370 2387 2387 D PowerNotificationWarningsGoogleImpl: onReceive: android.intent.action.BATTERY_CHANGED
08-16 22:44:11.376 2387 2387 D BatteryInfoBroadcast: onReceive: android.intent.action.BATTERY_CHANGED isPowerSaveMode: false
08-16 22:44:11.376 2387 2387 D BatteryDefenderNotification: isPlugged: true | isOverheated: false | defenderEnabled: false | isCharged: false
08-16 22:44:11.768 4405 4485 E QMI_FW : qmi_cci_get_ref: ref count increased 2
08-16 22:44:11.772 4405 4415 E QMI_FW : qmi_cci_get_ref: ref count increased 2
08-16 22:44:11.792 3840 10026 I ConnectivityReport: signalStrength of #1 updated to 2
08-16 22:44:12.054 2387 2387 D PowerNotificationWarningsGoogleImpl: onReceive: android.intent.action.BATTERY_CHANGED
08-16 22:44:12.059 2387 2387 D BatteryInfoBroadcast: onReceive: android.intent.action.BATTERY_CHANGED isPowerSaveMode: false
08-16 22:44:12.059 2387 2387 D BatteryDefenderNotification: isPlugged: true | isOverheated: false | defenderEnabled: false | isCharged: false
Everything blew up this summer in real life.
I finally pushed the 8.7 test 2 that I've been using as a daily driver personally and everyone in Telegram seems to have been more than happy with to OTA as the official July 2022 ASB release, sorry it's like a month late.
The July patch took a long time to merge, and August even longer, but it'll take me a while to release August unless I just skip working on my backlog of bugfix notes entirely.
Okay, I took a mental health day to work on Android stuff.
First test builds of 8.8 will be going up tonight in the Telegram group if anyone wants to join & try them out!
Had to drop Camera2 (the basic AOSP camera) since that little 5MB makes the difference between MindTheGapps 12.1 arm64 & Magisk both being able to install and updater able to correctly process addon.d scripts when installing the zip, and a bootloop because it couldn't quiiiiite finish copying over the privapp permission XMLs to system/product/. Stupid tiny system partition...
No device-specific bugfixes yet in my trees, just testing with the most recent lineage changes & crDroid 8.8 sources.

BOOTMOD - Root your Shield In 1 minute (2015, 2017, & 2019)

Hello Friends~!
We now have a working method to achieve ROOT on STOCK Firmware!
A script has been made that can boot your shield into the bootloader, erase the old boot, flash the new boot, and install your choice of Magisk apk for you. The script is also able to revert you back to the stock boot image if needed.
Takes only a minute or two depending if you already have adb installed, fastboot drivers setup, and bootloader unlocked. (The guide will walk you through this if you are new)
Rooting Your Shield Will Break AI Upscaling and Dolby Vision. You /Cannot/ Lock the bootloader while rooted, you can only Lock the bootloader when you have the stock boot Image installed. This tool simply makes it easier to "Root" and to Revert back to Stock when done, so you can use your AI Enhanced Features again.
Spoiler: GUIDE
HOW TO ROOT:
If you are already running the STOCK firmware version you want to ROOT, Skip to step 2.
Spoiler: HOW TO CHECK YOUR INSTALLED FIRMWARE VERSION
You can check your currently installed firmware on the shield by going into Settings, selecting About, then scroll to the bottom.
{
"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"
}
You will see a section called SHIELD Android TV SW Version, this will show your installed FW
STEP 1:
Select a STOCK firmware from this THREAD, and fully install it.
STEP 2:
Download the BOOT MOD that correlates to your installed STOCK firmware.
Spoiler: BOOT MODS
If you want to build your own "Boot Mod" the instructions are HERE
Spoiler: 2019 PRO (16 GB MODEL)
Spoiler: 9.1.1
9.1.1mods.zip
drive.google.com
Spoiler: 9.1
9.1mods.zip
drive.google.com
Spoiler: 9.0
9.0.0mods.zip
drive.google.com
Spoiler: 8.2.3
8.2.3mods.zip
drive.google.com
Spoiler: 2017 (16 GB MODEL)
Special Thanks to @Manzing for obtaining the 9.1 and 9.1.1 images for us!
Spoiler: 9.1.1
9.1.1mods2017.zip
drive.google.com
Spoiler: 9.1
9.1mods2017.zip
drive.google.com
Spoiler: 9.0
9.0.0mods2017.zip
drive.google.com
Spoiler: 8.2.3
8.2.3mods2017.zip
drive.google.com
Spoiler: 2015 (16 GB MODEL & 500 GB MODEL)
Special thanks to @I_did_it_just_tmrrow for taking the time to download from gameworks, patch with magisk, and install the 2015 version, and verified it works HERE as well as they verified the hashes were the same for the boot.img of the 500gb and 16gb boot.img
Spoiler: 9.0.0
9.0.0-2015-MODS.zip
drive.google.com
If you want me to add more, let me know.
STEP 3:
Make sure you have usb debugging enabled in settings and your shield is ON.
Spoiler: IF YOU NEED HELP WITH THIS STEP
This adds an additional Minute to setup time
Attach a USB-C cable to your shield and plug it into your PC.
(Use the USB port furthest away from the HDMI Cable)
Go into settings, select device preferences
Select About, then hit the build number 7 times
Back out to device preferences and now select developer options
Then enable USB debugging and Network debugging.
Spoiler: YOU WILL NEED ADB INSTALLED, HERE'S AN EASY WAY TO INSTALL IF YOU NEED
Here's a way to install adb quickly using powershell and chocolatey.
Open powershell as admin and copy and paste these two lines, one line at a time:
Code:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco install adb
That's it!
Note the ip address and in a terminal on your computer, connect to this ip address.
Example: adb connect 192.168.0.10:5555
This will prompt the shield to allow for a connection, say yes.
STEP 4:
Run your choice of .bootmod, .deltamodonly, or .magiskmodonly. MORE INFO
Spoiler: NEW BOOTMOD SCRIPT OPTIONS
Simple 1 min demo:
How to use the new .bootmod script:
After Enabling USB Debugging and Wireless debugging, then adb connecting to your device, run the .bootmod script
If you did everything correctly, your device should be listed, and you may proceed by pressing 1 and enter.
If you forgot to adb connect you may now do so with option 3, just type in your Shield's IP address.
After you select 1 on the main menu, the script will then reboot your device into the bootloader and will wait for you to press a key so the script can run fastboot devices to verify that your device has posted.
Wait to press any key until you see your shield's lights come on and then you hear the window's chime on your computer. (see 0:16 in the video) Then Press 1 if your device is listed like above.
Spoiler: IF YOUR DEVICE ISN'T SHOWING
Run option 2 again, in case the script went too fast or you hit a key too quickly.
If your device is still not showing, make sure you have unlocked the bootloader and installed the fastboot drivers for your device.
Spoiler: HOW TO INSTALL FASTBOOT DRIVERS
DOWNLOAD:
Shield Drivers.zip
drive.google.com
Now open Device Manager and follow the steps below:
Spoiler: UNLOCKING THE BOOTLOADER
NOTE THAT UNLOCKING YOUR BOOTLOADER WILL ERASE ALL DATA ON THE DEVICE!
The shield should now be at the bootloader menu, simply select unlock bootloader
Now you can select which boot mod you would prefer. The script will erase the old boot image, flash the new one, reset, then the script will pause for us.
When your shield has fully rebooted and is on the main menu, you can press any key in the terminal and the script will finish the magisk installation for us by installing the apk to the device.
If you accidentally pressed a button too quickly, you can always access the apk menu to adb install the Magisk apk.
FULL RUNDOWN OF V2 CHANGES
Remember that you can always revert back to the Stock Boot Image and Lock your bootloader (again you can only lock it with a Stock boot flashed) to get your AI Upscaler and Dolby Vision working again when you are done with Root.
STEP 5:
Spoiler: RUN YOUR MAGISK APK ON THE SHIELD
Now Opening Magisk will trigger this alert:
Select OK and after the reboot, your Magisk of Choice will be fully installed!
You will now have Root and still be able to use apps and features that you shouldn't be able to. Normally with root (or at least on the Dev Rooted Images) we cannot install Disney +, but as you see, we Sure Can Now~! ;-)
IF YOUR PLAYSTORE IS MISSING APPS, SEE THIS POST. REQUIRES MAGISK DELTA
Spoiler: SOURCE CODE
SOURCE CODE --- You may repurpose / share this as you see fit.
DELTAMODONLY.BAT
Code:
fastboot erase boot
fastboot flash boot bootmod2.img
fastboot reboot
MAGISKMODONLY.BAT
Code:
fastboot erase boot
fastboot flash boot bootmod1.img
fastboot reboot
BOOTMOD.BAT ---- There is unused code, the :UNLOCK code will be removed later, it didn't work how I would have liked in testing and I forgot to remove it. It isn't harming anything right now so will remove it with the next update.
Code:
@echo off
title [BOOTMOD]
color 0A
if "%1" neq "" ( goto %1)
:MENU
cls
echo BOOTMOD -- Version 2
echo =========================================
adb devices
echo =========================================
echo 1. Enter Bootloader Menu for Mod Flashing
echo 2. Enter APK Menu
echo 3. ADB Connect
echo 4. Reboot to System
echo 5. HELP
echo 6. EXIT BOOTMOD
echo =========================================
set /p answer= Please Enter your Selection:
if %answer%==1 goto BOOTLOADER
if %answer%==2 goto APK
if %answer%==3 goto ADB
if %answer%==4 goto REBOOT
if %answer%==5 goto HELP
if %answer%==6 goto EXIT
:ADB
cls
set /p answer= Type in SHIELD IP Address:
adb connect %answer%
goto MENU
:APK
cls
echo ===========
echo APK MENU
echo ===========
echo 1. Magisk by TopJohnWu
echo 2. Magisk Delta fork by HuskyDG
echo 3. Return to Main Menu
echo ================================
set /p answer= Please Enter your Selection:
if %answer%==1 goto MAGISKAPK
if %answer%==2 goto DELTAAPK
if %answer%==3 goto MENU
:MAGISKAPK
adb install magisk.apk
goto MENU
:DELTAAPK
adb install delta.apk
goto MENU
:HELP
cls
echo Adb must be installed on the computer and USB debugging must be enabled on the Shield.
echo You will need the Fastboot USB drivers installed on your PC.
echo Check the GUIDE on XDA for more help.
echo LINK: https://forum.xda-developers.com/t/bootmod-root-your-shield-in-1-minute-2015-2017-2019.4524873/
echo =====================================================================================
set /p answer=Press 1 to return to Main Menu:
if %answer%==1 goto MENU
:UNLOCK
cls
fastboot oem unlock
echo ==============================================================
echo Use your shield to select yes. Then press any key to continue
echo ==============================================================
pause
set /p answer=Press 1 to Enter Flash Menu or 2 to return to Main Menu:
if %answer%==1 goto FLASH
if %answer%==2 goto MENU
:BOOTLOADER
cls
adb reboot bootloader
pause
cls
echo =====================================================
fastboot devices
echo =====================================================
echo Is your device listed above?
echo =====================================================
set /p answer=Press 1 for yes or 2 for no or 3 for Help:
if %answer%==1 goto FLASH
if %answer%==2 goto BOOTLOADER
if %answer%==3 goto HELP
:FLASH
cls
echo How would you like to flash your boot today? Do you want to include:
echo ====================================================================
echo 1. TopJohnWu's Magisk
echo 2. HuskyDG's Magisk Delta
echo 3. Revert Back To Stock Boot Image
echo 4. Reboot Shield to System
echo 5. Return to Main Menu
echo ====================================
set /p answer=Select a number and press enter:
if %answer%==1 goto MAGISK
if %answer%==2 goto DELTA
if %answer%==3 goto STOCK
if %answer%==4 goto REBOOT
if %answer%==5 goto MENU
:MAGISK
cls
fastboot erase boot
fastboot flash boot bootmod1.img
fastboot reboot
echo =====================================
echo Wait for your Shield to fully Reboot.
echo =====================================
pause
adb install magisk.apk
goto MENU
:DELTA
cls
fastboot erase boot
fastboot flash boot bootmod2.img
fastboot reboot
echo =====================================
echo Wait for your Shield to fully Reboot.
echo =====================================
pause
adb install delta.apk
goto MENU
:STOCK
cls
fastboot erase boot
fastboot flash boot boot.img
echo ================================================================================
echo REMEMBER TO LOCK YOUR BOOTLOADER FOR AI UPSCALING AND DOLBY VISION FUNCTIONALITY
echo ================================================================================
echo 1. Reboot Shield to the System
echo 2. Return to Main Menu
echo =========================
set /p answer=Enter your selection:
if %answer%==1 goto REBOOT
if %answer%==2 goto MENU
:REBOOT
fastboot reboot
goto MENU
:EXIT
exit /b
Spoiler: SOURCES
Here are the sources for the Magisk apk's and their respective projects, used in making the boot mods.
Topjohnwu's Magisk APK Direct Download Link (v25.2):
https://github.com/topjohnwu/Magisk/releases/download/v25.2/Magisk-v25.2.apk
Github Project Page:
GitHub - topjohnwu/Magisk: The Magic Mask for Android
The Magic Mask for Android. Contribute to topjohnwu/Magisk development by creating an account on GitHub.
github.com
HuskyDG's Forked version of Magisk "Delta" Direct Download Link:
https://github.com/HuskyDG/magisk-files/releases/download/2304d221-delta/app-release.apk
Github Project Page:
GitHub - HuskyDG/magisk-files
Contribute to HuskyDG/magisk-files development by creating an account on GitHub.
github.com
All original boot images come from NVIDIA's Gameworks:
Gameworks Download Center
Get the latest Gameworks software for your game development work.
developer.nvidia.com
Spoiler: THANK YOU TO OUR COMMUNITY <3
SPECIAL THANKS TO OUR FRIENDS IN THE XDA COMMUNITY <333
Thank you to @topjohnwu for making Magisk
@huskydg For making the forked magisk with magiskhide enabled and other features
@nooted1 for teaching us about the magisk variant "delta" that has magiskhide still configured inside the apk
@ajolly for their efforts in educating us about safetynet modules that can be used within magisk
@louforgiveno for their efforts in reverse engineering apks, determining that it would be better to clear data in the google playstore instead of cache, and providing excellent feedback on pretty much every step of the way.
@abc1054 for testing the ai upscaler and teaching me how to even use the silly thing.
@Zer0_rulz for testing the upscaler and teaching us about link2sd and providing a useful idea for studies, to "freeze apps" as opposed to straight deletion in tests. I will use both methods in the future!
@pinvok3 for their script they made to teach us how to more efficiently locate the apps tied to the ai upscaler and determining the "tvsettings.apk" to potentially be culpable in jailing our upscaler. They also taught me about the dolby vision feature on the shield
@Renate for allowing me to bother her in the AVB thread while I try to learn how to talk to people like her. haha
@Manzing for stepping up and being the hero we needed for the 2017 shield community! They were able to locate the correct pathing for the OTA Firmware as well as provide us the stock 9.1 boot and complete OTA!!
@I_did_it_just_tmrrow For taking the time to verify magisk is able to indeed patch the 2015 version of the Shield HERE and more so they explained the boot images provided on gameworks for the 2015 version have the same hash, therefore a patched boot will work on both the 16gb and 500gb models. Thank you!
AI UPSCALER FIX:
THERE'S SOME TROUBLE WITH THE UPSCALER STILL, THE COMMUNITY IS WORKING TOGETHER IN THE COMMENTS BELOW
Spoiler: MORE PROBLEMS WITH ROOT
Please note that patching the boot with Magisk causes problems like the AI upscaler and Dolby vision being unavailable. You may want to wait for updates unless you have a reason to root with stock but otherwise feel free to join us in troubleshooting!
NOTE THAT THIS METHOD REQUIRES A FIX SO ONE COULD RUN ADB AS ROOT OUTSIDE OF THE SHELL. (adb shell su works, but not adb root outside of shell) Trying to mod this binary. Bare with me
Verified Working on the Shield:
[GUIDE][NO-ROOT] How to install Ubuntu and other Linux Distros on Your Phone or Android TV Box, using Termux
NOTICE: THIS METHOD IS ONLY FOR NON ROOTED DEVICES PROOT-DISTRO GITHUB PAGE Hello Friends! Today I wanted to start a thread that will house prebuilt Linux environments, as well as instructions for building the Linux environments yourself...
forum.xda-developers.com
This is great news for the Shield...the ai upscaling not working was the main reason i haven't rooted yet. Thank you for your time and efforts getting this together!
Bravo!
@louforgiveno it's only thanks to the Community haha. I was trying to do things in a much more complicated way and thanks to nooted and renate I understand that there is no need to reinvent the wheel and we can use the tools already made. (magisk + safetynet modules shared by ajolly) [still going to do complicated things tho.. got my uart serial adapter in today. idk how to use it but will find out and or bother renate till she blocks me ]
This guide is a good reference to bypassing safetynet
--edit now after rewatching the video a few times I understand what nooted is talking about when they say this
" The Magisk Hide settings need to be set such that everything under Google Play Services is toggled on EXCEPT FOR the GMS one at the top. Also, toggle it on for Google Services Framework."
Thank you again sosososo much @nooted1 I feel so stupid I didn't realize what magisk actually is, or does. You are the reason I learned how to select the boot.img in magisk and tell it to patch it so I can share a modded image. Now I am like a million percent certain we can do something with the system and then we would have a rom after a little customizations!
@louforgiveno 100 Percent Confirmed! Disney + is in the playstore and the ai upscaling is functional without having to relock the boot loader, YAY! Haha. The guide has been updated with the steps. It was super easy thankfully
Now I am going to learn how to get the system pulled with all of this preinstalled so we never have to do this mess. again Idk how or how long it will take but it will happen. At least folks can use this for now
jenneh said:
@louforgiveno 100 Percent Confirmed! Disney + is in the playstore and the ai upscaling is functional without having to relock the boot loader, YAY! Haha. The guide has been updated with the steps. It was super easy thankfully
Now I am going to learn how to get the system pulled with all of this preinstalled so we never have to do this mess. again Idk how or how long it will take but it will happen. At least folks can use this for now
Click to expand...
Click to collapse
Nice, that's great news! I'm gonna dig into this over the weekend
HOW TO BUILD YOUR OWN "BOOT MOD":
For anyone who wanted to know how I made the boot mods I shared, so you can make it yourself if you want.
You can take the boot.img provided to us from NVIDIA and push it to your sd card.
Code:
adb push boot.img /sdcard/Download
Then use magisk to patch the image. I didn't know what this option Meant until yesterday. Haha
YOU HAVE TO DO THIS ON THE SHIELD OR A PHONE. AN EMULATOR WILL NOT WORK; This example uses nox because I didn't feel like recording my TV
Your browser is not able to display this video.
Magisk will tell you at the end what it named the file, then you could pull the image, rename it to whatever you like, and share it. (for instance i named mine bootmod.img with a batch to erase and reflash the partition)
This should work for other devices. So that's how you patch a boot now a days
Spoiler: SIDENOTE
A Sidenote. Something funny I discovered. DON'T Do this haha.
IDK why it is but, if you push the build.prop from the ROOT 8.2.3 to the stock version, it crashed it in an interesting way. After reseting, the shield would post to the nvidia logo, make it to the google logo, crash, reboot to nvidia logo then android literally died. Haha.
Whereas, if you sent the STOCK build.prop to the ROOT system, it would not crash, and would instead allow you to do some things you normally couldn't, like download the 9.1 OTA package
Fantastic, glad it worked out. Thanks for testing it!
I mostlly want to go run cf.lumen on my shield to help with sleep.
Btw, I suspect patching the boot.img will work on any device with the same architecture - ie your phoe.
Spoiler: PLAYSTORE FIX IF YOUR PLAYSTORE IS MISSING APPS
This is only for those that need. Most shouldn't need this
NOTE this only works with the magisk delta version as it has magisk hide.
Hit the settings button at the top right
Enable ZYGISK:
STEP 1:
Download the safetynet module HERE and name it safety. MIRROR
Code:
adb push safety.zip /sdcard/Download
STEP 2:
Open Magisk and select the Modules button at the bottom right. The puzzle piece!
Select add a install from storage, navigate to Download, and install safety.zip, then reboot.
STEP 3:
MAGISK HIDE SETTINGS-
In magisk, under Settings, enable MagiskHide. Now select Configure MagiskHide
Click to show system apps
Then check all the settings for Google Services Framework
Then check everything under Google Play Services EXCEPT GMS
Now go into the SHIELD'S Settings > APPS > and force stop and Clear Data for Google Play Services, Google Services Framework, and the Google Play Store. Reboot.
Remember that you can turn the safetynet module off, which may be needed to do so you can run adb as root or perform other root operations
jenneh said:
And probably QEMU the arm architecture version too! <--Idk how to use the arm qemu yet but I have some videos stored away and some ambitions to build a proper android vm that is arm based and open source, and wont plant crap all over your drive! lol.
this man is a god send
Click to expand...
Click to collapse
Why do you want that? You’d end up converting arm code to run on x86, way more efficent to just run an x86 version.
But if you really want, its possible - https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html
ajolly said:
Why do you want that? You’d end up converting arm code to run on x86, way more efficent to just run an x86 version.
But if you really want, its possible - https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html
Click to expand...
Click to collapse
I want to do it to know how to, haha. not really for anything practical right now, just for practice. and Thank You so much!!
jenneh said:
I want to do it to know how to, haha. not really for anything practical right now, just for practice. and Thank You so much!!
Click to expand...
Click to collapse
i have not extensively tested it, but it seems like windows subsystem for android (on windows 11) includes an arm emulation layer. Overall its one of the nicest android emulation experiences, at the downside of not supporting all functionality properly - like notifications.
The rooting worked good, but ai upscaling does not work, I have tried your instructions. When I went to test out a video , it would only put it to basic not al-upscaling. I put it to enhance it says yes. But it's same as basic, no change in inhanced. And no to ai-enhanced. I did all the instructions that was given on this site. So I put back my Nvidia shield tv pro back to 9.1.1. thanks for all your hard work. ,. Hope someone figure it out for Ai-enhanced.
abc1054 said:
The rooting worked good, but ai upscaling does not work, I have tried your instructions. When I went to test out a video , it would only put it to basic not al-upscaling. I put it to enhance it says yes. But it's same as basic, no change in inhanced. And no to ai-enhanced. I did all the instructions that was given on this site. So I put back my Nvidia shield tv pro back to 9.1.1. thanks for all your hard work. ,. Hope someone figure it out for Ai-enhanced.
Click to expand...
Click to collapse
Your message you mailed said you used 480 p video so no that would not work. I tried the same thing with little house on the prairies and then read an article that said to use 720p or 1080p
jenneh said:
Your message you mailed said you used 480 p video so no that would not work. I tried the same thing with little house on the prairies and then read an article that said to use 720p or 1080p
Click to expand...
Click to collapse
I also tried it on 720p , and 1080p
@abc1054 Not sure then. This is still new so as more people test things and report their results we can work out the kinks. I know some people were waiting till the weekend. Thank you for trying.
I thank everyone that has contributed to this project. Thanks for all your hard work.
I reinstall the Nvidia shield tv pro 9.1.1 and rooted it, everything works but the ai upscaling, and time before I installed 8.2.3. Even checked the safetynet and was all good. So I don't get why Ai upscaling don't work. Did everything in this forum. I'm confused, if someone ever tested it, with upscaling.. it does not work. Sorry. Test it twice now. No go. Video on 720p and 1080p. Thanks again.
I have notice that google play is not certified. With the settings that was given above.
abc1054 said:
I have notice that google play is not certified. With the settings that was given above.
Click to expand...
Click to collapse
Google play is uncertified.. but rooted. When tested safety net was passed.. but play store is uncertified.. maybe its the problem of AI up scaling.
Clean installed 9.0 then manually updated 9.1.1, then did the instruction here, and got this result

[ROM][13.0_r43][Official]crDroid Android[v9.5-r2][May 2023 ASB]

{
"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"
}
*** Disclaimer ***​I am not responsible for any damage you cause to your device.
I hope you like reading.
You have been warned.
crDroid is built on top of LineageOS, and is designed to increase performance and reliability over stock Android for your device, while also attempting to bring you many of the best features in existence today.
​Features:​General:​See our current feature list at our GitHub!
Device-specific:​
OnePlus Camera & Gallery fully working (using APKs directly from OOS 11.1.2.2 or apkmirror.com with verifiable signatures; currently shipping OnePlus Camera v3.14.40 and OnePlus Gallery v4.0.297); including 60fps video recording in 1080p & 4K, watermark, depth effect, smart content detection, actually-working HDR, et al.
DeviceExtras for OnePlus-feature-specific customizations including alert slider modes, DC dimming, High Brightness Mode including customizable Auto-HBM threshold, customizable rendered FPS overlay, digital earpiece/mic gain controls, built-in UI jitter test, and 3-category vibration strength control (thanks to AnierinBliss for all his work on this implementation).
OnePlus-style color modes available through LiveDisplay (6 & 6T have slightly different implementations and you may not notice a difference, but think of "Natural" and "Wide Gamut" like uncalibrated versions of "sRGB" and "DCI-P3").
Ongoing kernel tuning (trying to get the best of both worlds tuning existing QTI perfd & scheduler & lmk, rather than cutting over to Google libperfmgr/powerhints/userspace lmk, definite improvements over vanilla LOS, mostly importing/adapting work by EdwinMoq and mcdachpappe).
Upstreamed updates from 4.9-q branch of Android common kernel for 4.9 LTS (merges courtesy of BananaFunction).
Everything you never wanted to know about slots & A/B devices (but have been forced to find out):​
Spoiler: Show/Hide
"Clean flash": Removing device protection & clearing user settings before installing a bootable system install zip by formatting data.
"Dirty flash": Flashing a ROM zip (usually upgrading to new version, sometimes just re-flashing the existing one) without wiping data or anything first.
"Wipe data": This used to be synonymous with "factory reset" in TWRP, without formatting the data partition and losing the contents of internal storage. Now, with TWRP being deprecated and using built-in LineageOS-based recovery, "wipe data" and "factory reset" mean the same thing as "format data" (which means, everything in internal storage gets erased).
"Format data": Formats the data partition itself, resets all file-based encryption keys, loses all contents of internal storage, and in fact deletes all "user 0" directories (this has some implications for internal storage before & after first boot).
"User 0" directories are a series of directories that store userdata for the primary user, "Owner", and get created in various places throughout the filesystem on first system boot if they don't exist already. Anything you copy to "internal storage" while booted in recovery after "formatting data" will actually be copied to /data/media/ instead of /data/media/0/, and will become invisible to regular file browsing after first boot once the system has created /data/media/0, since the system will prefer to use that path for internal storage from then on (so you'll need a root file browser to delete things from /data/media, or just ADB sideload things instead of copying after formatting but before booting).
"OTA package": Originally an abbreviation for "over the air", referring to how a software update could be delivered (as opposed to having to take your phone to a carrier's store for a firmware update via serial/USB connection). The common usage in Android circles is any installation zip file that actually includes a bootable system. Is always installed to the currently "inactive slot", and will trigger a slot switch upon the next reboot.
Some partitions are duplicated (system, vendor, boot, and a couple others, but not data) and have a "slot A" & "slot B" copy.
"Slot A" and "slot B" are absolute designations, but most installer zip scripts use the relative designations: "active" and "inactive". Whichever slot you're booted from currently is "active", and the other one is "inactive".
Installing a zip file that's flagged as being an OTA package will 1) install the contents to the "inactive" slot, and then 2) flag the bootloader to switch which slot is considered "active" and "inactive" upon next reboot; causing it to attempt to boot from the formerly-inactive slot's boot partition.
The OxygenOS full OTA zip files and all custom ROM installer zip files are considered "OTA packages" and will trigger a slot switch on next boot after installation.
You can install multiple OTA zip packages one after the other without rebooting in both the stock recovery and TWRP; they will all get installed into the correct partitions in the "inactive" slot, one on top of the other, and then it will swap active & inactive upon reboot.
We don't use what are called "delta" updates, which can patch existing partitions by block or by file; we use full filesystem images. So for us, OTA zip packages are really just a bunch of partition filesystem image files all wrapped up into a "payload.bin" with some extra instructions & metadata/checksums, so when you flash a ROM, it overwrites entire partitions at a time instead of individual files or filesystem blocks within that partition. So if you've changed something in a partition like system that gets written as part of flashing an OTA zip, all your changes are gone. The only thing in the system partition afterward will be what was in the system.img that was included in the ROM zip payload.
The partitions that crDroid, LineageOS, and most custom ROMs for OnePlus 6 & 6T install to when flashing are boot (contains recovery & kernel), dtbo, system, vbmeta, and now vendor as of Android 12. If you are planning on going back to an Android 11 ROM that does not build the vendor partition from source (so everything except SyberiaOS, essentially), you'll need to flash the OOS stock vendor partition to both slots from fastboot before installing the OTA zip.
"Prebuilt vendor" vs. "source-built" vendor partitions: when first trying to get a custom ROM working on a new device now that we have separate system & vendor partitions & Google's "Project Treble" is a thing, you'll often just leave the contents of the vendor partition alone, because that's where all the proprietary or device-specific stuff lives (manufacturer specific hardware drivers & interfaces, any DRM libraries, custom frameworks & selinux policies for talking to them), and you make a compatibility map of what framework versions you're compiling against in system and what vendor version they're compatible with or supersede or you overlay updated things that should replace stuff in the vendor partition and keep it in system_ext instead. But you're also limited in that if there are some things in vendor, you CAN'T work around it from the ROM side (like, OnePlus Camera working correctly). So often, once the basics are functioning, the goal is to move to building the contents of the vendor partition from source, because you then have the freedom to fix problems with sepolicy, library/framework mismatches, etc. and make things work with the custom ROM instead of only working with the OEM's flavor of Android, and you can still copy individual pre-compiled files from the stock vendor filesystem image if needed (like if there's no open-source equivalent for some driver). We finally got a source-built vendor bringup for OnePlus SDM845 (enchilada & fajita) as part of the Android 12 (lineage-19.1) bringup, so some things work better, and some things work worse, but at least it's possible to fix things and keep moving forward to newer Android versions. However, since we're still dependent upon at least SOME binary blobs copied over from OxygenOS 11.1.2.2, the vendor patch level will remain at the release date for the last release of OOS 11, because we can't know for sure that some component isn't vulnerable, no matter how new all of the source-built components are.
"Updating firmware" simply means we're flashing updated contents from the manufacturer into all the OTHER partitions besides the ones that the ROM OTA zip touches. There are another dozen or more of those, besides system & boot, that the full OxygenOS OTA zip would normally write to when you install it. The contents of the system & vendor partitions in custom ROMs for our device are generally built against a particular version of OxygenOS; in this case OOS 11.1.2.2 was the final release by OnePlus before they announced the end of support & updates for the OnePlus 6 series. Some people are still on older firmware that is now dramatically different than what the current custom ROM was intended to deal with (that is, all the stuff from OxygenOS is still based on Android 10, while the ROM is expecting compatibility with Android 11), and while I tend to agree that OxygenOS 10 was better than 11, that doesn't matter when you're talking about installing this custom ROM over it. So please; update to OOS 11.1.2.2 firmware (see instructions below).
Notes on stock recovery & TWRP:​
Spoiler: Show/Hide
TWRP is deprecated & unsupported, for purposes of bug reporting & getting help with crDroid. I liked it personally, and I agree with all the reasons for wanting to try and keep using it; but the source has been described as a hot mess, the official releases for enchilada & fajita have not had good compatibility with Android 12 or newer (trouble with decrypting file-based encryption for userdata), and there are too many variations & unofficial TWRP-based recoveries for me to keep track of.
Meanwhile, the stock crDroid recovery (based on LineageOS) intentionally cannot decrypt userdata, and doesn't correctly process addon.d OTA survival scripts on A/B devices; so after using it to flash any OTA zips, you'll need to reboot to recovery and manually flash things like Magisk or GApps installers. But for all those shortcomings, it has working fastbootd (aka "Userspace fastboot", which is what happens when you go to "Advanced", then choose "Enter fastboot") that lets you flash one image to both slots at once with a single command, and unlocks critical partitions... while the OnePlus OEM bootloader (where it says "Fastboot Mode" in a square, then goes to the big green "START" text over white & dark red terminal font type text) can't be used to flash every partition to update firmware. Personally, I still think of it as wannabe-class and not a "proper" custom recovery until the Lineage team 1) implements userdata decryption so you can manage files in /data and install updates from internal storage, 2) allows for a factory reset the way we've always all understood it ("wipe data") WITHOUT nuking the contents of internal storage for no good reason ("formatting data"), and 3) gets the updater to call backuptool correctly & process addon.d OTA survival scripts on A/B devices. But they're not going to, and since crDroid is LineageOS-based; it's what we've got, and fastbootd is the best way to update firmware.
The takeaway: If you want to try different custom recoveries (new builds of TWRP, OrangeFox, PBRP, whatever), feel free; and let us know how it works! But you're on you're own doing that; it's an unsupported configuration.
For purposes of doing updates, plan on doing your initial installation from bootloader & recovery then applying subsequent system OTA updates using the built-in Updater tool (Settings > System > Updater), both with new OTA releases and when choosing a file from "Local Installation". It executes OTA survival scripts correctly from /system/addon.d/ as well. I've personally tested and it correctly preserved Magisk canary for several versions, and MindTheGapps & NikGapps on my tester fajita and MinMicroG "system" install package on my daily driver enchilada.
The built-in recovery DOES support use of a USB thumb drive and will mount it in OTG mode, so any place in the instructions you see "adb sideload", you can instead copy all your things to a FAT32-formatted USB stick and then apply the update from there instead.
Flashing Instructions:​Pre-installation prerequisites:​
Spoiler: Show/Hide
Make sure your bootloader is unlocked (and don't plan on relocking it ffs).
Make sure you have a reasonably-current, working installation of android platform tools (adb & fastboot command line binaries & necessary drivers) on your computer, USB drivers, and a known-good USB cable (see links in post #2).
Make sure you've downloaded the most recent full OxygenOS OTA installer zip (11.1.2.2), crDroid zip, matching crDroid boot.img, and whatever Magisk/GApps/microG installation packages you want to use to your computer (see links in post #2).
Make sure you've backed up whatever data you want to keep to somewhere that's not on your phone; for a new install, we're going to format the data partition and you're going to lose everything from internal storage.
If you don't KNOW you already have OOS 11.1.2.2 flashed to BOTH slots, follow the "Updating Firmware" instructions below. You may also want a utility like 7-zip in order to extract .tgz files under Windows.
Updating Firmware:​
Spoiler: Show/Hide
Reboot phone to bootloader (no USB cable connected until you've entered OEM bootloader).
If you're not already using the stock crDroid recovery, you'll need to 'fastboot flash boot path/to/boot.img' on the computer, substituting in the path & filename for the current crDroid boot.img that you downloaded as part of the prerequisites listed above.
Reboot to bootloader again (actually loads new bootloader contents that you just flashed).
Use Vol +/- buttons to select "Recovery mode" and press Pwr button to boot stock recovery.
Tap "Advanced", then tap "Enter fastboot" (the already-selected first option).
Follow the instructions for extracting the partition images from the official OxygenOS Updater full OTA zip you already downloaded using the "payload-dumper-go" utility, and flashing them one at a time, from https://wiki.lineageos.org/devices/enchilada/fw_update or https://wiki.lineageos.org/devices/fajita/fw_update, except for the very last command ('fastboot reboot').
If you're only updating firmware and were already on crDroid, you can just 'fastboot reboot' which will go back to booting the system normally. If this is part of coming to crDroid 9.x from another ROM, continue with the first-time installation instructions below.
First-time installation:​(when coming from any other ROM or stock OOS or crDroid 8.x or earlier)
Spoiler: Show/Hide
*Back up anything you want to keep from the phone's internal storage to your computer/cloud storage, because we're going to format the userdata partition in this process.*
Download boot.img & rom zip to computer.
Reboot phone to bootloader.
Flash boot image to both slots ('fastboot flash boot_a boot.img' then 'fastboot flash boot_b boot.img').
Reboot phone to bootloader.
Use vol +/- keys to select recovery mode & press power button to enter recovery.
On phone, choose "Apply update" > "ADB sideload" & then from computer, 'adb sideload path/to/rom.zip' (substituting the actual path to the actual filename) to sideload the installation zip; the orange recovery header graphic will disappear until the process has completed ("error" messages like "no error", or finishing at 47% on the computer are normal).
On phone, choose "Factory reset / Wipe data", and confirm (note: this will erase everything from the phone's internal storage; make sure that you have backed up anything you want to keep first!). If you want to try out f2fs as a filesystem for userdata, give it a shot. It should be stable. If you don't know, just pick ext4; that's what we've been using forever.
On phone, choose "Advanced" > "Reboot recovery" to reboot into recovery on the newly-flashed slot.
Use adb sideload to flash GApps or microG installer zips (MinMicroG installer requires you to choose "Advanced" > "Mount/unmount system" first, others might as well).
Reboot into system.
If you want to root with Magisk, complete the initial first boot setup, then reboot the phone back into recovery, choose "Apply update" > "ADB sideload", and then from the computer, 'adb sideload path/to/latest_magisk.apk' to flash Magisk, and reboot back to System afterwards.
???
Profit!
Update installation:​
Spoiler: Show/Hide
Use the built-in Updater ("Settings > System > Updater") to apply OTA updates as they become available, or to manually flash a ROM zip by going to the three-dot menu in the upper right and choosing "Local update". Seriously, that's it; it processes addon.d survival scripts correctly, including Magisk, MindTheGapps, NikGapps, MinMicroG, and presumably others.
If you must update from recovery, then be aware that the stock crDroid recovery does NOT process addon.d OTA survival scripts correctly on our non-dynamic, non-virtual A/B system-as-root device, so you'll need to do the following:
Reboot phone to recovery.
Choose "Apply update > Apply from ADB" on the phone, and 'adb sideload path/to/installation.zip' from a terminal on the computer (or use a USB drive with appropraite files copied to it and choose OTG as the update source instead).
After installation has completed and the menus have reappeared on the phone, go back, then choose "Advanced > Reboot to recovery" on the phone.
Choose "Apply update > Apply from ADB" on the phone, and 'adb sideload path/to/installation.zip' for each addon like Magisk or GApps installation zip you need in order to match what was initially installed on the phone.
Reboot system.
Please see post #2 for current boot.img files, information about Google apps & microG, release notes, installation notes, known issues, and lots of helpful links.
Please see post #3 for information about bug reporting & troubleshooting.
​Sources:​ROM:​https://github.com/crdroidandroid
Device trees:​https://github.com/crdroidandroid/android_device_oneplus_enchilada
https://github.com/crdroidandroid/android_device_oneplus_fajita
https://github.com/crdroidandroid/android_device_oneplus_sdm845-common
https://github.com/crdroidandroid/android_hardware_oneplus/tree/13.0-op6
Kernel:​https://github.com/crdroidandroid/android_kernel_oneplus_sdm845
Vendor-specific:​https://gitlab.com/crdroidandroid/proprietary_vendor_oneplus_enchilada
https://gitlab.com/crdroidandroid/proprietary_vendor_oneplus_fajita
https://gitlab.com/crdroidandroid/proprietary_vendor_oneplus_sdm845-common
https://gitlab.com/crdroidandroid/android_vendor_oneplus_apps
https://github.com/Terminator-J/vendor_ih8sn
Download:​ROM:​https://crdroid.net/enchilada/9
https://crdroid.net/fajita/9
Changelog:​https://crdroid.net/enchilada/9#changelog
https://crdroid.net/fajita/9#changelog
Links:​Visit the official website at crDroid.net
crDroid OnePlus 6/6T Telegram Group
crDroid Community Telegram Group
crDroid Updates Telegram Channel
Donate to help our team pay server costs (PayPal or Patreon)
Donate to support me in maintaining this device (PayPal or Patreon)
crDroid 9.5-r2 - May 2023 ASB release notes/changelog: ​Changelog since v9.5 (03 June release:
Device trees/hardware/kernel/vendor changes pulled from LineageOS.
Still May 2023 ASB, since the June security bulletin requires merging QPR3, which the ROM team is currently working hard at finishing.
crDroid:
I managed to re-add independent Battery Styles for QS shade compared to statusbar (and battery estimate if you have "turbo", Google's DeviceHealthServices) installed. Enjoy it while it lasts; everything will be ruined again with the QPR3 merge here in a bit.
At least a couple things I'd imagine, I dunno. Haven't been paying attention because I'm always a month behind.
Device-specific:
Updated kernel commits from bananafunction's lineage-20-test branch & upstream LineageOS lineage-20 branch.
Dropped ZRAM writeback (meh, less thrashing on the flash storage pls).
Dropped a few more of the overly-ambitious changes from 9.5 that didn't seem to actually do much, except make it a little more battery-hungry. I think battery life is back where we want it to be.
Re-added the "squash revert" commit in kernel to help with some of the camera usage causing drops to Qualcomm Crashdump mode. But honestly, it's going to keep being a thing with newer Google Camera ports. If you need stability for lots of photos, stick with a GCam port (like DMGC or Urnyx05) based on v7.3 or v7.4 for best results.
"Misc tweaks and bugfixes".
If it feels like it's still slightly too battery hungry, turn on the "GPU Throttling" toggle in DeviceExtras to save a little bit more (may cause a little more jank in gaming).
Other release-specific notes:​
People keep complaining about boot loops or losing their GApps or massive battery drains. I get it, sometimes the "Settings > System > Updater" has issues. But frequently the issue is a reading comprehension failure, and the answer keeps being the same: do a dirty flash from the included LineageOS-based crDroid recovery according to the instructions below, and DON'T FORGET TO REBOOT RECOVERY AFTER FLASHING THE ROM ZIP BEFORE FLASHING GOOGLE APPS. If you read NOTHING else from the first post about slots and stuff, at least FOLLOW THE INSTRUCTIONS.
I now have "elite builds" of my custom NikGapps config available for our device, and 16 June and newer releases of "crDroid-op6" now include a few extra packages in there that should help with some app compability going forward (added DeviceSetup, GooglePartnerSetup, DeviceHealthServices, and CarrierServices). See the "Google Apps" section below.
And if you come to the TG channel, I've got a little something something for you kernel-wise that isn't going into the official release build.
Known issues:
Spoiler: Show/Hide
Upstream crDroid/LineageOS things:
Custom fonts in crDroid Settings don't get reapplied to everything on reboot; need to select a different font & then back to preferred font after restarting.
There might occasionally be icons that don't work when "Themed Icons" is enabled in crDroid Home settings. If home screen keeps going black and then reloading, open Settings, then go to Apps > Default Apps, and click the gear next to "crDroid Home" to open our built-in launcher settings, and toggle off "Themed Icons" for now. Send me the crash report URL (paste.crdroid.net) or MatLog zip and it'll tell me which icon needs to get fixed.
Google Apps: If you have MindTheGapps or older NikGapps and you have SetupWizard installed as part of your Google Apps package, then enable Multiple Users and create a new Guest User, the "Setup Wizard" activity will fail to run at the end of the new profile creation, which will leave a couple props unset that normally tell Android that you've finished initial setup; and you won't be able to interact with the notifications/QS shade & will only have the "back" button in the navbar. You can either wait 10 minutes and it automagically fixes itself, or exit the "Guest session" without deleting data, and the next time you enter it, you'll have full control over navigation & statusbar/shades. This seems to be a limitation on multiple custom ROMs currently.
I don't know if this is an upstream issue or device-specific or certain Google Apps packages, but Google Assistant Hotword Detection/Voice Match causes media playback stutter sometimes. So you can either disable it, or doing an adb sideload installation rather than update seems to help some people (permissions issue in Android 13? who knows).
If you get problems with Google Play Store or Android Setup complaining that you need to connect to wi-fi in order to download updates, go into Settings > Apps > "See all __ apps" > [overflow menu] "Show system", then for Android Setup, Google Play Services, and Google Play Store, get app info and make sure to toggle on Network Access for all of them (or turn it off & back on), clear app cache, and then reboot as quickly as possible after. That should get them to realize they CAN connect to the internet after all.
People don't read documentation.
You tell me, with logs!
Installation notes:​
Spoiler: Show/Hide
In case of bootloop (boot animation stuck for longer than about 2 minutes and never gets to lock screen), reboot to recovery and manually flash the ROM zip via ADB sideload from computer, then reboot to recovery again, and re-flash your same Google Apps/microG/Magisk/whatever install zips (again via ADB sideload), and reboot system. This *should* take care of any lingering errors with old things getting stuck in your /system/addon.d/ directory that might be trying to preserve old privileged system apps without privileged permissions (which is what causes those boot loops in the first place).
The built-in OTA updater in Settings > System > Updater goes a lot faster if you go into Updater preferences and toggle on "prioritize updater process", and make sure the screen stays on by using the Caffeine QS tile, or "never sleep while charging" toggle in Developer Options, or changing your Display timeout to 30 minutes.
If you're installing MinMicroG instead of Google Apps, then before ADB sideloading the zip, from built-in recovery on the phone, you might need to go to Advanced > and choose "Mount/Unmount System" first. Then go back to "Apply update" and proceed with ADB sideloading as normal to install. I've heard this has been fixed in more recent builds this year, but haven't had a chance to confirm.
General Notes:​
Spoiler: Show/Hide
Yes this ROM supports package signature spoofing permission for microG compatibility out of the box (but will work without ANY GApps/microG implementation installed as well).
Requires OOS 11.1.2.2 firmware (last official release). You should consider using an Android 10 ROM if you want to continue using Android 10 firmware.
Tested against latest Magisk canary, works well.
No there won't be official builds with inline GApps; please don't ask. The dev team's policy is vanilla-only whenever possible (and it's very possible with our devices).
Google Apps:​
Spoiler: Show/Hide
Maintainer doesn't often use Google Apps personally as daily driver, but here are some notes gathered from peoples' testing:
TL;DR: If you're doing a fresh install, use this Nik GApps custom version (updated 16 June 2023):
https://sourceforge.net/projects/nikgapps/files/Elite-Releases/crDroid-op6/NikGapps-T/
Otherwise, use Nik Gapps Core + Setup Wizard addon (if you're going to restore from a Google Drive cloud backup during setup; *not* the Pixel one, it breaks our launcher) + GoogleSearch addon (for assistant & hotword integration) + GoogleTTS (more voice integration) + Markup (optional, good screenshot editor that you cannot add from Play Store later as a user app) + DeviceSetup, CarrierServices, GooglePartnerSetup, and DeviceHealthServices for now.
https://nikgapps.com/downloads#downloads
If you're already on MindTheGapps, and it's working fine, then ignore this. If you're on official MindTheGapps and facing weird battery drain issues, try updating to newer official version and doing dirty flash of ROM & MTG zip from recovery. If *that* doesn't work, try my modified build. It seems to vary by person and I don't know why.
Due to intermittent issues with excessive battery drain & missing location or network access permissions after Android 13.0 QPR1 that seemed to correlate with MindTheGapps 13.0 arm64 current official release, but not with NikGapps, I went ahead and made a modified build of MindTheGapps that includes additional allowances copied into permissions, default-permissions, and sysconfig XMLs from NikGapps, and the issues seem to be resolved. If you have battery drain issues with MindTheGapps official, then I recommend this package for everyone until such time as I can get the fixes narrowed down and commits submitted for inclusion upstream to the official MindTheGapps project. I have never been able to recreate the drain issue myself, although I have experienced the permissions problems with failure to pre-grant permissions for network access or location to Play Store and Setup Wizard/Android Setup.
However, some folks have had issues with my build that they didn't have with official, so... I don't even know any more. Use what works best if you're already on MindTheGapps.
https://github.com/TJ-Releases/mtg/releases/tag/tau-20230224
Until we can get a fix submitted, I am NOT recommending the use of official MindTheGapps 13.0, as it has begun exhibiting battery drain & permissions retention problems after Android 13 QPR1 was merged in December 2022. If you still need official MindTheGapps, you can get it here:
http://downloads.codefi.re/jdcteam/javelinanddart/gapps
To switch from official MindTheGapps to my modified build (and back):
- Reboot phone to recovery
- ADB sideload the latest ROM zip
- Choose Advanced > Reboot recovery to reboot phone directly to crDroid recovery again
- ADB sideload desired MindTheGapps zip (use my modified build, unless you're specifically trying to help me trace down permissions/battery issues)
- ADB sideload Magisk (if you're rooting)
- Reboot system
Otherwise, in general, try to go with the lightest weight package you can and don't replace the stock dialer/messaging apps (just download them from Play Store and set defaults).
BitGApps ... exist. No idea how that's going. I hear it works though, so give a shot. Don't know the link, sorry.
Flame Gapps I have no idea about in Android 13.0.
https://flamegapps.github.io/download.html
Since we are LineageOS-based, here are the Lineage team's recommendations & reasoning:
https://wiki.lineageos.org/gapps.html
OpenGApps are not recommended, for reasons outlined in the LineageOS wiki link above.
Please report what worked for you, whether or not it survives updates when using the System Updater, whether or not it survives manual "dirty" update flashing via built-in recovery, and whether it passed SafetyNet, so I can keep this list updated.
Magisk and Google Play Integrity API (SafetyNet):​
Spoiler: Show/Hide
Without root:
We pass SafetyNet/Play Integrity out of the box, avoiding hardware-backed attestation & falling back to basic integrity (using PixelProps in framework).
I also build & ship ih8sn inline, which should cover all sensitive props to keep most apps from being able to detect root or bootloader unlock.
I don't know how to set up everything correctly to sign builds & verify everything needed to safely enable bootloader re-locking. I'm not even sure it's possible. So just don't try it; you're asking for a trip to MSMTool-land.
With root (Magisk):
If you root with Magisk and configure the Zygisk denylist correctly (see below), you should still pass. For fastest "certified" status, wait after initial installation & signing in to Google to update Play Store & Play Services before rebooting to recovery & ADB sideloading Magisk to root.
Be sure you're on an official topjohnwu release; I recommend beta or canary. "Magisk Delta" is unneeded; we already spoof the props you're worrying about.
Do not install kdrag0n's "Universal SafetyNet Fix"; it's not only unnecessary with this ROM but actively causes problems & interferes with other things (like preferences resetting every reboot).
Look, I don't like the idea of "Shamiko" or anything else that employs LSposed techniquies or similar to do framework injection, and I'm not going to troubleshoot bug reports from people using it. It's a Magisk module that's not open source, so there's no way to verify what it's doing with the root access you have given it. But if that's what makes your ****ty bank app work, then do what you gotta do. I would change to a credit union that doesn't try to hold you hostage with crappy apps.
How to configure Magisk & the Zygisk denylist:
1. Hide the Magisk app:
Go to Magisk > Settings, and choose "Hide Magisk app", granting "install from untrusted source" permission along the way if needed, re-open the hidden "Settings" app
2. Enable Zygisk process hiding:
Go to Magisk > Settings
Enable Zygisk, Enable Enforce Denylist
3. Set up Zygisk denylist:
From Magisk Settings, go to Configure Denylist
Tap overflow (three-dot) menu in upper-right, and select "Show system apps"
4. Find "Google Play Services" and select the following:
com.google.android.gms
com.google.android.gms.persistent [needed for Google Pay/Wallet]
com.google.android.gms.unstable
com.google.android.gms.snet
5. Find "Google Play Store" and select the following:
com.android.vending
6. [Optional, for contactless payment] Find "Google Wallet" or "Google Pay" if installed and select the following:
everything, who cares; it's like 2 processes
7. Back out of "Configure Denylist"
8. Get app info for Google Play Store, force stop, and clear app cache
9. Get app info for Google Play Services, and clear app cache
10. Reboot
Use something like YASNAC to verify that you're now passing Play Integrity API attestation with basic integrity.
Other helpful links:​
Download current boot.img files: enchilada / fajita (also attached below)
Android platform tools (adb & fastboot)
OxygenOS 11.1.2.2 Full OTA: enchilada / fajita
Firmware update instructions (LineageOS Wiki): enchilada / fajita
MSMTool (oh now you're in trouble - use latest unless you have a good reason to intentionally downgrade): enchilada / fajita
MinMicroG (recommend the "Standard" package from "abuse-cl" releases; needs you to "Mount System" in crDroid recovery Advanced options before installing)
Magisk (recommend latest stable/beta v26.1 release; bootloop-to-recovery-after-OTA-update issue appears to have been fixed).
LOGS OR IT DIDN'T HAPPEN​How to make bug reports (and how not to):​TL;DR: if you've got adb set up on the computer and authorized on the phone, plug into a USB cable, run adb bugreport from a terminal, and send me the zip file it generates, ALONG WITH A DESCRIPTION OF YOUR PHONE SETUP AND WHAT THE PROBLEM ACTUALLY IS.
Spoiler: Show/Hide
i appreciate bug reports, but I also need details. If an app is crashing ("FCing", meaning "force closing") then at a bare minimum, copy the crash log URL and share that with your report.
That probably won't be enough, though, which is why there are two main logs that I'm after, logcat and dmseg.
1. logcat​You can either use the built-in MatLog tool to acquire this, or get it via USB debugging and adb on the computer (which was in the prerequisites section of the XDA first post, so you installed platform-tools and have adb & fastboot on your PATH, riiiight? )
Using MatLog
MatLog is shipped built-in, and it works great. It's built for an older API though, so you'll need to manually grant it permission to access all files (it doesn't know enough to ask since it's a system app and assumes itself to be privileged). If you don't, then you can only use the "Sharing" interface to save logs, rather than saving them to internal storage.
To use, open the MatLog app, and go into settings and tick the box for "omit sensitive info" so that you don't end up sharing your IMEI or email addresses with the world. Probably still best if you PM me the logs instead of share to the group.
Ideally if it's a reproducible problem, reboot, open MatLog, do the thing that causes the buggy behavior, switch back to MatLog, tap on the menu and choose "Save Zip", then send me the resulting file (they're saved to /sdcard/matlog/saved_logs/). Otherwise, try to open it as soon after the issue as possible and Save Zip.
Using ADB (Android debug bridge)
Since we're currently building as "userdebug", you can always grab a logcat even without being rooted. I'm assuming you've got adb and fastboot installed & can run them from a terminal.
Enable Developer Options if you haven't already by going to "Settings" > "About Phone" > scroll down to the bottom and tap on the "Build number" field 7 times to enable, then back up to System and choose the new "Developer options" menu, and toggle on "Enable USB debugging".
Connect the phone to computer via USB, then on the computer open a terminal type adb devices to start the server & verify you can see the phone. At this point you might get a prompt on the phone asking if you want to trust the computer with some ID for debugging; tell it yes (probably always yes, in case you need to do troubleshooting later due to a boot loop). You should see your phone's serial number listed under the output of adb devices in the terminal window. If not, you probably need to install OnePlus USB drivers.
Run adb logcat from the terminal and get ready for a wall of text. Ctrl-C to stop the firehose after about 10 seconds. Save the output to a file. Note: this is the stupid way assuming you just opened a command window or built-in PowerHhell in Windows. Any linux shell or current version of PowerShell should instead be able to just run adb logcat > logcat.txt to dump the output directly to a text file in the current working directory without the wall of text; just give it about 10-15 seconds and Ctrl-C to stop the capture.
That's it! PM me the file, with any other details about what's happening and your setup (device, how you flashed, GApps, and so on).
2. dmesg​Requires root, probably USB debugging, platform-tools added to your PATH, and knowledge of what the below instructions mean
Open a root shell on the phone (via local terminal or adb shell via USB).
Run dmesg and save the output to a text file.
PM me the dmesg.txt file, along with a logcat capture as well, and a detailed description of what the problem is, what the behavior is you noticed, how to reproduce, details of your setup (which device, what GApps, what Magisk modules, any custom kernels, how you installed, and so on).
Protip: If you're not rooted, since this is a "userdebug" build, you can go into Settings > System > Developer options, turn on the toggle for "Rooted debugging", and then on your computer, do adb root to restart the adb server process. The next adb shell you run from the computer will get superuser privilege instead and you can run dmesg or do other things without having to root with Magisk.
If you are rooted, I highly recommend installing & using SysLog (by Tortel), available on the Play Store and on F-Droid; it's a GUI app that lets you easily capture both logcat & dmesg & can generate zip archives to send to your favorite maintainer, while allowing for scrubbing potentially sensitive data, and has some other advanced filtering options.
3. A detailed description of the actual problem & how to reproduce​Maintainer is not a mind-reader
Describe what the actual problematic behavior is, compared to what the expected behavior is. Don't just throw a logcat at me and expect me to figure out what you think was actually wrong. Explain how to reproduce the bug, and what you were doing at the time. Give me details about your configuration: are you actually on the most current version, did you clean install, did you use the recommended MindTheGapps package, are you rooted & if so what add ons/modules/root-required utilities are you using regularly, etc.
A picture is worth a thousand words. Moving pictures even moreso. If you can use screenshots, or better yet a screen recording, to show me how something is failing, that helps a TON.
Realize that a number of things are beyond my control. I'm not a software developer, I'm not on the ROM dev team, and some things might never get resolved. It's *still* better than OnePlus though, hey?
Feature requests are not bug reports. If you don't have a stack of tested commits that you can submit as a pull request for the dev team to merge, it's not likely to happen. But you can always ask politely!
Other Notes:​"Supported" status - PLEASE do not do these things if you want help:​
Spoiler: Show/Hide
It's your device to use the way you want of course, but don't expect support for your bug reports if you...
didn't update firmware in both slots.
didn't do a clean flash when first switching to this ROM at this major Android version (13.0).
installed with TWRP/any other custom recovery (or, worse yet, installed that custom recovery after).
aren't using the built-in kernel.
are using extensive root-required modifications & Magisk modules like Project Themer, Lsposed/Xposed/Riru/Shamiko, Dolby Atmos, Viper4A, modified Adreno GPU drivers, etc.
immediately start flashing stuff like "finalize.zip" or migrate restore zips instead of following the actual instructions.
are running decrypted (ugh, just don't).
re-locked your bootloader for some reason... you're on a custom ROM; don't do that.
followed some other installation method different than the steps in the first post.
tried to dirty flash from an earlier crDroid/Android major version (like 8.x) without a factory reset.
Connectivity issues:​
Spoiler: Show/Hide
If you are having problems with wifi or mobile data under Android 13, try some of the following (and please let us know if one/all actually fixed things for you):
Get info for the Google Play Store app, go to "Mobile data & WiFI", and toggle network access off (if on), then on (again). Force close the app, then re-open it; see if it finds the Internet now.
Same as above, except for Google Play Services (you'll have to find it in "Settings > Apps > See all __ apps > overflow menu > Show system" then it should be in the list).
Go into Settings > Network & internet, scroll down to "Private DNS" and choose a different private DNS provider or simply turn the feature off.
Go into Settings > Network & internet, scroll down to "Connectivity check" and turn it off (in case connections to Google are being filtered at the network level).
Go into Settings > Network & internet > Internet, tap the gear icon next to the wifi network you're trying to connect to, and change Privacy to "Use device MAC" (some networks actively reject spoofed MAC addresses).
Go into Settings > Network & internet > Calls & SMS, and make sure your primary SIM is actually selected for calls, messages, and mobile data, then back up one menu level, go into SIMs, select your SIM if needed, and make sure "Mobile data" is toggled on.
Go into Settings > Network & internet > SIMs, select your SIM, and change the radio mode to one of the ones that *doesn't* start with "NR", like "LTE/TDSCDMA/CDMA/EvDO/GSM/WCDMA" (or the one without the CDMA/EvDO stuff if you know you're not on a CDMA carrier).
Go into Settings > Network & internet > SIMS, select your SIM, go into Access Point Names, and make sure you've got the correct APN selected.
Go into Phone (whatever you have for the default dialer), keypad, type in *#*#4636#*#* to open the "Testing" activity, choose "Phone information", then in the three-dot menu in the upper-right, choose "Select Radio Band" and choose the correct region instead of leaving it on "Automatic".
OnePlus Camera & Gallery:​
Spoiler: Show/Hide
It works. It all works, and it's also the only way to get 60fps video recording on this hardware right now, unless there's a GCam mod with configs I'm not aware of.
This version of OnePlus Gallery requires a Google account to actually exist before it will successfully download the expansion pack. If you're running vanilla or haven't signed into a Google account yet, it won't be able to download the thing it wants.
Oops, I dropped something.
Reserved. If I were you, I'd have reservations about this as well.
One huge ass bug report coming right up
Aaaand we're official!
Just in time to merge Android 13.0_r16 qpr1, which is an enormous rebase of android/frameworks/base/ with over 10K commits different, so Neobuddy89 and the rest of the team have been busy trying to redo all our customization/features on top of THAT for a week now. So everything that was finally working is probably broken again, sweeeeeet!
Thanks again for your work.
I know dirty flash isn't the recommended way, but this worked for me:
OTA 8.10 -> 8.11 -> fastboot flash boot.img to both slots (just in case something's changed since I flashed it the last time) -> reboot to recovery -> dirty flash 9.0 -> flash NikGApps Basic (not the recommended GApps, I know, but I found out too late to switch) - > flash Magisk -> reboot to system.
Last time when I tried to dirty flash 7 to 8, I got a bootloop since I was one version behind unlike this guy, so I figured waiting for the latest 8 release might be the right thing.
So far, so good. System feels much more responsive now and all the minor issues I encountered in crDroid 8 are gone (not sure about RAM management yet, I'll see).
I had a few issues initially, but everything's resolved now:
I had a "Settings Services not responding" pop-up after the first boot, which I fixed by clearing the app's storage
My 6T randomly became completely unresponsive after locking a screen (with a double-tap on the default launcher, I think). I've encountered a similar issue on crDroid 8 several times before, but I think that had something to do with the pocket mode. When it happened on 8, I'd have to force reboot with hardware buttons. This time however long pressing the power button showed me the power menu (although it looked like a standard Android one, with a white background and only 3 options, unlike the crDroid one). This has only happened once and hopefully never will again
My only pet peeves (probably upstream issues and not out device-specific) are:
Weather service doesn't seem to be working (neither OpenWeatherMap nor MET Norway, neither on lockscreen nor the OmniJaws widget). Do I need a custom OWM key?
Mobile icon used to hide when data was off. Now there's a permanent data disabled indicator, which is kinda annoying but I guess I'll get used to it
Terminator.J said:
Aaaand we're official!
Just in time to merge Android 13.0_r16 qpr1, which is an enormous rebase of android/frameworks/base/ with over 10K commits different, so Neobuddy89 and the rest of the team have been busy trying to redo all our customization/features on top of THAT for a week now. So everything that was finally working is probably broken again, sweeeeeet!
Click to expand...
Click to collapse
Bluetooth keeps crashing.Any One Experiencing the same?
For some reason, the GPS doesn't work (in google maps for example). Gave all of the apps location access and made sure to turn on the "use location" toggle. All location services are turned on as well (e.g. google location accuracy). However, location data does work in the metadata of pictures taken by the camera app.
Adnan Hussaini said:
Bluetooth keeps crashing.Any One Experiencing the same?
Click to expand...
Click to collapse
Can't say I've had that issue, with my fitness tracker, or multiple headphones/headsets, or mouse/keyboard...
See post #3 for how to take logs if you'd like to send me a bug report!
Awner said:
For some reason, the GPS doesn't work (in google maps for example). Gave all of the apps location access and made sure to turn on the "use location" toggle. All location services are turned on as well (e.g. google location accuracy). However, location data does work in the metadata of pictures taken by the camera app.
Click to expand...
Click to collapse
Depending on how you installed, or Google apps package, or if you did something like clearing storage for Play Store or Play Services, you might need to go into Settings > Apps > "Show all ___ apps" > 3-dot menu > "Show system", find Google Play Services and Google Play Store and re-grant them permissions again (like location).
Never had a problem with GPS working while driving in Waze regularly, or recording locatoin in photos in in OP Camera, Lineage Aperture (the other "camera" app with darker grey icon).
Please see post #3 for details on how to send me a bug report & what kind of logs/information I'll need.
runtosafety said:
Thanks again for your work.
I know dirty flash isn't the recommended way, but this worked for me:
OTA 8.10 -> 8.11 -> fastboot flash boot.img to both slots (just in case something's changed since I flashed it the last time) -> reboot to recovery -> dirty flash 9.0 -> flash NikGApps Basic (not the recommended GApps, I know, but I found out too late to switch) - > flash Magisk -> reboot to system.
Last time when I tried to dirty flash 7 to 8, I got a bootloop since I was one version behind unlike this guy, so I figured waiting for the latest 8 release might be the right thing.
So far, so good. System feels much more responsive now and all the minor issues I encountered in crDroid 8 are gone (not sure about RAM management yet, I'll see).
I had a few issues initially, but everything's resolved now:
I had a "Settings Services not responding" pop-up after the first boot, which I fixed by clearing the app's storage
My 6T randomly became completely unresponsive after locking a screen (with a double-tap on the default launcher, I think). I've encountered a similar issue on crDroid 8 several times before, but I think that had something to do with the pocket mode. When it happened on 8, I'd have to force reboot with hardware buttons. This time however long pressing the power button showed me the power menu (although it looked like a standard Android one, with a white background and only 3 options, unlike the crDroid one). This has only happened once and hopefully never will again
My only pet peeves (probably upstream issues and not out device-specific) are:
Weather service doesn't seem to be working (neither OpenWeatherMap nor MET Norway, neither on lockscreen nor the OmniJaws widget). Do I need a custom OWM key?
Mobile icon used to hide when data was off. Now there's a permanent data disabled indicator, which is kinda annoying but I guess I'll get used to it
Click to expand...
Click to collapse
There's probably permissions issues going on there. You really should plan on backing up your stuff & doing a factory reset (which will wipe internal storage, sorry) or it's just going to have little lingering issues like this that I can't help with.
Pet peeves:
1. The weather service works flawlessly both with MET Norway & OWM even without a custom API key; came right up for me. Likely needs a clean flash/factory reset to work correctly.
2. Not sure what combination of settings caused that bug to happen, but mobile signal strength should be visible even when data is disabled, since calls & SMS still exist. But yeah; lots of UI-related stuff is likely different. Every major release the ROM dev team has to figure out what will actually keep working or not, and tried to bring features back in or drop them because it's buggy now or causes problems elesewhere or so forth. Honestly the statusbar icon customization options were kind of a mess in Android 12 and it does seem like it's more reliable & consistent now than it was before.
But I understand you miss your favorite setup; I get it. Sorry friend.
Meanwhile, having synced Android 13.0_r16 (QPR1/December ASB), the dev team had to redo all our stack of modifications & customizations on top of it again (for the git-savvy, it's because it's a rebase of all the AOSP repos; more than 10K commits difference, can't just merge in monthly changes).
They essentially had to do Android 13 all over again, and now all of us maintainers are checking to see what broke.
It seems not entirely broken though, so I'll probably start putting up December ASB testing builds in the TG group soon!
Terminator.J said:
Depending on how you installed, or Google apps package, or if you did something like clearing storage for Play Store or Play Services, you might need to go into Settings > Apps > "Show all ___ apps" > 3-dot menu > "Show system", find Google Play Services and Google Play Store and re-grant them permissions again (like location).
Never had a problem with GPS working while driving in Waze regularly, or recording locatoin in photos in in OP Camera, Lineage Aperture (the other "camera" app with darker grey icon).
Please see post #3 for details on how to send me a bug report & what kind of logs/information I'll need.
Click to expand...
Click to collapse
Hi first of all thanks for making this amazing rom! I fixed the issue by formatting my data again. I think everything works now. Really love the device-specific additions that are otherwise missing in other roms. Thank you
I just moved from Rice to this ROM and I feel this ROM is better and more polished.
Thanks @Terminator.J
marcioafoliveira said:
I just moved from Rice to this ROM and I feel this ROM is better and more polished.
Thanks @Terminator.J
Click to expand...
Click to collapse
Yes, in my humble opinion it is better and J always cool, he answer every question on telegram.
Hey there's a weird bug that's been going on and it has been happening with all the android 13 ROMs I have been using. The NFC just quits randomly and blanks out the menu in settings until reboot.
marcioafoliveira said:
I just moved from Rice to this ROM and I feel this ROM is better and more polished.
Thanks @Terminator.J
Click to expand...
Click to collapse
any review compared to LOS20 unoficial? I love LOS but really miss the abilty to customize the rom
Nice work,It suit me well,But i can't get OTA updates,I gess it might be a network issue,so I wonder the OTA adress to find out what's wrong,can some one help?
imokpd said:
Nice work,It suit me well,But i can't get OTA updates,I gess it might be a network issue,so I wonder the OTA adress to find out what's wrong,can some one help?
Click to expand...
Click to collapse
Well, so far there aren't any. That might be why. I've only ever made one official 9.0 (Android 13) release.

Categories

Resources