Related
Welcome to POCO F1 Ultimate Collection!
(beryllium)
OFFICIAL STOCK MIUI ROM
You can check my Guides for installation.
Recovery ROM V12.0.3.0.QEJMIXM
Fastboot ROM V12.0.3.0.QEJMIXM
POCO F1 Global Stable ROM Library / POCO F1 MIUI Official ROMs Archive
FIRMWARE & VENDOR
POCO F1 Firmware
POCO F1 Vendor
POCO F1 Latest Firmware & Vendor
CUSTOM ROMS
You can check my Guides for installation.
Note: I've created an award system for people which are not familiar with custom ROMs, to help them choose a ROM which is stable for daily use, gets frequently updates with security patches every month and has active development, so they don't mess with ROMs which appearing and then dissapearing (and we have a lot of them).
ROMs under awarded ROMs are not order by rating and just have random order.
If you are knowledge, you can ignore my awards and choose any ROM you like.
My standards for giving award to a ROM are:
Open Source
Stable enough for daily use
SELinux Enforcing
Safetynet pass by default
Encrypted by default
Debloated
Active & Stable Development
Translations
Popularity
OTA
No Pixel Thermals
What is System_EXT? Check out here.
Based on MIUI ROM
MIUI MindEdition
MIUI 13 MindEdition A12 Unofficial
PocoOS
MIUI 14
BeosXPredator
Xiaomi.eu V12.0.3.0.QEJMIXM
Elite ROM
MIUI 12 Global Stable Modiefied
Linux Distribution
Ubuntu Touch
Droidian Unofficial
Android 13
crDroid [Installation Guide] [crDroid Recovery]
AwakenOS [Installation Guide] [TWRP by REIGNZ Recovery]
Official LineageOS / LineageOS microG [Installation Guide] [LineageOS Recovery]
PixelOS [Same as AwakenOS Installation Guide] [TWRP by REIGNZ Recovery]
ArrowOS [Same as AwakenOS Installation Guide] [TWRP by REIGNZ Recovery]
Paranoid Android / Unofficial PA [Same as AwakenOS Installation Guide] [TWRP by REIGNZ Recovery]
ReloadedOS [Same as AwakenOS Installation Guide] [TWRP by REIGNZ Recovery]
BaikalOS
SOSP-OS Project
Pixel Experience Unofficial
StatiXOS
Project Elixir
ArrowOS-MiPA Edition
EvolutionX
Project 404
DerpFest
LessAOSP
DivestOS
PixelExtended
CalyxOS
LibreMobileOS
CorvusOS
Project Blaze
BananaDroid
PixelPlusUI
BlissROM
Nusantara
riceDroid
Xtended
ColtOS
VoidUI
Black Iron
AncientOS
StagOS
SparkOS
AlphaDroid
SuperiorOS
ProtonPlus
CygnusOS
VoltageOS
CherishOS
xdroidOSS
EternityOS
Android 12/12L
Android 12L/12.1
crDroid [Installation Guide] [crDroid Recovery]
AwakenOS [Installation Guide] [TWRP by REIGNZ Recovery]
Official LineageOS / LineageOS microG [Same as crDroid Installation Guide but use LineageOS ROM / Recovery] [LineageOS Recovery]
Pixel Experience [Installation Guide] [PE Recovery]
ProtonAOSP
Paranoid Android
PixelOS
LibreMobileOS
CalyxOS
riceDroid
FluidOS
Project404
ForkLineageOS
Project Elixir
ArrowOS Unofficial
CorvusOS
EvolutionX
/e/OS
DerpFest
SyberiaOS
BiancaProject
VoidUI
LineageOS++ by side
CherishOS
SparkOS
StagOS
CygnusOS
AtomXCLO
FlamingoOS
KomodoOS
CipherOS
Nusantara Project
AncientOS
PixyOS
xDroid
LessAOSP
LeOS
VoltageOS
Kaleidoscope
ElytraOS
KryptonAOSP
Project Zephyrus
Project Arcana
ProjectBlaze
FusionOS
POSP
PixelBlaster
Android 12
MSM Xtended
PixelPlusUI
Project Radiant
BlissROM
CAFEX
SuperiorOS
Fluid
AOSPK
OctaviOS Unofficial
AospExtended Unofficial
Android 11
LineageOS / LineageOS microG
Pixel Experience
crDroid Android
ArrowOS
HavocOS
BaikalOS
EvolutionX
DotOS
AICP
Fork LineageOS
CalyxOS
/e/OS
AospExtended
PixelPlusUI
Paranoid Android
MSM Xtended
WaveOS
RohieOS
Project 404
BlissROM
CAFEX
xdroidCAF
DerpFest
BananaDroid
RevengeOS
AOSiP
ShapeShiftOS
Fluid
AwakenOS
POSP
PixelROM
SpiceOS
Styx Project
Project Sakura
StagOS
ArcaneOS
Syberia
TenX-OS
StatixOS
ColtOS
CherishOS
CesiumOS
Bootleggers
AOSPK
KangOS
ReloadedOS
CygnusOS
CesiumOS
Candy 11
AncientOS
OctaviOS
Nusantara Project
ConquerOS
HornbillOS
HyconOS
Android 10
Pixel Experience
LineageOS
crDroid
ReloadedOS
EvolutionX
Paranoid Android
CorvusOS
HavocOS / HavocOS Fan Build
ArrowOS
KeepQassa
CarbonROM
AOSiP
PixelROM
PixelDust
POSP
Ressurection Remix
MSM Xtended
AICP
OmniROM
CAFEX
DeepFest
NitrogenOS
Komodo OS
PixysOS
BlissROM
ColtOS
SuperiorOS
HornbillOS
ZenX OS
StagOS
NusantaraProject / Unofficial NusantaraProject
Project Sakura
CUSTOM KERNELS
What is System_EXT? Check out here.
Active Development
SilverCore Kernel
No Gravity Kernel [NGK Profiles -> Infos about Profiles]
Kawaii Kernel
Ingenium Kernel
Rockstar Kernel
EOL (Archived)
BAALAM Kernel
Gear Kernel
NexusCAF Kernel
Optimus Drunk Kernel
Franco Kernel
arter97 Kernel
Twisted Kernel
Illusion Kernel
Sphinx Kernel
Stealth Kernel
MiPa Kernel
MiPa Kernel
Canting Kernel
Delta Kernel
Seshstation Kernel
XDKernel
Simple Kernel
Parallax Kernel
Malakas Kernel
CUSTOM RECOVERIES
You can check my Guides for installation.
What is System_EXT? Check out here.
Unofficial TWRP Recovery by REIGNZ (Normal version= system_ext / NSE version=Non system_ext) [Telegram Support] [Current Bugs/Issues]
Official TWRP Recovery
LineageOS Recovery
crDroid Recovery
Pixel Experience Recovery
Dynamic Retrofit Recovery
OrangeFox Recovery
PitchBlack Recovery
Sky Hawk Recovery Project
GAPPS & microG
GApps
Note: be sure you have selected Platform: ARM64 and the proper Android version of the ROM you are going to flash. If the ROM you want to flash include GApps, no need to download and flash any GApps at all.
Most of the GApps have also a config. file which can be used to to configure your installation the way you like. You can skip any Package that you don't want to be part of your installation. For more infos about that, read the instructions of the GApps you chose or search in Google.
Retrial-NikGApps
NikGApps [Create your own NikGApps build -> Video Guide] [Guide for Packages Information/Description]
BiTGApps
MindTheGapps
FlameGApps [FlameGApps Config] [FlameGApps A13 Basic]
Open GApps / Open GApps Unofficial A12L
LiteGapps
microG
If you don't want to use Google Play Services and general move away from Google, microG and its variants is an open source alternative which replace these services.
NanoDroid
MinMicroG
BiTGApps microG
microG Revived
microG
MAGISK ROOT
You can check my Guides for installation.
Magisk (APK)
Magisk.zip (Flashable Zip)
Uninstall.zip (Flashable Zip)
Magisk Canary (APK)
Magisk Delta
FoxMagiskModuleManager (This app replace the official magisk module repository since no longer available)
Momo (You can use this app too check if any modifications related Magisk are detected or not)
Universal SafetyNet Fix by kdrag0n [Video Guide]
Shamiko (Hide Root from apps) [Guide]
Note: If your apps detect root, follow this Guide (or this) to pass SafetyNet and have certified Play Store. [YouTube Video Guide]
DISABE FORCE ENCRYPTION (DFE) & ENCRYPTION
You can check my Guides to find for what is used for.
Disable Force Encryption A13 (DFE A13)
Disable Force Encryption (DFE)
Encrypt Data
GOOGLE CAMERA PORTS & UNIVERSAL STOCK CAMERA UNINSTALLER & ANXCAMERA
Note: You can use 2 or more different GCams by installing GCams with different package names.
For example you can use Sanity's v9.6 ENG and BSG v8.1 MGC or Parrot etc... and vice versa.
That way you will have a stable GCam which everything works (Sanity's), but you can also have a latest version of GCam for features that v9.6 of Sanity's doesn't have, like astro mode etc.
Read the FAQ.
Poco F1 Photography: Telegram Group
san1ty
Parrot043
BSG (Public Version) [Video Stabilization Settings]
BSG (Private Version) [XML Configs] [Video Review]
Parrot043 (7.0.009_FinalBuildGoodbye_V1) / Settings (Apply the settings of this thread)
GoogleCameraMod07062019_xiaomi-sdm845 (Old 9.6 PE Default GCam)
ANXCamera (Magisk Module - No Addon needed)
Universal Stock Camera Uninstaller (Flash it in Recovery)
Note: If you updated GcamGo from the Play Store, you will need to flash this file and manually uninstall GcamGo from the app info.
GOOGLE PLAY SYSTEM UPDATE 🛡
You can manually update Google Play System by downloading and installing Main components.
ULTIMATE COLLECTIONS & GUIDES (APPS)
Check the Privacy & Security section in my Guides.
If for some reason you can't find/install an app on Google Play Store due country restrictions or anything, you can sideload the app from APKMirror.
Android Ultimate Collection & Guides
Windows Ultimate Collection & Guides
ReVanced & ReVanced Extended - Guides & Useful Links
UNIVERSAL ANDROID DEBLOATER
Universal Android Debloater
XIAOMI TOOLS
Mi Unlock
Xiaomi Mi Flash Tool
Xiaomi ADB/Fastboot Tools
Fastboot Drivers
Persist Partition (beryllium)
MINIMAL ADB AND FASTBOOT
Minimal ADB and Fastboot
ADB & Fastboot++
Fastboot Drivers
AMD RYZEN/INTEL FASTBOOT FIX
Check the AMD Ryzen Fastboot Fix Guide for the proper steps.
AMD Ryzen/Intel Fastboot Fix (Batch File .bat)
Fastboot Drivers
POCO F1 COLLECTION MIRROR
POCO F1 Collection AFH Mirror
HALL OF FAME OF DEVELOPERS
This section is to honor and support the developers who contribute to keep alive our device with active development over the years and they continue doing it.
This is also a kind of motivation for new or juniors devs to join the Hall of Fame of Developers.
By supporting the Devs not only is helpful for them but also for the community itself.
bgcngm
REIGNZ3
gwolfu
Pierre2324
Scroll Down to check the Guides
POCO F1 Ultimate Guides!
(beryllium)
!DISCLAIMER!
Most people I know (including myself) who used my Guides and steps, did that with success many times. If you don't follow exactly the steps or you do a mistake during the process, I do not take any responsibility for any unexpected results or damage that may happen. However I am here to help if something goes wrong, just ask in the thread.
AMD RYZEN/INTEL FASTBOOT FIX
Some AMD Ryzen or Intel Systems may have problems to recognize your device in fastboot. Try the following ways:
1. Install Fastboot Drivers (Extract the folder for windows 10) at Device Manager while your device is connected in Fastboot mode.
2. Download this .bat file (unzip it) or manually create a .bat file with these lines below, and run it as an administrator, then reboot:
Code:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "osvc" /t REG_BINARY /d "0000" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "SkipContainerIdQuery" /t REG_BINARY /d "01000000" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "SkipBOSDescriptorQuery" /t REG_BINARY /d "01000000" /f
3. Enable USB Debugging at device (Settings > Additional settings > Developer options > USB Debugging) and give authorization after connecting it to PC.
4. Use USB Hub.
5. Use USB Type-A 2.0.
6. Install AMD Ryzen Chipset Drivers or Intel Chipset Drivers.
Check the steps an another user did to make it work here.
If this doesn't help, unfortunately you have to use Intel System which is more likely to work.
UNLOCK BOOTLOADER
Note: Some AMD Ryzen Systems may have problems to recognize your device in fastboot. [Read the AMD Fastboot Fix Guide above]
Please keep in mind by Unlocking Bootloader the device will reset and all your data will be lost. Make a backup of your data first to PC or to USB.
1. Create a Mi account on Xiaomi’s website.
2. Add a phone number to your Mi account.
3. Insert a SIM into your phone (If you haven't added already). [Do not insert 2 SIM, only 1 until the Bootloader is unlocked. If you have 2 SIM into your phone, remove 1 and reboot.]
4. Enable developer options in Settings > About Phone by repeatedly tapping (7 times) on MIUI Version.
5. Link the device to your Mi account in Settings > Additional settings > Developer options > Mi Unlock status. Also enable USB Debugging.
6. Download the Mi Unlock app (Windows is required to run the app).
7. Run the Mi Unlock app and follow the instructions provided by the app.
8. Reboot your device into Fastboot mode. For that simply turn off your device, press the Power Button + Volume Down (–) button at the same time. Then connect the device to the Windows PC/laptop via a micro USB cable.
9. After device and Mi account are successfully verified, the Bootloader should be Unlocked and your device will restart by itself.
INSTALL CUSTOM RECOVERY
Fastboot Method (No Custom Recovery currently installed)
Note: Some AMD Ryzen Systems may have problems to recognize your device in fastboot. [Read the AMD Fastboot Fix Guide above]
1. Make sure your Bootloader is Unlocked.
2. Enable developer options in Settings > About Phone by repeatedly tapping (7 times) on MIUI Version.
3. Enable USB Debugging in Settings > Additional settings > Developer options > USB Debugging.
4. Download a custom recovery of your choice and copy the .img to your Internal Storage or to SDCard. [You can find a recovery of your choice in my Collection]
5. Download the portable Minimal ADB and Fastboot and run cmd.exe
6. Reboot to Fastboot mode by pressing Power Button + Volume Down (–) and keep holding both buttons until the word “FASTBOOT” appears on the screen, then release.
7. Once the device is in Fastboot mode, connect your device to PC and verify you can find it by typying in cmd: fastboot devices.
8. Boot into Recovery by typing in cmd: fastboot boot <recovery_filename>.img (The file may not be named identically to what stands in this command, so adjust accordingly and write the full path of it, check the example below).
This command will not flash permantly the recovery, it will just temporary boot into it and afterwards you will flash permantly the twrp.img you copied into your Internal Storage or SDcard in recovery partition.
For example:
Code:
fastboot boot C:\Users\Retrial\Desktop\twrp-beryllium-v3.7.0-A12-V2.img
9. Now into TWRP, press Install > Install Image > Locate & Select the twrp.img you previously downloaded and copied from PC into your Internal Storage or to your SDcard > Choose Recovery and Flash!
10. Go back into Home page of TWRP and press Reboot to Recovery or manually by holding Power Button + Volume Up (+) until you boot to Recovery.
11. Done! You now have a new Custom Recovery installed.
Recovery Method (Custom Recovery already installed or booted)
1. Download a custom recovery of your choice. [You can find a recovery of your choice in my Collection]
2. Reboot to Recovery by holding Power Button + Volume Up (+).
3. Press Install > Install Image.
4. Locate the recovery.img you recently downloaded.
5. Select it and choose the option Recovery and Flash.
6. Go back and Reboot to Recovery.
7. Done! Your new recovery should be installed.
CLEAN INSTALL CUSTOM ROM
Note: If you have issues after flash check possible solutions here:
Check integrity of all downloads (compare checksums), do the downloads again.
Make sure you Wiped everything and Formated Data (format data not just wipe) except external SDCard and USB OTG.
Flash only the ROM (without GApps and Magisk) and check if the problem persists. If yes, flash another ROM.
Try other GApps package.
If nothing helps, go back to stock and start from scratch.
Note: You can also Flash Custom ROM using ADB sideload Method.
What is System_EXT? Check out here.
You can also do the same steps below to install Stock MIUI Recovery ROM.
1. Backup all your data to PC or to external SDCard. [All your data into Internal Storage will be lost on step 7 while Formating Data or Wiping Internal Storage]
2. Unlock Bootloader. [Read the Unlock Bootloader Guide above]
3. Download: [You can find everything in my Collection]
Custom Recovery of your choice. [Recommened to use Unofficial TWRP by REIGNZ3 (A12_System_Ext) for A12L+ ROMs]
Custom ROM of your choice.
GApps (be sure you have selected Platform: ARMx64 and the proper Android version of the ROM you are going to flash) if the ROM you are going to flash does not include. [Optional]
Magisk Root. [Optional]
Disable Force Encryption or Encryption. [Optional] (Read DFE & Encryption Guide above)
4. Move all these files in one folder to your PC or to External SDCard if you have one.
5. Install Custom Recovery. [Read the Install Custom Recovery Guide above]
6. Reboot to Recovery Power Button + Volume Up (+)
7. Installation:
Steps without external SDCard:
Select Wipe > Advanced Wipe
Select Dalvik / ART Cache, System, System_Ext, Data, Internal Storage, Vendor, Cache and then Swipe to Wipe. [All your data into Internal Storage will be lost]
Go back > Press Reboot > Reboot to Recovery again. [That step needed for the next step of formating the data because TWRP by REIGNZ have issue]
Go back and select Wipe > Format Data > type yes [All your data into Internal Storage will be lost]
Connect your device to PC while you are on TWRP and transfer into Internal Storage, the ROM, GApps etc. and the files you want to flash.
Flash ROM > GApps [Optional]
[Optional] Mount Vendor and Flash DFE [Optional - Not Recommended] or Encryption [Optional] (Read DFE & Encryption Guide above)
Reboot Enjoy!
[Optional] If you want to root, reboot once again to TWRP Recovery and flash Magisk then reboot to system and enjoy!
Steps with external SDCard:
go to Advanced > File Manager > External_SD and delete all folders in ur ext sd card (For example you should delete: Android, .android_secure, LOST.DIR, DCIM, etc) except your personal files/folders and the folder with your custom ROM/Gapps/Magisk/DFE or Encryption you want to flash.
Each app on your phone with the WRITE_EXTERNAL_STORAGE permission may create files or folders in ur sdcard. Most of these folders have once been created by one of these apps and many of them may be deleted with a few exceptions (e.g. Android, .data, .android_secure, these contain important system or app data like a game's downloaded content):
.android_secure: apps installed and then moved to sdcard
Android: app data/cache
data: app data
.estrongs: ES file manager
LOST.DIR: sort of trash folder (collects recovered files after phone crashes)
DCIM: phone gallery's photos and previews
OTA-update: Over The Air update service
ppy_cross: an unknown third-party app's data.
So I recommend to delete them so you can put your phone/sdcard in a clean state and is guaranteed to be able to re-create these folders.
Select Advanced Wipe
Select Dalvik / ART Cache, System, System_Ext, Data, Internal Storage, Vendor, Cache and then Swipe to Wipe. [All your data into Internal Storage will be lost]
Go back > Press Reboot > Reboot to Recovery again. [That step needed for the next step of formating the data because TWRP by REIGNZ have issue]
Go back and select Wipe > Format Data > type yes [All your data into Internal Storage will be lost]
Flash ROM > GApps [Optional]
[Optional] Mount Vendor and Flash DFE [Optional - Not Recommended] or Encryption [Optional] (Read DFE & Encryption Guide above)
Reboot Enjoy!
[Optional] If you want to root, reboot once again to TWRP Recovery and flash Magisk then reboot to system and enjoy!
DIRTY INSTALL YOUR CUSTOM ROM
Note: Before you start flashing, keep in mind the ROM you dirty flashing MUST be the same with the one you have already installed.
1. Make a full nandroid backup, just in case something goes wrong. You can use TWRP to do that. (TWRP > Backup > Select everything) [Optional]
2. Remove all Magisk modules. [Optional]
3. Reboot to TWRP and Wipe Dalvik / ART Cache, System, System_Ext, Vendor, Cache.
4. Flash the ROM > GApps [Optional] > Magisk [Optional]
5. [Optional] Mount Vendor and Flash DFE [Optional - Not Recommended] or Encryption [Optional] (Read DFE & Encryption Guide above)
6. Reboot and Enjoy!
I've skipped some explanations, because if you are going to dirty flash, you already know for example how to boot to TWRP.
CLEAN INSTALL OFFICIAL STOCK MIUI ROM & RELOCK BOOTLOADER
Note: Some AMD Ryzen or Intel Systems may have problems to recognize your device in fastboot. [Read the AMD Ryzen/Intel Fastboot Fix Guide above]
1. Backup all your data to PC or to external SDCard, if it's possible. [All your data into Internal Storage will be lost]
2. Download the official Fastboot ROM and unzip it to your PC. [You can find it in my Collection]
3. Download Xiaomi Mi Flash Tool and run XiaomiMiFlash.exe.
4. Turn off you device and then boot in Fastboot mode by pressing Power Button + Volume Down (–) and keep holding both buttons until the word “FASTBOOT” appears on the screen, then release.
5. Connect your device to PC via USB Cable.
6. On the Xiaomi Mi Flash Tool, Click on Select and browse to the folder where you have Unzip the downloaded ROM file then press OK.
7. Click on Refresh button and you will see that your device connected to port com.
8. Select what method you prefer:
Clean All: The process will flash full Fastboot ROM and will wipe everything (include user data) but Bootloader will remain unlocked.
Save User Data: The process will flash Fastboot ROM without wiping user data.
Clean All and Lock: The process will flash full Fastboot ROM and will wipe everything (include user data) but Bootloader will be relocked
9. Now click on the Flash button to begin the flashing progress.
10. Once your ROM is successfully flashed, you’ll see green bar inside XiaomiMiFlashtool.
BACKUP & RESTORE ROM (NANDROID BACKUP)
Check this Youtube Video to see the process in action.
Backup:
1. Remove Lockscreen Method. (You will have to set fingerprints again after Restore)
2. Reboot to Recovery (Power Button + Volume Up (+))
3. Choose Backup and Select Boot > System Image > Vendor Image > Data (excl. storage)
4. Select Storage and choose SDcard if you have one otherwise let it on Internal Storage.
5. Swipe to Backup.
6. Done!
Restore:
1. Reboot to Recovery. (Power Button + Volume Up (+))
2. Select Wipe > Advanced Wipe.
3. Select Dalvik / ART Cache, System, System_Ext, Data, Vendor, Cache and then Swipe to Wipe.
4. Press Home Button to go back and Select Restore.
5. Select the backup file with the ROM and make sure Boot, System Image, Data (excl. storage) and Vendor Image are selected.
6. Select Swipe to Restore and when completed Reboot to System.
7. Done!
Note: After you restore backup you might be unable to use old lock method such as PIN or Pattern to unlock your device (that's why you remove it before you take backup), in order to remove lock method you need to boot recovery and then:
Mount system
Go to file manager
Go to data/system
Delete locksettings.db
This way, you will not have any lock method set, but added fingerprints will remain.
FIX FOR STUCK ON OREO FIRMWARE (SOFTBRICKED)
FIX (Read Carefully)
MAGISK ROOT
The easiest way to root your device is via Magisk, it should work in all ROMs, Stock and Customs.
Install Magisk:
1. Install latest TWRP Recovery. [Read the Install Custom Recovery Guide above]2. Download the Magisk [You can find it in my Collection]3. Reboot to TWRP Recovery by pressing Power Button + Volume Up (+) and flash it.4. Reboot and check whether the Magisk app is installed. If it isn’t installed automatically, manually install the APK. [You can find it in my Collection]Note#1: From Official TWRP Recovery 3.5.1 and onwards (and other recoveries based on that), Magisk.apk can be flashed as apk without the need of rename it to .zip. So you can simply flash the Magisk.apk in TWRP.Manually Creation of Flashable Zip:Download the latest Magisk APK and rename the Magisk.apk → Magisk.zip.Note#2: If your bank apps detect root, follow this Guide.
Uninstall Magisk:
Flash the Uninstall.zip in TWRP Recovery and reboot. [You can find it my Collection]
If Magisk App isn’t uninstalled automatically, manually uninstall the app.
Manually creation of Flashable Uninstall Zip:
Download the latest Magisk APK and rename the Magisk.apk → uninstall.zip
Uninstall Magisk directly through the Magisk app. Simply press the Uninstall button.
Note: If your apps detect root, follow this Guide (or this) to pass SafetyNet and have certified Play Store. [YouTube Video Guide]
DISABLE FORCE ENCRYPTION (DFE) & ENCRYPTION
[You can find it in my Collection]
Disable Force Encryption
Disable Force Encryption (a.k.a DFE) is flashed during installation of a custom ROM to avoid the system encrypting /data partition when the devices boot for the first time.Some ROMs are not encrypted by default and so is not necessary to flash DFE. However if your ROM comes with encryption by default you can always flash DFE after clean installation of ROM and always after every update or flash or you can use any custom recovery like OrangeFox, Pitchblack, Skyhawk Recovery Project which can automatic flash DFE after every flash.I don't recommended to use DFE if you don't switch ROMs frequently and you are casual user. Beside the fact that if you lose your device your data are not protected, many people get in confusion while doing OTA or manually updates, which if the ROM is encrypted by default and flashed DFE and in next update you forget to flash DFE you will lock out from your data and you wil get into bootloop (use custom recoveries mentioned above to avoid that).
Encryption
Encrypted ROMs are recommended if you are stable and casual user of a ROM. Encryption have the benefit to protect your data, in case you lose your device for example. Always use the latest TWRP Recovery so you can be able to decrypt the data by filling the same lock screen password you have set in ROM.Some ROMs are not encrypted by default but devs provide an Encryption.zip (script) which can encrypt the ROM. Same as DFE you need to flash it after clean installation of ROM and always after every update to stay encrypted and not get into bootloop. Unfortunatly there is not any custom recovery automatic doing that like with DFE, so you must be careful, avoid doing OTA updates and flash it every time you manually update a ROM.
REMOVE SECURITY PIN/PATTERN (LOCKSCREEN SETTINGS)
Check HERE and HERE.
SCREEN RETENTION FIX
Screen Retention FIx: If you have an issue with screen retention apply this configuration to your device ROM.
HOW TO TAKE LOGS
How to take logs on Android
BATTERY TIPS
Xiaomi POCOPHONE F1 Battery Model: BM4E
Battery Replacment (Video)
Recommended Battery: NOHON for POCO F1 (AliExpress)
Advanced Guide
Simple Battery & Charging Tips
Improve your SOT
Battery Calibration
Method 1
Steps:
1. Discharge your phone fully until it turns itself off.
2. Turn it on again and let it turn itself off.
3. Plug your phone into a charger and, without turning it on, let it charge until the on-screen or LED indicator says 100 percent.
4. Turn your phone on. It's likely that the battery indicator won't say 100 percent, so plug the charger back in (leave your phone on) and continue charging until it says 100 percent on-screen as well.
5. Unplug your phone and restart it. If it doesn't say 100 percent, plug the charger back in until it says 100 percent on screen.
6. Repeat this cycle until it says 100 percent (or as close as you think it's going to get) when you start it up without it being plugged in.
Method 2
Notes: It won't dramatically extend battery life, but it will give your old battery at least 30 minutes additional run time.
Steps:
1. Get "GSam or Ampere" from the Google Play Store.
2. Launch the app and fully charge your phone. (Important: Only proceed with the calibration when the word "Full" appears in GSam or Ampere.)
3. While your phone is still connected to the cable reboot your phone to recovery mode, open file manager and navigate to "/data/system" and delete "batterystats.bin," "batterystats-checkin.bin," and "batterystats-daily.xml."
4. Reboot your phone (while it is still plugged in) and charge it until it reads "full" on GSam or Ampere.
5. Unplug the cable and use your phone normally until it shuts down (0 percent )
6. Charge your phone to 100% while it is turned off.
7. Boot into os and plug in your phone and charge it until it says "full" on the GSam or Ampere.
8. Unplug and have fun!
Battery Capacity Health
Notes:
1) Before checking the battery health, charge the device to 100%.
2) Check charge counter values and consider first 4 digits from left as your battery capacity in mAh. And check charge counter. (Charge counter/level)*100 is the battery capacity.
To find battery capacity in Windows:
Enable Developer options in your device.
Enable USB Debugging in your device.
Conect your device to PC and give permissions.
Open Minimal ADB (run cmd.exe) or Platform tools.
Type "adb shell dumpsys battery" command in Minimal ADB or Platform tools.
To find battery capacity in Android (Terminal) - Root needed:
Download an android terminal app like Termux,
Open terminal and type: cat/sys/class/power_supply/battery/charge_full
Overheating
Following reasons will lead to device heating issue:
During the initial setup after purchase or when restoring data.
Downloading large files.
Using apps that require more power or using apps for extended periods such as:
Playing high-quality games for long time.
Recording videos for extended periods.
Streaming videos while using the maximum brightness setting.
Using the Screen Mirroring / Smart View feature (connecting mobile to a TV).
While multitasking or when running many apps in the background i.e:
Using Multi window.
Updating or installing apps while recording videos.
Downloading large files during a video call.
Recording videos while using a navigation app.
Large amount of data for syncing with the cloud, email, or other accounts.
Exposing device under sunlight when temperature is high around you.
Extensive usage of mobile hotspot and tethering feature.
Using device in areas with weak signals or no reception or in roaming network.
Charging the battery with a damaged / unapproved USB cable.
Device's multipurpose jack is damaged or exposed to foreign materials, such as liquid, dust, metal powder, and pencil lead.
Solution:
Turn off Wi-fi, GPS , bluetooth and other connectivity options when not in use by dragging the notification panel.
Decrease screen brightness.
Close background running applications.
Too many applications installed in device may result in device heating since their corresponding process will keep on running in background. It is advised to uninstall un-necessary apps if not using them.
Avoid using apps like GPS, data dependent apps or graphic intensive games for longer duration since they require more energy to function, causing device to heat.
It is advised not to use device while charging as it may cause the device to over heat.
General:
DO:
Use manual brightness or dim the screen.
Turn off notifications for apps you don't use. Better still, delete/disable the apps entirely if you don't need them.
Enable battery or power saving mode when you want to extend your battery life.
Use the power adapter that came with your phone. Other chargers can charge slowly/faster but they can also damage your phone or battery.
Turn off bluetooth, location tracking, and Wi-Fi (unless you are actively using it)
Turn off print services from bluetooth connection preferences.
Avoid extremes of heat and cold. If your phone gets very hot or cold it can strain the battery and shorten it's lifespan.
DON'T:
Have Bluetooth or Wi-Fi turned on constantly.
Leave apps running in the background. Instead restrict background usage off apps that you don't need running.
Push email means your device is always listening for new email which drains alot of battery.
Drain your phone battery all the way to 0% or charging it all the way to 100%. Keep it between 20% - 90% for longer battery lifespan.
The more advanced the graphics and animations are (games, videos, photos, animations), the harder the processor and graphics chip in your smartphone have to work. More activity means more battery use.
PRIVACY & SECURITY
Some useful links:
All about Privacy & Security at Privacy Guides.
Electronic Frontier Foundation.
Check if your email address or your phone number is in a data breach at Have I been Pwned & at Firefox Monitor.
PrivacyTests: Open-source tests of web browsers privacy.
Test your browser to see how well you are protected from tracking and fingerprinting at Cover Your Tracks by EFF and at Bromite fingerprint mitigations tests.
WebRTC IP Leak Test. WebRTC is a new communication protocol that relies on JavaScript that can leak your actual IP address from behind your VPN. You can find more infos how to disable it at Privacy Guides in browsers section.
Ad Block Tester is a free service on the Internet to evaluate content blocking solutions. It is not designed to be a benchmark, but it reveals the level of blocking against a set of hosts that are very popular.
Check on AM I FLoCed? by EFF if your your Chrome browser has been turned into a guinea pig for Federated Learning of Cohorts or FLoC, Google’s latest targeted advertising experiment.
How to block ads on Android.
εxodus: εxodus analyzes Android applications in order to list the embedded trackers and ads.
Spyware Watchdog Article Catalog: A catalog which determinate under tests and tracking if an app is spyware and what data it collects.
CryptPad: CryptPad is built to enable collaboration. It synchronizes changes to documents in real time. Because all data is encrypted, the service and its administrators have no way of seeing the content being edited and stored.
PrivateBin: PrivateBin is a minimalist, open-source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256-bit AES. It is the improved version of ZeroBin.
ShutUP10++ , Privacy.Sexy: Disable major tracking features of Windows.
General:
Always prefer Open Source or well popular Programs, Apps, ROMs, Kernels & Stuff.
Open Source doesn't mean it's 100% safe but it's unlikely to have something suspicious, since you and other users can check the code in GitHub or in any other code hosting platform the "stuff" is hosted. You can also find and use FOSS apps at F-Droid or at Droid-ify (Recommended).
Prefer ROMs & Kernels with SELinux Enforcing. You can find informations here.
Always download and install Apps, Programs, ROMs & Stuff from official sources and do not use redirection links from different sites. Google is your friend to find the official source of the stuff you want.
Always check the permissions an app requires, before download and install it to your device. If an app ask for permissions which has nothing to do with the app functionality then it's should be reconsider or ask the developer why these permissions needed.
You can also check if the app includes trackers and ads with εxodus.
If you want to avoid Google and Play Store (De-Google), you can choose a ROM without GApps preinstalled like LineageOS and use Droid-ify client which is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device. Note that not all apps from Play Store will be available in Droid-ify or F-Droid. Only Open Source projects. You can find alternatives though.
Alternative you can use LineageOS for microG or any ROM which support signature spoofing and can support microG and use Aurora Store.
For Windows use the default Windows Defender & Malwarebytes to scan your files whenever you want (Prefered before open or install them). Also use the addon/extension uBlock Origin in your Browser. These should be enough for normal users. You can also use the tool ShutUP10++ or Privacy.Sexy to disable major tracking features of Windows.
For Android Do not use any antivirus - antimalware since it's useless, just check what apps and from where you installing.
Always verify the source of addons/extensions in your browser. Avoid installing random and unpopular addons/extensions. Keep it minimal and clean, so browser can be fast and safe, no need bunch of extensions.
If you are using VPN, always check the terms and rules of the provider. Avoid random VPN Services.
Recommended VPN Services.
Using a VPN will not keep your browsing habits anonymous, nor will it add additional security to non-secure (HTTP) traffic.
Recommended is to encrypt your data/files always before uploading them to cloud with tools like Cryptomator.
Always use unique and strong passwords for each of your accounts.
Use awarded open source Password Managers like KeePass or KeePassXC for Desktop and KeePassDX for Android to manage your passwords and have them with you safe, encrypted and secure. Must be noted you can use the same database file between these programs.
Always enable 2 Step Authentication wherever is available for your accounts.
You can use apps like Aegis Authenticator.
Do not open or click on links attached in unknown emails or SMS you may get. Always check the address of the email or the number of SMS and verify it's legit from the official source.
Create and use "burned" email for accounts/sites you have concerns but you definitely want to try them. Do not use your personal or business email. You can also create and use email aliases of your email with SimpleLogin which is open source and awesome service.
Changelog
Note: Changes in Collection & Guides happens in real time. The date I post these Changelogs is just a sum up since I can't post all the changes the time that happening to avoid spamming the thread. So you can always consider the Collection & Guides Up-to-Date. However, I may announce some big changes in posts before I include them in the Changelogs.
LATEST
Update: 07/06/2023
Changelog
ARCHIVED
Update: 08/04/2023
Changelog
Update: 18/01/2023
Changelog
Update: 16/12/2022
Changelog
Update: 29/10/2022
Changelog
Update: 24/09/2022
Changelog
Update: 02/08/2022
Changelog
Update: 01/07/2022
Changelog
Update: 30/05/2022
Changelog
Update: 01/05/2022
Changelog
Update: 28/02/2022
Changelog
Update: 28/02/2022
Changelog
Update: 07/02/2022
Changelog
Update: 20/01/2022
Changelog
Update: 23/12/2021
Changelog
Update: 20/11/2021
Changelog
Update: 16/10/2021
Changelog
Update: 31/08/2021
Changelog
Update: 02/08/2021
Changelog
Update: 17/07/2021
Changelog
Update: 22/06/2021
Changelog
Update: 23/05/2021
Changelog
Update: 01/05/2021
Changelog
Update: 19/04/2021
Changelog
Update: 04/04/2021
Changelog
Update: 16/03/2021
Changelog
Update: 27/02/2021
Changelog
Update: 26/02/2021
Changelog
Update: 23/02/2021
Changelog
Update: 21/02/2021
Changelog
Update: 25/01/2021
Changelog
Update: 14/01/2021
Changelog
Update: 13/01/2021
Changelog
Update: 17/12/202
Changelog
Update: 20/11/2020
Initial Release
Awesome job, my friend! :good:
Great job. Everything in one place.
Sent from my POCOPHONE F1 using Tapatalk
Amazing Work. All silly and important questions have been answered at one place.
+Add Mi Assistant (Xiaomi PC Suite China) in Xiaomi Tools. It Helps to fix bootloop in locked bootloader nowadays.
this in one stop for all poco stuff...
amazing work.... [emoji106][emoji106][emoji106][emoji106]
SPLESHER said:
Awesome job, my friend! :good:
Click to expand...
Click to collapse
Kadajo said:
Great job. Everything in one place.
Sent from my POCOPHONE F1 using Tapatalk
Click to expand...
Click to collapse
Krisranger said:
Amazing Work. All silly and important questions have been answered at one place.
+Add Mi Assistant (Xiaomi PC Suite China) in Xiaomi Tools. It Helps to fix bootloop in locked bootloader nowadays.
Click to expand...
Click to collapse
Mr.Sm1th said:
this in one stop for all poco stuff...
amazing work.... [emoji106][emoji106][emoji106][emoji106]
Click to expand...
Click to collapse
Thank you guys! I will try to keep the thread always up-to-date.
If you find a broken link, something wrong or you have a suggestion, please do not hesitate, tell it!
Today I made couple of changes in Guides & Collection so infos can be more clear and I've added some stuff!
Retrial said:
Thank you guys! I will try to keep the thread always up-to-date.
If you find a broken link, something wrong or you have a suggestion, please do not hesitate, tell it!
Today I made couple of changes in Guides & Collection so infos can be more clear and I've added some stuff!
Click to expand...
Click to collapse
Im in now miui global 12.0.2
I facing problem while voice call
Another end of caller hear a noise
Is there fix
Please guide me ...
hari1jack said:
Im in now miui global 12.0.2
I facing problem while voice call
Another end of caller hear a noise
Is there fix
Please guide me ...
Click to expand...
Click to collapse
Try to do factory reset (firstly save all your personal data to PC or to external SDCard). 12.0.2 and general all the latest miui updates are full of bugs and slow down your device. Also the chances to get new android version in miui are very low. I will not talk about security and tracking.
I recommended you to move away from miui and use a custom rom of your choice. :fingers-crossed:
Awesome thread, everything at one place. Thanks man.
You have gathered so much collective information at one place. It will be helpful if we found which Roms are from Pixel Ports and supports Google photos free unlimited high quality storage.
OP, this is a godsend! Thank you so so much. Any idea what settings I should be using for the most "pixel like" photos on parrots gcam?
raydialseeker113 said:
OP, this is a godsend! Thank you so so much. Any idea what settings I should be using for the most "pixel like" photos on parrots gcam?
Click to expand...
Click to collapse
Hey thanks! I mostly use the default settings and I get very nice photos.
Krisranger said:
You have gathered so much collective information at one place. It will be helpful if we found which Roms are from Pixel Ports and supports Google photos free unlimited high quality storage.
Click to expand...
Click to collapse
Unfortunately, It's unknown yet. I will keep an eye on it but I doubt if it will work. Even new pixel phones will not have free unlimited storage. We will see...
Retrial said:
Hey thanks! I mostly use the default settings and I get very nice photos.
Click to expand...
Click to collapse
Any idea why the autofocus on the camera is so broken?
Using PE+ and ngk2.0
raydialseeker113 said:
Any idea why the autofocus on the camera is so broken?
Using PE+ and ngk2.0
Click to expand...
Click to collapse
I don't know but you can try the latest port of Parrot or use Sanitys or BSG ports. Try and find out which is the best for you You can also try to ask on Photography thread.
Retrial said:
Try to do factory reset (firstly save all your personal data to PC or to external SDCard). 12.0.2 and general all the latest miui updates are full of bugs and slow down your device. Also the chances to get new android version in miui are very low. I will not talk about security and tracking
I recommended you to move away from miui and use a custom rom of your choice. :fingers-crossed:
Click to expand...
Click to collapse
Thank you for the reply ...
Can you suggest me bug less rom without mic issue during call
Retrial said:
Unfortunately, It's unknown yet. I will keep an eye on it but I doubt if it will work. Even new pixel phones will not have free unlimited storage. We will see...
Click to expand...
Click to collapse
Yes new pixel phones will not have this advantage. (New pixel phones which ain't even launched yet)
But we have some roms which are ported from existing pixel phones like Pixel 3 and Pixel 4.
I got to know that Awaken OS based on Android 11 is detecting as Pixel 4 in Google photos. I'm not sure, I personally didn't install it yet.
I'm sure about some Roms and Ports like Pixel Rom and Pixel 4 xl ports are obviously detecting as Pixel 4 and they are enjoying new Google Assistant and Google One features as well.
hari1jack said:
Thank you for the reply ...
Can you suggest me bug less rom without mic issue during call
Click to expand...
Click to collapse
I personally use Pixel Experience the Plus Edition. It's stable and ready out of the box.
However there a lot of nice ROMs, you check them in my collection and decide which fit for you.
Krisranger said:
Yes new pixel phones will not have this advantage. (New pixel phones which ain't even launched yet)
But we have some roms which are ported from existing pixel phones like Pixel 3 and Pixel 4.
I got to know that Awaken OS based on Android 11 is detecting as Pixel 4 in Google photos. I'm not sure, I personally didn't install it yet.
I'm sure about some Roms and Ports like Pixel Rom and Pixel 4 xl ports are obviously detecting as Pixel 4 and they are enjoying new Google Assistant and Google One features as well.
Click to expand...
Click to collapse
Well the thing is we don't know yet if POCO F1 detecting as Pixel 4 in Google Security is enough to bypass and trick Google to have unlimited storage. We need to wait till June 1st, 2021 which this change will take place. Until then, the storage remain unlimited.
Honestly I was so aggravated at the amount of attention this ROM was getting,
that I just had to make this guide to show how easy it is to get CalyxOS features with the help of LineageOS
Note: This won't be too noob-friendly, so do your research before following this. If your phone catches fire, nothing I can do!
Also I'll be referring to LineageOS for microG as LMM throughout the guide
Safetynet also currently seems to be broken
Pre-requisites before using this guide: - A phone ready for custom ROM'ing (unlocked bootloader, custom recovery installed yada yada)
- A user willing to sacrifice 90% Google apps (microG still has it's limitations you know)
- PC with everything ready (just to make the process smooth)
- TWRP backup of your previous ROM (just in case something goes wrong)
Let's begin!
Stage 1: Check and download1) Check if your phone has official support for LineageOS for microG
2) If it's there; congratulations! Your life has been made 50% easier.
If it isn't, well, you'll have to check if you have official/unofficial ROM support for the standard LineageOS.
If that isn't there, you'll have to go with any other deODEX'd ROM (which means your results may vary compared to the one here)
3) Download the respective ROM zips, Magisk (for root) and Aurora Store.
If you're not downloading LMM, download NanoDroid Patcher (signature spoofing), NanoDroid microG (the microG package)
[Fun fact: If you're using the latest version of Magisk (which you should), rename the APK to "install.zip" to be able to flash it in recovery]
4) Copy the downloaded media to your SD Card (Internal Storage works too)
Stage 2 Option 1: If you have LMM support1) Boot to TWRP or your TWRP fork of choice
2) Go to Wipe; Advanced Wipe; Tick System, Data, Cache, Dalvik and swipe # This will format your ROM + your app data
3) Go back; Install; Search for the Lineage zip.
4) Flash it.
5) Then flash Magisk and reboot.
Stage 2 Option 2: If you don't have LMM support1) Boot to TWRP or your TWRP fork of choice
2) Go to Wipe; Advanced Wipe; Tick System, Data, Cache, Dalvik and swipe # This will format your ROM + your app data
3) Flash LineageOS / your ROM
4) Reboot your system
5) Do the initial setup
-> Check if you have Signature Spoofing support by installing this
-> If there's no Signature Spoofing support:
-> Boot to TWRP
-> Flash NanoDroid Patcher to patch your system
-> Flash NanoDroid microG and Magisk
-> Reboot your system
-> If there is Signature Spoofing support:
-> Boot to TWRP
-> Only flash NanoDroid microG and Magisk
-> Reboot your system
Stage 3: Post-Installation<If you had to patch signature spoofing; check if it works now in the Signature Spoof checker>
1) Open microG settings app. Press Self-Check
2) Make sure no checkboxes are unticked. If they are, tick them
3) Go back; Add an account, do Device Registration and enable Cloud Messaging.
Also configure the location backends if you need location
4) microG setup should be done!
5) Now install Aurora Store, and configure it. (should be simple enough)
6) Grab yourself a good VPN and a nice wallpaper
[-] That's it!
Acknowledgements:
The God himself: mar-v-in on github
Creator of DexPatcher and Spoof checker: Lanchon
Creator of NanoDroid-related projects: Nanolx
Mrwhosetheboss for pissing me off enough to make this guide
Of course, if I miss anything, do let me know!
Have a solid day
Thank you so much for this\, I was looking to see if we can add some customizations like doubletouch to sleep and adding / customizing some customizing some quick settings tiles
Dear members,
Which partitions have to copy to save backup related to IMEI number, data of modem, bluetooth, fingerprint, and other important system partitions on OnePlus 8 phone? I mean safety before flashing custom ROMs and possibly returning to the factory system Oxygen OS 11 in case of failure.
I am asking for your possible suggestions,
thank you.
OnePlus 8 Pro 256GB Device
OOS 11.0.10.10
TWRP 3.6 installed
Magisk 23.0 installed
Hello
To try to help you, I can tell you what information I was able to recover about backups before flashing roms other than OOS provided OTA by OnePlus.
It is necessary to back up, at least, the following partitions:
- Boot
- DTBO
- Recovery
- Super System (system_ext product vendor system)
These four partitions seem to be essential to operate the device if the custom rom is not suitable.
If you perform a "Nandroid" backup with TWRP, you can, as a precautionary measure, backup all partitions and restore them together as well and you will have an exact reproduction of all files, presentations, settings, apps and their data , etc
It is advisable to remove any password or unlock pattern to unlock the device before performing the backup.
Finally, I found a site that explains the different partitions for Android 11 but the names of these partitions seem not to be quite the same for OOS 11
Overview | Android Open Source Project
source.android.com
I don't know if my information will be useful to you.
I will be interested in what you can learn about this subject of safeguarding.
Best regards,
Thank you for the response and your help.
I have the same device.
It seems that there is also an issue such as the persistent partition, the loss of which may cause problems with the fingerprint unlock function. In the same forum section, users requests this partition after losing it after using the MSM tool.
It is not entirely clear to me which partitions in OnePlus 8 contain the IMEI number, modem data, bluetooth, etc. I found a hint after installing the Partitions Backup by wanam app, where the essential partitions for the backup copies are marked in color.
These are:
- MDM1M9KEFS1, MDM1M9KEFS2, MDM1M9KEFS3, MDM1M9KEFSC, MODEM_A, MODEM_B, MODEMDUMP, MODEMST1, MODEMST2
However, when it comes to a copy of Nandroid from TWRP, they are listed there:
metadata, Data (excl. storage), Boot, EFS, Modem, Persist, Recovery, VBmeta and Super.
There are 2 questions: 1. Which of these partitions to include in the OOS backup 2. What is safer to use: fastboot mode or TWRP?
Best regards
Hello
I am happy to share with you my "meager" knowledge regarding the OnePlus 8 Pro device and TWRP
With my old devices (LG G3, Samsung S7, Edge), I used LineageOS roms a lot because it was a way to have the latest versions of Android, up to the equivalent of Oreo (Android 8)
To perform the backups with TWRP, I selected all the partitions and I also restored all the partitions: I then had a strictly operational and identical device at the time of the backup.
Since buying the OnePlus 8 Pro, in the fall of 2020, I have only installed Magisk, which gives access to the Root of the device and all OTA versions of OxygenOS, up to the current one: 11.0. 10.10
I have available Magisk installation links for rooting and lossless OTA update installations of Magisk.
I hadn't used TWRP because the latest versions weren't suitable for OnePlus 8 and Pro or T series beyond OxygenOS 9.
On the official TWRP website, the links for version 3.6 do not bring a file.
You have to use the XDA link
[TWRP][3.7.0-13][instantnoodle]TWRP for OnePlus 8/8Pro ][OFFICIAL][BETA 3]
TWRP for OnePlus 8 and 8 Pro TWRP is an open source, community project. TWRP development is done by a large support community with many people who are willing to answer questions and help people with their devices either through our IRC...
forum.xda-developers.com
To get to the TWRP file download link in version 3.6
OP8/8PRO TWRP - Browse /beta_builds at SourceForge.net
sourceforge.net
For my part, I downloaded the "twrp-op8-3.6.0_11-infected-b5.img" file which has since been updated to version twrp-op8-3.6.0_11-infected-b7.img ago 10 a.m. as of this writing.
I installed the file as indicated on the thread:
fastboot flash recovery_a twrpname .img
fastboot flash recovery_b twrpname.img
Then, I was able to restart the OnePlus 8 Pro in Recovery mode (rather slow loading) and I then performed my first full “Nandroid” backups by selecting all the boxes (see screenshots)
For the moment, I stopped there: I did not dare to restore these backups, to find out if the device worked in a completely identical way, before launching a custom rom other than the original roms provided by OnePlus: I was unable to find any threads relating to "Nandroid" backups of the OnePlus 8 series.
On the other hand, I never used the MSM tool and I always did the backup/restore with TWRP which I was used to, I never did with fastboot commands, except for installing TWRP 3.6.
Above all, I have never tried to modify the partitions of the devices, old or current. My knowledge is nil in this area, especially with the new “dynamic” scores!!
I've tried app backups with "adb" commands but haven't been able to restore app-related data like I can with the "Swiftbackup" app discussed below.
Finally, so far on the rooted OnePlus 8 Pro, for my app backups, I use the "Swiftbackup" app.
Swift Backup - Apps on Google Play
A simple, fast and smart backup solution for Android smartphones
play.google.com
which works perfectly identical to "Titanium Backup"): this last application has been obsolete for several years and is no longer updated for the latest versions of Android (9 and beyond)
This "Swiftbackup" app performs a backup / restore of all installed apps WITH their data, locally and / or on the cloud, with or without system settings and apps on the condition of having a rooted device.
For my SMS, MMS and call log backups, I use the SMS Backup and Restore application: https://play.google.com/store/apps/details?id=com.riteshsahu.SMSBackupRestore
To tell the truth, I don't really need TWRP but I'm curious and I wanted to see the possibilities brought by TWRP 3.6, only suitable for OxygenOS 11.
This is where my knowledge is that I share with you.
The version of OOS 12 should arrive during the 1st quarter (already released in India) but it will be necessary to wait for the version of TWRP which will be adapted to the latest OS from OnePlus.
I remain of course at your disposal to continue to exchange about TWRP, within the limits of my knowledge!!
Best regards,
Thanks for your message. However, I'm afraid that is not exactly what this thread was about.
Regards
I have an in2017 running on 10.5.22in55cb. Any idea how to root? I tried twrp and that failed. Have not been able to find a boot.img either. Thanks.
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 5533799In 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.
The 32-bit apps are back!
screen-20221120-112309
Watch "screen-20221120-112309" on Streamable.
streamable.com
SynopsisThe 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.
AArch32Is 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.ZygoteIs 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"MultilibIs 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, BuildSoC AArch32 SupportZygote PropertyMultilib32-bit Support?Pixel 6 with TensorYesZygote64_32YesNativePixel 6 with Tensor, 64-bit Only BuildYesZygote64NoNot Possible*Pixel 7 with Tensor G2YesZygote64YesWith ModificationPixel 7 with Tensor G2, 64-bit Only Build**YesZygote64NoNot Possible*Phone with AArch64-only ARMv9-ANoZygote64NoNot 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.
ModificationsThe changes required are as follows:
ro.zygote=zygote64_32ro.vendor.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabiro.vendor.product.cpu.abilist32=armeabi-v7a,armeabiGenuinely 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.
ForewarningA wipe is requiredI 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 guaranteedIt 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 applicationsI 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 BuildIf you are having troubles and need to produce logs:Debug BuildMagisk Delta 32-bit:For Advanced Users:Release Build
If you are having troubles and need to produce logs:Debug Build
Installation InstructionsGeneral Prerequisites:A working platform-tools environment
platform-tools 33.0.3 is required with the Pixel 7The version you are running can be checked with adb --version and fastboot --versionIf 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 APKInstallation 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 appUpdate 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 forkFlash 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
TroubleshootingStuck at boot animation or bootloopingRestore 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 MagiskRun through the installation instructions again, you will have to wipe your device.Unable to install 32-bit appsRun getprop ro.zygote; getprop ro.vendor.product.cpu.abilist; getprop ro.vendor.product.cpu.abilist32If the values do not match these then the modification was not applied.zygote64_32arm64-v8a,armeabi-v7a,armeabiarmeabi-v7a,armeabi32-bit apps force closeThis 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 partitionFollow the uninstall steps for Magisk Delta, easiest to use the fastboot steps.If you didn't backup your persist partition, then RIP.
QuestionsWill 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 ToThomas King for Pixel 7 32-bit Helper@huskydg for Magisk Delta and letting me know about the Zygisk implementation maru5ec1cff for maru@nickelnine for bringing attention to Pixel 7 32-bit HelperPosters 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...)