[GPay] How to get GPay to work on rooted Xiaomi Mi9 - Xiaomi Mi 9 Guides, News, & Discussion

MAGISK Module which does this job:
I found a magisk module which does the same work explained in this thread.
Module Link: Download here
SOURCE:
Github Download link: HERE
Gitgub source code link: HERE
< ALTERNATIVELY IF YOU WANT TO DO IT YOURSELF, FOLLOW THE STEPS BELOW >
Pre-Requites:
a. Device rooted with magisk 19.4+
b. Teminal Emulator installed (Link)
b. SQL database editor is installed (Link)
Steps:
1. Force close Google Pay app (just in case). If you have disabled this app, enable it before continue and force close)
2. Open SQL editor and go to File explorer in the app. Navigate to /data/data/com.google.android.gms/databases
3. Open dg.db and go to main
4. You will see entries "attest" (not "ad_attest"), long press and select Edit and change value under C (which is 3rd column) to 0. Mine was showing a value of 10 in the third column for each of these values. (Column c for sqlite database editor I used)
5. Open Terminal emulator.
6. Get root access (su) (i.e type su and ENTER)
7. Now type cd /data/data/com.google.android.gms/databases and ENTER
8. Type chmod 440 dg.db ENTER. This makes dg.db read only so that it will not over written and you can continue to use Google Pay.
9. Reboot your device and enjoy Google Pay.
Note: When gms is updated, you have to change chmod value for dg.db via terminal emulator (i.e type chmod 660 dg.db) to get write permission. Now follow all the steps to change value to 0 and change chmod to 440
Thanks to @BostonDan for the thread https://forum.xda-developers.com/apps/magisk/magisk-google-pay-gms-17-1-22-pie-t3929950

Nice Man... First method that actually worked for me. I am on Android 10 Xiaomi.eu latest

Serbinhio said:
Nice Man... First method that actually worked for me. I am on Android 10 Xiaomi.eu latest
Click to expand...
Click to collapse
Hi
Glad to hear that it worked for you. I changed my phone from OP5 to this device and GPay was not working until modded as explained in OP. It is very handy that I don't have to carry my wallet all the time.

You only need to do step 8, the rest isn't required.

nahsha said:
You only need to do step 8, the rest isn't required.
Click to expand...
Click to collapse
I have never tested with attest value being 10.
Do you mean, with attest value 10 and change to write permission of dg.db to 440 makes Gpay to work?
If this is the case, I agree that only step 8 is enough.
Thanks.

Its working, thanks

Congrats
Good job man. Works well with MIUI Global 11.0.3.0 (QFAMIXM) and latest Android 10.
Thanks

I flashed MIUI 11 Beta version (xiaomi.eu version) weekly update v9.12.5. I can see that CTS profile and basic integrity passes. Also, I can see that Device certified in Google Play settings. But GPay was reporting that device is rooted hence GPay could not work.
I went through following attempts to make it work.
Attempt 1:
Flashed magisk module Safety Patcher. GPay didn't work.
Attempt 2:
Removed Safety Patcher and flashed MagiskHide Props config modules. Used certified fingerprint for xiaomi mi9. GPay didn't work.
Attempt 3:
Removed all magisk modules mentioned above. Went through the method mentioned in this thread. GPay is working now.
Though this thread is made by me, I was lazy enough to go through the steps and that's why wanted to use something readily made like Safety Patcher or MagiskHide Props config).
Hope this update helps.

Working great on latest stable Miui.eu.
Thanks!.

It works great on latest Revolution OS.
Thank You!

Instead of:
a) Uploading a single release of my module to androidfilehost (which will mean anyone using that will likely never know theres an update)
b) Link to my actual releases page, but to a specific release (which will mean anyone using that will likely never know theres an update)
c) Incorrectly linking a source link to the releases page (the source is available as a zip option alongside the module zip for every release)
d) Omitting that the module relies on an sqlite3 binary being present on the device BEFORE installing the GPay SQL Fix module (not sure if your device by default has an sqlite3 binary, in any event in my OP for my module in BostonDan's thread i offer one universal SQLite package to test for this and if necessary, install one)
e) Omitting a link to my OP in BostanDan's thread so people can see the correct install procedure (it matters), keep up to date with important info, warnings, changelogs, and things such as extra steps necessary of using say edXposed....
I would suggest (In other words, your linking is bad, and youre only passing on part of the story in referencing my module):
1) A link to my OP in BostanDans thread:
https://forum.xda-developers.com/showpost.php?p=79643248&postcount=176
2) A link the releases page for my module (it will always link to the latest release this way)
GPay SQLite Fix:
release: https://github.com/stylemessiah/GPay-SQLite-Fix/releases/latest
3) A link to the SQLite3 binary module
SQLite3 Universal Binaries v1.0 (installs to /system/xbin if exists, otherwise .system/bin) here:
release: https://github.com/stylemessiah/SQLite3-Universal-Binaries/releases/latest
4) Remove the source link, its unnecessary
Cheers

73sydney said:
Instead of:
a) Uploading a single release of my module to androidfilehost (which will mean anyone using that will likely never know theres an update)
b) Link to my actual releases page, but to a specific release (which will mean anyone using that will likely never know theres an update)
c) Incorrectly linking a source link to the releases page (the source is available as a zip option alongside the module zip for every release)
d) Omitting that the module relies on an sqlite3 binary being present on the device BEFORE installing the GPay SQL Fix module (not sure if your device by default has an sqlite3 binary, in any event in my OP for my module in BostonDan's thread i offer one universal SQLite package to test for this and if necessary, install one)
e) Omitting a link to my OP in BostanDan's thread so people can see the correct install procedure (it matters), keep up to date with important info, warnings, changelogs, and things such as extra steps necessary of using say edXposed....
I would suggest (In other words, your linking is bad, and youre only passing on part of the story in referencing my module):
1) A link to my OP in BostanDans thread:
https://forum.xda-developers.com/showpost.php?p=79643248&postcount=176
2) A link the releases page for my module (it will always link to the latest release this way)
GPay SQLite Fix:
release: https://github.com/stylemessiah/GPay-SQLite-Fix/releases/latest
3) A link to the SQLite3 binary module
SQLite3 Universal Binaries v1.0 (installs to /system/xbin if exists, otherwise .system/bin) here:
release: https://github.com/stylemessiah/SQLite3-Universal-Binaries/releases/latest
4) Remove the source link, its unnecessary
Cheers
Click to expand...
Click to collapse
Have been using this module for months and I can't thank you enough to make GPay work with such an automated method.
Quick suggestion - why don't you start a new post with your work instead of letting it hide in reply #176 of another thread? You can always include a link back to the original post to give credit.
Cheers ! Thanks again !!!

seemebreakthis said:
Have been using this module for months and I can't thank you enough to make GPay work with such an automated method.
Quick suggestion - why don't you start a new post with your work instead of letting it hide in reply #176 of another thread? You can always include a link back to the original post to give credit.
Cheers ! Thanks again !!!
Click to expand...
Click to collapse
I didnt invent the method, i just repackaged it to make it a little easier for those who wanted to try it...
So i didnt move it into its own thread because i felt it might be disrespectful to BostanDan, i just repackaged his and others work, seemed only right to at least keep it where it started.
At least you didnt ask why its not in the repo, i get tired of telling THAT story

Wow, stumbled on this thread and was struggling to get GPay succesfully activated using all other tricks mentioned online. This one does actually work!
Yove just made my day, thank you!

Related

[Packages][7-16] ICS V6 Supercharger- now w/ PDroid

7-16: Some news. Well, I have some borked hardware and have begun to feel like, to new users, this thread might be more frustrating than helpful.
Therefore, if you are new to the thread/process, I would like to recommend that you try the Auto-Patcher instead. It ports all the functions of this thread (it is what I use to make the packages in the repo) with the assurance that the output won't be incompatible with your ROM.
Please see the release/support thread for the Auto-Patcher for downloads/help.
I am more than proud to have introduced so many of you to Botbrew and native Android package management. Inportb has put together a rock-solid platform that only improves with time. It was a distinct pleasure to watch it evolve, and I hope you all keep an eye on its progress.
I consider it to be the most powerful app available. There are literally limitless possibilities, software porting being among the least of them. I can't wait to compile my first ROM on a tablet- it will be Botbrew that makes it possible. The possibility of our mobile devices replacing laptops are only possible through things like this, and right now, Botbrew is the only game in town. I expect it to remain the standard.
Thanks, all. If you would like an existing package updated, you can always request it in the thread. I can no longer maintain in advance, but I will be happy to offer support on demand.
If you are new, please try the Auto-Patcher instead! Link above!
Offered Packages (only for Nook Color!)
mateorod-v6
Package that enable the v6 supercharger
mateorod-pdroid
Package that installs the framework for PDroid
mateorod-pdroid-v6
(wait for it...)Package that enables BOTH the v6 supercharger and PDroid
If you don't know what the v6, PDroid, or even Botbrew does exactly, please see the information section farther down this post.
Install Directions
Download and install Botbrew, free from Google Play. Botbrew will bootstrap in opkg or dpkg-apt along with several other packages necessary to its operation.
Install package repository-mateorod and press the refresh packages button at top right.
Install the mateorod-whatever package of your choice.
This will be the only system app package you will need to install. Any dependencies will automatically be resolved by its installation. That includes the v6 script.
Reboot.
If your mateorod package includes the v6 supercharger
After reboot open a terminal and enter the following:
Code:
su -c v6
The v6 script will run immediately and you can configure it from there. If you have any lingering questions about the configuration, please see the artifact that is post #3.
If this is your first time upgrading the V6 since update 8, (the one mrg666 used to recommend) don't re-supercharge from your sdcard or you will encounter mount issues! Just configure from scratch.
If your mateorod package includes Pdroid
Install PDroid from Google Play and configure
That's it!
**Should you ever wish to reverse these system changes, Botbrew completely takes care of that for you, restoring backups of every file modified by the process! Simply select the mateorod-whatever package and press Autoremove.
**Upon flashing a new nightly, just launch Botbrew. A repairable packages screen will automatically launch. Select those packages and reinstall them, then reboot. The Botbrew repo will keep up with the CM repo, so as long as you are upgrading to the latest nightly, you will be fine simply reinstalling!
Information
Botbrew
Botbrew is a package manager developed by the totally patient and kind inportb. I make the pitch for its capabilities, as well as my rationale for using it to distribute this software at the top of the 2nd post's ALL-NEW Q&A.
To learn more about Botbrew, visit its homepage OR the thread here on XDA.
v6 Supercharger
The v6 supercharger is a popular script that changes the way your android device's memory management is handled. It was developed by zeppelinrox and lent to Botbrew for the Nook Color by special dispensation. Read more and thank zeppelinrox here.
PDroid
PDroid is a security app available for free on Google Play. It has just about a million applications, the foremost of which is allowing you to block permissions to apps (system and user) from having permissions you are uncomfortable giving. Apps that are given permission to access your contacts, for instance, can now be blocked from that privilege at your discretion.
Pdroid also allows you to set static or random values for sensitive info should an app require them. So apps like Swype and others that require IMEI numbers or phone numbers can now be used like on regular devices. See svyat's original thread and thank him here.
This is the only method to use these programs outside of smali editing your own apps! Usually this is an either/or, but not with these packages!
Try the Auto-Patcher instead!
ohsnap...plug time!
Humility...
XDA News Portal article on v6 package (frontpaged!)
XDA News Portal article on Botbrew (x2)
XDA News Portal article on the PDroid packages(...x3!)
Gratitude...
inportb, for holding my hand through every step of this process, and for Botbrew itself.
Zeppelinrox for lending us the v6 supercharger script
svyat for developing PDroid
PoorCollegeGuy for his continuing support to the project.
racks11479- y'all know racks. But he's got his hands in Botbrew, as well.
pastime1971, my collaborator on the PDroid auto-patcher and the port of PDroid to ICS.
bet you didn't know it took so many people to supercharge a nook, now did ya?
Brand New Q&A!
Q: So why Botbrew and package management and not flashable zips?
A: Ahhh...the million dollar question, I suppose. After all, almost all system changes have been done with flashable zips everywhere else, right?​Well, part of the experiment here is to get people comfortable with the idea of package management for their Android device. It is a method that people use with Linux (think Synaptic) and iPhones (Cydia) but is not yet in vogue with Android. But the advantage is not just theoretical, there is tangible and useful value that you will get to experience immediately.​For instance, installing system apps for ICS makes the most sense when done through a package manager. With the CM repo being compiled on a nightly basis, the system apps themselves are a moving target. What I mean by that is that the services.jar I mod today may break an install tomorrow. If I distribute the file in a flashable zip that people apply over their install every time they upgrade, well, once the Cyanogen repo updates and the services.jar no longer plays nice with the rest of the install, everyone who flashes that zip on a regular basis is in for a nasty surprise that morning.​With a package manager, the first person who realizes the services.jar is out of date (almost always me) just reports back to the thread. I quickly make a new file and update the Botbrew repo. Users don't have to monitor a thread, or personally make a new file, that only has to be done by one person.​Now, as is available in this thread, think if there are two different mods to that same services.jar. One user just wants the original mod, while the next would like them both. Neither user has the time or energy to personally decompile and mod the source code for every nightly, but flashing will only install one or the other services.jar. The package management method allows the software distributors to foresee this, and allow for it. That is why you see packages like mateorod-pdroid-v6, something that is just not available for any other nightly install.​One last benefit, and this one is a bit theoretical. As of right now, Botbrew only has a few people using it to supply software. But as awareness and the user base grows, more developers will see it as a means of reaching a wider audience. Right now, things like scripts and themes rely solely on word-of-mouth. Think of Botbrew as a potential store-front for all manner of software, everything that isn't a user app (because, of course, Google Play and others already do a fine job of that) could be found here, waiting for your perusal and discovery. That day isn't here yet, but by being willing to try a package manager, you are part of the growing user base that will attract devs. Getting users is the hard part, the devs will follow.​Q: So what is Botbrew, exactly, if it just distributes software?
A: At its base, as inportb will tell you, Botbrew is simply a sophisticated installer, with the capacity to add software repos at will. When you install the repository-meteorod package, you are simply downloading my list of available software. You could add as many repos as you want from the Opkg configuration tab in the menu. However, Botbrew also uses unique maintainer scripts that allow software to be installed with a delicacy and precision not available elsewhere. Modding a live install is no everyday thing, and as Android devices get beefier and more powerful, some of the system-mods can be done live on the device, no pre-made software necessary. That will put the power of every script, theme and mod right in your hands, to apply, try and uninstall at will, without having to flash. There are enormous benefits to this.​
Okay, the package management proselytizing is done...on to practical matters.
Such as...
Package date issues and build selection
Q: ZOMG! I just installed a package and now I have BOOTLOOPS! What do I do?
A: As they say, don't panic. Just reboot, and press the 'n' button as Cyanoboot loads. Use the menu to boot into recovery and reflash your ROM. The system app just went out-of-date and you were the lucky first user to discover it. Please come to the thread and report any such occurrence. I check each package on a nightly basis (because I love yooouououo) but I have missed a big repo change before and likely will again. I keep a close eye on the thread, and will update the Botbrew repo as soon as possible.​Q: What do you mean, a package goes out-of-date?
A: As I said above, ICS is, as of right now, in an experimental and alpha state. What we flash every night isn't even an official release. I think in Cyanogen's perfect world, the amount of users on CM9 as a daily driver would be much less, but with it's popularity and rapidly educated user-base, that genie is out of the bottle. But when the source code used to create these system apps is changed enough, the apps made from the older code are no longer compatible with the newer builds. When that happens...ZOMG! and all that jazz.​Q: Even though you just explained how it's basically risk free I am cautious by nature. How do I lessen the chances of bootloops?
A: Just flash in the morning. I check these packages almost every night on builds I set to be tested an hour or two before eyeballer and Samiam go live. By the time you wake up in the morning, there is a 95% chance the packages have already been vetted and replaced if necessary.​Q: How often do the packages go out-of-date?
A: Maybe once every three weeks, although I recently had one go out of date after two days (ouch, right?). If you install the packages only over the latest nightly, you'll likely never notice.​Q: So how do I know if the build I am using is covered by the Botbrew repo?
A: The absolute best way is to flash a nightly on the day it is released, go into Botbrew and install your packages then. That way you'll always be covered. Those packages will last as long as your nightly is installed. When you feel you are ready to update, just grab the latest nightly and do the same thing again.​Q: I am real partial to the build from (for example) March 3rd. What if I want to use Botbrew packages on a certain older nightly?
A: At the bottom of this Q&A there is a list of downloadable packages and the build dates they go with. The links download the package which is installable from any browser or file manager, as long as Botbrew is installed.​
Q: What do I need to do after updating to a new nightly?
A: It's real easy. Just launch Botbrew. A screen should automatically appear that supplies you with the list of packages that have been damaged (read: overwritten) by the flash. Select those packages and press reinstall. Then reboot and you're done.​Q: Does it work on both eyeballer and Samiam303's builds?
A: The answer is yes, with a catch. Eyeballer clobbers his builds every night, which means he is using no prebuilts from earlier builds and everything in his build is fresh made from that night's source. Samiam currently does not. That means that if you are using Samiam's builds, I recommend you read your build.prop in /system and find the ro.build.date. The date that is there is the last time Sam clobbered, and you will need to use a package that corresponds with that date. You can download the package and save it to your sdcard, and whenever you update, simply check the build date. If he clobbers, pick the corresponding package and go from there. The list of older packages are at the bottom of this post.​Q: OpenGL? Do I need different packages if I do/do not have that enabled?
A: Nope. The packages work with or without OpenGL functionality.​Q: What about the (totally kick-butt) incremental updates that Team Win is distributing through GooManager?
A: The diff-cm.zips actually break the mechanism Botbrew uses to determine if a flash has been performed (symlinks). For now, we just hope user education will carry us until we come up with a more permanent solution. You WILL have to repair the packages after a flash. Just go into Botbrew and select the germane packages and reboot.​
Installation problems and errors
Q: I just ran "su -c v6" and the terminal returned only a "$"! What gives?
A: That is an unfortunate side-effect of the package installation (one I hope I recently fixed!). Launch Botbrew, go to the v6 package and press reinstall. The script will work in the terminal as before, no reboot necessary.​Q: I pressed Auto-remove, but it failed! What went wrong?
A: It is an unfortunate bug in Opkg, the engine that powers Botbrew, where the autoremoval process sometimes fails. Just try it again until it works. I find that when it fails for me, the third try finishes the removal process completely.​Q: I just tried to install a mateorod package, but the install failed because of "check_data_file_clashes" and "file is already provided by * android-framework*"?
A: Yep, that is a designed file conflict, added to the packages to protect the integrity of the backups and prevent users from accidentally losing functionality they really wanted. The error means you already have a mateorod-whatever package installed. Look for it in the installed packages screen, uninstall that package first, and then try to install your other mateorod package.​Q: Can I get (your favorite mod, script, or theme) supported by a package from Botbrew?
A: We can certainly try. Botbrew is only limited to offering packages we can figure out how to make. Request it in the thread, and maybe we can find a way to package it up together.​
Older Packages
These packages are available for those of you running an older nightly who do not wish to flash an update. If your build is past any of the dates below, you can install directly from Botbrew!
If Botbrew is installed, the packages below can be installed directly from any browser or file manager.
ONLY install one package at a time!
3/10-4/14
PDroid only
android-framework-pdroid_1.3.2-2_encore.opk
Pdroid+v6
android-framework-pdroid-v6_1.3.2-2_encore.opk
v6 only
android-framework-services-v6.opk_0.0.4-5
4/17-5/05
PDroid only
android-framework-pdroid_1.3.2-4
PDroid+v6
android-framework-pdroid-v6_1.3.2-4
v6 only
android-framework-services-v6_0.0.4-6
5/05-5/06 (Ouch, right?)
PDroid only
android-framework-pdroid_1.3.2-5
PDroid+v6
android-framework-pdroid-v6_1.3.2-5
v6 only
android-framework-services-v6_0.0.4-7
5/07-5/10 (Ouch again, amirite?)
PDroid only
android-framework-pdroid_1.3.2-6
PDroid+v6
android-framework-pdroid-v6_1.3.2-6
v6 only
android-framework-services-v6_0.0.4-8
5/11-5/14 (It is starting to feel personal)
PDroid only
android-framework-pdroid_1.3.2-7
PDroid+v6
android-framework-pdroid-v6_1.3.2-7
v6 only
android-framework-services-v6_0.0.4-9
5/15-5/18 (It is
PDroid only
android-framework-pdroid_1.3.2-8
PDroid+v6
android-framework-pdroid-v6_1.3.2-8
v6 only
android-framework-services-v6_0.0.4-10
5/19-5/26
PDroid only
android-framework-pdroid_1.3.2-9
PDroid+v6
android-framework-pdroid-v6_1.3.2-9
v6 only
android-framework-services-v6_0.0.4-12
5/26-5/27
PDroid only
android-framework-pdroid_1.3.2-10
PDroid+v6
android-framework-pdroid-v6_1.3.2-10
v6 only
android-framework-services-v6_0.0.4-13
5/27-5/30
PDroid only
android-framework-pdroid_1.3.2-11
PDroid+v6
android-framework-pdroid-v6_1.3.2-11
v6 only
android-framework-services-v6_0.0.4-14
5/31-6/03
PDroid only
android-framework-pdroid_1.3.2-12
PDroid+v6
android-framework-pdroid-v6_1.3.2-12
v6 only
android-framework-services-v6_0.0.4-15
6/03-6/07
PDroid only
android-framework-pdroid_1.3.2-13
PDroid+v6
android-framework-pdroid-v6_1.3.2-13
v6 only
android-framework-services-v6_0.0.4-16
6/08-6/10
PDroid only
android-framework-pdroid_1.3.2-14
PDroid+v6
android-framework-pdroid-v6_1.3.2-14
v6 only
android-framework-services-v6_0.0.4-17
Current nightlies and any Android 4.0.3 builds are always supported by the package in repository-mateorod
*Note: There is no version 11 for the android-framework-services-v6 package.
If you are running samiam's builds, the package you need will depend on how recently he clobbered! Check the build date in the build.prop and choose your package accordingly!
Quick V6 Configuration Guide
This is an artifact, almost. But if you have questions about the configuration process for the v6, this is what I used.
The V6 Supercharger menu asks users to confirm operations at several points, usually prompting you to press the Enter button, y for yes or n for no. Those are just confirmations of intent and those steps are skipped in the guide. They are common sense though, and should pose no problem.
The script and the method of modding the services file is the product of the hard work of zepplinrox. I just followed the directions to save people the effort. Any risks are yours and yours alone, as always.
1) Download and Launch Botbrew. Botbrew will bootstrap in some necessary packages
2) Install package repository-mateorod[/] and press the refresh packages button at top right.
3) Install package mateorod-v6
4) Reboot. You will see an "Android is upgrading" pop up over your boot animation.
5) Open a terminal and run the following:
Code:
su -c v6
6) The script will run. The program should automatically run the Driver Options. (If not, enter option 26 in the main script menu to continue following this guide).
Choose 1-3 for scrolling speed. (do yourself a favor and select 1, for the fastest)
7) Y for yes to integrate into init.rc
8) Enter y if you do not want the V6 script animation.
9) The script will enter its main menu which has 30 options. Select option 7.
OpenGL Users: Some slightly less aggressive settings have been reported as resulting in increased stability with OpenGL.
10) You will be prompted to Super clean and Reboot.
This is no longer necessary. The supercharger settings take place immediately. But you can do it if it makes you feel better.
11) Disable and reenable zRAM at 18% in settings/performance/memory management/zRAM in the device settings if you experience lag later. Since this requires reboots, I have changed this to as-needed. Update HacDan informs us our kernel does not have zRam compression. Verdict: Unneeded!
12) Rerun V6 script and read the info beneath the menu list. It should indicate that
-Launcher is Die-Hard, i.e. Supercharged
-ADJ fixes NOT NEEDED
-OOM Groupings Fixed
-Current AND prior minfrees = 8, 14, 75, 90, 95, 125 mbs
-Supercharger Service is installed, and
-Supercharger Level = 100% Supercharged.
If so, then you are correctly installed and running, and your values are sticking after reboot. That's it
mateorod....nice job here....I've been wanting to do the V6 thingy for weeks but everytime I read those original posts I got a little paranoid.
I run MIRAGE on an SD card and the information you provided here worked well.
I'm not sure V6 is helping a lot but its only been a day. I'm seeing no HUGE increase in speed and in some cases....maybe a little slower.....but time will tell.
I just hope it is easy to back off if I want.
Thanks again for your documentation.
Glad it worked for you. Unsupercharge is an option in the menu, should you want to undo the changes. This update makes backups of all of your original settings during the setup process, so they are quick to restore.
Thanks for trying the guide for me.
Have you tried root explorer to see if it works
Posted from Asus Transformer Prime
I have tried to repack the modded services.jar into the nightlies using Root Explorer with varying results. I haven't downloaded the last few updates, but navigating within zips has been buggy in ICS for me. When I tried to copy/paste, it appeared to work, but the file remained unreplaced.
I usually use the latest release candidate of Total Commander for file moving, as its dual window format is easy and it uses a progress bar for large operations. But it too is buggy using the nightlies.
FWIW: I have tried ES Explorer, Root Explorer, Total Commander, OI File Explorer 1.2, and Astro with only Astro working for me.
Having said that, replacing the file is easy on a home computer . I just try my best to find a way to do things entirely from the Nook as a personal idiosyncrasy.
Tried using astro to put the services.jar in, only getting bootloops (1 hour+ and counting, way too long). Tried putting it in before and then flashing the update.zip (2/25 ICS). Tried letting it boot for 2 hours, nada.
Anyone know what I'm doing wrong?
Only thing I can think of, is that you have something in your data that is working against this. My advice is to grab a clean nightly(one you haven't messed with) and put it on your sd. Boot into recovery clear cache and dalvik, update to that nightly, and see if you get through. If you can't than you might have to do a clean install.
But if you get through, than perhaps you should run titanium backup to be safe. Launch root explorer and swap the service.jar files. Reboot and clear caches. If you are able to reboot completely than continue on your directions, if not than perhaps your .jar file is corrupt.
I made a services.jar modded from eyeballer's 2/26 non-opengl build. Has cut down on the bugs so far. I will run it in my device tonight and if it looks unharmful, I will replace the top file tomorrow.
mateorod said:
I made a services.jar modded from eyeballer's 2/26 non-opengl build. Has cut down on the bugs so far. I will run it in my device tonight and if it looks unharmful, I will replace the top file tomorrow.
Click to expand...
Click to collapse
PM me if it works, than I can replace my files on Sam's thread.
Sent from my Nook Color, running Samiam303's ICS nightly V6 SuperCharged, using Tapatalk.
When I do step 11 in the second post (rerun V6) nothing happens I just get dropped back to /sdcard #.
Rick_V said:
When I do step 11 in the second post (rerun V6) nothing happens I just get dropped back to /sdcard #.
Click to expand...
Click to collapse
This happened to me, download Script Manager from market(it's free). Run your V6 script in that program.
An encore (nook) specific services.jar for the 2/27 builds will be up in about 20 mins.
Update: Now up on original post attachment list.
Okay so I made this ZIP, it should replace your service.jar with the newest one for V6(from mateorod's post), and the bootanimation to the official CM9 one (Video Link)(Tnpapadakos' files).
Grey
Could you be more specific about what is included in the zip you just posted here for anyone who isn't following the other thread? I read it fairly regularly, but I have no idea myself. There are a ton of tweaked packages running around right now, they can be hard to keep straight.
Thanks
mateorod said:
Grey
Could you be more specific about what is included in the zip you just posted here for anyone who isn't following the other thread? I read it fairly regularly, but I have no idea myself. There are a ton of tweaked packages running around right now, they can be hard to keep straight.
Thanks
Click to expand...
Click to collapse
yeah i have to agree, its precisely why i gave up on running ics on my nook, too many messy mixed messaged threads going on mixing mods. itd be great to just see an ics rom compiled with everything included to make lives of idiots like me easier.
mateorod said:
Gray
Could you be more specific about what is included in the zip you just posted here for anyone who isn't following the other thread? I read it fairly regularly, but I have no idea myself. There are a ton of tweaked packages running around right now, they can be hard to keep straight.
Thanks
Click to expand...
Click to collapse
I fixed it
Am I the only one who can't find V6 U9RC6.9 and doesn't see build.prop options?
grayfoxmg1 said:
Okay so I made this ZIP, it should replace your service.jar with the newest one for V6(from mateorod's post), and the bootanimation to the official CM9 one (Video Link)(Tnpapadakos' files).
Click to expand...
Click to collapse
Thanks for that zip! Just a heads up though, if you drop any boot animation in /data/local, you dont have to worry about it being overwritten when flashing a new nightly. The one in /data/local overrides the one in /system/media, and will not be replaced on install of a nightly.
On another note, for those that have the boot animation already, or just want to have the script and latest services.jar, I made a zip (actually based off of yours, grayfoxmg1, since I'm new to this) that will copy services.jar (EDIT: This is for the 0227 services.jar file. I will be uploading a zip with the 0302 one shortly.)(mateorod's latest Nook specific one) to /system/framework, and will put the V6 script (latest RC6.9, named "V6.sh") onto the root of your sdcard. If there any issues let me know, as I am new to making flashable zips.
Zip without boot animation (EDIT: This is for the 0227 services.jar file. I will be uploading a zip with the 0302 one shortly.) :
http://db.tt/fUIddDP4
Zip with boot animation placed in /data/local to make it (EDIT: This is for the 0227 services.jar file. I will be uploading a zip with the 0302 one shortly.) :
http://db.tt/MjJ5LEgK
(If this is the wrong place to put this, or for any reason you dont want it here, just let me know and I will remove it!)
numus said:
Am I the only one who can't find V6 U9RC6.9 and doesn't see build.prop options?
Click to expand...
Click to collapse
No, for some reason (I suppose he just uses init.rc tweaks now) there is no longer that option. Ran the script 3 times, and no build.prop options :/

[FIX][XPOSED][4.0+] Universal fix for the several "Master Key" vulnerabilities

[FIX][XPOSED][4.0+] Universal fix for the several "Master Key" vulnerabilities
You may be aware of recent news about several different security vulnerabilities that allow replacing code on a signed APK without invalidating the signature:
Master Key (Bug 8219321)
An issue related with duplicate entries on the ZIP / APK files.
It was patched by Google back in February 2013 and shared with OEMs, and some of the newer devices might have already received the fix in a recent stock update. At least both Xperia Z 4.2.2 and Galaxy S2 4.1.2 contain the fix; CM has also recently patched it, on this commit.
More info can be found on @Adam77Root's thread here: http://forum.xda-developers.com/showthread.php?t=2359943
Bug 9695860
This also originates in the ZIP file parsing routines, and was disclosed just a few days ago immediately after the previous one was made public. The correction has already been applied by Google to the code (this commit), but it's very likely that its rollout on stock ROMs will take a long time especially on non-Nexus devices.
You can read more about it here.
To know if you're vulnerable, use SRT AppScanner mentioned above.
Unless you're running CM 10.1.2, there's a fairly big chance that you have this issue, at least as of this moment.
Bug 9950697
It's yet another inconsistency in ZIP parsing that could be abused in very a similar way to the previous one.
This one is a bit special to me, since I was fortunate enough to be the first one to report it on Google's bugtracker
It was discovered around the time that the previous bug was acknowledged and Android 4.3 was a few days from being released, but despite the prompt report it was unfortunately too late to include the fix in time for the release; Therefore it wasn't disclosed till Android 4.4 sources came out and I had also decided not including a fix for in on this module, since it would be an easy way to learn about the extra attack vector.
Kudos to Jeff Forristal at Bluebox Security, who I learned was also working on that exact problem and helped me report it properly to Google, and also to Saurik who already released a Substrate-based fix and has written a very interesting article about it here.
Checking if you're vulnerable
You can use some 3rd party apps to test your system, such as:
- SRT AppScanner
- Bluebox Security Scanner
On Android 4.4 all these bugs should be fixed, and therefore this mod is not needed. But you can run one of these scanners to make sure you're not vulnerable.
While technically different, these vulnerabilities permit that legitimate APKs can be manipulated to replace the original code with arbitrary one without breaking the signature. This allows someone to take an update from a well known publisher (e.g. Google Maps), change the APK, and a device receiving it will happily apply the update as if it was indeed from that publisher. Depending on the apps being updated in this way, priviledge escalation can be achieved.
Google has already mentioned that all apps published on the Play Store are checked for this kind of manipulation, but those of us installing APKs from other sources aren't safe.
The universal fix
Since decompiling, fixing and recompiling the code for every possible ROM version is way beyond anyone's capability, the awesome Xposed framework by @rovo89 proves itself once again as an invaluable tool.
By creating hooks around the vulnerable methods and replacing the buggy implementation with a safe one, it's possible to patch the 2 issues on the fly without ever changing the original files. Applying the fix is as easy as installing and enabling an Xposed module.
Installation steps
1. Make sure the Xposed Framework is installed.
Follow the instructions on the thread. Root is required only during installation, it is no longer required afterwards. Only ICS or above is supported.
2. Install the Master Key multi-fix module.
3. Follow the Xposed notification about a new module being available, and on the list of modules activate Master Key multi-fix
4. Reboot
You should now see an image similar to the attached one when opening the app. The green text shows that the module is active and the vulnerabilities have been patched in memory.
Download
Grab it from Google Play (recommended, as you'll get updates) or use the attached APK. The files are the same.
Version history
2.0 - Fix bug 9950697; additional corrections taken from Android 4.4 (also supports GB, provided you have a working version of Xposed Framework for your ROM)
1.3 - Fixed problems with parsing some zips depending on the rom original code
1.2 - Added 2 additional zip entry integrity checks that were missing
1.1 - Support for additional devices with modified core libraries (e.g. MTK6589)
1.0 - Initial version
Sources
Available on GitHub
If you appreciated this fix, consider donating with Paypal.
Thanks!
FAQ
Fequently asked questions
[ 1 ]
Q: Bluebox Security Scanner still says my phone is unpatched after installing this... Any ideas why?
A: Make sure to click the Refresh entry on the app's menu and it should change to green once the mod is active.
[ 2 ]
Q: Bluebox Security Scanner says that the 2nd bug is not patched even after refreshing but SRT AppScanner says it's patched. Which one is right?
A: The scanner was mis-detecting the 2nd bug and it got fixed in version 1.5. Make sure you update Bluebox from the Play store.
[ 3 ]
Q: Does the module permanently patch the vulnerability or is it only when the module is active? If for example, I activate the module and reboot, then after verifying that the exploit is patched, deactivate the module. Would I still be patched? I guess what I'm asking is if I need to have this module active at all times to be patched? Permanent fix, or Just while the module is installed?
A: The fix is not permanent. It's applied only whenever the module is installed and active. If you remove it, after the next boot you're back with the original code from your ROM (which might have the bug or not).
Thank you, this would help a lot
Sent from my GT-I9500 using Tapatalk 4 Beta
Thank you but I don't see any link to the xposed patch app
Envoyé depuis mon LT28h en utilisant Tapatalk 4 Beta
Marsou77 said:
Thank you but I don't see any link to the xposed patch app
Click to expand...
Click to collapse
Have a look now
I needed to create the thread first in order to include the link on the app itself.
Thanks! I was just googling to see if someone had already done this before writing it myself!
XPosed is amazing sauce for Android.
The 4.1.2 update for the T-Mobile galaxy s3 is already patched.
Thanks for the info OP.
Maxamillion said:
The 4.1.2 update for the T-Mobile galaxy s3 is already patched.
Thanks for the info OP.
Click to expand...
Click to collapse
The second bug as well? Check java.util.zip.ZipEntry on /system/framework/core.jar and see if the readShort() values are properly converted to unsigned.
.....
Bluebox security still says my phone is unpatched after installing this... Any ideas why?
Sent from my HTC Sensation Z710e using xda app-developers app
Shredz98 said:
Bluebox security still says my phone is unpatched after installing this... Any ideas why?
Click to expand...
Click to collapse
No idea why it doesn't refresh automatically each time you execute the app, but access the Refresh option from the menu and it should change to green once the mod is active.
Tungstwenty said:
No idea why it doesn't refresh automatically each time you execute the app, but access the Refresh option from the menu and it should change to green once the mod is active.
Click to expand...
Click to collapse
Yeah you're correct mate, says patched when I rescanned so all good the patch does exactly what it says, brilliant work! Was beginning to think I would have to live with this security hole active on my device!
Sent from my HTC Sensation Z710e using xda app-developers app
Shredz98 said:
Yeah you're correct mate, says patched when I rescanned so all good the patch does exactly what it says, brilliant work! Was beginning to think I would have to live with this security hole active on my device!
Click to expand...
Click to collapse
Added to the FAQ (post #2)
Hey Everyone,
I've found an alternative for the blueboox app. It's called the SRT AppScanner and seems to work better than the BlueBox Scanner and it provides more functionality, too.
Since I'am a new user, i can't post links. Simply query SRT AppScanner in the PlayStore.
Best regards
Boradin
Thanks for great patch.
I've tested with SRT AppScanner and found I'm still vulnerable to bug 9695860.
How do I make sure bug 9695860 was fixed?
mnirun said:
Thanks for great patch.
I've tested with SRT AppScanner and found I'm still vulnerable to bug 9695860.
How do I make sure bug 9695860 was fixed?
Click to expand...
Click to collapse
When I initially installed SRT it was always giving me 2 greens even with the mod disabled, even though I checked the code for my ROM and the 2nd bug is there.
Now, after a very recent update, it always gives me a red on the second bug even with the mod active. I'll need to double check how they are doing the detection because it doesn't seem to be correct.
Bluebox Security, on the other hand, does reflect the change although it only detects the first bug. Running it on an emulator with a vulnerable ROM correctly said so, and after applying the mod and forcing a rescan it will change to no longer vulnerable.
SRT AppScanner has just received an additional update from Play and now appears to correctly detect the status of bug 9695860 depending on whether the mod is active or not and if your base ROM is vulnerable.
The sources are now available on GitHub (check 1st post).
Tungstwenty said:
SRT AppScanner has just received an additional update from Play and now appears to correctly detect the status of bug 9695860 depending on whether the mod is active or not and if your base ROM is vulnerable.
Click to expand...
Click to collapse
Confirmed, you patch is now detected by SRT AppScanner.
Thank you.
Tungstwenty said:
You may be aware of recent news about 2 different security vulnerabilities that allow replacing code on a signed APK without invalidating the signature:
Master Key (Bug 8219321)
An issue related with duplicate entries on the ZIP / APK files.
It was patched by Google back in February 2013 and shared with OEMs, and some of the newer devices might have already received the fix in a recent stock update. At least both Xperia Z 4.2.2 and Galaxy S2 4.1.2 contain the fix; CM has also recently patched it, on this commit.
An easy way to know if you're vulnerable is installing this app by Bluebox Security. Update: An ever better one is SRT AppScanner, which can detect both bugs.
More info can be found on @Adam77Root's thread here: http://forum.xda-developers.com/showthread.php?t=2359943
Bug 9695860
This also originates in the ZIP file parsing routines, and was disclosed just a few days ago immediately after the previous one was made public. The correction has already been applied by Google to the code (this commit), but it's very likely that its rollout on stock ROMs will take a long time especially on non-Nexus devices.
You can read more about it here.
To know if you're vulnerable, use SRT AppScanner mentioned above.
Unless you're running CM 10.1.2, there's a fairly big chance that you have this issue, at least as of this moment.
While technically different, both of these vulnerabilities permit that legitimate APKs can be manipulated to replace the original code with arbitrary one without breaking the signature. This allows someone to take an update from a well known publisher (e.g. Google Maps), change the APK, and a device receiving it will happily apply the update as if it was indeed from that publisher. Depending on the apps being updated in this way, priviledge escalation can be achieved.
Google has already mentioned that all apps published on the Play Store are checked for this kind of manipulation, but those of us installing APKs from other sources aren't safe.
The universal patch
Since decompiling, fixing and recompiling the code for every possible ROM version is way beyond anyone's capability, the awesome Xposed framework by @rovo89 proves itself once again as an invaluable tool.
By creating hooks around the vulnerable methods and replacing the buggy implementation with a safe one, it's possible to patch the 2 issues on the fly without ever changing the original files. Applying the fix is as easy as installing and enabling an Xposed module.
Installation steps
1. Make sure the Xposed Framework is installed.
Follow the instructions on the thread. Root is required only during installation, it is no longer required afterwards. Only ICS or above is supported.
2. Install the Master Key dual fix module.
3. Follow the Xposed notification about a new module being available, and on the list of modules activate Master Key dual fix
4. Reboot the device (a Soft reboot is sufficient)
You should now see an image similar to the attached one. The green text shows that the module is active and the 2 vulnerabilities have been patched.
Download
Grab it from Google Play or use the attached APK.
Sources
Available on GitHub
If you appreciated this fix, consider donating with Paypal.
Thanks!
Click to expand...
Click to collapse
Thank you for this patch, but can we install this mod over "REKEY" patch or remove rekey and enable this patch instead ??

SystemUpdateService Wakelock Fix

My phone had a constant wakelock and it was draining my battery.
After doing more research I found that it is because of a recent update to Google Play Services. The Cyanogenmod fix is here:
http://review.cyanogenmod.org/91021
The workaround I used was to enable the service at startup. Only the receivers should be disabled, the service should remain enabled. See the above link for details.
Here is a workaround I use:
Install Script Manager (SManager) from Play Store. https://play.google.com/store/apps/details?id=os.tools.scriptmanager.
Enable Browse as root in SManager (Advanced > Configuration).
From SManager, create a script in /data/local/ with the name 'startsysupservice'.
Edit the script and put the following line in the file:
su -c "pm enable com.google.android.gms/.update.SystemUpdateService"
Mark the following options: Su, Boot, Bg.
Change the radio button from 'Is script' to 'Is executable'. This may not be required for CarbonRom but was when I tested this on CyanogenMod. If you don't select this, the CPU may be constantly doing something so it will actually be worse than before (this selection may have something to do with what shell is used to execute this).
Hit Save. Reboot the phone.
Whenever the phone boots up, it will start the service which should stop the wakelock. It may take a few minutes before the script is run, but eventually the service will start. You can use the 'Disable Service' app to check that it worked.
NOTE: The correct way is for your ROM maintainer to update the sources with the new patch. Unfortunately, many ROMs are no longer maintained (especially for older devices) so this way is a good way to get around this issue for these ROMs. I originally created this for CarbonRom on my P769. I then switched to CyanogenMod 11 by dhiru1602 and this workaround still worked. It should work on other devices as well.
frostinide said:
My phone had a constant wakelock. After doing more research I found that it is because of a recent update to Google Play Services. The Cyanogenmod fix is here:
http://review.cyanogenmod.org/#/c/91021/
The fix I used was to enable the service at startup. Only the receivers should be disabled, the service should remain enabled. See the above link for details.
Here is a workaround I use:
Install Script Manager (SManager) from Play Store. https://play.google.com/store/apps/details?id=os.tools.scriptmanager.
Enable Browse as root in SManager (Advanced > Configuration).
From SManager, create a script in /data/local/ called 'startsysupservice' with the single line:
su -c "pm enable com.google.android.gms/.update.SystemUpdateService"
Mark the following options: Su, Boot, Bg.
Hit Save. Reboot the phone.
Whenever the phone boots up, it will start the service which should stop the wakelock. It may take a few minutes before the script is run, but eventually the service will start. You can use the 'Disable Service' app to check that it worked.
It would be nice if the Cyanogenmod fix in the link above could be merged into CarbonRom and other ROMs for future releases, but I wanted to share this workaround in the meantime. I have P769 with CarbonRom.
Click to expand...
Click to collapse
Interesting info Frost..
and the script is a good idea. By the time I have Oneplus O2 OS all patched up, it will look worse than Frankenstein and I'll never remember all of the operations.
Frost,
Would you detail the differences between "Only the receivers should be disabled, the service should remain enabled"?
Thanks.
JeffDC said:
Would you detail the differences between "Only the receivers should be disabled, the service should remain enabled"?
Click to expand...
Click to collapse
I got that information from the CyanogenMod link I posted. You can see the patch there and see exactly what lines were changed for this fix.
I suggest you read the Android development documentation if you want to know how it all works.
I also found this link, but I can't vouch for its correctness as I don't have enough knowledge of how Android works: http://stackoverflow.com/questions/14548927/android-broadcast-receiver-vs-service
This is a major problem affecting all CM based custom ROMS. The problem is Carbon is not doing anything about it. If you go on their website, there is no new nightly for Galaxy S3 D2LTE - It has been the same ROM since 2014. When you boot the phone, it disables SystemUpdateService. So the phone never sleeps. Waiting for Carbon to Fix this issue.
So here's the real question...
WHERE is this Code within the CM and CM based ROMS that disables SystemUpdateService at boot?
ocd_amp said:
The problem is Carbon is not doing anything about it.
Click to expand...
Click to collapse
If you go to their website, they say they basically stopped working on KitKat except for certain fixes, and are concentrating on Lollipop.
https://carbonrom.org/on-to-sweeter-things/
You can check on their website for more info or if you want to try and contact them. Although I would say it's not really worth it.
I would just use the workaround that I posted (or any other workaround out there). It's not the cleanest solution, but it gets the job done.
ocd_amp said:
WHERE is this Code within the CM and CM based ROMS that disables SystemUpdateService at boot?
Click to expand...
Click to collapse
Check the link I put to the CyanogenMod fix. It has the patch showing the exact line changes and the files that have changed.
update!
Please check this thread.
[MOD] [v7.0.99] Google Play Services with System Update Wake Lock Fix
http://forum.xda-developers.com/one...mod-google-play-services-update-wake-t3078082
frostinide said:
My phone had a constant wakelock and it was draining my battery. I am using CarbonRom on my P769.
After doing more research I found that it is because of a recent update to Google Play Services. The Cyanogenmod fix is here:
http://review.cyanogenmod.org/91021
The workaround I used was to enable the service at startup. Only the receivers should be disabled, the service should remain enabled. See the above link for details.
Here is a workaround I use:
Install Script Manager (SManager) from Play Store. https://play.google.com/store/apps/details?id=os.tools.scriptmanager.
Enable Browse as root in SManager (Advanced > Configuration).
From SManager, create a script in /data/local/ called 'startsysupservice' with the single line:
su -c "pm enable com.google.android.gms/.update.SystemUpdateService"
Mark the following options: Su, Boot, Bg.
Change the radio button from 'Is script' to 'Is executable'. This may not be required for CarbonRom but was when I tested this on CyanogenMod. If you don't select this, the CPU may be constantly doing something so it will actually be worse than before (this selection may have something to do with what shell is used to execute this).
Hit Save. Reboot the phone.
Whenever the phone boots up, it will start the service which should stop the wakelock. It may take a few minutes before the script is run, but eventually the service will start. You can use the 'Disable Service' app to check that it worked.
It would be nice if the Cyanogenmod fix in the link above could be merged into CarbonRom and other ROMs for future releases, but I wanted to share this workaround in the meantime.
Click to expand...
Click to collapse
Thanks a lot buddy.
From a battery drain of anywhere between 20-45% / hour, went straight to 0.3% / hour since the last 4 hours now ( was sleeping myself, but nonetheless the lower end aka 20% drain used to take place when I was sleeping.
Your fix has restored my battery life ( atleast in this short time I do feel that has happened)
Thanks again.
Hi there,
i got rid of the googleupdateservice wakelock by the above hack.
But now i have the fingerprintscannerwakelock keeping my device awake.
Any suggestions for that??
This is the only method I've found to work on my phone to automate the process upon boot. Thanks!!! I've tried about 10 different other ways, from init.d scripts to autoruns to appOps to modified play service apks to you name it.
frostinide said:
My phone had a constant wakelock and it was draining my battery. I am using CarbonRom on my P769.
After doing more research I found that it is because of a recent update to Google Play Services. The Cyanogenmod fix is here:
http://review.cyanogenmod.org/91021
The workaround I used was to enable the service at startup. Only the receivers should be disabled, the service should remain enabled. See the above link for details.
Here is a workaround I use:
Install Script Manager (SManager) from Play Store. https://play.google.com/store/apps/details?id=os.tools.scriptmanager.
Enable Browse as root in SManager (Advanced > Configuration).
From SManager, create a script in /data/local/ called 'startsysupservice' with the single line:
su -c "pm enable com.google.android.gms/.update.SystemUpdateService"
Mark the following options: Su, Boot, Bg.
Change the radio button from 'Is script' to 'Is executable'. This may not be required for CarbonRom but was when I tested this on CyanogenMod. If you don't select this, the CPU may be constantly doing something so it will actually be worse than before (this selection may have something to do with what shell is used to execute this).
Hit Save. Reboot the phone.
Whenever the phone boots up, it will start the service which should stop the wakelock. It may take a few minutes before the script is run, but eventually the service will start. You can use the 'Disable Service' app to check that it worked.
It would be nice if the Cyanogenmod fix in the link above could be merged into CarbonRom and other ROMs for future releases, but I wanted to share this workaround in the meantime.
Click to expand...
Click to collapse
I don't get what you mean by "with the single line:
su -c "pm enable com.google.android.gms/.update.SystemUpdateService"
How do I do that part? All I get is an option to set the name of the script
noob to android said:
But now i have the fingerprintscannerwakelock keeping my device awake.
Any suggestions for that??
Click to expand...
Click to collapse
Sorry, no idea on that one. You should probably create a new post for that.
wasiq224 said:
I don't get what you mean by "with the single line:
su -c "pm enable com.google.android.gms/.update.SystemUpdateService"
How do I do that part? All I get is an option to set the name of the script
Click to expand...
Click to collapse
Put in 'startsysupservice' as the name of the script. Then edit the script (there is an edit button at the top) and put the following line in there:
su -c "pm enable com.google.android.gms/.update.SystemUpdateService"
After it's saved, edit it again to make sure the contents did actually save. If it doesn't work, you may need to save on your sdcard first and then copy it over manually with a root explorer.
It works but you have to say that this file must have changed permissions.
Thanks a lot.
Dru79 said:
It works but you have to say that this file must have changed permissions.
Thanks a lot.
Click to expand...
Click to collapse
Which are the new permissions for the file?

Samsung S10 - How to take your privacy back with NanoDroid (MicroG) and AFWall

Before starting (if you have SM-G973F NEE, you can use my prepatched/generated files and save 2 million years in preparation, see the guide at the bottom of this page):
1. Root and flash Magisk: https://topjohnwu.github.io/Magisk/samsung
Note: remember to use the button combination when booting/rebooting, and also remember to use internet when compleeting the android wizard when it runs.
2. Flash TWRP: https://forum.xda-developers.com/ga...ecovery-twrp-3-3-0-galaxy-s10-exynos-t3924856
Note: remember to use the button combination when booting/rebooting.
3. Create your SmaliPatch: https://forum.xda-developers.com/apps/magisk/module-smali-patcher-0-7-t3680053
Note: ALSO check "Magisk Reboot (Galaxy S10)". Keep the default checks.
4. Install generated SmaliPatch in Magisk and then reboot.
The actual guide:
Note - again: remember to use the root button combination when booting. Yes, this might be solved by our SmaliPatch, but i would´t trust it when going out of TWRP and so on, so to be on the safe side, always use this combination.
1. Download and install F-droid: https://f-droid.org/FDroid.apk
2. In F-droid, install "Amaze (Manage local files)", and "Termux".
3. In Amaze: Go to settings and check "Root Explorer" under Advanced. Grant root for Amaze in Magisk.
4. Download and install "Aurora Store": https://androidfilehost.com/?fid=1395089523397955190
5. In Aurora Store, install: "Titanium Backup"
6. Download NanoDroid: https://downloads.nanolx.org/NanoDroid/Stable/
Or download the one I flashed here (and skip step 7, 8 and 9): https://mega.nz/#!rrIXSSLZ!4dV5Qx1W0hJXFbnY8heYcAUmOEWmkgdzcnfb2DhtRgo
7. Open the downloaded file with 7zip (right-click, 7zip, Open archive), and right-click on ".nanodroid-setup" and click on Edit
8. Change "nanodroid_gmscore=0" to "nanodroid_gmscore=1". This is to install MicroGs original GMSCore, and not NanoDroids (which is good, but did not work 100% this time). Documentation on alter installation can be found here: https://github.com/Nanolx/NanoDroid/blob/master/doc/AlterInstallation.md
9. Save and close ".nanodroid-setup", and 7-zip should ask you if you want to update the changes in the archive. Click yes. If this does not work for some reson, just drag ".nanodroid-setup" to the desktop, modify it, save, and drag it back.
10. Copy your modified NanoDroid zip into your phone (Download folder).
11. In Amaze: copy your NanoDroid zip in the Download folder to "/data/". This is to be able to access this file from TWRP later.
12: Debloat: run debloat.bat. This script keeps the launcher and a few other things. It keeps the apps that i think is the most essential, but removes Samsung Health for example. You can modify if you know what you want and how to do it.
Download here: https://mega.nz/#!62YHFSaS!di_HY7ceHMgfKyRfpTOnLgFoviWub0MCojrLyH4Jnho
13. In Titanium: uninstall "Play Services" and GMS, and GMS policy-something (don´t remember the package name, but search for gms). Titanium might seem to "hang" on uninstalling some of these apps, if so, just reboot and continue. This is normal.
SINCE I FORGOT THE PACKAGE NAMES, CAN SOMEONE PLEASE SEND ME A SCREENSHOT OF THE ONES THAT APPEARS WHEN SEARCHING ON "gms"? I will update this guide when i know what the exact names are.
14. In Amaze: click Root(/) in the menu, go to "/system/priv-app/", remove these dirs: GMSCore, GoogleServicesFramework, Phonesky
15. Reboot into TWRP, mount "/system" and "/data". Flash your NanoDroid file located in "/data/". Do not wipe cache. Reboot to get out of TWRP.
16. Launch "MicroG Settings". Click on permissions warning, and let Android get all permissions it asks for. Then click on "Google device registration" and turn ON (check). Do the same for "Google Cloud Messaging".
17. Still in "MicroG Settings" app: Click on "UnifiedNlp Settings", then on "Configure location backends", then check the checkbox (allow location permission if prompted). Do the same for "Configure address lookup backends".
18. Open the terminal that you installed in step 5, and run this:
Code:
su
Grant root access if prompted, otherwise, to go magisk and grant root for "shell".
19. Run these commands:
Code:
pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION
pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION
20. In Aurora Store: install "push notification checking-fix" and run. Run the new installed app, then click "Confirmation".
21. Go to "MicroG Settings" again, click on "Google Cloud Messaging", check if "Current State" is NOT disconnected (something "connected" is good). Not connected? Reboot and do step 20 again.
22. Install Afwall and lock your sh*t down.
In AFwall, I also go to "Preferences", then "Experimental", click on "Startup directory path for script", then click on "/system/etc/init.d/", then click on "Fix startup data leak".
AFWall documentation on what to block/allow: https://github.com/ukanth/afwall/wiki/System-Applications-to-block-or-allow
Congrats, you are now in privacy heaven!
For SM-G973F NEE (nordic):
Prepatched Magisk, TWRP and SmaliPatch for and other files can be downloaded here: https://mega.nz/#F!LjQ0HYqR!2X72CW1kp3zh2kBxWDwG6A
These are the files that i used.
The prepatched Magisk image is based on "SM-G973F_1_20190417080614_xq2zehce6z_fac", downloaded with SamFirm.
REMEMBER THIS AFTER FLASHING PREPATCHED MAGISK:
(Powering up normally) → (System with no Magisk)
(Power + Bixby + Volume Up) → (Bootloader warning) → (Release all buttons) → (System with Magisk)
(Power + Bixby + Volume Up) → (Bootloader warning) → (Keep holding volume up) → (Actual recovery)
Quick guide to root, install Magisk, TWRP and SmaliPatch:
1. Unlock bootloader: https://www.androidexplained.com/galaxy-s10-unlock-bootloader/
2. Flash prepatched Magisk: https://mega.nz/#!2uRHkKCR!0j3Bx6iKbNL7yxqWHFBoAD7SpSGsvrrLdfIdJb73Hbk
BE READY FOR AUTO REBOOT (if you did not uncheck it in Odin)
3. Go directly to recovery and do a factory reset
4. Reboot, and be ready for one more auto reboot after the samsung logo!
5. Finish the android wizard WITH internet
6. Reboot again
7. Open Magisk (will be added after a while automatically), it will ask to finish the Magisk installation, click yes, be ready for automatic reboot
8. In Magisk install (as module): https://mega.nz/#!KzZRmQLS!ClmDmFAgaKd10o8hfjgmvI3PEdf3GCsV0lZKLtYPhFo
9. Reboot
10. Flash TWRP: https://mega.nz/#!72BFiQIK!yCVddqBDgPrBPlMNr6Y9x1OBNWpD3JBxmyf57D3eOAY
11. Follow the actual guide above
Please me feedback on what to make better. I want everybody to be able to get their privacy back!
Credits to:
topjohnwu for Magisk
Geiti94 and ianmacd for TWRP
fOmey for Smali Patcher
Nice to see development for the S10 - maybe you should move the post to the ROMS, Kernel, Recoveries Section.
As for improvements:
First that pops to mind, maybe you should credit the people who made Root, TWRP & Smali.
Second, which Pie version (ASD5)??
Third, maybe some pics.
Norup58 said:
Nice to see development for the S10 - maybe you should move the post to the ROMS, Kernel, Recoveries Section.
As for improvements:
First that pops to mind, maybe you should credit the people who made Root, TWRP & Smali.
Second, which Pie version (ASD5)??
Third, maybe some pics.
Click to expand...
Click to collapse
Thanks for your feedback. I have added credits and firmware information.
I wanted to post in dev, but I was not allowed due to too few posts.
Great work! I am about to take my privacy back as well but I have some questions:
- Will the same method work by flashing microg packages from official project, instead of flashing the nanodroid package you mention?
- Is it possible to encrypt /data folder and lock bootloader, so if telephone gets stolen there is no way they access your data?
- How do you handle OTA updates? Do you need to run the above guide every new OTA update?
Thanks!
dklearhos said:
Great work! I am about to take my privacy back as well but I have some questions:
- Will the same method work by flashing microg packages from official project, instead of flashing the nanodroid package you mention?
- Is it possible to encrypt /data folder and lock bootloader, so if telephone gets stolen there is no way they access your data?
- How do you handle OTA updates? Do you need to run the above guide every new OTA update?
Thanks!
Click to expand...
Click to collapse
Sorry for a late response.
Good on you! Since you asked almost a month ago, I guess you have already proceeded? In that case, what did you do?
Well, this was an early way to take your privacy back for s10, but time has changed and new ways seems to be avaliable now.
For one, there is a custom rom out there that use Aroma to debloat, but I don't know if it removes g stuff (I asked but the answer was vague, to say at least).
The other thing is that the encryption stuff has been improved too, and other things that makes the root easier to live with. Like updates that you mentioned (maybe not ota, but not custom rom updates with latest security patches).
I will have to take a look at this soon, because the way described in the main thread is causing some problems with WiFi and Bluetooth. Not unusable but my watch and headphones has to be re-paired every time I reboot the phone. And no updates. Except for that, I have been very pleased with my setup the last months.
I will make a new thread or update this when I know the steps to take our privacy back with the new roms and what not. Wish you all luck until then!
petriusus said:
Before starting (if you have SM-G973F NEE, you can use my prepatched/generated files and save 2 million years in preparation, see the guide at the bottom of this page):
1. Root and flash Magisk: https://topjohnwu.github.io/Magisk/samsung
Note: remember to use the button combination when booting/rebooting, and also remember to use internet when compleeting the android wizard when it runs.
2. Flash TWRP: https://forum.xda-developers.com/ga...ecovery-twrp-3-3-0-galaxy-s10-exynos-t3924856
Note: remember to use the button combination when booting/rebooting.
3. Create your SmaliPatch: https://forum.xda-developers.com/apps/magisk/module-smali-patcher-0-7-t3680053
Note: ALSO check "Magisk Reboot (Galaxy S10)". Keep the default checks.
4. Install generated SmaliPatch in Magisk and then reboot.
The actual guide:
Note - again: remember to use the root button combination when booting. Yes, this might be solved by our SmaliPatch, but i would´t trust it when going out of TWRP and so on, so to be on the safe side, always use this combination.
1. Download and install F-droid: https://f-droid.org/FDroid.apk
2. In F-droid, install "Amaze (Manage local files)", and "Termux".
3. In Amaze: Go to settings and check "Root Explorer" under Advanced. Grant root for Amaze in Magisk.
4. Download and install "Aurora Store": https://androidfilehost.com/?fid=1395089523397955190
5. In Aurora Store, install: "Titanium Backup"
6. Download NanoDroid: https://downloads.nanolx.org/NanoDroid/Stable/
Or download the one I flashed here (and skip step 7, 8 and 9): https://mega.nz/#!rrIXSSLZ!4dV5Qx1W0hJXFbnY8heYcAUmOEWmkgdzcnfb2DhtRgo
7. Open the downloaded file with 7zip (right-click, 7zip, Open archive), and right-click on ".nanodroid-setup" and click on Edit
8. Change "nanodroid_gmscore=0" to "nanodroid_gmscore=1". This is to install MicroGs original GMSCore, and not NanoDroids (which is good, but did not work 100% this time). Documentation on alter installation can be found here: https://github.com/Nanolx/NanoDroid/blob/master/doc/AlterInstallation.md
9. Save and close ".nanodroid-setup", and 7-zip should ask you if you want to update the changes in the archive. Click yes. If this does not work for some reson, just drag ".nanodroid-setup" to the desktop, modify it, save, and drag it back.
10. Copy your modified NanoDroid zip into your phone (Download folder).
11. In Amaze: copy your NanoDroid zip in the Download folder to "/data/". This is to be able to access this file from TWRP later.
12: Debloat: run debloat.bat. This script keeps the launcher and a few other things. It keeps the apps that i think is the most essential, but removes Samsung Health for example. You can modify if you know what you want and how to do it.
Download here: https://mega.nz/#!62YHFSaS!di_HY7ceHMgfKyRfpTOnLgFoviWub0MCojrLyH4Jnho
13. In Titanium: uninstall "Play Services" and GMS, and GMS policy-something (don´t remember the package name, but search for gms). Titanium might seem to "hang" on uninstalling some of these apps, if so, just reboot and continue. This is normal.
SINCE I FORGOT THE PACKAGE NAMES, CAN SOMEONE PLEASE SEND ME A SCREENSHOT OF THE ONES THAT APPEARS WHEN SEARCHING ON "gms"? I will update this guide when i know what the exact names are.
14. In Amaze: click Root(/) in the menu, go to "/system/priv-app/", remove these dirs: GMSCore, GoogleServicesFramework, Phonesky
15. Reboot into TWRP, mount "/system" and "/data". Flash your NanoDroid file located in "/data/". Do not wipe cache. Reboot to get out of TWRP.
16. Launch "MicroG Settings". Click on permissions warning, and let Android get all permissions it asks for. Then click on "Google device registration" and turn ON (check). Do the same for "Google Cloud Messaging".
17. Still in "MicroG Settings" app: Click on "UnifiedNlp Settings", then on "Configure location backends", then check the checkbox (allow location permission if prompted). Do the same for "Configure address lookup backends".
18. Open the terminal that you installed in step 5, and run this:
Grant root access if prompted, otherwise, to go magisk and grant root for "shell".
19. Run these commands:
20. In Aurora Store: install "push notification checking-fix" and run. Run the new installed app, then click "Confirmation".
21. Go to "MicroG Settings" again, click on "Google Cloud Messaging", check if "Current State" is NOT disconnected (something "connected" is good). Not connected? Reboot and do step 20 again.
22. Install Afwall and lock your sh*t down.
In AFwall, I also go to "Preferences", then "Experimental", click on "Startup directory path for script", then click on "/system/etc/init.d/", then click on "Fix startup data leak".
AFWall documentation on what to block/allow: https://github.com/ukanth/afwall/wiki/System-Applications-to-block-or-allow
Congrats, you are now in privacy heaven!
For SM-G973F NEE (nordic):
Prepatched Magisk, TWRP and SmaliPatch for and other files can be downloaded here: https://mega.nz/#F!LjQ0HYqR!2X72CW1kp3zh2kBxWDwG6A
These are the files that i used.
The prepatched Magisk image is based on "SM-G973F_1_20190417080614_xq2zehce6z_fac", downloaded with SamFirm.
REMEMBER THIS AFTER FLASHING PREPATCHED MAGISK:
(Powering up normally) → (System with no Magisk)
(Power + Bixby + Volume Up) → (Bootloader warning) → (Release all buttons) → (System with Magisk)
(Power + Bixby + Volume Up) → (Bootloader warning) → (Keep holding volume up) → (Actual recovery)
Quick guide to root, install Magisk, TWRP and SmaliPatch:
1. Unlock bootloader: https://www.androidexplained.com/galaxy-s10-unlock-bootloader/
2. Flash prepatched Magisk: https://mega.nz/#!2uRHkKCR!0j3Bx6iKbNL7yxqWHFBoAD7SpSGsvrrLdfIdJb73Hbk
BE READY FOR AUTO REBOOT (if you did not uncheck it in Odin)
3. Go directly to recovery and do a factory reset
4. Reboot, and be ready for one more auto reboot after the samsung logo!
5. Finish the android wizard WITH internet
6. Reboot again
7. Open Magisk (will be added after a while automatically), it will ask to finish the Magisk installation, click yes, be ready for automatic reboot
8. In Magisk install (as module): https://mega.nz/#!KzZRmQLS!ClmDmFAgaKd10o8hfjgmvI3PEdf3GCsV0lZKLtYPhFo
9. Reboot
10. Flash TWRP: https://mega.nz/#!72BFiQIK!yCVddqBDgPrBPlMNr6Y9x1OBNWpD3JBxmyf57D3eOAY
11. Follow the actual guide above
Please me feedback on what to make better. I want everybody to be able to get their privacy back!
Credits to:
topjohnwu for Magisk
Geiti94 and ianmacd for TWRP
fOmey for Smali Patcher
Click to expand...
Click to collapse
Make a rom with all these mods via Superr's Kitchen and post it at Roms.
ExtremeGrief said:
Make a rom with all these mods via Superr's Kitchen and post it at Roms.
Click to expand...
Click to collapse
Yes, that would be awesome.
Do you know if my rom would only be work with phones with the same firmware that i am using?
Sorry, but what benefits actually does this provide?
FlatOutRU said:
Sorry, but what benefits actually does this provide?
Click to expand...
Click to collapse
Taking back privacy or making a rom?
@petriusus
Thanks for the guide. Privacy is becoming more and more of a luxury these days.
petriusus said:
Taking back privacy or making a rom?
Click to expand...
Click to collapse
----------------------------------------------------------------------------------------------
Does this method allow one to still use the Stock Samsung OS, or, does this involve using a Custom ROM? Thanks for your time.
CommanderSozo said:
----------------------------------------------------------------------------------------------
Does this method allow one to still use the Stock Samsung OS, or, does this involve using a Custom ROM? Thanks for your time.
Click to expand...
Click to collapse
It's all on stock.
Keule-T said:
It's all on stock.
Click to expand...
Click to collapse
---------------------------------------------------------------------
Ok. I'm new to all of this - could I follow the same steps for a Samsung Galaxy Note 9 SM-N960F/DS model to achieve the same Privacy while being able to use Samsung One UI combined with full S-Pen functionality? If this is possible and just so I am on the same page, I could also completely remove GAPPS/Google Play Services and replace with MicroG? If the method to achieve this is different on a Note 9, do you know if there are any Instructions? Thanks again.
CommanderSozo said:
---------------------------------------------------------------------
Ok. I'm new to all of this - could I follow the same steps for a Samsung Galaxy Note 9 SM-N960F/DS model to achieve the same Privacy while being able to use Samsung One UI combined with full S-Pen functionality? If this is possible and just so I am on the same page, I could also completely remove GAPPS/Google Play Services and replace with MicroG? If the method to achieve this is different on a Note 9, do you know if there are any Instructions? Thanks again.
Click to expand...
Click to collapse
It should all be the same. For specifics have a look in the N9 forum (I don't own one, so for specific steps I can't help).
@petriusus
Long time since last post - so I have not found that and start a simular thread. Sorry for that.
Debloated stock -without Google apps- for best performance/privacy
One word ahead: I am a huge fan of Custom Rom (LOS). Nevertheless some feature will be missed (volte) and performance might be not perfect (camera, dolby) due to proprietary firmware. On the other hand I like to keep away from data collecting...
forum.xda-developers.com
I am wondering whether you have done updates from the initial Android 9? Bringing Magisk/TWRP to the device is rather complex, so how all that behaves in terms of security updates. How to spoof a A11?

[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