How To Guide [OUTDATED - PLEASE USE UNOFFICIAL LINEAGEOS INSTEAD] Installing a GSI on Samsung M12/A12. - Samsung Galaxy M12

I am deleting this guide since M12 will soon recieve an unofficial build of LineageOS 19.1. Don't ask when, as I'm not the lead developer but I helped with it

Update 1: I figured out how to make script run on boot. Instructions revised. If you followed earlier check them again
Update 2: Magisk 24.1 is now stable. Instructions revised.
Update 3: I contacted phh and he implemented the script inside his trebleapp. Instructions revised and modified trebleapp is attached. NOTE: GSIs newer than 7/Feb/2022 will include this workaround by default.
Update 4: This guide is now unnecessary now that unofficial LineageOS is very close to release

Achievement unlocked: flashed GSI with FBE enabled! ​
{
"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"
}
In short, I've successfully done flashing of @phhusson's latest version of Android 12 GSI (which is v402 as of today). To do this, I needed to modify the multidisabler script so it won't disable FBE, format the userdata using the stock recovery, flash TWRP, resize tmpfs to proper size, push GSI image into tmpfs and flash it using TWRP. I used the securized image with vndklite variant, since there was no securized images for regular vndk releases (but it seemed that vndk was working better for me, at least I have no USB connection anymore where with VNDK I was able to have USB debugging). Maybe I'll try re-flashing it once I'll patch the regular images and securize them (since I'm on *nix, I can just mount them and modify their contents) and take an approach of finding how Samsung ROMs are working OK. For now, I need to take a break from all bootloops I had in the process of FBE flashing .
Anyway, the goal of this experiment was to use GSI ROMs as a daily driver and having FBE disabled could otherwise cause a serious problem on device loss.
So, onto the list what's been tested (that wasn't noted before):
Screen locking – it seems that the workaround for the screen is not applied before unlocking the phone, probably because the app is not running yet. This might work with the script used as postfs module.
EDIT: I've found some notes in the Magisk documentation that both post-fs data and late_start services are run after data is decrypted, which basically means applying this workaround using Magisk seems to be pointless for now (maybe not after PPH app will stop providing the workaround)... Probably the best option would be patching the ROM itself, either with flashable ZIPs or directly before flashing it (most GSIs can be mounted under Linux and tweaked).
Adaptive brightness – not working, since all virtual sensors are not working for now. Might be easy to fix through as I've found some stuff in the official ROM that I had an idea to experiment with putting them into GSIs (as a Magisk module, to avoid a breakage).
USB – as I said, a data transfer via USB is not working for me for some reason. It worked for me once I had VNDK Android 12 GSI installed (same version).
Booting with stock kernel – I had some successful attempts doing that, but it further was a cause of a bootloop, at least once I had installed Magisk. Therefore, I'll recommend patching the Magisk the way as in tutorial (after patching the kernel) to have everything working for now.
For people who wants to play with stock images but don't know how: you can use simg2img, lpunpack and Linux to extract and mount the official ROM image in approach of finding there some tips like in initrc services why some stuff is working fine on Samsung while it doesn't on GSIs. Maybe I would tinker with it a bit, trying to export a few services and libraries in an approach to create a Magisk module with all stuff needed to have a fully functional GSI, but I'm tired of modding for now, especially when this is my first Samsung phone I had to deal with.
Edit: Typo fixes, added additional text formatting.

Amazing work. If you need testers feel free to PM me. As a sidenote, poking in sysfs led me to believe that android is sending the info needed to read the proximity but the kernel is sending garbage which gets interpreted as the sensor not being triggered. Also phh should have added the workaround into his trebleapp starting from phh AOSP 12 v401, so aside from installing magisk no post install workarounds should be needed.
Attached is a photo of what cmd_result reads when a whatsapp voice message is played which reads proximity to play the message in the earpiece and turn screen off when proximity is triggered

ap4ss3rby said:
Also phh should have added the workaround into his trebleapp starting from phh AOSP 12 v401, so aside from installing magisk no post install workarounds should be needed.
Click to expand...
Click to collapse
Unfortunately, the commit was reverted as of master branch, so we should prepare for it to stop to work unless phh will work on it before releasing an another version. Also I wrote that the workaround didn't seem to apply itself before unlocking the phone (FBE encrypted) the first time and therefore decrypting sensitive data after boot. For now this makes it an requirement when using PHH app to unlock the phone before it sleeps so the touch is going to be responsive.
Anyway, it seems that even Magisk (v24.1) is not capable of running the services before data is decrypted, so now I have no idea how to bypass that in other way than patching the ROM itself and creating the `initrc` service... Anyway, this is also a hint that what samsung is doing starts before basically everything, so no APK file nor script is going to really fix it since they are meant to start after data is decrypted...

SB3P said:
Unfortunately, the commit was reverted as of master repo, so we should prepare for it to stop to work unless phh will work on it before releasing an another version. Also I wrote that the workaround didn't seem to apply itself before unlocking the phone (FBE encrypted) the first time and therefore decrypting sensitive data after boot. For now this makes it an requirement when using PHH app to unlock the phone before it sleeps so the touch is going to be responsive.
Anyway, it seems that even Magisk (v24.1) is not capable of running the services before data is decrypted, so now I have no idea how to bypass that in other way than patching the ROM itself and creating the `initrc` service... Anyway, this is also a hint that what samsung is doing starts before basically everything, so no APK file nor script is going to really fix it since they are meant to start after data is decrypted...
Click to expand...
Click to collapse
I guess for now we have two options:
A: Build custom kernel/vendor specifically for GSIs that correctly reports sensors as GSIs expect them to
B: Fix GSI issues through Magisk services implementing various workarounds in scripts. (an example is the touchscreen sleep/wake issue)

ap4ss3rby said:
Attached is a photo of what cmd_result reads when a whatsapp voice message is played which reads proximity to play the message in the earpiece and turn screen off when proximity is triggered
Click to expand...
Click to collapse
Also that's interesting those virtual sensors are still present, I personally thought that Samsung made it the way there's an virtual device create as on Linux and there's their proprietary software running somewhere in the system that uses the camera as an input and calculates it to provide the data... On the other hand, when I think about that logic, even some (if not all) virtual devices on Linux (e.g. v4l2loopback) needs to have their module loaded with the kernel to work. I'm glad at least there's no need to reinvent the wheel and no one really needs to recreate the entire algorithm for it if it's going to be in the kernel sources...
ap4ss3rby said:
I guess for now we have two options (...)
Click to expand...
Click to collapse
I feel like the B option is worse than patching the GSI ROMs, either via flashable ZIPs or on your own... This is because I couldn't find anything in docs that would let me run services before /data is going to be decrypted... Personally, I've made myself a such service using the statically-compiled Linux ARM binary (non-NDK, using GNU libs – yes, it is still runnable on Android as well) – it applies the workaround for now both when screen is turned on and off (I had no idea on which event it should really run, so I made it to run on both just to be safe) by watching the file changes based on (AFAIK) filesystem events – so it has a major advantage over your script, as it won't run in endless loop, yet watch the file responsible for brightness to change and then do its job. But even with that, TSP doesn't seem to make touch available immediately and it is still expected to be revived after 1-2 seconds.
Also, as of the methods of applying these workarounds, the other way could be modifying the ramdisk (maybe with the help of Magisk, which I believe has documented how it's actually doing it itself and how others could modify the root and init as Magisk does to load files before the OS will properly initalize itself. Yet I don't like an idea of messing myself with the boot partition, at least for now...

Debug info: I tried flashing stock to grab logs from the touchscreen driver. The logs attached here do not appear at all on an unpatched GSI (I.E flashing the GSI as is without any touch workaround).

ap4ss3rby said:
Hi, I installed LineageOS 18.1 GSI on my M127F. I want to share my guide to installing this GSI.
Code:
DISCLAIMER:
By following this guide you accept that you
may do irreversible damage to your phone.
If something breaks the responsibility is
yours only. If you want stable software that
is guaranteed to work 100% don't follow
this guide.
I assume you are running a fully stock system and and locked bootloader and firmware U3/U4.
Installing TWRP and custom kernel
Enable Developer Options by tapping on software information > build number 7 times
Enter developer options then toggle OEM Unlocking on.
Power off your phone.
Hold Vol Up + Vol Down then plug in your phone to enter download mode
THIS WILL ERASE ALL YOUR DATA AND VOID YOUR WARRANTY. Follow on screen instructions to unlock your bootloader. THIS WILL ERASE ALL YOUR DATA AND VOID YOUR WARRANTY
After this you want to download and install attached Orangefox recovery using odin. After odin is done flashing enter recovery
Format data (not wipe) in recovery
Enter terminal and type multidisabler twice
Reboot to system and verify that under security encryption is disabled
Download TWRP and custom kernel for your phone
Reboot into recovery and locate the downloaded twrp image
Select recovery.
Reboot into recovery
Install kernel, then wipe cache and reboot. You should now see that it is complaining about some internal issue. This is normal.
Installing the GSI
Download your favorite ROM from the list provided below. You want to install an arm64 a/b image.
Extract the image file
Reboot to recovery.
Select install then install image
Locate the GSI image
Select install system
After that is done return to recovery and select factory reset.
Reboot then do setup (if applicable) then download attached magisk and phh trebleapp. If your phone is stuck on bootanimation check under to fix it.
IMPORTANT: DO NOT LET THE SCREEN TURN OFF OR YOU WILL HAVE TO REBOOT TO MAKE TOUCH WORK AGAIN.
Install attached magisk
Open magisk and click on install then direct install
Download and install the attached phh-treble app apk.
Touch should now work. Enjoy your GSI.
Extras
Magisk 24.1
Open Magisk
Go to settings
Update Magisk Manager app to version 24.1
Relaunch Magisk then install magisk
Choose direct instal
Migrating to patched trebleapp
Download and install attached trebleapp
Open your root file manager
go to /data/adb/service.d
Delete the script you added earlier
Tips in case things don't work
In case after rebooting to the GSI the phone bootloops:
Download stock image from wherever you download your firmware (I use a python program called samloader)
Extract the AP of the downloaded firmware
Find userdata.img.lz4 and create a .tar archive only containing this file
Reboot to download mode
In odin select AP then locate the newly created .tar archive Then click on flash
Reboot
Continue from step 7 under the "Installing the GSI" portion of the guide
To revive the touchscreen using ADB:
In case you didn't grant adb root access but installed magisk, run adb shell then su. A root access for the app shell will appear. Grant root permission
Plug in phone to a computer with ADB
adb shell
su
cat /sys/class/sec/tsp/cmd_result
echo check_connection > /sys/class/sec/tsp/cmd
What works:
Boots
RIL
Fingerprint
Main rear camera
Front camera
Sleep/Wake (workaround in steps above, may need to sleep wake several times before it works)
WiFi
Flashlight
Rotation
Magisk 24
90Hz (M12 only. A12 doesn't have 90Hz refresh rate)
LineageOS 18.1
LineageOS 19
CAOS (GApps variant available)
phh AOSP 11 v313
phh AOSP 12 v400h
Untested
GPS
Flashing GApps. (I use fdroid and aurora store on LineageOS and CAOS has built in GApps)
USB-OTG
A127F
M127G
If I didn't list it under broken or working I didn't try it or forgot to test it.
Broken
Double tap to wake. Touchscreen turns off and I have no idea how to keep it alive while lcd is off
MTP
Virtual Proximity. Screen will stay on in phone calls and WhatsApp will always play voice messages through speaker
Flashlight brightness. Flashlight will always stay on weakest brightness with no way to adjust.
Adaptive refresh. The framerate you set in phh addons is what you get. Be prepared for slightly reduced battery.
You tell me (even though I probably don't have the solution)
Bugs
You may need to wait a little bit before touchscreen responds or sleep/wake several times before screen responds after turning the screen off
Credits
@physwizz for kernel, TWRP and orangefox
@phhusson for implementing workaround in trebleapp as well as GSI list
me for touch workaround
Links
Kernels and recoveries: https://t.me/a127f_res/113
GSIs: https://github.com/phhusson/treble_experimentations/wiki/Generic-System-Image-(GSI)-list
Click to expand...
Click to collapse
Great guide.
Well done

Thanks for the great guide. Unfortunately, I don't know how to resize tmpfs. Can anybody tell me how to do that? I only have 4 GB or less on my Samsung Galaxy A12 with 64 GB of Storage (it should have, it only shows something like 3 or 4 gigabytes like I mentioned)

matahbeyz said:
Thanks for the great guide. Unfortunately, I don't know how to resize tmpfs. Can anybody tell me how to do that? I only have 4 GB or less on my Samsung Galaxy A12 with 64 GB of Storage (it should have, it only shows something like 3 or 4 gigabytes like I mentioned)
Click to expand...
Click to collapse
You don't have to resize TMPFS if you don't want to have FBE encryption or have the external SD card (you can use microSD for flashing, which might be a better choice if you need to flash a larger devices). Also you can't resize TMPFS to 64 GB, it uses your RAM to store regular data instead of storage (this is basically the concept of TMPFS). What I was mentioning is that /data won't work under FBE and custom recoveries for now, so you need to use your RAM instead if you don't have any external storage device to save images somewhere via ADB.
As of resizing the TMPFS, you should be able to find some Linux tutorial how to do that, on Android this is works basically the same (even on both Linux and Android you have /tmp directory with TMPFS by default).
Anyway, I've decided to share some stuff that you may need for that. Here's the multidisabler script I was using for flashing GSIs with FBE encryption preserved. I was also working on the native binary that would work as the workaround for the touchscreen so it can be used instead of the script. The advantages are that it actually listens to filesystem events and therefore does not need to read file in loop in order to get the information if brightness has changed. Maybe I'll share it with you once I find it to be ready, right now I'll just share my multidisabler script with patches.
BTW, I've tested LineageOS GSIs (both 11 and 12) and noticed they behave completely different, no matter of variant (the USB actually uses some driver, which is not fully compatible with M12 but close enough to provide basic communication through ADB). I guess pphusson just changed something and now these drivers aren't applied by default, yet I think I've noticed the issues with Bluetooth's HSP/HFP profiles which as I remember was not the case with latest stable pphusson's vanilla Android 12 GSIs. Now I just hope these problems are going to be resolved in the next builds of Android's GSIs with phhusson's patches and with the knowledge that MTP just worked fine on TWRP I used, there's a little hope that we will gain the proper combination of drivers/firmware to have both USB and Bluetooth functional at the same time someday.
I've also approached patching the kernel under newer kernel base 4.19.112, yet I gave up on properly resolving its conflicts. I may work on that as well in order to patch some vulnerabilities, with a hope that I'll succeed updating kernel as closest to the latest patch as possible. The 4.19.112 is going to be just a test if Samsung is capable of actually booting from it and if I may be able to use git with common human logic and my limited programming skills to actually patch it the way it would do so (without much understanding about the code itself, yet basic knowledge about C syntax). For now I've only succeed reproducing the upstream Linux kernel commit structure from 4.19.111, with a single additional commit for Samsung changes and another one for physwizz ones.

can anyone guide me how to unlock bootloader on Samsung Galaxy M12G ?

@SB3P Thanks so much. Sorry for my late reply, but thank you!

SB3P said:
Achievement unlocked: flashed GSI with FBE enabled! ​View attachment 5533799​In short, I've successfully done flashing of @phhusson's latest version of Android 12 GSI (which is v402 as of today). To do this, I needed to modify the multidisabler script so it won't disable FBE, format the userdata using the stock recovery, flash TWRP, resize tmpfs to proper size, push GSI image into tmpfs and flash it using TWRP. I used the securized image with vndklite variant, since there was no securized images for regular vndk releases (but it seemed that vndk was working better for me, at least I have no USB connection anymore where with VNDK I was able to have USB debugging). Maybe I'll try re-flashing it once I'll patch the regular images and securize them (since I'm on *nix, I can just mount them and modify their contents) and take an approach of finding how Samsung ROMs are working OK. For now, I need to take a break from all bootloops I had in the process of FBE flashing .
Anyway, the goal of this experiment was to use GSI ROMs as a daily driver and having FBE disabled could otherwise cause a serious problem on device loss.
So, onto the list what's been tested (that wasn't noted before):
Screen locking – it seems that the workaround for the screen is not applied before unlocking the phone, probably because the app is not running yet. This might work with the script used as postfs module.
EDIT: I've found some notes in the Magisk documentation that both post-fs data and late_start services are run after data is decrypted, which basically means applying this workaround using Magisk seems to be pointless for now (maybe not after PPH app will stop providing the workaround)... Probably the best option would be patching the ROM itself, either with flashable ZIPs or directly before flashing it (most GSIs can be mounted under Linux and tweaked).
Adaptive brightness – not working, since all virtual sensors are not working for now. Might be easy to fix through as I've found some stuff in the official ROM that I had an idea to experiment with putting them into GSIs (as a Magisk module, to avoid a breakage).
USB – as I said, a data transfer via USB is not working for me for some reason. It worked for me once I had VNDK Android 12 GSI installed (same version).
Booting with stock kernel – I had some successful attempts doing that, but it further was a cause of a bootloop, at least once I had installed Magisk. Therefore, I'll recommend patching the Magisk the way as in tutorial (after patching the kernel) to have everything working for now.
For people who wants to play with stock images but don't know how: you can use simg2img, lpunpack and Linux to extract and mount the official ROM image in approach of finding there some tips like in initrc services why some stuff is working fine on Samsung while it doesn't on GSIs. Maybe I would tinker with it a bit, trying to export a few services and libraries in an approach to create a Magisk module with all stuff needed to have a fully functional GSI, but I'm tired of modding for now, especially when this is my first Samsung phone I had to deal with.
Edit: Typo fixes, added additional text formatting.
Click to expand...
Click to collapse
Could you explain how you done this.... i mean please explain step by step... i am using Galaxy M12G Varient....thanks in advance

milindbhaliwade said:
Could you explain how you done this.... i mean please explain step by step... i am using Galaxy M12G Varient....thanks in advance
Click to expand...
Click to collapse
If you would see the *untested* section at the initial post of this thread, it is unknown whetever this works or not for M127G phones (if it bootloops it might not work at all). Anyway, here's how I did it on M127F (at least how I remember this):
1. I did steps from 1-6, I believe I skipped 7 since I was aware it will mess something up with the data partition.
2. I modified the multidisabler script and pushed it to my phone via the ADB (to TMPFS). You can find this script pushed as xz compressed file. Before executing multidisabler script I have done a backup of the recovery and system partitions (using dd tool) which I am going to reflash later.
3. I rebooted to download mode and flashed TWRP image.
4. After TWRP ended flashing, I booted into the recovery. I flashed the physwizz kernel and then my own GSI image as it was described in the instructions at the initial post. Just remember that /data partition is not functional with FBE and TWRP so you need to push your images somewhere else like microSD card or TMPFS partition. OTG might work here as well, this is something I haven't tested yet through...
5. Once you are done with flashing you need to restore the original recovery partition via the download mode. TWRP won't boot the GSIs with FBE encryption enabled actually it does boot now for me, yet I still recommend switching to stock recovery if your phone bootloops or you need to format/wipe userdata partition. You can then safely format your /data partition with the stock recovery.

ap4ss3rby said:
Hi, I installed LineageOS 18.1 GSI on my M127F. I want to share my guide to installing this GSI.
Code:
DISCLAIMER:
By following this guide you accept that you
may do irreversible damage to your phone.
If something breaks the responsibility is
yours only. If you want stable software that
is guaranteed to work 100% don't follow
this guide.
I assume you are running a fully stock system and and locked bootloader and firmware U3/U4.
Installing TWRP and custom kernel
Enable Developer Options by tapping on software information > build number 7 times
Enter developer options then toggle OEM Unlocking on.
Power off your phone.
Hold Vol Up + Vol Down then plug in your phone to enter download mode
THIS WILL ERASE ALL YOUR DATA AND VOID YOUR WARRANTY. Follow on screen instructions to unlock your bootloader. THIS WILL ERASE ALL YOUR DATA AND VOID YOUR WARRANTY
After this you want to download and install attached Orangefox recovery using odin. After odin is done flashing enter recovery
Format data (not wipe) in recovery
Enter terminal and type multidisabler twice
Reboot to system and verify that under security encryption is disabled
Download TWRP and custom kernel for your phone
Reboot into recovery and locate the downloaded twrp image
Select recovery.
Reboot into recovery
Install kernel, then wipe cache and reboot. You should now see that it is complaining about some internal issue. This is normal.
Installing the GSI
Download your favorite ROM from the list provided below. You want to install an arm64 a/b image.
Extract the image file
Reboot to recovery.
Select install then install image
Locate the GSI image
Select install system
After that is done return to recovery and select factory reset.
Reboot then do setup (if applicable) then download attached magisk and phh trebleapp. If your phone is stuck on bootanimation check under to fix it.
IMPORTANT: DO NOT LET THE SCREEN TURN OFF OR YOU WILL HAVE TO REBOOT TO MAKE TOUCH WORK AGAIN.
Install attached magisk
Open magisk and click on install then direct install
Download and install the attached phh-treble app apk.
Touch should now work. Enjoy your GSI.
Extras
Magisk 24.1
Open Magisk
Go to settings
Update Magisk Manager app to version 24.1
Relaunch Magisk then install magisk
Choose direct instal
Migrating to patched trebleapp
Download and install attached trebleapp
Open your root file manager
go to /data/adb/service.d
Delete the script you added earlier
Tips in case things don't work
In case after rebooting to the GSI the phone bootloops:
Download stock image from wherever you download your firmware (I use a python program called samloader)
Extract the AP of the downloaded firmware
Find userdata.img.lz4 and create a .tar archive only containing this file
Reboot to download mode
In odin select AP then locate the newly created .tar archive Then click on flash
Reboot
Continue from step 7 under the "Installing the GSI" portion of the guide
To revive the touchscreen using ADB:
In case you didn't grant adb root access but installed magisk, run adb shell then su. A root access for the app shell will appear. Grant root permission
Plug in phone to a computer with ADB
adb shell
su
cat /sys/class/sec/tsp/cmd_result
echo check_connection > /sys/class/sec/tsp/cmd
What works:
Boots
RIL
Fingerprint
Main rear camera
Front camera
Sleep/Wake (workaround in steps above, may need to sleep wake several times before it works)
WiFi
Flashlight
Rotation
Magisk 24
90Hz (M12 only. A12 doesn't have 90Hz refresh rate)
LineageOS 18.1
LineageOS 19
CAOS (GApps variant available)
phh AOSP 11 v313
phh AOSP 12 v400h
Untested
GPS
Flashing GApps. (I use fdroid and aurora store on LineageOS and CAOS has built in GApps)
USB-OTG
A127F
M127G
If I didn't list it under broken or working I didn't try it or forgot to test it.
Broken
Double tap to wake. Touchscreen turns off and I have no idea how to keep it alive while lcd is off
MTP
Virtual Proximity. Screen will stay on in phone calls and WhatsApp will always play voice messages through speaker
Flashlight brightness. Flashlight will always stay on weakest brightness with no way to adjust.
Adaptive refresh. The framerate you set in phh addons is what you get. Be prepared for slightly reduced battery.
You tell me (even though I probably don't have the solution)
Bugs
You may need to wait a little bit before touchscreen responds or sleep/wake several times before screen responds after turning the screen off
Credits
@physwizz for kernel, TWRP and orangefox
@phhusson for implementing workaround in trebleapp as well as GSI list
me for touch workaround
Links
Kernels and recoveries: https://t.me/a127f_res/113
GSIs: https://github.com/phhusson/treble_experimentations/wiki/Generic-System-Image-(GSI)-list
Click to expand...
Click to collapse
try to install @phhusson (system-squeak-arm64-ab-vndklite-gapps-secure.img) GSI using above method on Samsung Galaxy M12G (SM-M127G) BUT failed to boot up
facing following issue:
1) unable to boot in OrangeFox Recovery
2) boot in TWRP Recovery but not detected MicroSD Card
3) samehow manage to push Kernal.zip, SystemGSI.img by adb push file_name_with_extension /sdcard BUT not flash properly as TWRP reboot again and again in 2-3 minutes
so friends, don't try this method on Samsung Galaxy M12G (SM-M127G) unless Senior member come up with this specific model

For anyone who has starred this thread, I and other devs have released a proper build of LineageOS with /vendor. Aside from VoLTE (which I don't think worked in GSIs anyways) everything should work. Moderators, please close this thread

ap4ss3rby said:
For anyone who has starred this thread, I and other devs have released a proper build of LineageOS with /vendor. Aside from VoLTE (which I don't think worked in GSIs anyways) everything should work. Moderators, please close this thread
Click to expand...
Click to collapse
LineageOS is not only GSI available, I think someone might still find it useful if they want to flash another ROMs. Also Phhuson's GSI also contains some features that unofficial GSI release don't have (i.e. flashlight control in Phhusson's app), so they still might be useful for someone.
This is why I think it is better to not close this thread and maybe revive original guide.

SB3P said:
LineageOS is not only GSI available, I think someone might still find it useful if they want to flash another ROMs. Also Phhuson's GSI also contains some features that unofficial GSI release don't have (i.e. flashlight control in Phhusson's app), so they still might be useful for someone.
This is why I think it is better to not close this thread and maybe revive original guide.
Click to expand...
Click to collapse
Our rom is built completely from source, not a GSI, and it is more or less a complete replacement of stock firmware. If you want you can use a GSI over that instead, and it should function much better than just replacing stock firmware

ap4ss3rby said:
Our rom is built completely from source, not a GSI, and it is more or less a complete replacement of stock firmware. If you want you can use a GSI over that instead, and it should function much better than just replacing stock firmware
Click to expand...
Click to collapse
I haven't said GSI are better, I personally use this unofficial LineageOS build. But what I've said, GSI brings much more variety of picking the OS you can install. Even Linux can be installed on phones nowadays using GSI with only Halium-patched kernel as an requirement. This is why I think leaving this tutorial archived (no updates, interest on fixing bugs etc.) is better than removing it.

Related

[Recovery] Official TWRP for the OnePlus 3 & 3T

Team Win Recovery Project 3.0.4-1 (unreleased)
Notice #1: Please don't wipe your data partition if TWRP cannot decrypt it. Instead, make an effort to gather logs to help solve the issue!
Notice #2: Themes from 3.0.0 to 3.0.3 are incompatible with 3.0.4. Sorry! (small theme engine changes regarding backlight control)
This is a unified build for both the OnePlus 3 and the OnePlus 3T!
WARNING: The OnePlus 3 & 3T stock boot image has dm-verity, which prevents you from booting if you swipe to enable system modifications!
SOLUTION: Follow the full rooting steps below, in order, to allow system modifications without the risk of a boot loop!
WHAT IS TWRP?
Oh come on, you know what it is - don't try to fool me!
In case you're serious, though...
Team Win Recovery Project is a custom recovery for Android devices.
It allows you to back up and restore your data, flash custom ROMs to your device, repair broken file systems, and root your device.
Read more about TWRP here: https://twrp.me/about/
DOWNLOAD
You can find the device page here:
http://teamw.in/devices/oneplusthree.html
Use 3.0.4-1 for now, rather than the builds on twrp.me until an official release happens. You will have problems with 3.0.3 on Nougat!
For now, please download the build from:
https://build.nethunter.com/twrp/oneplus/twrp-3.0.4-1-oneplus3.img
Officially 3.0.4 has not been released yet, but it has critical fixes for this device on Nougat, so please be patient.
There is a download link there, as well as instructions on how to flash it.
You can find up to date fastboot & adb binaries here!
FULL STEPS FOR OBTAINING ROOT
Follow these instructions until someone nice comes along and makes a video from them (without ads):
Extract/install adb & fastboot to your computer.
{
"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"
}
Download TWRP for OnePlus 3 & 3T (oneplus3).
In your ROM, go to Settings -> About device. Tap 7 times on Build number to enable Developer options.
Now go to Settings -> Developer options. (above About device)
You need to enable OEM unlock, otherwise you might end up with boot problems or be unable to flash later on.
Reboot your device into fastboot mode. To do this, select reboot from the power menu and hold the [Volume Up] + [Power] buttons while your device reboots or boots from power off.
Once you're in fastboot mode, you need to unlock your bootloader. To do this, run the command:
fastboot oem unlock
WARNING: Unlocking your bootloader will erase all userdata on the device! Your device will be completely reset to factory defaults!
Once your bootloader is unlocked, you're ready to flash TWRP. To do this, run the command (replacing twrp.img with the actual image name):
fastboot flash recovery twrp.img
Once the image is flashed, you should use your volume keys to navigate to RECOVERY and the press the power key to select it.
At this point, you will reach the screen asking you if you want to allow system modifications.
By swiping right, you will trigger dm-verity, and if you don't follow the next step you will be unable to boot!
If you are going to root your device and follow the rest of these steps, then it is safe to swipe right and enable modifications.
If your device asks for a password to mount internal storage, and your password doesn't work or you haven't set one, see below under known issues for a fix!
If you want to be rooted with SuperSU:
Download the latest SuperSU Stable by Chainfire.
Without exiting TWRP, transfer the SuperSU zip to your device over MTP* and flash it using [Install] in TWRP.
---or (not both) ---
If you want to be rooted with something else or just want a bootable system:
Download the latest dm-verity and forced encryption disabler zip.
Without exiting TWRP, transfer the no-verity-opt-encrypt zip to your device over MTP* and flash it using [Install] in TWRP.
This will also allow you to use [Format Data] to completely disable your encryption if desired.
Go to [Reboot] -> [System].
Wait 2-5 minutes for your device to finish setting itself up. (SuperSU will reboot you a few times)
* MTP, known as Media Transfer Protocol, is the same way you transfer files from your PC to your device when booted into system.
UPDATING TWRP
To update TWRP, simply download the new twrp.img on your phone, then boot into your current TWRP and flash it.
To flash a twrp.img, navigate to [Install] -> [Flash Image] -> select your twrp.img -> [x] Recovery -> Flash!
After that, just use [Reboot] -> [Recovery] to reboot into the updated TWRP.
CHANGES
v3.0.4-1 (build.nethunter.com) - Fix crash when trying to reboot that resulted in TWRP restarting, CAF kernel updates
v3.0.4-0 (build.nethunter.com) - Capability restoration for Nougat, F2FS backport support, EXT4 decryption support
v3.0.3-0 (twrp.me) - Same as 3.0.3-1-rc2. In sync with the OnePlus 3T device tree (3.0.3-1).
v3.0.3-1-rc2 (build.nethunter.com) - Redo the device tree for OOS 4.0, including dynamic encryption support (pull libs from ROM)
FEATURES
MTP support
USB OTG storage support
Hardware Qualcomm-based full-disk encryption support
f2fs file system support (read, write, format, backup & restore)
exFAT file system support (read, write, format)
NTFS file system support (read, write, format)
ADB root
Full SELinux support
Built in android 6.0 tree
Allows OnePlus full OTA flashing
KNOWN ISSUES
F2FS takes a long time to boot, see below.
If your device is taking more than 10 minutes to boot, you probably have a misc flag enabled that disables passing cmdline, see below.
Reboot buttons don't work in TWRP (restarts TWRP) - disable Ask to install TWRP App on settings page, fix on the way. - fixed in 3.0.4-1
WHY AM I STUCK ON THE TWRP SPLASH SCREEN FOR 8 HOURS?
Be patient, wait another 8 hours.
Just kidding, try this while stuck on the loading screen:
adb shell wipe_misc; adb shell reboot recovery
Some devices might somehow get a flag set in misc that tells the bootloader to ignore the android boot image command line.
This results in the kernel not receiving the hardware name (qcom), which then confuses recovery and causes it to wait forever. FOREVER.
Personally, I'd have tried this after 15 minutes.
WHY DOES F2FS MAKE TWRP SO SLOW?
When TWRP boots up or wipes partitions and a few other scenarios, it checks each partition to see how much disk space is used. Ext4 handles disk usage calls quite efficiently and will finish this very fast. F2FS on the other hand is very slow when it comes to checking disk usage. We're unsure why this is. Every file on the F2FS formatted partition adds a little more time, and a device that is 30 GB full could take up to 10 minutes to boot TWRP!
I suggest switching your data partition to ext4 - all the f2fs hype is merely from benchmarks that don't actually represent real world use (ie. you're not writing thousands of files per second)
For someone who doesn't do lots of write access to their data partition, ext4 can actually be advantageous (it has faster access times and reads!)
WHY WON'T MY DATA DECRYPT / WHY IS MY PASSWORD INVALID IN TWRP?
In order for encryption to work in TWRP, it must pull the encryption libraries from your current ROM. It does this during TWRP boot logo. If you have no ROM installed, then it will fall back to the default OxygenOS 4.0.2 encryption libraries included in the TWRP image.
The crypto daemon in recovery will not be able to decrypt unless the version of the encryption key matches the version of the libraries. This is an unusual restriction that was added by OnePlus.
You can usually fix this by simply booting into your ROM and changing your boot up password. You can change it back or remove it if you want immediately after. This will generate a new crypto key which should be compatible when you next enter TWRP.
HOW DO I GET LOGS SO WHEN I COMPLAIN I'M NOT COMPLETELY IGNORED OR SHAMED BY OTHER USERS?
To get logs while in TWRP, you should connect your device to your PC and use adb.
adb pull /tmp/recovery.log
adb exec-out dmesg > dmesg.log
This will create 2 files in the directory your shell is currently in, recovery.log and dmesg.log. You will need to upload these somewhere such as a pastebin or Google Drive. You can also attach it to your XDA post (recommended!)
If you are having an operating system boot issue, you should gather a ramoops log instead. Do this while in TWRP after the failed boot:
adb exec-out "tar c /sys/fs/pstore 2>/dev/null" > pstore.tar
CONTACT & SUPPORT
You can find us on IRC at #twrp on chat.freenode.net.
You can also post in this thread and I will attempt to answer any questions you may have.
SOURCE CODE
TWRP: https://github.com/omnirom/android_bootable_recovery (android-7.1)
Device tree: https://github.com/TeamWin/android_device_oneplus_oneplus3 (android-6.0)
Kernel: https://github.com/jcadduono/android_kernel_oneplus_msm8996 (twrp-7.0)
CONTRIBUTIONS
Gerrit for TWRP: http://gerrit.omnirom.org/
Gerrit for officially supported devices: http://gerrit.twrp.me/
XDA:DevDB Information
Team Win Recovery Project for the OnePlus 3 & 3T, Tool/Utility for the OnePlus 3
Contributors
jcadduono, Team Win
Source Code: https://github.com/jcadduono/android_device_oneplus_oneplus3
Version Information
Status: Stable
Current Stable Version: 3.0.4-1
Stable Release Date: 2017-01-21
Created 2017-01-23
Last Updated 2017-02-07
Reserved
ONEPLUS FULL OTA ZIPS
You can flash these zips in TWRP to update your device or save yourself from a broken or soft-bricked state.
They are official zips distributed by OnePlus.
For the OnePlus 3 only:
OxygenOS 3.2.8: http://s3.amazonaws.com/oxygenos.on...6_OTA_017_all_1611182000_fbe1471194d64b3e.zip
OxygenOS 4.0.0: http://otafsc.h2os.com/patch/amazon...en_16_OTA_035_all_1612310359_e10cadfb2af7.zip
OxygenOS 4.0.1: http://otafsc.h2os.com/patch/amazon...n_16_OTA_037_all_1701041839_aa64b084a40a4.zip
OxygenOS 4.0.2: http://otafsc.h2os.com/patch/amazon...16_OTA_039_all_1701140133_89fcc9baba94e4c.zip
OxygenOS 4.0.3: http://otafsc.h2os.com/patch/amazon...ygen_16_OTA_041_all_1702081756_0f1e56a75f.zip
For the OnePlus 3T only:
OxygenOS 3.5.3: https://s3.amazonaws.com/oxygenos.o...8_OTA_027_all_1611222319_884473ff95304c30.zip
OxygenOS 3.5.4: http://oxygenos.oneplus.net.s3.amaz...8_OTA_029_all_1612131737_17e7161d2b234949.zip
OxygenOS 4.0.0: http://otafsc.h2os.com/patch/amazon...s3TOxygen_28_OTA_035_all_1612310259_2dc0c.zip
OxygenOS 4.0.1: http://otafsc.h2os.com/patch/amazon...ygen_28_OTA_037_all_1701041831_a2ba632ce9.zip
OxygenOS 4.0.2: http://otafsc.h2os.com/patch/amazon...s3TOxygen_28_OTA_039_all_1701140132_400a7.zip
OxygenOS 4.0.3: http://otafsc.h2os.com/patch/amazon...3TOxygen_28_OTA_041_all_1702081824_e3a712.zip
Warning: Do not flash partial update OTAs (under 1 GB) on a modified device! If you want to use partial OTAs, you must first flash a full OTA that it applies to, and then flash the partial OTA from stock recovery. Flashing partial OTAs from TWRP will either fail or soft brick your device. You can return to a usable state by flashing one of the above full OTA zips in recovery.
jcadduono said:
Team Win Recovery Project 3.0.4-0 (unreleased)
Click to expand...
Click to collapse
Nice mate as always.
Pm: you might need yo check the format of the first post, everything is written 3 times. :laugh:
peshellas said:
Nice mate as always.
Pm: you might need yo check the format of the first post, everything is written 3 times. :laugh:
Click to expand...
Click to collapse
Never quote full op, this is spamming.
For 3 times same content, open xda in browser, it's xda app bug.
RohanAJoshi said:
Never quote full op, this is spamming.
For 3 times same content, open xda in browser, it's xda app bug.
Click to expand...
Click to collapse
You re Right mate, i know, i have been here since the very old days, I thought i had deleted ot, and continued, apparently not. Thanks for the tip, didn't know about the bug.
ext4 decrypted fine on OnePlus 3 OOS 4.0.2.
Is flashing twrp-data-fstype-swap-x.x.zip still necessary when switching between f2fs and ext4?
The instructions and the link are not stated in OP anymore.
fbf2201 said:
Is flashing twrp-data-fstype-swap-x.x.zip still necessary when switching between f2fs and ext4?
The instructions and the link are not stated in OP anymore.
Click to expand...
Click to collapse
Both EXT4 and F2FS should work out of the box now.
No flashing needed.
Hello and thanx for the hard job.
I wanted to try a clean install starting from stock, hoping to correct my issue with twrp black screen.
I need your help. Here is what I've done :
- Restore stock with the unbrick tool
- Update to Nougat 7.0 and OOS4.0.2 via oneplus update
- Unlock bootloader
- Flash twrp 3.0.4-0 via fastboot
- Flash no-verity-opt-encrypt-5.0
- Flash RR rom
- Wipe data and Dalvik
- Reboot.
This is the first time it made it to me. It ask me a password when it boot. I saw a lot of post about that, but I can't understand how to solve it.
Can someone help me please ? My phone is OP3T
Hello, thanks for the super-useful tool. TWRP has been my goto recovery for as long as I have been rooting (days of htc-hd2). I am experiencing the following issues with v3.0.2-1 (all my checkpoint backups are in that version).
* Device = op3
* If it helps, this was a OOS 4.0.1 backup. I was trying to restore it because of a 4.0.2 upgrade failure attempt
* restore hangs at 100% after the backup is complete.
* After waiting for nearly 15 mins, I used the power down to restart the phone - i had lost recovery
* tried to re-install recovery. but when twrp boots - it doesn't get to main menu
* Oddly enough op recovery installs and boots into fine. Which is what I am on.
I am currently on stock recovery without root unable to restore backup ups in twrp and in titanium backup
any thoughts?
Is the 3.0.4 version from this link https://build.nethunter.com/twrp/oneplus/twrp-3.0.4-0-oneplus3.img a unified 3/3T version ? or 3 only ?
ScratMan38 said:
Is the 3.0.4 version from this link https://build.nethunter.com/twrp/oneplus/twrp-3.0.4-0-oneplus3.img a unified 3/3T version ? or 3 only ?
Click to expand...
Click to collapse
Its a unified version
ScratMan38 said:
Is the 3.0.4 version from this link https://build.nethunter.com/twrp/oneplus/twrp-3.0.4-0-oneplus3.img a unified 3/3T version ? or 3 only ?
Click to expand...
Click to collapse
I've also download it...But I'm afraid to install because it's not really clear...My device IS OP3T.
cultofluna said:
I've also download it...But I'm afraid to install because it's not really clear...My device IS OP3T.
Click to expand...
Click to collapse
Why don't your read the OP? It clearly says it is so either you can't read or you should stick to stock OOS and never flash anything
cultofluna said:
I've also download it...But I'm afraid to install because it's not really clear...My device IS OP3T.
Click to expand...
Click to collapse
it's unified. even if it says op3 it will work for the 3t. read the op. a lot of 3t stuff baked in. works fine. only issue now is the black screen with LED light when booting into recovery. at least for me
Renosh said:
Why don't your read the OP? It clearly says it is so either you can't read or you should stick to stock OOS and never flash anything
Click to expand...
Click to collapse
Thanks your reply was really helpful:laugh:
the 3.0.4.0 is recommend version or have some problem must need? for now i'm use 3.0.3.1 is good with f2fs data partition, OS version is RR-N-v5.8.0-20170117-oneplus3t-Official, i want to dirty flash update to RR-N-v5.8.0-20170122-oneplus3t-Official, i need update TWRP to 3.0.4.0 first? or i can keep use 3.0.3.1?
Renosh said:
Why don't your read the OP? It clearly says it is so either you can't read or you should stick to stock OOS and never flash anything
Click to expand...
Click to collapse
Abaddon said:
it's unified. even if it says op3 it will work for the 3t. read the op. a lot of 3t stuff baked in. works fine. only issue now is the black screen with LED light when booting into recovery. at least for me
Click to expand...
Click to collapse
There was two links in the OP, one for 3.0.3-1 mentioning "unified", and one for 3.0.4 with only "oneplus3".
As I knew the dev was working on both version and still supplies 3.0.3-1 test releases in Op3T thread that were newer than the 3.0.4 he built ; and as the changelog did not mention the unification for 3.0.4, for sure, OP was not clear at all.
Is this 3.0.3.x or 3.0.4.0 backward compatible with Marshmallow ROMs?
chancex said:
the 3.0.4.0 is recommend version or have some problem must need? for now i'm use 3.0.3.1 is good with f2fs data partition, OS version is RR-N-v5.8.0-20170117-oneplus3t-Official, i want to dirty flash update to RR-N-v5.8.0-20170122-oneplus3t-Official, i need update TWRP to 3.0.4.0 first? or i can keep use 3.0.3.1?
Click to expand...
Click to collapse
You want to update a custom rom which by definition has no issue with dm-integrity (only present in stock boot image), so if you don't have any issue keep your recovery.
It seems though that latest version has a minimized risk of issues with f2fs so why not updating it?
cultofluna said:
Thanks your reply was really helpful[emoji23]
Click to expand...
Click to collapse
He was right, the thread's title says clearly 3 and 3T.

[ROM][UNOFFICIAL][instantnoodle][11] LineageOS 18.1

⚠ This project is no longer maintained. See below. ⚠
You are encouraged to migrate to the official nightly builds (huge thanks to @anishpratheepan and to the LOS team for bringing that up). If you update from an unofficial build, it is highly recommended that you opt-in for build signature check after the flash:
Open Settings
Privacy => Trust
Check "Build signature" at the very bottom
Note that you should be able to update from unofficial to official builds seamlessly, without wiping anything.
-----
{
"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"
}
LineageOS is a free, community built, aftermarket firmware distribution of Android 10, 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.
All the source code for LineageOS is available in the LineageOS Github repo. And if you would like to contribute to LineageOS, please visit out Gerrit Code Review. You can also view the Changelog for a full list of changes & features.
Instructions:
Unlock your bootloader
Backup everything, especially the "persist" partition
Make sure you're on a recent version of OxygenOS.
Download the latest build
Run the following commands:
Code:
adb reboot bootloader
fastboot flash recovery recovery.img
fastboot reboot fastboot
fastboot flash boot boot.img
fastboot flash dtbo dtbo.img
fastboot flash odm odm.img
fastboot flash product product.img
fastboot flash system system.img
fastboot flash system_ext system_ext.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img
fastboot flash vendor vendor.img
fastboot reboot recovery
Wipe all data from recovery.
(Optional) If you need GApps, NikGApps Core are known to work ("Apply update" => "Update from ADB", and then run adb sideload <NikGapps-xxx-arm64-11-yyy.zip>). Note that other variants than Core can crash.
Reboot.
Downloads:
https://drive.google.com/drive/folders/1V17qsn_wMpwPgJHMhCjfYYmZEPGzPvP2
Known issues:
Displays "Charging slowly" when it's actually not
Build signed with public keys for now
Reporting Bugs:
Make sure the bug you want to report isn't already known
DO NOT Report bugs if you're running a custom kernel or you installed Xposed
Grab a logcat right after the problem has occurred. (Please include at least a few pages of the log, not just the last few lines, unless you know what you're doing.)
If it is a random reboot, grab /proc/last_kmsg. (Do not bother getting a logcat unless you can get it just before the reboot. A logcat after a reboot is useless)
If the problem disappears after running "setenforce 0" from a root shell, grab /data/misc/audit/audit.log
Remember to provide as much info as possible. The more info you provide, the more likely that the bug will be solved. Please also do not report known issues. Any bug not reported in the bug report format below may be ignored.
Code:
What is your--
LineageOS version:
LineageOS Download url:
Gapps version:
Did you--
wipe:
restore with titanium backup:
reboot after having the issue:
Are you using--
a task killer:
a non-stock kernel:
other modifications:
Provide any additional information (observations/frequency of problem/last version it worked on/etc) as needed:
XDA:DevDB Information
[ROM][UNOFFICIAL][instantnoodle][11] LineageOS 18.1, ROM for the OnePlus 8
Contributors
KennyG9, LuK1337
Source Code:
Since February 2021 (based on the official LineageOS device tree):
Device tree: https://github.com/LineageOS/android_device_oneplus_instantnoodle
Kernel: https://github.com/LineageOS/android_kernel_oneplus_sm8250
Proprietary blobs: https://github.com/TheMuppets/proprietary_vendor_oneplus
Before February 2021 (based on LuK1337's work on instantnoodlep with minor adjustments to the device tree):
Device tree: https://gitlab.com/nlr/android_device_oneplus_instantnoodle
Kernel: https://github.com/luk1337/android_kernel_oneplus_sm8250
Proprietary blobs: https://github.com/luk1337/proprietary_vendor_oneplus
ROM OS Version: Android 11
ROM Kernel: Linux 4.x
Version Information
Status: Testing
Created 2021-01-07
Last Updated 2021-02-10
Very cool. Stoked. Can you add link for gapps as I know lineage needs to work properly.
mattie_49 said:
Very cool. Stoked. Can you add link for gapps as I know lineage needs to work properly.
Click to expand...
Click to collapse
I don't have GApps myself and I don't want to flash them on my personal device. I'm fine with adding a link in the original post provided that one or two person can confirm it works and provide instructions. I think NikGApps are the best candidate.
KennyG9 said:
I don't have GApps myself and I don't want to flash them on my personal device. I'm fine with adding a link in the original post provided that one or two person can confirm it works and provide instructions. I think NiksGApps are the best candidate.
Click to expand...
Click to collapse
Fair enough. Thank you for bringing this to the op8 community.
I made an attempt to bundle OpenGApps into the build: https://drive.google.com/file/d/1edechrEwpX5L5SjE6OlsAjRckT-UF69t/view (using https://github.com/opengapps/aosp_build). It bootlooped on my device but I suspect that's because it requires a factory reset which I didn't want to do. Flashing instructions are identical, just make sure you have flashed OOS 11 at some point. If that happens to work for some of you, I'll try to publish both flavors with every release.
KennyG9 said:
I made an attempt to bundle OpenGApps into the build: https://drive.google.com/file/d/1edechrEwpX5L5SjE6OlsAjRckT-UF69t/view (using https://github.com/opengapps/aosp_build). It bootlooped on my device but I suspect that's because it requires a factory reset which I didn't want to do. Flashing instructions are identical, just make sure you have flashed OOS 11 at some point. If that happens to work for some of you, I'll try to publish both flavors with every release.
Click to expand...
Click to collapse
"Flash OOS 11 at some point"
What about upgrading from 17.1 ?
Also - Why no OOS 10 - 18.1?
mobile_sensei said:
"Flash OOS 11 at some point"
What about upgrading from 17.1 ?
Also - Why no OOS 10 - 18.1?
Click to expand...
Click to collapse
LOS builds only contain a few subset of all the partitions that exist on the OP8 (system, boot, product, dtbo, and some others). The OP8 also contains a lot of other proprietary partitions (ABL, AOP, bluetooth, modem, etc…) that only the manufacturer is able to provide updates for. As far as I understand, those blobs must also be updated to be able to run Android 11 without issues. If you don't update them, it'll likely bootloop or refuse to boot and it's not recommended anyways.
I'm not sure upgrading from 17.1 to 18.1 without wiping is even possible, but if you want to give it a shot, I think your best bet is to extract all the proprietary images from a recent OOS build, then flash them and flash LOS 18.1 over that. You may avoid the annoying MSM step, but my bet is that you'll have to wipe anyways if you want to boot, so I strongly advise that your backup all your data and apps before. In deeper details, you need to :
- get a recent and official OOS 11 build from here : https://www.oneplus.com/support/softwareupgrade/details?code=PM1586920535300
- extract the payload.bin from the image using a tool like this one : https://github.com/LineageOS/scripts/blob/master/update-payload-extractor/extract.py
- reboot to bootloader (adb reboot bootloader)
- flash the stock recovery you just extracted (fastboot flash recovery recovery.img)
- reboot into stock fastboot (fastboot reboot fastboot)
- flash all the blobs you just extracted (fastboot flash abl abl.img && fastboot flash aop aop.img && fastboot flash bluetooth bluetooth.img && ………)
- follow LOS 18.1 flashing instructions from the first post
mobile_sensei said:
"Flash OOS 11 at some point"
What about upgrading from 17.1 ?
Also - Why no OOS 10 - 18.1?
Click to expand...
Click to collapse
Yes I agree here.
I and need step by step exact instructions how to flash any rom here.
I am not even gonna try to flash this rom because I know my device is gonna end up at the Qualcomm dump mode.
I can't get anything booted if I flash anything coming from OOS11, don't ask because I have no idea why.
The only way to get my device booting stock rom at this point is to flash stock rom in EDL mode with the msm tool
[OP8][OOS 21AA/BA/DA] Unbrick tool to restore your device to OxygenOS
Disclaimer: By attempting any of the processes listed in this thread you accept full responsibility for your actions. I will not be held responsible if your device stops working, catches fire, or turns into a hipster and claims to have been...
forum.xda-developers.com
My device is OnePlus 8 5G - 12GB/256GB Interstellar Glow- Firmware : Firmware: OxygenOS - GE / EN / FR / ES
IN2010
Inspected 2020.06.18
As TWRP isn't working completely is there way to do the equivalent full system backup with all partitions without TWRP perhaps via fastboot? Because I know I'm not gonna be able to flash a rom its gonna be the same story over and over again setting up the same stock rom over again ..it gets old.
Because custom software for OnePlus 8 is not at the stage of flash and forget I think a unified toolkit in a zip is needed.
It can be separate or bundled with each rom release and regularly updated that I can extract and cd into, and run the fastboot commands from to help making flashing roms and debug as accurate as we possibly can starting with all of us using the same exact toolkit to begin with.
Driver used
Developer framework ie fastboot, adb executable
Payload dumper
Readme File
Bat/sh file for automation
perhaps payload/img files
bundled with rom Gapps with dev, flavor and release because this seem to be subject to not booting
This would make sure everyone is 100% following the same exact instructions making debugging much easier, in this case it seem like gapps one piece of the puzzle possibly preventing rom from booting, in my case I'm can't even make it to square one getting stuck at Qualcomm dump mode..
Spoiler
KennyG9 said:
LOS builds only contain a few subset of all the partitions that exist on the OP8 (system, boot, product, dtbo, and some others). The OP8 also contains a lot of other proprietary partitions (ABL, AOP, bluetooth, modem, etc…) that only the manufacturer is able to provide updates for. As far as I understand, those blobs must also be updated to be able to run Android 11 without issues. If you don't update them, it'll likely bootloop or refuse to boot and it's not recommended anyways. I'm not sure upgrading from 17.1 to 18.1 without wiping is even possible, but if you want to give it a shot, I think your best bet is to extract all the proprietary images from a recent OOS build, then flash them and flash LOS 18.1 over that. You may avoid the annoying MSM step, but my bet is that you'll have to wipe anyways if you want to boot, so I strongly advise that your backup all your data and apps before. In deeper details, you need to : - get a recent and official OOS 11 build from here : https://www.oneplus.com/support/softwareupgrade/details?code=PM1586920535300 - extract the payload.bin from the image using a tool like this one : https://github.com/LineageOS/scripts/blob/master/update-payload-extractor/extract.py - reboot to bootloader (adb reboot bootloader) - flash the stock recovery you just extracted (fastboot flash recovery recovery.img) - reboot into stock fastboot (fastboot reboot fastboot) - flash all the blobs you just extracted (fastboot flash abl abl.img && fastboot flash aop aop.img && fastboot flash bluetooth bluetooth.img && ………) - follow LOS 18.1 flashing instructions from the first post
Click to expand...
Click to collapse
Good information, I didn't finish my reply during breakfast and noticed you wrote one more.
The only thing I am not comfortable with is that there are links to tools that I have to download from the internet.
Its one factor subject to being sourced from random google searches.
Like the fastboot binary from xda although old doesn't work on op8, I found out the hard way and I am now downloading this directly from Android developer page.
But a lot of headache could be eliminated trying to figure out where and which binaries should be used, what work and what does not.
Is fastboot/adb bundle too old or driver not installed?
Did all of us follow the exact same installation steps in detail the rom developer did?
I hope you understand.
This device has been the most problematic I've ever dealt with
SUPERUSER said:
Yes I agree here.
I and need step by step exact instructions how to flash any rom here.
I am not even gonna try to flash this rom because I know my device is gonna end up at the Qualcomm dump mode.
I can't get anything booted if I flash anything coming from OOS11, don't ask because I have no idea why.
The only way to get my device booting stock rom at this point is to flash stock rom in EDL mode with the msm tool
[OP8][OOS 21AA/BA/DA] Unbrick tool to restore your device to OxygenOS
Disclaimer: By attempting any of the processes listed in this thread you accept full responsibility for your actions. I will not be held responsible if your device stops working, catches fire, or turns into a hipster and claims to have been...
forum.xda-developers.com
My device is OnePlus 8 5G - 12GB/256GB Interstellar Glow- Firmware : Firmware: OxygenOS - GE / EN / FR / ES
IN2010
Inspected 2020.06.18
As TWRP isn't working completely is there way to do the equivalent full system backup with all partitions without TWRP perhaps via fastboot? Because I know I'm not gonna be able to flash a rom its gonna be the same story over and over again setting up the same stock rom over again ..it gets old.
Because custom software for OnePlus 8 is not at the stage of flash and forget I think a unified toolkit in a zip is needed.
It can be separate or bundled with each rom release and regularly updated that I can extract and cd into, and run the fastboot commands from to help making flashing roms and debug as accurate as we possibly can starting with all of us using the same exact toolkit to begin with.
Driver used
Developer framework ie fastboot, adb executable
Payload dumper
Readme File
Bat/sh file for automation
perhaps payload/img files
bundled with rom Gapps with dev, flavor and release because this seem to be subject to not booting
This would make sure everyone is 100% following the same exact instructions making debugging much easier, in this case it seem like gapps one piece of the puzzle possibly preventing rom from booting, in my case I'm can't even make it to square one getting stuck at Qualcomm dump mode..
Good information, I didn't finish my reply during breakfast and noticed you wrote one more.
The only thing I am not comfortable with is that there are links to tools that I have to download from the internet.
Its one factor subject to being sourced from random google searches.
Like the fastboot binary from xda although old doesn't work on op8, I found out the hard way and I am now downloading this directly from Android developer page.
But a lot of headache could be eliminated trying to figure out where and which binaries should be used, what work and what does not.
Is fastboot/adb bundle too old or driver not installed?
Did all of us follow the exact same installation steps in detail the rom developer did?
I hope you understand.
This device has been the most problematic I've ever dealt with
Click to expand...
Click to collapse
I don't have a definitive answer to everything, but here are some remarks:
- Not sure what exactly your problems were and I'm unaware of any way to backup partitions using fastboot unfortunately. As far as I know, it was not possible to restore nandroid backups using mauronofrio's TWRP on Android 10 either. I think the best you can achieve for now is software and data backup (using "adb pull" and "OAndBackup+" or something else). I can also attest that I had way more weird partitioning issues when using TWRP than LOS' fastboot. Since I stopped using TWRP, I never had to use MSM again.
- What you may attempt to reduce the risk of bricking your device is to take advantage of the A/B partitioning. You can flash everything on the unused slot and switch back to the working slot if anything goes wrong. This can be done by running "fastboot getvar current-slot" to get the current slot, then "fastboot --set-active=a" to switch to slot a (or "fastboot --set-active=b" to switch to slot b, depending on which slot was active).
- I second your reluctance on using tools coming from untrusted sources. Please, don't get fastboot/adb from XDA, use the official Android builds. I can't help you regarding the drivers as I use Linux which ships with drivers, but if you use Windows try to get those drivers from either Microsoft, OnePlus or Qualcomm directly. My instructions to avoid flashing Android 11 with MSM makes you use an official image from OnePlus (which you have to trust anyways) + an open-source tool that's made by LOS developers (which you have to trust anyways). At this point, I think the weakest point of trust if you don't want to build LOS yourself is me.
- Regardless of what you attempt, always make sure you have backups of your valuable data, apps and persist partition. Especially given how capricious this device is .
working great so far. any way to re-enable the 90Hz refresh rate?
edit: found it in display options!
LuK1337 said:
OP8 is no longer supported so RIP.
Click to expand...
Click to collapse
New flash method for both 8p and 8t does not allow to use it on instantnoodle, migrated yesterday from there to this build and it's working perfect with NikGapps-core and Magisk, great job @KennyG9
any way to get the OP camera app working? tried several versions available on APKMirror, but all seem to crash. maybe there are some dependencies?
Does OnePlus 8 tmobile version work with dual sim on this rom?
veridiam said:
any way to get the OP camera app working? tried several versions available on APKMirror, but all seem to crash. maybe there are some dependencies?
Click to expand...
Click to collapse
There's a lot of proprietary software/firmware (apart from the camera apk itself) that its not included in LOS. There have been some ports in the past (e.g. OnePlus6 OOS Camera port or oxy-ify) but all of them seem dead, maybe because google camera port working out of the box.
Creating a magisk module should be doable, but you need to start the app, let it crash and add the missing dep N times until you have all of them
@LuK1337 , please accept pull request: https://github.com/luk1337/android_kernel_oneplus_sm8250/pull/1
Running great. I would mention that only nikgapps core works. The rest for me ended in a crash whilst setting up.
passion8059 said:
Running great. I would mention that only nikgapps core works. The rest for me ended in a crash whilst setting up.
Click to expand...
Click to collapse
Thanks, just updated first post to mention that.
KennyG9 said:
Thanks, just updated first post to mention that.
Click to expand...
Click to collapse
Would you be able to look into face unlock? Handy feature for me especially at work.
passion8059 said:
Would you be able to look into face unlock? Handy feature for me especially at work.
Click to expand...
Click to collapse
Face unlock is an OxygenOS feature and I don't think AOSP or LineageOS supports something like that officially as it's quite terrible security-wise. GApps also dropped support for face unlock in Android 10 because of security concerns. So unless I'm missing something it probably won't happen anytime soon unless through some third-party module, sorry. It's not just about porting some blobs, it's a whole new OS feature.
Is WiFi calling and LTE calling working?

General [Magisk] Magisk Zygote64_32: Enabling 32-bit Support For Apps

The 32-bit apps are back!​
screen-20221120-112309
Watch "screen-20221120-112309" on Streamable.
streamable.com
Synopsis​The Pixel 7 line is Google's first "64-bit only" phones, along with being the highest profile release of a 64-bit only device so far. The device uses the Tensor G2 (GS201), which is a close descendant of the Tensor (GS101) from the Pixel 6 line. So close, that the only major change was swapping out the ARM Cortex-A76 cores for ARM Cortex-A78 cores. The SoC still has full 32-bit support.
This was seemingly done at the last minute to get the ball rolling on switching Android to becoming 64-bit only at some point in the future. That future might be soon for other currently supported Pixel phones as the Android 13 QPR1 Beta includes optional firmware images that are 64-bit only. Given that it is currently optional on QPR1, there is a chance that at the earliest Android 14 will be 64-bit only across all supported Pixels, with a slimmer chance that it will be 64-bit only for AOSP also.
The three items that are of importance are AArch32, what Zygote services are set to start, and whether the build supports multilib.
AArch32​Is a mode starting with ARMv8 that provides support for the 32-bit ARM ABIs: armeabi and armeabi-v7a. An ABI is what defines how software is to be built and ran for specific instruction sets.​AArch32 is not required to be supported with ARMv9-A architectures, which would be processors starting with ARM Cortex-X2/X3/A715. These processors support AArch64 only.​The ARM Cortex-A510 is currently the only ARMv9-A processor that supports AArch32. This combination of processors (X2/X3/A715 with A510) results in asymmetric 32-bit support. This is the likely reason for Google expediting these changes. It is speculated that the Cortex-A520 will not support AArch32, which would put a stop to native 32-bit support completely for future devices.​Tensor G2 cores are still on ARMv8-A and thus still support AArch32.​​Zygote​Is a service that handles creating VMs for starting applications, and is responsible for allowing resources to be shared to reduce memory bloat from duplication. There are two Zygote services, Zygote64 and Zygote (colloquially referred to as Zygote32). Each handle a "warm" VM that is preloaded with libraries, which gets cloned for starting an application. This is done via copy-on-write, which means a copy is only made and occupies memory when attempting to modify a resource. The untouched copies all point back to the original, saving memory.​Without Zygote32, 32-bit applications can't be started. Without Zygote64, 64-bit applications can't be started.​Having multiple Zygote processes is referred to as "Zygote64_32"​​Multilib​Is a scheme that allows for 32-bit and 64-bit libraries to reside on the same device. This is required to support running 32-bit applications on 64-bit devices. Android has it's own implementation that differs from most Linux distributions, which may also differ between each other.​Obviously, without 32-bit libraries (or inversely without 64-bit libraries), a build does not support multilib.​​Somewhat important to note is that the 64-bit only QPR Beta images for the Pixel 4a to 6 are true 64-bit only, they do not support multilib. However, as noted here by Google, the Pixel 7 is 64-bit only but does support multilib.
The support matrix is as follows:
Phone + SoC, Build​SoC AArch32 Support​Zygote Property​Multilib​32-bit Support?​Pixel 6 with Tensor​Yes​Zygote64_32​Yes​Native​Pixel 6 with Tensor, 64-bit Only Build​Yes​Zygote64​No​Not Possible*​Pixel 7 with Tensor G2​Yes​Zygote64​Yes​With Modification​Pixel 7 with Tensor G2, 64-bit Only Build**​Yes​Zygote64​No​Not Possible*​Phone with AArch64-only ARMv9-A​No​Zygote64​No​Not Possible***​
* If no multilib build is also available. It may be possible with extensive work to use Treble to bring 32-bit libraries forward, assuming Android 14+ doesn't remove AArch32 and Zygote32. Emulation could be a possibility but has not been done yet.​** Build does not exist yet. It may be realized with a QPR build or it may be done with Android 14 instead.​*** Emulation could be a possibility but has not been done yet. Currently just the Pixel 6 and 7 have KVM built-in, but the Pixel 7 is the only one with it on by default.​
This means that with the right changes 32-bit support can be enabled and used if 32-bit libraries are on the device and the SoC supports AArch32.
Modifications​The changes required are as follows:
ro.zygote=zygote64_32​ro.vendor.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi​ro.vendor.product.cpu.abilist32=armeabi-v7a,armeabi​​Genuinely that simple, property changes. Because the libraries are already in the firmware images it is just the need to instruct Android to use them.
Zygote64_32 refers to starting Zygote64 as the primary process, then starting Zygote32 as the secondary process. With this in place 32-bit applications can be installed and ran as 32-bit libraries are now able to be loaded.
The changes that need to be done are to either be applied to /vendor/build.prop, or done with init.rc modifications, or applied in some way before init.rc is read.
The last point is the critical issue that has halted this: there has not been any easy way to set properties very early in the boot process outside of simply just modifying the file on the partition.
This can't be done easily due to dynamic partitions requiring a custom super partition, and with the larger issue being AVB.
Luckily we can patch Magisk to do these changed early enough in the boot process.
Forewarning​A wipe is required​I do not know exactly why, but when a device is first booted with only Zygote64 it can't be switched over to use Zygote64_32. For some reason the 32-bit libraries inside APEXs are not discovered and loaded by Zygote32.
Support for custom ROMs is not guaranteed​It may or may not work. As a matter of fact, doing this modification isn't necessary as custom ROMs could implement this change themselves.
It is known that the modification does work on LineageOS.
I have not tested all 32-bit applications​I don't actually use any 32-bit apps. I have done testing with a few 32-bit apps I've gotten from APKMirror. So no, I don't know if your Instagram mod is working. I don't see any reason why it wouldn't.
Download Links​
Spoiler
All files are hosted at my download repository
Magisk Zygote64_32:​Recommended:​Release Build​​If you are having troubles and need to produce logs:​Debug Build​​Magisk Delta 32-bit:​For Advanced Users:​Release Build​
If you are having troubles and need to produce logs:​Debug Build​
Installation Instructions​General Prerequisites:​A working platform-tools environment
platform-tools 33.0.3 is required with the Pixel 7​The version you are running can be checked with adb --version and fastboot --version​If you need assistance then read this thread by @roirraW "edor" ehT.​Tools like PixelFlasher can be used, just read into how to use it.​​The factory image for the firmware version you are running or plan to run
Part of the steps are requires the firmware for your phone, you can download it from here..​Copy init_boot.img out from image-xxx.zip inside the firmware archive.​
Backup your data
A wipe is required.​​With my Magisk Zygote64_32 fork (Recommended)​
Spoiler
Magisk Zygote64_32 with the rebased patch by me.​Direct download link for my Magisk Zygote64_32 APK​​Installation with Wipe​
Spoiler
Steps:​Note: If you are unrooted and stock then skip to step 4​
On your phone uninstall the stock Magisk app
Do not use the uninstall Magisk button from within the app, simply just uninstall the app itself
Reboot your phone into the bootloader
Flash the stock init_boot.img for your version and then boot into Android
Install the Magisk Zygote64_32 app from my repository
Copy over the stock init_boot.img to your phone and patch it in the Magisk app
Copy the patched Magisk init_boot.img over to your computer
Reboot your phone into the bootloader
Flash and wipe via fastboot -w flash init_boot magisk_init_boot.img
Complete the setup wizard as normal
Install the Magisk Zygote64_32 app or use the Magisk stub to download the full app from your phone
Stub will not be available until the next reboot after finishing the setup wizard
Open the Magisk app and finish setup for Magisk
Attempt to install and run a 32-bit application. If you are unable to, then verify that you used my Magisk Zygote64_32 app to patch your init_boot.img and that you flashed it to your phone. You will have to perform the steps including the wipe over again.
​With my Magisk Delta 32-bit fork (Not Recommended For General Use, Advanced Users Only)​
Spoiler
Magisk Delta 32-bit with the rebased patch by me.​Direct download link for my Magisk Delta 32-bit APK​
Warning:​Magisk Delta will mount the persist partition for it's early-mount feature, meaning that modules using early-mount could inadvertently fill up the partition, leading to possible corruption.​The steps will take you through creating a backup of the partition to restore if you ever need to.​
Prerequisites:​You need to already have root with Magisk so you can backup the persist partition​
Steps:​Note: If you already have backed up your persist partition then you can skip steps 4 to 7.​
Install my Magisk Delta 32-bit app, it may be installed alongside stock Magisk without issue as it has a different package name.
Copy over the stock init_boot.img to your phone and patch it in the Magisk Delta 32-bit app.
Copy it back over to your computer
Enter a root shell via either method
adb
adb shell
su
You will need to approve the attempt on your phone
Terminal emulator
su
Run the following command:
dd if=/dev/block/by-name/persist of=/sdcard/persist.img
Copy persist.img over to your computer, keep it safe, keep it in multiple places
This is not the Google Pixel 7 persist image, this is uniquely your phone's persist image
Reboot phone to bootloader
Flash and wipe via fastboot -w flash init_boot magisk_init_boot.img
Complete the setup wizard as normal
Install my Magisk Delta 32-bit app
Open the Magisk app and finish setup for Magisk
Attempt to install and run a 32-bit application. If you are unable to, then verify that you used my Magisk Delta 32-bit app to patch your init_boot.img and that you flashed it to your phone. You will have to perform the steps including the wipe over again.
System Upgrade Instructions (Post Mod Installation)​
Spoiler
Either of my Magisk Zygote64_32 forks​
Extract the init_boot from image-xxx.zip of the firmware you want to upgrade to
Patch it in the Magisk app that you are using
Copy the patched Magisk image back over to your computer
Reboot your phone into fastboot
Update the bootloader and radio if necessary
fastboot --skip-reboot update image-xxx.zip
No -w it will wipe your userdata partition
Wait until it is finished
Don't boot the phone into Android
Flash the patched Magisk init_boot.img
This can be done from inside fastbootd
Magisk Upgrade Instructions​
Spoiler
Magisk Zygote64_32 via app​Update normally as you would, by installing the update in the app.​
Magisk Zygote64_32 or Magisk Delta 32-bit manually​
Unhide the Magisk app if you are currently hiding it
Download and install the latest APK for the 'flavor' you are using from my repository
It may be required that you uninstall the app if Android won't let you upgrade it
Perform a direct install from the install menu
Reboot
Changing Between My Magisk Forks​
Spoiler
Download and install the app you want to switch to from my repository
Uninstalling the previous Magisk app is not necessary
Copy the stock init_boot.img for your system version over to your phone
Patch it in the Magisk app you want to switch to
Copy the patched Magisk image back over to your computer
Reboot your phone into fastboot
Flash the patched Magisk init_boot.img
If moving from Magisk Delta 32-bit to Magisk Zygote64_32 then at the same time you can flash your backed up persist fastboot flash persist persist.img
Remove the other Magisk app
Finish setup in the remaining Magisk app.
Uninstallation Instructions​
Spoiler
My Magisk Zygote64_32 fork​Flash the stock init_boot.img​
My Magisk Delta 32-bit fork​
Flash the stock init_boot.img
fastboot flash persist persist.img
Manual method on phone if without original persist image​
Uninstall all Magisk modules, they will clean up any files they put into early-mount.d
Enter a root shell via either method
adb (heavily preferred)
adb shell
su
You will need to approve the attempt on your phone
Terminal Emulator
Navigate to the persist mount
cd $(magisk --path)/.magisk/mirror/persist/
Remove the directory early-mount.d
rm -ir early-mount.d
You will be prompted for each removal and descending into directories, respond with y to approve the action
Can now reboot and flash stock init_boot
Troubleshooting​Stuck at boot animation or bootlooping​Restore stock init_boot.​Grab a logcat with adb to determine what the problem may be.​You might not have wiped your device.​​Booted after installing new Android update but forgot to flash Magisk​Run through the installation instructions again, you will have to wipe your device.​​Unable to install 32-bit apps​Run getprop ro.zygote; getprop ro.vendor.product.cpu.abilist; getprop ro.vendor.product.cpu.abilist32​If the values do not match these then the modification was not applied.​zygote64_32​arm64-v8a,armeabi-v7a,armeabi​armeabi-v7a,armeabi​​32-bit apps force close​This only happened in my testing when I did a first boot with Zygote64 and then installed the modification to use Zygote64_32. Wipe your device or perform the wipeless installation instructions.​It is possible the app may just have issues, or will not work because of missing libraries.​​Clobbered the persist partition​Follow the uninstall steps for Magisk Delta, easiest to use the fastboot steps.​If you didn't backup your persist partition, then RIP.​
Questions​Will I have to wipe on every system update?​I'm glad to say no.​I've tested with my Magisk Delta 32-bit, going from October -> November, while keeping Zygisk/MagiskHide enabled along with the Magisk app being hidden.​I also tested December -> January with my Magisk Zygote64_32 and even swapping to my Magisk Delta 32-bit in the process without issue.​​Can I take OTAs instead of flashing factory images?​I would heavily recommend against doing so, however I have done Android 14 Beta 1 to Beta 1.1 on device and it works.​
I booted with the patch, but then accidentally flashed over init_boot without changing to a different build version, what do I do?​Simply just flash the patched Magisk image back over. I've tested it, 32-bit applications are still kept, and I haven't encountered any issues once I flashed the patched Magisk image back onto it.​​If this was because of an update then follow the installation instructions, you will have to wipe your device.​
Will my persist partition be destroyed?​You shouldn't have to worry about that, a backup persist image will be able to completely restore it. Just don't install modules that will attempt to install more than 32MB of data to the earlymount.d folder.​
Thanks To​Thomas King for Pixel 7 32-bit Helper​@huskydg for Magisk Delta and letting me know about the Zygisk implementation maru​5ec1cff for maru​@nickelnine for bringing attention to Pixel 7 32-bit Helper​Posters in the thread for helping me debug the issues that have come up.​
Reserved 1
FYI - Corvus OS for Pixel 7's does have 32bit app support
Wi1son said:
FYI - Corvus OS for Pixel 7's does have 32bit app support
Click to expand...
Click to collapse
Never heard of it before.
The download page on their home page makes no reference to any Pixel devices.
It's not until viewing their download backend that the ROM comes up.
And most importantly, not a single source on one of their GitHub accounts and the other doesn't have any for the Pixel 7.
thank you, it worked straight away. I'm on LineageOS and just patched the init_boot with your magisk version, flashed it, and everything works - thanks a lot!
bhammler said:
thank you, it worked straight away. I'm on LineageOS and just patched the init_boot with your magisk version, flashed it, and everything works - thanks a lot!
Click to expand...
Click to collapse
Great to know it works on LineageOS.
What steps did you take for installing it? Just flash the patched init_boot along with the other images then booted into the recovery to install the the system?
Great work namelesswonder
Namelesswonder said:
Great to know it works on LineageOS.
What steps did you take for installing it? Just flash the patched init_boot along with the other images then booted into the recovery to install the the system?
Click to expand...
Click to collapse
I was on a running LineageOS 20 with Magisk 25.2. First I've installed your Magisk Delta on top of my Magisk version, patched the stock init_boot.img with Magisk Delta, booted into the bootloader and just flashed the patched init_boot.img without wiping.
Then I've uninstalled the regular Magisk version and everything works since yesterday
bhammler said:
I was on a running LineageOS 20 with Magisk 25.2. First I've installed your Magisk Delta on top of my Magisk version, patched the stock init_boot.img with Magisk Delta, booted into the bootloader and just flashed the patched init_boot.img without wiping.
Then I've uninstalled the regular Magisk version and everything works since yesterday
Click to expand...
Click to collapse
I would be careful since in my testing enabling Zygote32 without a wipe would allow 32-bit applications to be installed but they wouldn't run right as the libraries they're trying to use aren't being loaded for some reason.
The app that would consistently crash in this scenario was Flappy Bird, so try running it to see if it crashes.
If it works fine then I guess LineageOS isn't affected then.
brilliant work. cheers.
Flappy Bird crashes. But the Apps that I use are working: -)
Namelesswonder said:
I would be careful since in my testing enabling Zygote32 without a wipe would allow 32-bit applications to be installed but they wouldn't run right as the libraries they're trying to use aren't being loaded for some reason.
The app that would consistently crash in this scenario was Flappy Bird, so try running it to see if it crashes.
If it works fine then I guess LineageOS isn't affected then.
Click to expand...
Click to collapse
bhammler said:
Flappy Bird crashes. But the Apps that I use are working: -)
Click to expand...
Click to collapse
Well that's good to know that at least some 32-bit apps work when you don't wipe. If you're only using a static set of apps that don't change and they work that's good for you.
@Ghisy you might be able to use the modification without wiping. Your mileage may vary and some apps might not work. If you get stuck at the boot animation you can just flash the previous init_boot you were using and let the phone sort itself out for a few minutes.
Nice work. For anyone building, there's this
https://review.lineageos.org/c/LineageOS/android_device_google_gs201/+/344324
Namelesswonder said:
@Ghisy you might be able to use the modification without wiping. Your mileage may vary and some apps might not work. If you get stuck at the boot animation you can just flash the previous init_boot you were using and let the phone sort itself out for a few minutes.
Click to expand...
Click to collapse
I'm traveling right now so I don't wanna mess around with my phone. I'll take a look when I'm back home in a couple of weeks.
so this is what's needed to get viper4android working? has anyone verified v4a works using this? if so, what version? there are so many at this point it's hard to keep track.
This type of workaround will only persist if future pixel phones or current devices have multilib, correct?
Edit: never mind, I read more of your detailed explanation and I understand now
Schroeder09 said:
so this is what's needed to get viper4android working? has anyone verified v4a works using this? if so, what version? there are so many at this point it's hard to keep track.
Click to expand...
Click to collapse
I doubt this will get V4A working on this device. The problem, in a nutshell, is that V4A uses arm32 audio drivers while this device and some other devices on Android 13 (e.g. Pixel 6 series) use arm64 audio drivers. It's V4A itself that needs updating, which someone is working on at the moment but I don't know how far it has progressed.
Namelesswonder said:
The changes that need to be done are to either be applied to /vendor/build.prop, or done with init.rc modifications, or applied in some way before init.rc is read.​
The last point is the critical issue that has halted this: there has not been any easy way to set properties very early in the boot process outside of simply just modifying the file on the partition.
This can't be done easily due to dynamic partitions requiring a custom super partition, and with the larger issue being AVB.
Click to expand...
Click to collapse
Great work on this. Just curious, in your testing did you try overlay.d to see if that worked early enough to change the props? I saw osm0sis suggest this (as you probably have seen as well) but wasn't sure if you tried it. Just throwing this out there in case...
Lughnasadh said:
Great work on this. Just curious, in your testing did you try overlay.d to see if that worked early enough to change the props? I saw osm0sis suggest this (as you probably have seen as well) but wasn't sure if you tried it. Just throwing this out there in case...
Click to expand...
Click to collapse
Magisk/docs/guides.md at master · topjohnwu/Magisk
The Magic Mask for Android. Contribute to topjohnwu/Magisk development by creating an account on GitHub.
github.com
I do not believe it will work to change props because overlay.d custom rc files are read after init.rc, which means that the init has already been read and init.zygote64.rc has already been imported. The custom rc and supplemental script to change the property would be running after that which wouldn't do anything since the init is already setup.
I have not tested the file replacing ability of overlay.d to see if it can overlay onto the preexisting init files. Would still need a service to set the properties so that when the zygote services launch they know what ABIs are supported.
I didn't go through with that since modifying magiskinit to set up build.prop in a build version agnostic way seemed like a better idea since I knew it already worked. If overlay.d can replace init.rc then that means having to modify the init_boot to contain the new init.rc for each build if Google ends up changing them. I haven't checked init.rc for changes, but I do know that init.zygote64_32.rc did have inconsequential changes from stable Android 13 -> QPR1, so they probably did do some changes.
Thank you for the detailed steps! I could finally enjoy ad free experience on Instagram without having to decompile the app just to add 64bit lib support (and it failed to start regardless...)

[ROM][OFFICIAL][instantnoodle][13] LineageOS 20

DISCLAIMER​Anything you do to your own device is your responsibility and your responsibility only. You may NOT hold me responsible for any damage caused to your device.
{
"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"
}
LineageOS is a free, community built, aftermarket firmware distribution of Android 13, 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.
All the source code for LineageOS is available in the LineageOS Github repo. And if you would like to contribute to LineageOS, please visit out Gerrit Code Review. You can also view the Changelog for a full list of changes & features.
The only official site with proper instructions to install LineageOS is https://wiki.lineageos.org/. Any instructions that come from anywhere else is not to be trusted at all.
You should especially distrust instructions from websites that try and impersonate LineageOS. One example of such a site is lineageosroms[.]com.
Instructions​Scroll down to the 2nd post in this thread for installation and upgrade information.
Reporting Bugs​Please follow the instructions here to report your bug to our GitLab issues if you can, as it makes it easier for us to keep track of bugs and progress on fixing them.
However, should you be unable to do so and must post your bug report in this thread instead, then please adhere to the following guidelines:
DO NOT Report bugs if you're running a custom kernel, have installed Magisk, Xposed, or have done modifications to your device that touch any of the read-only partitions (with GApps being the only exception).
As this is an A/B device, recovery will not run addon.d scripts. As such, try undoing all the modifications by reflashing the rom + GApps (if you used them) in recovery--no need to wipe data. After that, check to see if the bug is still there.
Grab a logcat right after the problem has occurred. (Please include at least a few pages of the log, not just the last few lines, unless you know what you're doing.)
If it is a random reboot, grab /sys/fs/pstore/console-ramoops and /sys/fs/pstore/dmesg-ramoops-0. (Do not bother getting a logcat unless you can get it just before the reboot. A logcat after a reboot is useless)
If the problem disappears after running "setenforce 0" from a root shell, grab /data/misc/audit/audit.log
Remember to provide as much info as possible. The more info you provide, the more likely that the bug will be solved. Please also do not report known issues. Any bug not reported in the bug report format below may be ignored.
Code:
What is your--
LineageOS version:
LineageOS Download url:
Gapps version:
Did you--
wipe:
restore with titanium backup:
reboot after having the issue:
Are you using--
a task killer:
a non-stock kernel:
other modifications:
Provide any additional information (observations/frequency of problem/last version it worked on/etc) as needed:
Telegram Chat:​I have a Telegram group that you can join if you prefer to chat that way, as opposed to posting on a forum thread. Join here.
Supported models:​The only officially supported models are the following:
IN2010 (China)
IN2011 (India)
IN2013 (Europe/Asia)
IN2015 ("Global"/NA)
IN2017 (T-Mobile) is unofficially supported, as that's what I did my device bringup against.
IN2019 (Verizon) is not supported. VZW sensor configs are not bundled in this ROM, so accelerometer/gyroscope and magnetometer readings are going to be incorrect. In addition, battery gauge reading seems to be broken, based on one user trying this ROM on their IN2019 despite it being unsupported. I am likely not going to fix this anytime soon, as I do not have an IN2019 to validate my fixes against.
Upgrading from LineageOS 19.1:​If you are coming from LineageOS 19.1 AND using LineageOS 19.1 Recovery, then follow the instructions here to upgrade. Remember to flash Android 13 GApps if you used GApps previously.
We ship the required firmware (OxygenOS 13 11.F.13 as of 2022-12-31) in our OTA zips, so you do not need to install that firmware to both your slots on your OnePlus 8 before proceeding through the instructions.
Installing LineageOS 20 for the first time:​Prerequisites:​Ensure you've installed any version of OxygenOS/ColorOS 12 or 13 on the active slot on your device. The installation instructions recommend you be on OOS/COS 13 because on OOS/COS 12, touchscreen will end up not working while in LineageOS Recovery. However, you can still proceed while using OOS/COS 12 firmware; use the volume keys + power button to navigate recovery.
Instructions:​Once you satisfy the prerequisites above, then follow the instructions here to install LineageOS 20.
We ship the required firmware (OxygenOS 13 11.F.13 as of 2022-12-31) in our OTA zips, so you do not need to install that firmware to both your slots on your OnePlus 8 before proceeding through the instructions.
Currently Known Bugs​Occasional 1-2 second freezes when waking the device from sleep​Sometimes, when you wake the device, you can see the display seemingly freeze for 1-2 seconds while it's fading in the lockscreen. Unfortunately, I don't know why that happens, and I don't think I'll be able to fix that myself anytime soon.
Light sensor readings do not filter out light coming from the screen​The light sensor is placed way too close to the top of the screen, so light bleed from the screen ends up affecting light sensor readings. On OOS, they use some algorithm to determine how much of the light detected by the sensor is actually coming from the display itself, and then subtract that value from the reading. We currently don't have anything to handle that for this LineageOS build. Some people have tried developing their own algorithm for this on the OnePlus 7 series of devices, but apparently, it doesn't work that well, so it was never brought over to the OnePlus 8 series of devices. In addition to that, novenary was reverse engineering OnePlus's implementation, but they stopped working on that since they no longer daily drive their hotdogb.
As such, expect Adaptive Brightness to be very much unusable, as the feedback loop caused by the light sensor sensing the light from the screen will result in Adaptive Brightness increasing the brightness all the time.
UDFPS (Under-display Fingerprint Sensor) doesn't work properly in 90° and 270° screen rotations​For both 90° and 270° (both of which are landscape orientations), the HWC layer for the UDFPS circle doesn't get excluded from the dimlayer, and as such, it doesn't end up illuminating bright enough to scan your finger. The circle is still positioned in the right place, so there could still be a possibility that one could figure out how to fix this.
UDFPS (Under-display Fingerprint Sensor) doesn't work properly in 180° screen rotation​For 180° (upside-down), not only is the auth dialog window in the wrong place, but the UDFPS circle doesn't even show up. This will not be fixed.
Mic input volume in speakerphone and video/audio recordings seems quieter than usual​This is still being explored, but it ends up seeming like the top mic's gain is too low or something? More details to come...
Spoiler: Old Bugs
Ambient Display (Always-on Display) may not work properly if panel can't freely switch between 60Hz and 90Hz​(Fixed in 2023-01-21 build)
With Ambient Display enabled, when you "turn off" the screen, the panel will first show the Ambient Display info at normal brightness before trying to switch to LP1 mode. However, for instantnoodle, that mode seems to cause the panel to blank out entirely. It's only when Android decides to switch between 60/90Hz that the panel ends up turning back on, and that usually takes up to 6 seconds for that to happen.
This is under investigation still. Since the LP1 panel command's payloads are specific to this panel (Samsung amb655uv01), and since I have not found a datasheet for this panel, I may not be able to fix this. Either that, or I would need to prevent the LP1 command from running in the first place, and then see if that affects battery life.
EDIT: Fix is up: https://review.lineageos.org/c/LineageOS/android_kernel_oneplus_sm8250/+/347184
Thanks to @javelinanddart for taking a look and deducing which part of the LP1 command was causing the screen to blank.
While WiFi calling is enabled, VoIP calls (Google Voice, TextNow, etc.) starts stuttering frequently on WiFi​(Fixed in 2023-01-21 build)
A few hours after turning on WiFi Calling on the OnePlus 8, you'll likely notice that VoIP calls on apps like Google Voice and TextNow will seem to stutter while on WiFi, getting to the point where the call is unstable and neither party can really talk to each other. This bug is related to IMS making the cnd daemon from qcom's CNE request WiFi ext stats every two seconds. A race condition in the qcacmn kernel driver could end up happening during one of these requests, which potentially leads to every subsequent ext stats request timing out after waiting for 1.5 seconds. During that 1.5 second period, VoIP packets seem to get dropped entirely. This issue has been present since LineageOS 18.1, it seems.
I do have code that works around this race condition, but I don't think it's ready to review yet because I'm still trying to learn more about the qcacmn driver. I will update this space with more info when ready.
EDIT: Fix is up: https://review.lineageos.org/c/LineageOS/android_kernel_qcom_sm8250/+/347290
Thanks to Andrea for showing a way to work around this race condition that required fewer code changes.
CPU scheduler becomes reluctant to schedule tasks on the Gold and Prime CPU clusters 15-30 minutes after boot​(Fixed in 2023-01-21 build)
After rebasing on latest qcom sm8250 + Android Common Kernel source, we ended up getting a regression in how the CPU scheduler works. For some reason, 15-30 minutes after booting up, it ends up becoming very reluctant to schedule tasks on the Prime cluster, and (I suppose) somewhat reluctant to schedule tasks on the Gold cluster.
The fix for this is up: https://review.lineageos.org/c/LineageOS/android_kernel_qcom_sm8250/+/347313
Thanks to @V3NK4135H for their help in identifying the fix.
Ambient Display (Always-on Display) appears dimmer than usual if you have at least one fingerprint registered​(Fixed in 2023-03-11 build.)
With Ambient Display enabled, when the panel enters LP1 mode, the screen seems to dim by a significant amount. This is due to the biometrics HAL enabling dimlayer_hbm while listening for a fingerprint. Turning on dimlayer_hbm results in High Brightness mode being enabled, but with a dimlayer overlaying everything except for the UDFPS circle. This allows the UDFPS circle to shine at HBM levels of backlight while everything else remains at the original brightness level. However, if dimlayer_hbm is still on while the panel enters LP1 mode, then High Brightness mode turns off, but the dimlayer still remains. This results in everything being dimmer than it really should be.
I have a bunch of changes in the pipeline that not only fixes that, but also uses the dimlayer to mimic various brightness steps so that the perceived brightness in LP1 mode will match what your display had in ON mode. Will post updates in the thread once it gets merged.
May I ask when can I download lineageOS 20, as I got some problems with my lineageOS 19
YukikazeMywaifu said:
May I ask when can I download lineageOS 20, as I got some problems with my lineageOS 19
Click to expand...
Click to collapse
Hopefully within the next 24 hours... all the lineage-20 devices got their builds triggered today, but it will be some time before instantnoodle build starts running.
Hi! I can't get "File Transfer" to work now when connecting the phone to Windows 11- previously no problems with 19.1.
Seems I now have a unrecognized MTP driver. Any thoughts?
MadCTR said:
Hi! I can't get "File Transfer" to work now when connecting the phone to Windows 11- previously no problems with 19.1.
Seems I now have a unrecognized MTP driver. Any thoughts?
Click to expand...
Click to collapse
ok, turning off USB debugging makes it work with no problem, not sure it this is supposed to be like that. Anyways, awesome job since everything is basically working great!
MadCTR said:
ok, turning off USB debugging makes it work with no problem, not sure it this is supposed to be like that. Anyways, awesome job since everything is basically working great!
Click to expand...
Click to collapse
That's good to hear. In the meantime, EdwinMoq put this up as a potential fix: https://review.lineageos.org/c/LineageOS/android_kernel_oneplus_sm8250/+/346680
Maybe a rather stupid question, but if I were to upgrade to 20, would I have to reinstall all my apps or will they automagically carry over?
mtmoretz said:
Maybe a rather stupid question, but if I were to upgrade to 20, would I have to reinstall all my apps or will they automagically carry over?
Click to expand...
Click to collapse
If you follow the upgrade procedure, then all your userdata should remain intact.
I had a fairly seemless upgrade from LineageOS 19 to Lineage 20 following LibeageOS's guide with no data loss.
Lost root and MicroG (no GApps on my phone). I did rename Magisk.apk to Magisk.zip and sideloaded it right after sideloading LineageOS.
To get root back:
Extract boot.img with payload-dumper-go (I use Artix Linux).
Download LineageOS 20 recovery.
Transfer the two image files to the phone.
From the Magisk app on the phone, patch boot.img and the recovery image.
Upload the two patched files back to the computer.
Reboot phone into recovery (adb reboot recovery) and then put it into fastbootd mode (advanced, fastboot - I think)
Now execute the following commands:
1. fastboot devices (note that it's in fastbootd mode)
2. fastboot flash boot_a {your_Magisk_patched_boot_image}
3. fastboot flash boot_b {your_Magisk_patched_boot_image}
4. fastboot flash recovery_a {your_Magisk_patched_recovery_image}
5. fastboot flash recovery_b {your_Magisk_patched_recovery_image}
6. Reboot phone ('fastboot reboot' works)
Always works for me. Your milage may vary.
jabashque said:
If you follow the upgrade procedure, then all your userdata should remain intact.
Click to expand...
Click to collapse
You weren't joking; it didn't even close the apps I had open during the upgrade, absolutely flawless! Thanks again!
Hi. It works almost fine, but I can't connect to the cellular network and when I make a call it tells me to turn off airplane mode. Of course not in airplane mode. Any workaround?
osetiopica said:
Hi. It works almost fine, but I can't connect to the cellular network and when I make a call it tells me to turn off airplane mode. Of course not in airplane mode. Any workaround?
Click to expand...
Click to collapse
Some questions:
Is this the T-Mobile variant of the OnePlus 8?
What were you running prior to LineageOS 20? Give details about what upgrade path you took, because I do recall there is one situation where trying to use the non-T-Mobile modem image on a T-Mobile variant OnePlus 8 will not work.
kokanee1 said:
I had a fairly seemless upgrade from LineageOS 19 to Lineage 20 following LibeageOS's guide with no data loss.
Lost root and MicroG (no GApps on my phone). I did rename Magisk.apk to Magisk.zip and sideloaded it right after sideloading LineageOS.
To get root back:
Extract boot.img with payload-dumper-go (I use Artix Linux).
Download LineageOS 20 recovery.
Transfer the two image files to the phone.
From the Magisk app on the phone, patch boot.img and the recovery image.
Upload the two patched files back to the computer.
Reboot phone into recovery (adb reboot recovery) and then put it into fastbootd mode (advanced, fastboot - I think)
Now execute the following commands:
1. fastboot devices (note that it's in fastbootd mode)
2. fastboot flash boot_a {your_Magisk_patched_boot_image}
3. fastboot flash boot_b {your_Magisk_patched_boot_image}
4. fastboot flash recovery_a {your_Magisk_patched_recovery_image}
5. fastboot flash recovery_b {your_Magisk_patched_recovery_image}
6. Reboot phone ('fastboot reboot' works)
Always works for me. Your milage may vary.
Click to expand...
Click to collapse
Patching boot.img is unnecessary to regain root, no? I have only ever had to sideload the Magisk zip file after sideloading the ROM zip. If you ran into any issues sideloading originally, it could be because you did not reboot recovery after sideloading the ROM (Advanced, Reboot to Recovery). To be safe I do it after sideloading every addon (sideload ROM, reboot to recovery, sideload GApps, reboot to recovery, sideload Magisk, reboot to system), and all data was completely intact through this process.
Just wanted to thank you for the continued support! I saw you wrote that Display Alt should be working again, so I'll check it out as soon as I can get MicroG to work with it!
GregWooledge said:
Patching boot.img is unnecessary to regain root, no? I have only ever had to sideload the Magisk zip file after sideloading the ROM zip. If you ran into any issues sideloading originally, it could be because you did not reboot recovery after sideloading the ROM (Advanced, Reboot to Recovery). To be safe I do it after sideloading every addon (sideload ROM, reboot to recovery, sideload GApps, reboot to recovery, sideload Magisk, reboot to system), and all data was completely intact through this process.
Click to expand...
Click to collapse
It's true that I sideloaded Magisk without rebooting first. I'll have to try that next year! Thank you!
osetiopica said:
Hi. It works almost fine, but I can't connect to the cellular network and when I make a call it tells me to turn off airplane mode. Of course not in airplane mode. Any workaround?
Click to expand...
Click to collapse
I had the same problem when I upgraded from los18 to los19, and after I upgraded to los20 this remains the same. No idea what had happened. It's in2010 I'm using.
jabashque said:
Telegram Chat:​I have a Telegram group that you can join if you prefer to chat that way, as opposed to posting on a forum thread. Join here.
Supported models:​The only officially supported models are the following:
IN2010 (China)
IN2011 (India)
IN2013 (Europe/Asia)
IN2015 ("Global"/NA)
IN2017 (T-Mobile) is unofficially supported, as that's what I did my device bringup against.
IN2019 (Verizon) is not supported. VZW sensor configs are not bundled in this ROM, so accelerometer/gyroscope and magnetometer readings are going to be incorrect. In addition, battery gauge reading seems to be broken, based on one user trying this ROM on their IN2019 despite it being unsupported. I am likely not going to fix this anytime soon, as I do not have an IN2019 to validate my fixes against.
Upgrading from LineageOS 19.1:​If you are coming from LineageOS 19.1 AND using LineageOS 19.1 Recovery, then follow the instructions here to upgrade. Remember to flash Android 13 GApps if you used GApps previously.
We ship the required firmware (OxygenOS 13 11.F.13 as of 2022-12-31) in our OTA zips, so you do not need to install that firmware to both your slots on your OnePlus 8 before proceeding through the instructions.
Installing LineageOS 20 for the first time:​Prerequisites:​Ensure you've installed any version of OxygenOS/ColorOS 12 or 13 on the active slot on your device. The installation instructions recommend you be on OOS/COS 13 because on OOS/COS 12, touchscreen will end up not working while in LineageOS Recovery. However, you can still proceed while using OOS/COS 12 firmware; use the volume keys + power button to navigate recovery.
Instructions:​Once you satisfy the prerequisites above, then follow the instructions here to install LineageOS 20.
We ship the required firmware (OxygenOS 13 11.F.13 as of 2022-12-31) in our OTA zips, so you do not need to install that firmware to both your slots on your OnePlus 8 before proceeding through the instructions.
Click to expand...
Click to collapse
Hello I'm new to this community. I want to switch from a custom ROM known as evolution x to lineage os 20.
I have some questions regarding it.
Can I dirty flash it?
Can I do it without twrp recovery?
Also I want to flash a custom Kernal to fix the performance dip when I flashed this rom. The multicore performance of my OnePlus 8 dropped from 3065 points to 1754 (geekbench 5).
Please someone help me
Flap2004 said:
Hello I'm new to this community. I want to switch from a custom ROM known as evolution x to lineage os 20.
I have some questions regarding it.
Can I dirty flash it?
Can I do it without twrp recovery?
Also I want to flash a custom Kernal to fix the performance dip when I flashed this rom. The multicore performance of my OnePlus 8 dropped from 3065 points to 1754 (geekbench 5).
Please someone help me
Click to expand...
Click to collapse
I am completely void in knowledge on kernels, however I do know that you do not want to simply dirtyflash off of a seperate custom ROM. You should backup all of your data, and then follow the steps to factory reset and flash. I am also not 100% on this, but I do not think that TWRP even works on this version of android, and regardless you are provided with a custom recovery to flash everything necessary.

[LineageOS 20] (Android 13) GSI Install Instructions

Hi all,
i was kinda bored and sick of no Custom ROM development for our beloved S6 so i thought i'd try using a GSI and i've got it booting so i thought i would share the instructions!
As usual all care no responsibility! Nothing here is without risk.
Android 13
5 March 2023 Security Patch Level
1. Unlock your bootloader. (Very easy to do - https://www.hardreset.info/devices/...-s6/faq/bootloader-unlock/samsung-bootloader/)
2. Download the official vbmeta image provided by TWRP > https://dl.twrp.me/gts4lv/vbmeta.tar.html
3. Download TWRP https://twrp.me/samsung/samsunggalaxytabs6qcomwifi.html
4. Open Odin
5. Put VBMETA.TAR in the CP Slot & TWRP in AP slot and flash. On reboot hold down the Pwr/Up button so it boots straight into TWRP or sometimes it can be overwritten.
3. Format Data, reboot back into TWRP and Full Factory Reset . (Take a backup if you need one).
4. Transfer the LoS image file to the tablet via TWRP then Flash the LoS image through TWRP (System Partition) lineage-20.0-20230324-UNOFFICIAL-arm64_bgN.img (or whichever ARM64 flavour you like) from here: https://sourceforge.net/projects/andyyan-gsi/files/lineage-20-td/
(might need to use the adb push command to copy the file across) adb push filename.extension /sdcard
5. Flash magisk if you like.
6. Reboot to system and enjoy!
i used the one above which includes GAPPS though there are ones that don't if you prefer
I only just finished installing though - quick summary:
Working:
Fingerprint!
Hardware Buttons
SDCard
Wifi
Bluetooth
Gapps and Google Setup
Tablet is very fast!
Charging
USB File Transfer
Audio
Video out for USB-C
Auto-rotate
GPS
Official Samsung Keyboard Physically attached working fine too!
Themes
Colours
Mic
SPen
Not Working:
Only bottom speakers work
SafetyNet
Workarounds:
To pass SafetyNet (BASIC):
Flash Magisk in TWRP
Use Magiskhide
Turn on Zygist
Install Displax modified SafetyNet-Fix from link below;
hxxps://github.com/Displax/safetynet-fix/releases/tag/v2.4.0-MOD_1.2
Configure your Denylist in Magisk for Google Play Store and Services apps. (And anything else you need to not detect root).
To Fix Brightness:
Go to Settings - Phh - Misc Features - Tick the box for "Use Linear Brightness Slider"
To Help with Fingerprint:
Turn off taskbar in Settings to help alignment with Fingerprint scanner
Hope we can get some community effort behind this so we can bring this tablet back into support since Samsung gave up on it..
Credit to @AndyYan for the builds!
[GSI][13] LineageOS 20 TrebleDroid-based
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...
forum.xda-developers.com
RESERVED
In my case only bottom speakers work!
Sage said:
Hi all,
i was kinda bored and sick of no Custom ROM development for our beloved S6 so i thought i'd try using a GSI and i've got it booting so i thought i would share the instructions!
5.Install LoS image through TWRP (System Partition) lineage-20.0-20230324-UNOFFICIAL-arm64_bgN.img (or whichever ARM64 flavour you like) from here: https://sourceforge.net/projects/andyyan-gsi/files/lineage-20-td/
Click to expand...
Click to collapse
Thanks so much for this!
I have built LOS for a couple unsupported devices in the past and would love to dedicate as much time and resources as needed to this project.
Could you share which build trees were used from Github and the extracted blobs?
I would like to replicate this build and put in a request with LOS developer stinX for an official one.
tablet_seeker said:
Thanks so much for this!
I have built LOS for a couple unsupported devices in the past and would love to dedicate as much time and resources as needed to this project.
Could you share which build trees were used from Github and the extracted blobs?
I would like to replicate this build and put in a request with LOS developer stinX for an official one.
Click to expand...
Click to collapse
I am not sure mate about the GIT and Blobs. These are GSI so "generic" so they may not have them. From my understanding they work with the existing Vendor image and take advantage of Treble to ensure everything works.
The source of the files is here:
[GSI][13] LineageOS 20 TrebleDroid-based
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...
forum.xda-developers.com
m0byn said:
In my case only bottom speakers work!
Click to expand...
Click to collapse
There are quite a lot of tweaks available in the PHH settings. I suggest you play around in there and you may get both sets of speakers working. I will do the same
I have added it to "Not Working" section.
Sage said:
There are quite a lot of tweaks available in the PHH settings. I suggest you play around in there and you may get both sets of speakers working. I will do the same
I have added it to "Not Working" section.
Click to expand...
Click to collapse
I should add i think this is MUCH faster than stock and battery life is looking great too!
I am happy there are some other people who are using this GSI on a Tab S6. I installed it some time ago and am very satisfied!
Some things I found:
Fingerprint XY coordinates are somehow off. Specifically, the symbol showing on screen and the actual reader are not on the same place. I think it is related to the app bar somehow, since it seems to be off by that. I think this could be fixed by an overlay.
Auto-brightntess is not available as well. Either use an app for that, or don´t use it. This can also be fixed by an overlay as far as I know.
Maybe it is also possible to get the top speakers working by making an overlay? I am not sure regarding this, however.
Obviously, DolbyAtmos is not included. However, I think there exists a Magisk Module. Maybe it would also be possible to integrate this into an overlay? This would be amazing
I am very new to the custom ROM/GSI scene. So, my experience with overlays and so on is basically none. However, I would try to contribute as good as I can if someone feels ready to create an overlay and then getting it implemented into the GSI.
Anyone interested in cooperating?
Sage said:
There are quite a lot of tweaks available in the PHH settings. I suggest you play around in there and you may get both sets of speakers working. I will do the same
I have added it to "Not Working" section.
Click to expand...
Click to collapse
I will try to do that as well...lets see.
I would explicitly add to the working section that the spen works and also pressure sensitivity of the spen works! At least in the Saber Handwritten Notes app which I use. This is amazing.
Sage said:
1. Unlock your bootloader. (Very easy to do - https://www.hardreset.info/devices/...-s6/faq/bootloader-unlock/samsung-bootloader/)
2. Install TWRP via Odin https://twrp.me/samsung/samsunggalaxytabs6qcomwifi.html
3. Full wipe thru TWRP. Including format data. (Take a backup if you need one).
4. Reboot back to TWRP.
5.Install LoS image through TWRP (System Partition) lineage-20.0-20230324-UNOFFICIAL-arm64_bgN.img (or whichever ARM64 flavour you like) from here: https://sourceforge.net/projects/andyyan-gsi/files/lineage-20-td/
6. Boot and enjoy!
Click to expand...
Click to collapse
Didn`t you patch the vbmeta.img, or did you flash the multidisabler zip?
Somehow, one has to disable verified boot such that you can even boot LineageOS...as far as I know!
m0byn said:
Didn`t you patch the vbmeta.img, or did you flash the multidisabler zip?
Somehow, one has to disable verified boot such that you can even boot LineageOS...as far as I know!
Click to expand...
Click to collapse
All I did was what I posted above! I'm surprised how easy it was tbh!
Sage said:
All I did was what I posted above! I'm surprised how easy it was tbh!
Click to expand...
Click to collapse
Did you start from stock rom? Maybe you already flashed a vbmeta.img or multidisabler.zip some time ago which is still in effect?
I really doubt that it is possible to boot a different os if verified boot of Android is not adjusted...
m0byn said:
Did you start from stock rom? Maybe you already flashed a vbmeta.img or multidisabler.zip some time ago which is still in effect?
I really doubt that it is possible to boot a different os if verified boot of Android is not adjusted...
Click to expand...
Click to collapse
Nope. Started from stock. Literally unlocked bootloader right before moving to GSI. Just like the steps above.
I did install Magisk which may help disable verified boot though
Sage said:
Nope. Started from stock. Literally unlocked bootloader right before moving to GSI. Just like the steps above.
I did install Magisk which may help disable verified boot though
Click to expand...
Click to collapse
Ah, that might make the difference! So I think it is worth to mention to either install Magisk, or to patch the vbmeta.img in order to boot. If coming from stock with the stock vbmeta.img, then Android Verified Boot will not allow booting into a different ROM.
m0byn said:
Did you start from stock rom? Maybe you already flashed a vbmeta.img or multidisabler.zip some time ago which is still in effect?
I really doubt that it is possible to boot a different os if verified boot of Android is not adjusted...
Click to expand...
Click to collapse
OP is wrong.
Be careful flashing the latest TWRP for SMT-860 Wifi with Odin.
This happened to me today after doing it. "Error verifying vmbeta image: Invalid vmbeta header"
{
"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"
}
The device gets stuck like this and won't boot anymore, but you can get it back to normal by flashing the recovery.img from your firmware files (It's in AP)
You cannot install TWRP on the Galaxy Tab S6 without fixing the vmbeta.img issue.
I tried with the latest Samsung firmware downloaded via SamFirm and an older one.
@m0byn: Do you know what needs to be done with the vmbeta.img on this device, to allow for TWRP to be flashed?
I have found many different prescribed solutions such as patching boot.img with Magisk or just the vmbeta.img , but nothing seems to work.
Tablet, search my post here https://forum.xda-developers.com/t/t865-rooting-with-android-12-bootloop-and-error.4452641/ and try
Hey man, thank you for the suggestion. That post seems to be about Magisk and rooting.
The problem here is the vmbeta.img.
According to older posts from 2021 this can be resolved by flashing vbmeta_disabled.tar , but the latest 2022 version of TWRP should no longer require this. It's weird.
I am sorry. I thought something went wrong when you patched the firmware with Magisk
Probably flashing Magisk automatically patches the vbmeta.img. Not sure though.
Follow the steps below. This is how I did it. It worked.
I am assuming a stock recovery in this process. If you already installed TWRP just try if it works as well. not sure if this is impacting the process.
Unpack firmware using 7Zip tool
Unpack AP.tar.md5 using 7Zip tool
Unpack vbmeta.img.lz4 using 7Zip-ZS tool
Open file in FrhedPortable (HEX editor) to patch it
Go to offset (block) 123 and write 03 and save
Compress vbmeta.img to vbmeta.img.tar using 7Zip tool
Connect device via USB to computer
Hold volume up & volume down buttons
Press volume up button to proceed to download mode
Open Odin -> verify whether device number is added
Untoggle "auto-reboot" in options
Select AP section
Choose patched vbmeta.img.tar file
Click start to flash
When flashing process is done: hold power & volume down button to exit and power off device
IMPORTANT: as soon as device shuts off immediately release volume down button and press volume up button to enter recovery mode
Click factory reset
Click reboot to bootloader
Thanks @m0byn I managed to figure it out with your help.
For anyone else facing the same problem, here is what you need to do:
Download the official vbmeta image provided by TWRP > https://dl.twrp.me/gts4lv/vbmeta.tar.html
Proceed to flash with Odin.
Put the TWRP recovery image in AP and vbmeta.tar in the CP slot.
After this you can boot into the TWRP recovery normally, but for some reason any changed settings in TWRP are not saved. So everytime I reboot into TWRP recovery all previously selected TWRP settings are lost. I wonder if that's normal, but everything else seems to work.
Next step will be flashing the Lineage GSI, i'll keep you guys posted.

Categories

Resources