Need help with creating Magisk module/overlays to edit system/framework parameters... - Android Q&A, Help & Troubleshooting

I'm currently able to build some customized ROM builds with certain personalized changes for my devices.
However, recently I'm considering using overlays (that'll be loaded as a custom Magisk module) to modify the parameters while staying on official ROM builds (so that I can apply official ROM OTA packages and retain the changes), as the environment for making working ROM builds might not always be available, such as that I'm still having issues when trying to build my own GSI images with the changes included, due to some other issues (mainly due to Treble-related patches that needed to be applied during building, as a good amount of patches are outdated and couldn't be applied).
Not sure to which extent I can modify. The things I currently wanted to modify are:
1. Changing the default captive portal URLs to my own servers (found in frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java). Not sure if these values could be specified somewhere else in a XML as I couldn't find any helpful documents or google results that applies to Android Pie.
EDIT: I know how to set these values via ADB, but accesses to these values might be blocked by SELinux and it was possible to get it reverted when you update ROM (not sure if this also applies to GSI).
2. Change the network mode options to allow 4G/3G only (disabling 2G), by setting network mode to LTE/WCDMA (found in packages/services/Telephony/res/values/strings.xml, as well as build.prop parameter ro.telephony.default_network).
EDIT: I know how to set these values via *#*#4636#*#*, but the settings there won't persist this way. It'll be reverted to preferrably the value defined in the build.prop parameter when I reboot the phone, or when the phone lost signal then re-established it (or by toggling Airplane Mode on then off).
Currently I'm looking at developing magisk modules so I can start including some other relatively easier to include stuffs, but I'm still uncertain about these two parts.

Related

[TOOL][1-26]BProp Editor 2.0 - Build.prop Editor Aroma Style !! By smokin1337

I don't claim any work for this tool. Just want to share to this section as it work great to my N7105 as well. (though i get FC for the Samsung Keyboard. I used SwiftKey as workaround.)
Big big thanks to smokin1337
What is it?*
This is an*Aroma*based build.prop editor. Aroma was made by*amarullz*and use a very nice interface check out the thread for details.
The build.prop tweaks included are believed to do what they say, I have only tested some of them to be sure they get applied and cannot say if they work or not. I simply tried to find the common ones that have not been disproven. Some tweaks have been busted such as moving the launcher into memory home.ADJ. or whatever it is has been proven not to work... If you do anything that makes the device not boot reboot into recovery and either restore your backup or disable whatever you enabled. The backup is made automagically on first run and is kept safe on your sdcard....
This mod does a few typical tasks with build.prop making it easier to fix things in it to your liking before you boot up a new rom. I use it myself to change my dpi and model name after flashing cm 10.1 nightlies on my Note 2. Also great for flashaholics that like custom settings in build.prop just make your backup AFTER editing then restore after each flash for updating your current rom, or use to make settings like lcd density and onscreen keys before booting a new rom.
What it does:
On start this will backup your build.prop and store it on your sdcard automatically.*This will be there until you run the remake backup then it gets replaced. The best way to use this for nightlies is edit your build.prop with this the way you want it then remake a backup and restore the backup after flashing you nightly. Usually the build.prop does not change between build but no guarantees.
Edit Product Model-*Used for fixing model, device, and name on the Canadian (Thanks Darkshado) and US variants of the Note 2 after flashing cm 10.1 nightlies because by default the model is GT-N7105.*But it also allows you to fake a Nexus device useful for using app meant for them like Wallet. This works for ANY device !!*
To use for wallet simply run this in recovery it will make a build.prop backup select Fake Nexus Device exit the mod then reboot and enable wallet. After you get it set up run this in recovery again and restore your build.prop and you are done.
Restore Backup-*This will restore the backup that gets created on the first run, or on remake. It is located at /sdcard/bprop/build.prop.bu
Make New Backup-*This remakes your backup, useful for making a backup after editing build.prop for restoring after nightly rom releases.
Set DPI-*Allows you to set your DPI choosing from a list of predetermined settings (range is 120-340 going up by 20)
Enable/Disable OnScreen keys-*Allows you to turn the onscreen keys on and off.
Set Dalvik Heap Size-*Does just that allows you to increase and decrease the size of the heap in predetermined settings
Enable/Disable ADB Notification Icon-*Either turn on or off that icon on the statusbar and it notifications when connected to adb.
Added in 2.0*
Custom Settings-*Allows custom settings for some features, The mod adds the needed files to /sdcard/bprop/files they can be edited manually and applied through the mod. To use simply run the mod in recovery and it will create the files, exit the mod and edit the files located at /sdcard/bprop/files (dpi,wifi, and dalvik) to your desired values then run the mod again and choose custom settings in dpi, wifi scan or dalvik heap. It applies WHATEVER is in the file so be careful what you put. ONE LINE ONLY !!
WiFi Scan Interval-*Allows you to change the rate at which the device scans for wifi in seconds. This could save some battery with a higher setting.
Dexopt and Bytecode-*This is a mod i found on the forums, it is supposed to make apps load faster and free up some ram. (Seems to work)
Force Rendering to GPU-*Forces ui to be rendered using the GPU.*
I tested everything on my phone and it all works flawless, First releases usually have a few bugs please post them if you find them.
How to Use-*Flash in recovery
BProp Editor 2.0 - Build.prop Editor Aroma Style !!
Sent from my GT-N7105 using xda premium

[SPH-L720] Notes on MF9 custom kernels

First, the current "MF9" OSRC source release actually contains the MDL kernel sources. While we wait for that to get corrected, I'm using (at noobnl's suggestion) the SCH-R970X MFA sources. I've confirmed that kernels generated from the MFA source tree closely approximate (in as much as any souce-built kernels do) the MF9 kernel shipped in the update. Folks may wish to take a look at the repository I have on GitHub, otherwise there's nothing fundamentally different from MDL in regard to compiling the kernel sources.
Second, wpa_supplicant has been enhanced in MF9 to store network credentials (e.g., WPA-PSK keys) in secure storage now. As secure storage is incompatible with custom kernels (I believe it depends on a TIMA-enabled, signed kernel for TrustZone support), wpa_supplicant can no longer read or store credentials, requiring keys to be reentered everytime WiFi is toggled.
Fortunately wpa_supplicant can be coerced into its old behavior of storing credentials in plaintext (/data/misc/wifi/wpa_supplicant.conf) by disabling the secure_storage service. Attached is a patch against boot's initramfs to do that.
Otherwise the only other things needed to have usable root-capable custom kernels is the usual disable of CONFIG_SEC_RESTRICT_ROOTING and friends, and removing "/system/app/KNOXAgent.*". Elsewhere folks have suggested to also remove "/system/app/KNOXStore.*", but I have yet to find a need to do so. Plus, I think disabling secure_storage neuters it anyways.
So, I'm a little confused on how this works. What all does the wpa_supplicant rely on?
Let me explain my issue right now. The ROM I have built (MF9 based), works with a custom kernel no problems with Wi-Fi.
If I go back to a stock kernel, it stops working properly. Wi-Fi just doesn't turn on. So, I delete (rename) /data/misc/wpa_supplicant.conf, which allows the Wi-Fi to then turn on. (It's extremely slow to do so) But it's got major lag in the menus and logcat spits out the following errors repeatedly.
Code:
[ 07-17 21:55:42.438 5506: 5506 E/secure_storage_api_full.c, ln. 747 ] Client SS library: connect: Connection refused
[ 07-17 21:55:42.438 5506: 5506 E/secure_storage_api_full.c, ln. 384 ] SS_ConnectToDmnSndCmnData error
How exactly are these WPA requests routed through this new system of apks/libraries? In my ROM Base, I've removed most (if not all) of the KNOX stuff, so I figured I'd put all that back (ContainerAgent.apk, the containers folder along with those apks, EnterprisePermissions.apk, KNOXStore.apk and KNOXAgent.apk) but that still doesn't get it to function as expected.
I'm just trying to figure out what I need to put back in so that it will work with the stock kernel as well, or what to include in the stock kernel flashable package to ensure it functions.
Unknownforce said:
What all does the wpa_supplicant rely on?
Click to expand...
Click to collapse
wpa_supplicant requires libsecure_storage.so, which communicates with secure_storage_daemon through /dev/.secure_storage/ssd_socket.
On the other side, where it looks like you're having trouble, secure_storage_daemon runs after the propery ro.securestorage.ready is set true. The property is set at the end of ss-presetup.sh. So you'll need all those items at least.
Otherwise I don't think the apks are necessary, as this operates below the framework level anyways.
Unknownforce said:
I'm just trying to figure out what I need to put back in so that it will work with the stock kernel as well, or what to include in the stock kernel flashable package to ensure it functions.
Click to expand...
Click to collapse
What I'd probably do is remove ss-presetup.sh. This will disable the use of secure storage, much as the initramfs patch does, but without having to modify the stock initramfs. This should force wpa_supplicant to fall-back to the behavior of storing credentials in wpa_supplicant.conf, which is probably what folks would prefer, so that WiFi passwords don't have to be reentered when switching between kernels.
Of course, that breaks secure storage, but I'm not aware of a compelling purpose for it at this point.
mkasick said:
wpa_supplicant requires libsecure_storage.so, which communicates with secure_storage_daemon through /dev/.secure_storage/ssd_socket.
On the other side, where it looks like you're having trouble, secure_storage_daemon runs after the propery ro.securestorage.ready is set true. The property is set at the end of ss-presetup.sh. So you'll need all those items at least.
Otherwise I don't think the apks are necessary, as this operates below the framework level anyways.
What I'd probably do is remove ss-presetup.sh. This will disable the use of secure storage, much as the initramfs patch does, but without having to modify the stock initramfs. This should force wpa_supplicant to fall-back to the behavior of storing credentials in wpa_supplicant.conf, which is probably what folks would prefer, so that WiFi passwords don't have to be reentered when switching between kernels.
Of course, that breaks secure storage, but I'm not aware of a compelling purpose for it at this point.
Click to expand...
Click to collapse
I figured out the problem. It was the mobicore scripts in /system/bin. I renamed them because in custom kernels they aren't used and they continuously error in logcat, so naturally renaming them gets rid of that spam. After re-setting them it works again. Thanks for the reply.

[Q] Encryption support in CM 10.x

I'm trying to encrypt the storage on my HTC One, but when I kick off the encryption task it just sits at the Android "gear-droid" (what I call the funny Android encryption logo, the one with the gear) until I manually restart the device. Encryption never takes place.
Running logcat on the device shows the infamous error:
"Orig filesystem overlaps crypto footer region. Cannot encrypt in place."
Searches on CM's issue tracker shows this open issue which discusses the problem at length, basically for this type of device the problem is almost certainly a misconfiguration of the fstab files. Essentially, they're set to use the last 16kb of the data partition to store the key in, but the partition isn't setup to reserve this space.
(XDA won't let me post the link, so go to CM's JIRA and look for bug CYAN-87)
A change was pushed to the Evita branch to fix this, but I haven't found a similar push occurring on the HTC One branch.
(XDA won't let me post the link, so go to CM's review board and look for change 48090)
I've been trying to run some of the commands referred to in the JIRA thread from recovery, but the file system presented to ADB there looks a lot different than the one at run-time, and it can't find any of the tools needed to do the job (vdc, make FS, etc).
Two questions:
1) Can this be fixed after ROM install? I'd rather not have to rebuild the ROM to fix this minor issue (reformatting is fine though)
2) Where are all the file system tools during recovery? I don't quite get why the recovery file system is so different than the normal run-time one, let alone where all the tools disappeared to
And if someone with the proper accounts / permissions could remind CM and the various device maintainers about the broken encryption support that would be swell. It seems like a lot of devices have mis-configurations preventing encryption from functioning, which is dangerous given how much access these devices have today (and how prevalent cell phone losses / thefts are).

[Q&A][ROM][STOCK, CUSTOM] Lenovo Tab 3 8/TB3-850F

Lenovo Tab 3 8/TB3-850F
Question & Answer Forum
Link & General Resource Guide
RE: Stock & Custom ROM(s)​
INTRODUCTION & PURPOSE:
I have started this thread as a Q&A forum and general info guide for my Stock 6.0 ROM for the Lenovo Tab 3 8, and as a forum for my stock-based custom ROM which is nearing completion. In addition, I have posted some useful threads for this device below. It has been brought to my attention by XDA Senior Member @pndwal, as well as other members, that topics regarding systemless rooting, dm-verity, force encryption, Trusted Execution Environment (/tee1 & /tee2), etc., need a dedicated forum for open discussion and brain-storming, all while adhering to XDA's policy of staying on topic in the device threads. In addition to the topics outlined, this forum welcomes any questions, concerns and colloquy regarding ROMs, kernels, recoveries, & other development for this device.
LENOVO TAB 3 8/TB3-850F LINKS:
Stock Android 6.0 ROM Thread: https://forum.xda-developers.com/android/general/rom-lenovo-tab-3-8-tb3-850f-t3617594
Bootloader, TWRP & Rooting: https://forum.xda-developers.com/android/general/guide-lenovo-tab3-8-tb3-850f-t3559786/page17
Unbricking/Restoration Tutorial: https://forum.xda-developers.com/android/help/lenovo-tab-3-8-tb3-850f-unbrick-root-t3598727
Stock Firmware Partition Images: https://forum.xda-developers.com/android/general/rom-lenovo-tab-3-8-tb3-850f-android-6-0-t3593043
Lenovo Tab 3 8" User Manual (PDF)
for TB3-850F & TB3-850M: English: https://drive.google.com/file/d/18gCTfuZecJnlB0ddBIN02YPaDpuvmzov/view?usp=drivesdk
Lenovo File Manager (APK): https://forum.xda-developers.com/android/general/app-lenovo-file-manager-lenovo-tab-3-8-t3706161
RULES:
Rule 1: Be respectful to XDA policies and to one another. We are all here to learn and to grow. The only stupid question is a question not asked;
Rule 2: Read Rule 1.
MotoJunkie01 said:
It has been brought to my attention by XDA Senior Member @pndwal, as well as other members, that topics regarding systemless rooting, dm-verity, force encryption, Trusted Execution Environment (/tee1 & /tee2), etc., need a dedicated forum for open discussion and brain-storming, all while adhering to XDA's policy of staying on topic in the device threads.
Click to expand...
Click to collapse
MotoJunkie01 said:
@pndwal I would like to invite you, first & foremost, to the ROM Q&A for this tablet. I'm hopeful that the Q&A will provide answers to relevant questions like yours, and provide input, user experiences, & ideas for future ROM development for the Tab 3 8.
Click to expand...
Click to collapse
A generous interpretation... Thanks for invitation. I'll be sure to come up with a curly one or two.
For now, could you give a rough idea of what needed changing to bypass force encryption? And also, reasons for pre-rooting? Thanks, PW.
pndwal said:
A generous interpretation... Thanks for invitation. I'll be sure to come up with a curly one or two.
For now, could you give a rough idea of what needed changing to bypass force encryption? And also, reasons for pre-rooting? Thanks, PW.
Click to expand...
Click to collapse
Reasons for pre-rooting are merely as a convenience to the user. Many users will use the stock build I compiled and root themselves, while others will take the more convenient route and flash the ROM which is pre-rooted. The advantages of the rooted ROM are that it will be moderately debloated, deodexed, zipaligned, and will of course have BusyBox binaries pre-injected and the Magisk Systemless User Interface installed.
To bypass force encryption, I first needed to bypass dm-veriity. Both are enabled by default on this tablet within the ramdisk/fstab. So the boot image needed to be unpacked, the values of "1" enabling both dm-verity & force encryption needed to be changed to values of "0", thus disabling both features. The boot image was then repacked and then archived within my ROM installation package (zip).
I'd also like to take a poll to ask whether members want Viper4AndroidFX v2.5.0.5 (with NEON audio drivers) on the custom ROM, in lieu of the Dolby Digital Sound audio package that comes pre-installed on the tablet. Any input would be appreciated.
MotoJunkie01 said:
I'd also like to take a poll to ask whether members want Viper4AndroidFX v2.5.0.5 (with NEON audio drivers) on the custom ROM, in lieu of the Dolby Digital Sound audio package that comes pre-installed on the tablet. Any input would be appreciated.
Click to expand...
Click to collapse
Viper can be installed as a module in magisk. PW
pndwal said:
Viper can be installed as a module in magisk. PW
Click to expand...
Click to collapse
Yes it can, but it breaks the stock camera completely, due to the SELinux policy mod which is installed by the module. If included as a feature of the ROM, I have a workaround which sets SELinux to permissive on boot, instead of permanently disabling the policy from within the kernel. This prevents breaking of the stock camera.
MotoJunkie01 said:
Yes it can, but it breaks the stock camera completely, due to the SELinux policy mod which is installed by the module. If included as a feature of the ROM, I have a workaround which sets SELinux to permissive on boot, instead of permanently disabling the policy from within the kernel. This prevents breaking of the stock camera.
Click to expand...
Click to collapse
I did that in past too. Don't think its needed now.
Viper working fine for me as Magisk module (phone and TB3-850f tablet). SELinux enforcing, camera working fine (incl. video), 2.5.0.4 driver, 2.5.0.5 app.
Seems SELinux policy change no longer required as V4A module for Magisk installs AML (Audio Modification Library) as Magisk framework which no longer requires permissive. Let me know if I'm missing something. PW.
pndwal said:
I did that in past too. Don't think its needed now.
Viper working fine for me as Magisk module (phone and TB3-850f tablet). SELinux enforcing, camera working fine (incl. video), 2.5.0.4 driver, 2.5.0.5 app.
Seems SELinux policy change no longer required as V4A module for Magisk installs AML (Audio Modification Library) as Magisk framework which no longer requires permissive. Let me know if I'm missing something. PW.
Click to expand...
Click to collapse
You are pretty well correct. But, in order to enjoy the full spectrum of the NEON audio drivers, SELinux must go permissive. The Viper version I am speaking of was compiled by Deuteronomy Sound Technologies (and Arise) and is known as Viper4 AriseFX (a modded, themeable, and undoubtedly the most feature packed Viper package available for Android). The Viper module available on Magisk is a bare bones package, and when used in combination with my patched boot image (due to SELinux policy) it breaks the stock camera and causes other instabilities within the ROM.
I'm working also on a custom kernel for the TB3-850F, which will have some audio tweaks available from the kernel itself, as well as some tuneable governors, preset TCP congestion algorithms, etc.
MotoJunkie01 said:
You are pretty well correct. But, in order to enjoy the full spectrum of the NEON audio drivers, SELinux must go permissive. The Viper version I am speaking of was compiled by Deuteronomy Sound Technologies (and Arise) and is known as Viper4 AriseFX (a modded, themeable, and undoubtedly the most feature packed Viper package available for Android). The Viper module available on Magisk is a bare bones package, and when used in combination with my patched boot image (due to SELinux policy) it breaks the stock camera and causes other instabilities within the ROM.
I'm working also on a custom kernel for the TB3-850F, which will have some audio tweaks available from the kernel itself, as well as some tuneable governors, preset TCP congestion algorithms, etc.
Click to expand...
Click to collapse
I see. Perhaps you could explain the benefits of neon audio - I wasn't aware.
Also, would permissive SELinux not break SafetyNet check? Thanks, PW.
pndwal said:
I see. Perhaps you could explain the benefits of neon audio - I wasn't aware.
Also, would permissive SELinux not break Safety net check? Thanks, PW.
Click to expand...
Click to collapse
Yes and no. Depending on how you set the SELinux policy. I've found that setting SELinux to permissive on boot only, by way of a third party app like Kernel Adiutor-Mod or The SELinux Toggler, does not break SafetyNet. However, permanently disabling SELinux as enforcing, by way of modding the kernel itself, has been reported to cause a SafetyNet fail on both custom and stock ROMs.
You raise a good question though, and it is a factor to which I'll be paying close attention during development for this tablet.
I think I've decided to include Viper4AriseFX in my ROM as optional, and available by flashing a separate zip installer subsequent to installing the ROM itself.
By the way @pndwal, you seem to know your way around Android pretty well. What are some other features you would like to see in a custom built ROM for the Tab 3 8?
MotoJunkie01 said:
Yes and no. Depending on how you set the SELinux policy. I've found that setting SELinux to permissive on boot only, by way of a third party app like Kernel Adiutor-Mod or The SELinux Toggler, does not break SafetyNet. However, permanently disabling SELinux as enforcing, by way of modding the kernel itself, has been reported to cause a SafetyNet fail on both custom and stock ROMs.
You raise a good question though, and it is a factor to which I'll be paying close attention during development for this tablet.
I think I've decided to include Viper4AriseFX in my ROM as optional, and available by flashing a separate zip installer subsequent to installing the ROM itself.
Click to expand...
Click to collapse
Optional install sounds like a good idea, especially if SELinux permissive is optional to. I'm hesitant to use permissive environment as many apps etc require enforcing, and attempts to circumvent this, eg Magisk's ability to hide permissive etc, are reportedly not foolproof.
Not sure about attraction with Neon and ARISE, but seems permissive SELinux requirement to use these may be short-lived anyway. See post from today, at https://forum.xda-developers.com/an...d-systems-auditory-research-t3379709/page3125
problem:
NEON Enabled: No
Enabled: No
Status: Abnormal
ETC...
How solve it please?
Magisk 14.3 thats why. You need permissive. ARISE hasnt been updated for the new changes to how magisk handles selinux. Just for now you'll need to switch to permissive to get viper to work. Hopefully we'll have a build up soon to make it work, I know that ZackPTG and Ghost started to update it although i'm not sure on progress.
Hope it helps, PW.
pndwal said:
Optional install sounds like a good idea, especially if SELinux permissive is optional to. I'm hesitant to use permissive environment as many apps etc require enforcing, and attempts to circumvent this, eg Magisk's ability to hide permissive etc, are reportedly not foolproof.
Not sure about attraction with Neon and ARISE, but seems permissive SELinux requirement to use these may be short-lived anyway. See post from today, at https://forum.xda-developers.com/an...d-systems-auditory-research-t3379709/page3125
problem:
NEON Enabled: No
Enabled: No
Status: Abnormal
ETC...
How solve it please?
Magisk 14.3 thats why. You need permissive. ARISE hasnt been updated for the new changes to how magisk handles selinux. Just for now you'll need to switch to permissive to get viper to work. Hopefully we'll have a build up soon to make it work, I know that ZackPTG and Ghost started to update it although i'm not sure on progress.
Hope it helps, PW.
Click to expand...
Click to collapse
I've got Viper4AriseFX fully functional with Magisk v14.3. SafetyNet pass. I'm using a method which does not permanently set SELinux to permissive, but which toggles it to permissive only upon boot.
My pre-patched boot image is probably key to the successful installation as well. I'll list a complete change log of the exact mods once my beta release is ready. From what I'm gathering on logcat, Viper4AriseFX is "seeing" SELinux as permissive, while other system components are seeing the policy as enforcing. I believe I've stumbled upon the key to this SELinux policy dilemma.
MotoJunkie01 said:
By the way @pndwal, you seem to know your way around Android pretty well. What are some other features you would like to see in a custom built ROM for the Tab 3 8?
Click to expand...
Click to collapse
No really unique ideas, but interested in improved performance (speed and battery), battery being pretty good already.
MT8161p CPU specs say Quad-Core, 1.3 GHz, but TB3-850f is limited to 1.0 GHz, so a kernel modified to allow overclocking should achieve 30% boost easily (and CPU can usually go ~30% higher than specs, so perhaps 1.7 GHz or so would be achievable) unless I'm missing something.
Could improve Adoptive Memory (SD) handling, but may have to wait for port to N or O for this as anomalies with handling Dev. manifest values to make moveable apps automatically go to SD (as well as not allowing some even to be moved manually that should move fine) seem to an Android M limitation. (Works beautifully/ as expected on my phone with lineage N, and if Dev. hasn't enabled 'move apps to SD', can 'Force allow apps on external' in Developer Options [Makes any app eligible to be written to external storage, regardless of manifest values].) Guess N / O may be a way off, but would be nice.
Lenovo is now pushing ~30MB OTA update to TB3-850F_S100031_171010_ROW, so you'll probably want to capture / incorporate this in your ROM. (Is it possible to modify OTA update to allow flashing on rooted devices without restoring stock recovery? [Edit: Seems this would require merging differential update with complete files updated, and likely should only be flashed as complete ROM unless stock restored. Saw this: https://twrp.me/faq/officialota.html]) This is not available as a complete downloadable ROM on Russian Websites (lenovo-forums.ru or 4pda.ru) or others as yet as far as I can see.
Hope ideas are helpful, PW.
pndwal said:
No really unique ideas, but interested in improved performance (speed and battery), battery being pretty good already.
MT8161p CPU specs say Quad-Core, 1.3 GHz, but TB3-850f is limited to 1.0 GHz, so a kernel modified to allow overclocking should achieve 30% boost easily (and CPU can usually go ~30% higher than specs, so perhaps 1.7 GHz or so would be achievable) unless I'm missing something.
Could improve Adoptive Memory (SD) handling, but may have to wait for port to N or O for this as anomalies with handling Dev. manifest values to make moveable apps automatically go to SD (as well as not allowing some even to be moved manually that should move fine) seem to an Android M limitation. (Works beautifully/ as expected on my phone with lineage N, and if Dev. hasn't enabled 'move apps to SD', can 'Force allow apps on external' in Developer Options [Makes any app eligible to be written to external storage, regardless of manifest values].) Guess N / O may be a way off, but would be nice.
Lenovo is now pushing ~30MB OTA update to TB3-850F_S100031_171010_ROW, so you'll probably want to capture / incorporate this in your ROM. (Is it possible to modify OTA update to allow flashing on rooted devices without restoring stock recovery? [Edit: Seems this would require merging differential update with complete files updated, and likely should only be flashed as complete ROM unless stock restored. Saw this: https://twrp.me/faq/officialota.html]) This is not available as a complete downloadable ROM on Russian Websites (lenovo-forums.ru or 4pda.ru) or others as yet as far as I can see.
Hope ideas are helpful, PW.
Click to expand...
Click to collapse
You may have read the wrong specs. There has been much confusion between the TB3-850M (which runs on the MT8161p), and the TB3-850F (which runs on the MT6735m). A lot of online sources have misstated the board platforms on these two tablets.
My TB3-850F build.prop clearly lists the board platform as MT6735m, as does the hardware reading given by the SP Flash Tool when I sync the device on my PC. I wish mine did have the MT8161 (1.3GHz) versus the 1.0GHz of my MT6735.
But just to be certain there are not variants of the TB3-850F, read your build.prop via file explorer or build prop editor and let me know if yours is in fact the MT8161p.
Thanks for the heads up on the OTA. I wasn't aware of it and I'll definitely be updating my stock ROM thread accordingly.
Oh to answer your question on the OTAs, yes you can flash an OTA to a rooted/modified device by editing the updater-script and omitting the crypto-hash checks performed during the typical OTA installation, and by editing the incremental target and source lines (or omitting them entirely).
Just got the 33mb OTA captured. Looks like there are the usual bug fixes & stability improvements, but also the KRACK exploit has been patched, the partition index updated, and kernel updates. I'm currently compiling an up-to-date stock ROM with TWRP flashable installer.
MotoJunkie01 said:
You may have read the wrong specs. There has been much confusion between the TB3-850M (which runs on the MT8161p), and the TB3-850F (which runs on the MT6735m). A lot of online sources have misstated the board platforms on these two tablets.
My TB3-850F build.prop clearly lists the board platform as MT6735m, as does the hardware reading given by the SP Flash Tool when I sync the device on my PC. I wish mine did have the MT8161 (1.3GHz) versus the 1.0GHz of my MT6735.
But just to be certain there are not variants of the TB3-850F, read your build.prop via file explorer or build prop editor and let me know if yours is in fact the MT8161p.
Thanks for the heads up on the OTA. I wasn't aware of it and I'll definitely be updating my stock ROM thread accordingly.
Oh to answer your question on the OTAs, yes you can flash an OTA to a rooted/modified device by editing the updater-script and omitting the crypto-hash checks performed during the typical OTA installation, and by editing the incremental target and source lines (or omitting them entirely).
Click to expand...
Click to collapse
Yes, I'd forgotten this confusion.
Actually, didn't check online sources, but assumed Phone Tester was reporting correctly. It gives CPU Info: MT8161p.
Just checked Kernel Auditor which gives MT8161p as vendor, but MT6735 as hardware.
CPU-Z gives MT6735 as SoC.
My build.prop also gives ro.board.platform=mt6735m, but also ro.lenovo.cpuinfo=MT8735P.
Russian 4PDA forum gives 850f Processor Type: MT8161, with MT8735 for 850M variant. (http://4pda.ru/devdb/lenovo_tab3_8:850f)
So it's hard to know what or who's correct, but looks to me that newer CPUs have likely been installed on boards originally designed for MT6735. (My CPU could actually be MT8735 as given by build.prop if Lenovo had excess chips from 850M, or simply decided to use these in both models. - I guess they may even have started with MT6735 for 850f before progressively using MT8161 and MT8735.)
So seems to me to be in the realms of possibility that a kernel allowing overclocking may just render spectacular results (as long as later CPUs were in fact used, and these are not crippled by an older board chipset.) But then, I may be way off base . . . Let me know your thoughts. PW.
pndwal said:
Yes, I'd forgotten this confusion.
Actually, didn't check online sources, but assumed Phone Tester was reporting correctly. It gives CPU Info: MT8161p.
Just checked Kernel Auditor which gives MT8161p as vendor, but MT6735 as hardware.
CPU-Z gives MT6735 as SoC.
My build.prop also gives ro.board.platform=mt6735m, but also ro.lenovo.cpuinfo=MT8735P.
Russian 4PDA forum gives 850f Processor Type: MT8161, with MT8735 for 850M variant. (http://4pda.ru/devdb/lenovo_tab3_8:850f)
So it's hard to know what or who's correct, but looks to me that newer CPUs have likely been installed on boards originally designed for MT6735. (My CPU could actually be MT8735 as given by build.prop if Lenovo had excess chips from 850M, or simply decided to use these in both models. - I guess they may even have started with MT6735 for 850f before progressively using MT8161 and MT8735.)
So seems to me in the realms of possibility that a kernel allowing overclocking may just render spectacular results (as long as later CPUs were in fact used, and these are not crippled by an older board chipset.) But then, I may be way off base . . . Let me know your thoughts. PW.
Click to expand...
Click to collapse
Yeah I agree with you wholeheartedly that overclocking - at least moderately - could provide some benefit. I'm seeing that our current 1.0GHz maximum clock could safely be overclocked to about 1.33GHz. Definitely something I will be considering. I've been able to optimize this device's meager 1GB RAM by zipaligning the apk files, and by setting a maximum background process limit to build.prop. I've also found that setting the stock kernel's Adaptive Low Memory Killer to Very Aggressive helps as well.
I've installed the OTA and it seems to improve general stability of the device, and provides us with much needed security patches. I'll be updating my stock ROM to the most recent version later today. Here is a link to the captured OTA if anyone is interested in exploring it. However, in order to flash it to a rooted/modified device, the updater-script first needs to be modified. But again, I'll have the updated build posted later today.
OTA_TB3-850F_S100031_171010_ROW: https://drive.google.com/file/d/11xo-7X06ST1RV8X5TJHjM5o2MHfcsNhl/view?usp=drivesdk
MotoJunkie01 said:
Yeah I agree with you wholeheartedly that overclocking - at least moderately - could provide some benefit. I'm seeing that our current 1.0GHz maximum clock could safely be overclocked to about 1.33GHz. Definitely something I will be considering. I've been able to optimize this device's meager 1GB RAM by zipaligning the apk files, and by setting a maximum background process limit to build.prop. I've also found that setting the stock kernel's Adaptive Low Memory Killer to Very Aggressive helps as well.
I've installed the OTA and it seems to improve general stability of the device, and provides us with much needed security patches. I'll be updating my stock ROM to the most recent version later today. Here is a link to the captured OTA if anyone is interested in exploring it. However, in order to flash it to a rooted/modified device, the updater-script first needs to be modified. But again, I'll have the updated build posted later today.
OTA_TB3-850F_S100031_171010_ROW: https://drive.google.com/file/d/11xo-7X06ST1RV8X5TJHjM5o2MHfcsNhl/view?usp=drivesdk
Click to expand...
Click to collapse
Great. What do you make of build.prop entry: ro.lenovo.cpuinfo=MT8735P? PW.
pndwal said:
Great. What do you make of build.prop entry: ro.lenovo.cpuinfo=MT8735P? PW.
Click to expand...
Click to collapse
It's simply a typo that was made in build.prop I believe. Going by ro.board.platform, they seem to have it correct with the 6735 entry. I was just messing with some components of the unpacked boot image from this device, and it seems that except for the SoC differences, the 850M and 850F are otherwise identical. Of course, the 850M, by way of its mt8161p, has full SIM & 4G/LTE data support. In our variant, the SIM slot (next to the micro SD card slot) is blocked off, whereas it's fully accessible in the 850M.
P.S, if you're rooted, add this line to build.prop and let me know if you see a difference in RAM optimization: ro.config.low_ram=true

[APP][R][XPOSED] GravityBox v11.0.5 for Android 11 [08/08/2021]

GravityBox - all-in-one tweak box - Xposed module for devices running Android 11
Version 11.0.5 [R]
Version for JellyBean is available in this thread: https://forum.xda-developers.com/showthread.php?t=2316070
Version for KitKat is available in this thread: https://forum.xda-developers.com/showthread.php?t=2554049
Version for Lollipop is available in this thread: https://forum.xda-developers.com/showthread.php?t=3037566
Version for Marshmallow is available in this thread: https://forum.xda-developers.com/showthread.php?t=3251148
Version for Nougat is available in this thread: https://forum.xda-developers.com/showthread.php?t=3653953
Version for Oreo is available in this thread: https://forum.xda-developers.com/showthread.php?t=3739929
Version for Pie is available in this thread: http://forum.xda-developers.com/showthread.php?t=3908768
Version for Q is available in this thread: http://forum.xda-developers.com/showthread.php?t=3974497
READ THIS POST CAREFULLY BEFORE PROCEEDING ANY FURTHER
Introduction
The app utilizes Riru-EdXposed Magisk module which uses original Xposed Framework API created by rovo89.
!!!!!! WARNING !!!!!!
This module utilizes EdXposed Framework which is still in early development stage and may contain bugs or might not be fully compatible with the system of your Android device. I take no responsibility for any issues arising from using GravityBox with EdXposed and strongly recommend creating a full backup of your device before activating the module.
Requirements
- Magisk v21 or later
- Riru v23 or later (Magisk module)
- EdXposed Manager (Application)
- Avoid using Resource hooking support if possible (Can be disabled in EdXposed Manager settings)
Installation
This procedure assumes you have working Magisk installation.
1) Install Riru module in Magisk Manager
2) Install and run EdXposed Manager app and download Riru-EdXposed module v5.1.3.x or later (currently Alpha/Canary)
3) Install downloaded Riru-EdXposed module in Magisk Manager
5) Reboot and open EdXposed Manager app to check if EdXposed works and is active
6) Install GravityBox and enable it in EdXposed Manager
7) Reboot and profit
Required whitelisted packages
In case you use blacklist/whitelist functionality of EdXposed make sure all the following packages are whitelisted (not blacklisted respectively) for full GravityBox experience.
- Android System (android)
- System UI (com.android.systemui)
- Call Management (com.android.server.telecom)
- Download Manager (com.android.providers.downloads)
- Phone (com.android.dialer or com.google.android.dialer)
- Phone Services (com.android.phone)
- Phone (com.android.incallui) (OxygenOS only)
- Keyboard app (e.g. Gboard) in order to be able to use "Volume key cursor control" feature
It is strongly recommended to use Whitelist functionality for better performance as EdXposed hooks only smaller amount of processes.
In case of running multiple Xposed modules consult their whitelist requirements with the devs of module.
Feature highlight
--- Lockscreen tweaks
--- QuickSettings tile management with additional tiles
--- Statusbar tweaks
--- Navigation bar tweaks
--- Pie controls
--- Power tweaks
--- Display tweaks
--- Phone tweaks
--- Media tweaks
--- Hardware/navigation key actions
--- GravityBox Actions - interface for 3rd party apps
--- Notification control (per-app notification LED/sounds/vibrations)
--- Fingerprint launcher
--- Advanced tuning of Framework and System UI parameters
... and many more
Compatibility
GB's main concept is to make most of the preference changes to be done on the fly without need to reboot a device to achieve custom-ROM like experience.
This means it is not possible to "completely deactivate" particular feature if it causes trouble on your device or if you installed GB because you want to use only one particular feature you can't find elsewhere.
This results in issues on ROMs/devices that have parts that are diverting from default Android implementation too much, or are running heavily modified custom ROMs.
If you experience weird issues after installing GB, even if you didn't activate a particular feature, it is not because of GB is broken, it is because it is not compatible with your ROM.
It is very similar to a situation when you installed ROM built from source for Nexus to some Xperia device - it won't work.
GB is a complex module and is not suitable for 1 purpose scenario. This means, if you are running custom ROM built from source, and you are missing a certain feature, your best option is to go ask creators of those ROMs to implement those additional features. Supplementing missing features on well-known custom ROMs built from source by installing xposed modules (especially complex ones) is definitely not a good way to go and can cause more trouble than good.
GB being a complex module, it shouldn't be combined with other complex modules often racing for the same goal. They can conflict/fight on the same playground and there's no way you can deterministically say which one's going to win. They can even lose both.
So in summary:
- this module is designed to run on vanilla or close-to-vanilla Android 11 (AOSP)
- officially supports devices/systems it was developed and tested on
- Samsung, HTC, MIUI, Xperia, Lenovo, etc. are NOT supported. It is not guaranteed this module will work on these at all so try at your own risk. This module is simply too complex to support all kind of ROM brands that were vastly modified by vendors.
- DO NOT USE WITH CUSTOM ROMS MODULE WAS NOT EXPLICITLY DESIGNED FOR
- I will not implement any exceptions that will adapt this module to a specific custom ROM. Please, do understand, it is unmanageable.
- I will not provide any support for devices violating these compatibility rules
GravityBox [R] has been designed for and tested on
- Pixel 3a running Google OS
- OnePlus 7Pro running Oxygen OS 11
Reporting bugs
If possible, please use Github issue reporting interface for reporting bugs.
If you experience problems with certain feature, provide the full-detailed info that can help me
to reproduce the bug and attach logs that can be exported from EdXposed Manager app.
Real-time logging can be performed by using ADB: adb logcat -s EdXposed-Bridge
In case you experience SystemUI crashes or other apps Force Closing, or device soft reboots, attach logcat from time
crash occurs. (use adb logcat *:E or your favorite logcat app from Play Store).
Please, don't attach big logs. Only the portion where error is clearly seen.
Disable all other xposed modules before reproducing bug to make sure it is really GravityBox related
Remember, this app was developed and tested on one particular device so it is not guaranteed that it will work flawlessly on yours.
Multilanguage support
Volunteers are welcome to translate GravityBox to other languages.
Preferred way is to use GitHub interface to fork your own copy of GravityBox, make changes and then send pull request against original repository.
Anoter way is to simply download this file: https://github.com/GravityBox/GravityBox/raw/r/GravityBox/src/main/res/values/strings.xml
Use Notepad++ to edit strings and then send me edited file so I can include translations into next release.
Source code
GravityBox is opensource. Sources are available in my gihub: https://github.com/GravityBox/GravityBox/tree/r
If you're a dev and have some ideas for additional features, feel free to fork it, work on it and send the pull requests.
Copyright notice
https://github.com/GravityBox/GravityBox/blob/r/NOTICE
Support development
Coding, maintaining and supporting this project costs me a lot of my precious time. If you find this project useful, you are more than welcome to support its development via donation. This form of support is meant to compensate for my time dedicated to the community + eventually, help me to afford newer device to keep up with AOSP evolution thus providing continuous support as Android evolves. Thanks!
Info about premium features and PayPal transaction ID verification system
1) Those who supported development via PayPal donation can use their PayPal transaction ID to unlock premium features.
As of v2.9.5, there are three premium features:
- Backup/restore of GB settings.
- Ultimate notification control
- Advanced Tuning
2) If you contributed to the project by providing translations, code fragments, or by any other way
you can apply for a free transaction ID by contacting me via PM.
3) Be aware that there's a system that can identify potential transaction ID
abuse. E.g. when one ID is being used by more users. Such IDs will get blocked automatically.
In case you own more devices, you can use one transaction ID on up to 10 of them.
4) If you are using your own custom builds of GB for personal use, you will get hash mismatch
upon verifying your ID as verification system accepts requests only from official releases of GB.
If you want to be able to verify IDs with your custom build, contact me via PM so I can setup
a special hash for your build.
If you are using a custom build that you provide for broader group of users (e.g. in a custom ROM),
it is necessary to ask for new hash everytime your new custom version is released for public use.
These rules are based on mutual trust so please, do not violate them.
Credits
- RikkaW for creating and maintainng Riru Magisk module
- solohsu & MlgmXyysd for creating and maintaining EdExposed Magisk module
- @frank93 for donating Pixel 3a for development
- @bgcngm for his code contributions to the project
- @MohammadAG for Xperia specific contributions to the project
- @rovo89 for his ultimate Xposed framework and "Volume keys to skip track" mod
- @peptonib for starting me up with this project
- @simmac for app icon
- @romracer for Motorola specific code contributions
- @firefds for Samsung specific code contributions
- CyanogenMod project
- ParanoidAndroid project
- Slim, RootBox, AOKP, OmniROM projects
- Sergey Margaritov for ColorPickerPreference
- ArthurHub for Image cropping library
- All those who provided translations for different languages (Mr.Premise, peptonib, kidmar, ch-vox, romashko, Indiant, lelemm, oicirbaf, unavix, LuHash, WedyDQ10, mp3comanche, awaaas, liveasx, samsonbear, Eric850130, xtrem007, benjoe1, asmb111, Fatih Firinci, ...)
- and finally, all those who keep the project alive by supporting me via donations (you know who you are)
Changelog
https://github.com/GravityBox/GravityBox/blob/r/CHANGELOG.txt
Changelog 11.0.5 - 08/08/2021
- Lockscreen: added option to blur media artwork on lockscreen (thanks to robbins)
- Navbar: allow cursor control keys in gestural navbar
- Dialer: adjusted for compatibility with the latest Google Dialer
- Properly identify OnePlus 8T as device running OxygenOS ROM (thanks to F-i-f)
--- should improve compatibility significantly
Developed and tested on:
- Pixel 3a running Google OS
- OnePlus 7Pro running Oxygen OS 11
Current issues
- Display: Expanded Desktop - immersive modes not working
- Key actions: Home double-tap not working
- Lockscreen: Changed custom carrier text won't appear immediately
- Custom Battery indicator: stock battery may appear for a while after the reboot
- ... + potentially others mainly device/system variation specific
Removed features
- GPS and SlimKat tiles - location modes (battery saving/high accuracy/device) no longer exist in Android 11
- Audio Recording tile - background recording of audio not possible in Android 11
Download
https://github.com/GravityBox/GravityBox/releases/tag/v11.0.5_r
Settings
It is possible to restore settings that were backed up in GravityBox [Q]
Simply transfer "GravityBox" folder from internal storage of one device to internal storage of another device.
Required whitelisted packages
In case you use blacklist/whitelist functionality of EdXposed make sure all the following packages are whitelisted (not blacklisted respectively) for full GravityBox experience.
- Android System (android)
- System UI (com.android.systemui)
- Call Management (com.android.server.telecom)
- Download Manager (com.android.providers.downloads)
- Phone (com.android.dialer or com.google.android.dialer)
- Phone Services (com.android.phone)
- Phone (com.android.incallui) (OxygenOS only)
- Keyboard app (e.g. Gboard) in order to be able to use "Volume key cursor control" feature
It is strongly recommended to use Whitelist functionality for better performance as EdXposed hooks only smaller amount of processes.
In case of running multiple Xposed modules consult their whitelist requirements with the devs of module.
Credits
@frank93 for donating Pixel 3a for developemnt
Commit history
Commit history for transition from 11.0.4 to 11.0.5
@C3C076
Mate, you did it. Congratulations.
Can't wait to try it out.
Really appreciate your efforts in bringing this to us 11ers.
Cheers
2021 is looking good! Thank you so much. Working flawlessly on my pixel 3a
@C3C076
THIS is the first gift I've received of the new year. Thank you, sir!!!
Now, that's pretty awesome!
And the January update from Google should drop soon as well.
Thanks a lot @C3C076!
Got my Github notification this morning about the [R] pre-release! Just now updated my Pixel 4 XL from 08-2020 (Android 10) to 09-2020 (Android 11) using my keep root / seamless update method with no problems. Everything working perfectly fine! All I had to do was first disable GravityBox [R] in EdXposed Manager, and disabled Kirisakura AK3 (kernel) module helper in Magisk Manager. Upgraded to Android 11 with no issues at all, and everything system and root-wise seems to work perfectly fine. My current running list of Magisk / Xposed modules: https://forum.xda-developers.com/t/guide-edxposed-gpay-discussion.3992607/post-84193393
(I'm hoping @Ghisy finds this helpful, hehe)
Though I'm gonna play it safe and OTA each month, instead of factory image (sans "-w" flag) jumping. Gonna work my way up to the current firmware, then test out GravityBox [R] - thanks so much @C3C076! The fact that so many people like me have held off on upgrading to the latest Android version just based on your work should speak volumes! I'll report back once I'm able to actually play around with GB[R] some. The baby's starting to wake... :O
edit: my son rolled over, coo'ed, and faceplanted back to sleep <3
- Also should note, I was on Kirisakura 5.2.6 kernel before. Now on 6.6.0, all is well!
- Also wanted to note, SafetyNet was passing (with my current configuration) on 09-2020 build with no further modifications necessary. I just finished updating up to 12-2020, and SafetyNet is still passing . Activating GravityBox module now, and will further report back!
edit 2: Seems verrrry stable so far! The only thing I found that didn't work properly (or rather, worked 80% correctly) was for an option that I don't even normally use, and accidentally toggled, haha. Under QuickSettings management -> Tiles per header, each option works fine, but when selecting 8, it still only shows 7.
Other than that, at least as far as the options that I personally use, everything seems fine! I didn't get a chance to test out every function affected by my set of GB options in such a short time, of course, but I will certainly report if there are any issues. And of course I won't list every single option I ticked off, but attached is my backup file / preferences of my current config for anyone who may be curious. Again, keep in mind that compared to the vast functions GB offers in totality, I only use what I use so of course I can't account for the entirety of GB. But from what I've tested so far, it seems damn stable and this has made my transition to Android 11 pretty much seamless!
and @Ghisy, I'll send you some more details when I get a chance, certainly well before the weekend. Though if it's any consolation, in total the actual updating process only took me about an hour, if not less! Probably took me more time to actually download the files and prep, lol. XD
i5lee8bit said:
Just now updated my Pixel 4 XL from 08-2020 (Android 10) to 09-2020 (Android 11) using my keep root / seamless update method with no problems.
[...]
My current running list of Magisk / Xposed modules: https://forum.xda-developers.com/t/guide-edxposed-gpay-discussion.3992607/post-84193393
(I'm hoping @Ghisy finds this helpful, hehe)
[...]
Activating GravityBox module now, and will further report back!
Click to expand...
Click to collapse
Ha, thanks!
I'd be interested in your seamless update process if you don't mind sharing! Although I might go the image (sans -w) route instead.
Not sure I'll update until the week-end, I don't have much time on weekdays.
Ghisy said:
Ha, thanks!
I'd be interested in your seamless update process if you don't mind sharing! Although I might go the image (sans -w) route instead.
Not sure I'll update until the week-end, I don't have much time on weekdays.
Click to expand...
Click to collapse
see my edit above =)
But I also wanted to separately post a big finding of great news (at least for me)! - The volume key cursor control option now seems to persist through reboots, without needing to toggle the option again after reboots! Not sure, tbh, if this was fixed on [Q] already due to / as a side effect of the big Riru / EdXposed updates, but at least I can confirm that it definitely works on [R] now as intended. Woohoo!
Also @C3C076, donated an extra $10 USD via PP (20485146561217901). You're already very generous for enabling Family Library, and this should cover for installing the unlocker on my backup/secondary Android devices as well as my wife's phone. I also figured it would be better to donate via PP than disabling Family Library and purchasing again from Play Store, assuming higher fees from Google.
i5lee8bit said:
see my edit above =)
But I also wanted to separately post a big finding of great news (at least for me)! - The volume key cursor control option now seems to persist through reboots, without needing to toggle the option again after reboots! Not sure, tbh, if this was fixed on [Q] already due to / as a side effect of the big Riru / EdXposed updates, but at least I can confirm that it definitely works on [R] now as intended. Woohoo!
Also @C3C076, donated an extra $10 USD via PP (20485146561217901). You're already very generous for enabling Family Library, and this should cover for installing the unlocker on my backup/secondary Android devices as well as my wife's phone. I also figured it would be better to donate via PP than disabling Family Library and purchasing again from Play Store, assuming higher fees from Google.
Click to expand...
Click to collapse
Thanks. Your support is very much appreciated. Too kind. Interesting find about volume key cursor control. As you can see in the 2nd post I listed it there as currently not working . Looks like I'll have to take a look again. Do you use whitelist (App list mode enabled in EdXposed settings) ?
i5lee8bit said:
see my edit above =)
Click to expand...
Click to collapse
would you mind sharing your upgrade procedure from android 10 to 11 though? i’m not sure why, but my "usual" procedure (using the complete firmware, patching the boot.img, flashing everything including that boot-image afterwards) fails with all of the android 11 images. :/
(feel free to directmessage if you think it’s off topic here of course.)
frank93 said:
would you mind sharing your upgrade procedure from android 10 to 11 though? i’m not sure why, but my "usual" procedure (using the complete firmware, patching the boot.img, flashing everything including that boot-image afterwards) fails with all of the android 11 images. :/
(feel free to directmessage if you think it’s off topic here of course.)
Click to expand...
Click to collapse
If I can share my experience. I applied standard system update procedure from settings being on Pie (had it on your pixel to bring update for GB for Pie). This went without uninstalling magisk etc. I simple went incrementally from Pie through Q up to R and then several security update. Only after I was in the latest update I grabbed boot.img from corresponding system image, patched it using magisk and then flashed using fastboot. All apps and settings were preserved from Pie.
thanks. sounds about "right", your last step is basically what i’ve been doing as well previously (the "system update" never worked for me though, but i didn’t care too much). there must be something fishy going on with my device then. i’ll try again soon.
(in the end i wouldn’t even mind being without root for a few bootups inbetween, so .. i’ll flash the stock boot image and try booting android 11 then. if it works, i can try getting back root just as well afterwards i guess.)
frank93 said:
thanks. sounds about "right", your last step is basically what i’ve been doing as well previously (the "system update" never worked for me though, but i didn’t care too much). there must be something fishy going on with my device then. i’ll try again soon.
(in the end i wouldn’t even mind being without root for a few bootups inbetween, so .. i’ll flash the stock boot image and try booting android 11 then. if it works, i can try getting back root just as well afterwards i guess.)
Click to expand...
Click to collapse
Yeah, note that I never flashed full rom image. I went using standard system update from settings. In the end it was only patched boot.img I flashed.
okay, apparently not even a "real" firmware update (using the original stock boot image) works for me. loops back to bootloader 2-3 seconds after the google-logo. so i guess there’s something else wrong with my device/system.
i’ve "updated" back to the latest/last android 10 for now (there the firmware upgrade/downgrade works!?), and i’ll scratch my head another time i think. thanks for your input though!
i5lee8bit said:
and @Ghisy, I'll send you some more details when I get a chance, certainly well before the weekend. Though if it's any consolation, in total the actual updating process only took me about an hour, if not less! Probably took me more time to actually download the files and prep, lol. XD
Click to expand...
Click to collapse
Thanks, I appreciate it! You took one for the team and shared interesting info too! *(air) high five*
C3C076 said:
Thanks. Your support is very much appreciated. Too kind. Interesting find about volume key cursor control. As you can see in the 2nd post I listed it there as currently not working . Looks like I'll have to take a look again. Do you use whitelist (App list mode enabled in EdXposed settings) ?
Click to expand...
Click to collapse
I use App List mode, but not White List mode, as I use the Pass SafetyNet option (so basically on Blacklist mode). Because I also have GPay working and all (I've linked to that thread before, it's the one I linked with my list of active modules). Hahaha, I didn't even realize you put in the 2nd post about it not working - weird! Definitely working for me though, using these current configurations.
frank93 said:
would you mind sharing your upgrade procedure from android 10 to 11 though? i’m not sure why, but my "usual" procedure (using the complete firmware, patching the boot.img, flashing everything including that boot-image afterwards) fails with all of the android 11 images. :/
(feel free to directmessage if you think it’s off topic here of course.)
Click to expand...
Click to collapse
Since I'm sure others may find it useful, I'll post it here. Also, @C3C076 may find it useful to follow this concept, assuming things are similar for Pixel 3a (I've been a long time HTC user, up til U12+ and only then switched to Pixel phones, 4 for wife and 4 XL for me to be exact).
My firmware update procedure is basically predicated on restoring the stock boot and dtbo (dtbo in case custom kernel flashed) images for your current build, which restores the stock firmware (and therefore recovery) and "unroots" / stock-ifies the phone without removing any of your Magisk or EdXposed configs, which allows you to simply boot into recovery and apply (sideload) OTA zip from stock recovery. Before booting back into system after OTA flash, reboot back into bootloader and flash the new build's Magisk-patched boot image, and when you boot up into system, voila, seamless, intuitive, and relatively safe update to new firmware version. Worst case scenario, if you bootloop you just flash the stock boot image (or even better, a modified Magisk Core Only boot image) and fix whatever is causing the problem.
Here is a link to my guide for September 2020 build, which was the first Android 11 build. There's a bunch of additional notes due to the major update at the time, though some of the info is a bit outdated. I assumed everyone at the time was on a very specific versions of firmware, Magisk, EdXposed, and even modules, etc. But if you read, especially the 2nd post, you can certainly understand how it all works and how we could apply the process from any firmware version. Here's the thread: https://forum.xda-developers.com/t/...0-009-coral-magisk-stock-boot-images.4160787/
- I recommend giving the procedure a read, as you should be able to understand the intuition behind the process I use.
As we're already (assuming) on latest Magisk, Magisk Manager, EdXposed, Riru, etc. etc, we don't need to worry as much about compatibility of our installed modules before OTA'ing. So basically, I condensed down what needs to be disabled, in my case, to the old GravityBox module (obviously), and the old Kirisakura (my kernel on Q) kernel helper Magisk module. You would also want to disable any modules, Magisk and EdXposed, that may not be compatible with [R] yet.
So here was my update procedure, from here on, coming from August 2020 build already on Magisk 21.2 and up to date EdXposed / Riru / etc. modules - SPECIFICALLY FOR PIXEL 4 XL "CORAL"
(OPEN THE "SPOILER" TO VIEW!):
Spoiler: Pixel 4 XL (and by extension and intuition, hopefully other Pixel series) keep-root / updating guide-procedures
NOTE: The files I provide are specifically only for Pixel 4 XL!! You will need to obtain the correct files for your own device to follow this procedure, but the same idea should be able to be applied!
First, I downloaded the boot and dtbo file(s) for Aug. 2020 thru Dec. 2020 builds. Here's a link to my AFH uploads for these files: P4XL Boot / DTBO files
Then, I patched each month's boot image with Magisk 21.2, and put them to the side.
There's only stock dtbo.img for 08-2020 because dtbo will remain stock throughout the updating procedure, fyi.
Actually, hell, for Pixel 4 XL "Coral" users, to make your life extremely easy, I've uploaded all the files you'll need to follow this here!! - LINK HERE
And OTA files from Google servers: LINK#2 HERE
Disabled GravityBox [Q] module in EdXposed Manager / Uninstall GravityBox [Q]
(Don't bother installing GravityBox [R] yet)
Disabled Kirisakura AK3 Kernel Helper module in Magisk Manager
(you'll also want to disable any modules that potentially may not work with [R])
-- Reboot once to finalize disabling the modules --
(Don't boot back into system until this section is done, to ensure all root, settings, mods, etc. are retained - this is basically the 2nd post of the September guide I linked earlier)
- Reboot into Bootloader mode -
fastboot flash boot 08-boot.img
fastboot flash dtbo 08-dtbo.img
(these steps revert recovery to stock)
- Reboot into Recovery mode-
(when No Command / Android icon shows up, hold power button and tap volume up to get to recovery menu)
Choose option: Apply update from ADB
adb sideload (09-2020 OTA zip).zip
after OTA zip flash completes, REBOOT BACK TO BOOTLOADER
fastboot flash boot 09-patched.img
- NOW REBOOT INTO SYSTEM! -
When your phone boots back into Android (11), you will be rooted, with all mods and settings retained. And if you passed SafetyNet before with the right combination of mods and settings, it should still pass now. While you can, I wouldn't yet bother installing GravityBox [R] quite yet. Let's first continue to incrementally upgrade until we're at 12-2020 (or 01-2021 depending on when you're reading this). Basically, just make sure the Android System Update notification (sorry, I don't remember exactly the notification label, but you'll know when you see it) indicates the update completed before proceding.
Now we just repeat my OTA update procedure again, except no need to flash stock dtbo images, as we're not doing anything (like flashing custom kernel) in this short amount of time that modifies the dtbo partition.
Reboot into bootloader mode
fastboot flash boot 09-boot.img
Reboot into recovery mode
Apply update from ADB
adb sideload (10-2020 OTA zip).zip
Reboot to bootloader
fastboot flash boot 10-patched.img
Boot to system
Allow time for the system update notification to indicate update was completed.
Reboot into bootloader mode
fastboot flash boot 10-boot.img
Reboot into recovery mode
Apply update from ADB
adb sideload (11-2020 OTA zip).zip
Reboot to bootloader
fastboot flash boot 11-patched.img
Boot to system
Allow time for the system update notification to indicate update was completed.
Reboot into bootloader mode
fastboot flash boot 11-boot.img
Reboot into recovery mode
Apply update from ADB
adb sideload (12-2020 OTA zip).zip
Reboot to bootloader
fastboot flash boot 12-patched.img
Boot to system
EDIT: Google released January 2021 firmware update, literally minutes after (or maybe while??) I was posting this! Here is my January 2021 easy update guide for Pixel 4 XL: https://forum.xda-developers.com/t/...5-003-coral-magisk-stock-boot-images.4213263/
Allow time for the system update notification to indicate update was completed.
Install GravityBox [R], activate module, reboot one more time, have fun!!
Also install custom kernel or whatever else you might need to do as well.
To be honest, I kinda rushed this post, so I'll re-read it later and make sure I didn't make any little mistakes. But hopefully if you read my guides threads and stuff (like, actually read it), the entire concept should be very clear and intuitive to you! Assuming other Pixel phones (at least AB Pixel devices) have similar partitioning schemes, this should be very useful knowledge to have, as it makes updating to new firmware versions incredibly easy and low risk. Good luck, I hope this huge post helps some people / makes a better day for someone! =)
EDIT: @frank93, seeing your linked post, I see you have a Pixel 4a. Unfortunately you obviously can't use the exact files I provided / linked, but you should still be able to follow the same procedure. Just grab the OTA's, plus the full factory images, pull the necessary boot and dtbo files from the factory images, and Magisk patch the boot images for each month, and name / organize all the files and put them aside on your computer. You should still be able to follow my procedure, but with your files. I hope it works for you with no problems if you decide to try it!
Has anyone tried one plus 8t?
...aaaand Pixel January 2021 update just dropped
Awesome! 2021 is looking good! Donation sent! Keep up the awesome work bro! Working flawlessly on my Pixel 3xl

Categories

Resources