Related
GravityBox - all-in-one tweak box - Xposed module for devices running AOSP 4.4
Version 3.6.2 [KitKat]
Version for JellyBean is available in this thread: http://forum.xda-developers.com/showthread.php?t=2316070
READ THIS POST CAREFULLY BEFORE PROCEEDING ANY FURTHER
Hey!
After countless hours of coding and searching for proper entry points to inject code to incorporate fixes and mods, here it is:
GravityBox - a complex Xposed module targeted for devices running Android 4.4, which turns vanilla ROM into
feature-packed "non-flashing" custom ROM.
Originally, this module was designed for MTK6589 devices which lack custom ROMs built from source due to MediaTek closed-source policy.
Later on, it was adjusted to support other (non-MTK) devices running vanilla or close-to-vanilla AOSP ROMs.
Introduction
The app utilizes amazing Xposed framework coded by recognized
developer rovo89 which, briefly, provides interface for injecting code into any app, including system services allowing modifications of applications and system services at run-time. One of the biggest advantages of GravityBox is that it is not bound to any specific device. Actually, it should run on any device having vanilla Android 4.4 (ROM close enough to AOSP).
This project wouldn't be possible without rovo's Xposed framework, so huge kudos to him.
Feature highlight
--- CyanogenMod Pie controls
--- Expanded Desktop
--- Statusbar QuickSettings tile management with tile reordering
--- Lockscreen targets
--- Statusbar icon coloring
--- Statusbar Brightness Control
--- Additional QuickSettings tiles:
------- Sync on/off, WiFi AP on/off, GravityBox shortcut, Torch, Network mode (2G/3G/2G+3G switch), Sleep, QuickRecord,
QuickApp, GPS on/off, Ringer mode, Volume tile, Camera tile, ...
--- Quick pulldown - switches to QuickSettings when status bar is pulled down near edges
--- Auto-switch to QuickSettings when there are no notifications
--- Center clock in statusbar
--- Battery indicator style
--- Navigation bar tweaks including cursor control keys
--- Navigation bar ring targets
--- Low battery warning policy
--- Disable LED flashing when battery low
--- Disable LED while charging
--- Advanced power-off menu (reboot, recovery)
--- Volume key cursor control
--- Skip tracks by volume key long-press while screen off (thanks to rovo89)
--- More volume levels for music stream
--- Option to control safe headset media volume
--- Button for clearing all recent tasks at once
--- CRT screen off animation
--- Minimal brightness setting
--- Autobrihtness levels adjustment
--- Lockscreen tweaks - show widgets maximized, lockscreen background style (color fill, custom image)
--- Lockscreen rotation
--- Hardware key actions - menu long-press/double-tap, back long-press, home long-press
--- Dithered Holo background
--- Option to use solid black Holo background
--- Expandable volume panel
--- Option to unlink ringtone and notifications volumes
--- Notification drawer style (background color, image for portait/landscape, transparency)
--- Button backlight modes (default, disabled, always on while screen is on)
--- Dialer (Phone) tweaks
--- Launcher tweaks
--- Screen recording
--- GravityBox Actions - interface for 3rd party apps
--- Smart Radio
--- Notification control (per-app notification LED/sounds/vibrations)
--- Ascending ring tone
... more to come
Compatibility
Some words about GB's main concept. One thing I didn't like about xposed modules was that it was always necessary to reboot a device after making a change to some option. Since GB's main concept was to turn MTK devices running stock ROM into something that's close enough to a feature-packed custom ROM, I had to take a decision - for it to be as much comfortable as possible and to really behave like a custom ROM, I had to design it to support most of the preference changes to be done on the fly without needing to reboot a device. While this sounds nice, it also brings couple of "drawbacks". For changes to be made on the fly, it is necessary to make some preparations when device starts. This means, even if you don't use the particular feature, the necessary preparation/modification is already there and is waiting for the user to come and change that option.
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 as if you installed ROM built from source for Nexus to some Xperia device - it won't work.
Next thing, GB is a complex module and is not suitable for 1 purpose scenario. This means, if you are running custom ROM built from source (CM, PAC, ...), 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.
And finally, the last. 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 4.4 (AOSP)
- supports "Google devices" like Nexus, HTC One Google play edition, and others running vanilla Android 4.4
- supports Motorola Moto G Dual SIM running stock KitKat
- supports ThL 5000 running stock KitKat and potentially other MediaTek devices running pure MediaTek ROMs
- Samsung Touchwiz, HTC Sense, MIUI, LeWa, 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 LIKE CM,AOSPA,ROOTBOX,AOKP,SLIM, OMNI AND THEIR OTHER CLONES... IT MAKES NO SENSE AND CAN CAUSE CONFLICTS AND UNEXPECTED BEHAVIOUR
- 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
trjlive said:
As is detailed in the OP, GravityBox is designed to be used with stock, vanilla AOSP ROMs, not OEM and custom ROMs. In other words, Google Play Edition and Nexus devices. All OEM ROMs (TouchWiz, Sense, Xperia, Moto, etc.), and custom ROMs (CyanogenMod, ParanoidAndroid, etc.) differ significantly in their code base from pure AOSP. And as most of these ROMs are closed source, and the developer does not have access to all the devices, it means that GravityBox is not designed for, or tested on, these devices and ROMs.
Even though the Moto devices look like stock Android, they are as much custom under-the-hood as TouchWiz or Sense. It's just that Motorola decided to implement a skin that resembles stock Android, rather than a custom skin like Samsung has done. But the changes to the core code mean that many of GravityBox's features will not work, and actually do cause some well-known bugs. The same goes for ParanoidAndroid, there are just too many changes to the core code for GB to be reliable.
If you choose to use GravityBox on a ROM it was never intended to be used with, then you do so at your own risk, and without any support. You should always have a good nandroid backup and be familiar with ADB and Fastboot. At any time, a ROM update or GravityBox update may cause any/all GravityBox features to break, and worst case, send your device into a bootloop. This is just an unfortunate reality of using a mod on a device it wasn't intended to be used on. Any user who wishes to improve or fix bugs on their unsupported ROM is more than welcome to download the source code for GravityBox (links to Git in the OP) and work on debugging and fixing the bugs on their own.
Click to expand...
Click to collapse
Prerequisites
To use this module, the following conditions must be met
- You have a device running Android 4.4 that's based on AOSP (vanilla or close-to-vanilla Android)
- ROM must be rooted (XposedInstaller requires root to be able to install framework into system)
- You have working custom recovery allowing you to make a backup before installing Xposed framework
GravityBox KitKat version has been developed and tested on Nexus 5
Installation
1) Backup your current ROM in custom recovery. I am serious. Don't skip this step.
2) Get the Xposed installer from Download section from Xposed official thread (the latest version is typically available at this link: http://dl.xposed.info/latest.apk)
3) Install and run Xposed installer and follow the instructions to activate Xposed framework
4) Reboot. If device doesn't boot that means that the Xposed framework is not compatible with ROM you are currently
running. You don't need to continue with the next steps. You will have to restore your ROM from backup.
5) Download, GravityBox APK from the second post, rename it to GravityBox.apk and install it.
Alternatively, you can download the latest GravityBox directly from Xposed Installer (search for GravityBox [KK] module).
6) Make sure GravityBox app is installed into internal memory. If it was installed into phone storage or external storage,
move it into the internal memory first (applies only to devices having additional or external storage)
7) Run Xposed installer, go to Modules menu and activate GravityBox by checking the checkbox
8) Reboot
9) Launch GravityBox from app drawer or from Xposed installer and set options as desired
Videos
- Xposed framework install plus gravity box module overview (thanks to Rootjunky.com & Marshall Williams)
- Gravity Box - What is it and How to install it (thanks to @D3VI0US)
Documentation
Thanks to @cadarn07, there's a comprehensive and searchable User Guide listing
all of the GravityBox features. It's an EverNote document located at https://www.evernote.com/pub/cadarn07/gravitybox
Reporting bugs
If you experience problems with certain feature, provide the full-detailed info that can help me
to reproduce the bug and attach debug.log file you'll find in:
/data/data/de.robv.android.xposed.installer/log
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.
Click here tor ead additional, more detailed info on Reporting bugs provided by @trjlive
Multilanguage support
Volunteers are welcome to translate GravityBox to other languages.
Simply download this file: https://github.com/GravityBox/GravityBox/raw/kitkat/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/kitkat
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/kitkat/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 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's one premium feature: Backup/restore of GB settings.
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.
This can also happen when you previously exposed your ID in public forum and other users took
advantage of it. If this is the case, contact me via PM so I can issue new, special ID.
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
- @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
- @Tungstwenty for Fake ID vulnerability patch
- THL W8 owners for providing support and feedback
- CyanogenMod project
- ParanoidAndroid project
- SlimBean, RootBox, AOKP, OmniROM projects
- Sergey Margaritov for ColorPickerPreference
- 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, ...)
- 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/kitkat/CHANGELOG.txt
XDA:DevDB Information
GravityBox [KK] Xposed Framework Module, Xposed for the Android General
Contributors
C3C076
Source Code: https://github.com/GravityBox/GravityBox/tree/kitkat
Xposed Package Name: com.ceco.kitkat.gravitybox
Version Information
Status: Stable
Current Stable Version: 3.6.2
Stable Release Date: 2017-04-23
Created 2013-12-03
Last Updated 2017-04-23
Changelogs
Changelog 3.6.2 - 23/04/2017
- Download Progress Bar: implemented extensions from SBDP module
--- added support for multiple concurrent progress bar notifications
--- keeps track of all available progress bar notifications and switches between them
--- added support for clearable notifications containing progress bar
--- added logic for auto-hiding progress of idle notifications
--- added option for sound notification
--- added option for playing sound only when screen is off
- QuietHours: implemented Wear mode
--- available only when Android Wear app is installed
--- mutes notification sounds and device-wide vibrations while preserving vibrations on a paired watch
--- can be toggled from QuietHours tile or via dedicated GravityBox Action
- Made screenshot faster by introducing dynamic context-aware delay
- Adjusted for compatibility with the latest GravityBox Unlocker v1.4.3
--- improved reliability of license validation
--- !!! won't work with older versions of the Unlocker !!!
- Updated Chinese (Simplified) translations (thanks to liveasx)
- Updated Hungarian translations (thanks to benjoe1)
Full Changelog: https://github.com/GravityBox/GravityBox/blob/kitkat/CHANGELOG.txt
Alternative downloads: directly via Xposed Installer or at: http://repo.xposed.info/module/com.ceco.kitkat.gravitybox
Reporting bugs by @trjlive
Here's the comprehensive info on reporting bugs prepared by @trjlive (many thanks!).
Please, read it carefully.
trjlive said:
I've noticed an increase in bug reports being filed over the last few days. While a few of these bug reports have been quite helpful, the vast majority of them lack significant and necessary information, which makes them less useful and causes additional confusion about what the bug really is. So I thought I would write a guide on how to provide a proper bug report for GravityBox, to help the new users to this thread, as well as provide a reference for the experienced users.
The aim of a bug report is to describe what went wrong in enough detail that the developer can reproduce it on his device. Describe everything in detail, be direct and clear. State what you saw, and also state what you expected to see. List all the steps to reproduce the problem. After you type out the steps, follow them yourself to ensure you haven’t left anything out. Don’t make any assumptions that the developer will know what you mean, if you haven’t written it out, then it didn’t happen. If the developer can’t reproduce the problem, or at least identify what is causing it, then you’re probably not going to get a fix.
Be ready to provide extra information if the developer needs it. If he didn’t need it, he wouldn’t be asking for it. He isn’t being deliberately difficult. Providing version numbers of your device, ROM, Xposed, and GravityBox are the minimum. Don’t just say “the latest version”, actually provide the number. Sometimes an update is released since the last time you checked, so you may not actually be on the latest version. Providing the actual version numbers is the only way the developer can be sure of your device’s environment.
Many users think that by providing any type of bug report, even a very basic one, such as: "It doesn't work" is better than doing nothing. Give the developer some credit for basic intelligence: if GravityBox really didn’t work at all, he would probably have noticed. Since he hasn’t noticed, it must be working for him. Therefore, either you are doing something differently from him, or your device is different from his. He needs information; providing this information is the purpose of a bug report. More information is always better than less. Be precise, developers like precision.
If a bug has already been reported, there is little reason to report it again, unless the developer specifically asks for more people to report it. When you post a "+1" message after someone else's bug report, all this does is add confusion to the thread and contributes nothing to the goal of fixing the bug. If you have no new information to provide, then don't post a bug report. If you can provide additional information that you think might help, then do post and link to the original bug report, and include your additional details, including all relevant details about your device if it’s different from what has already been reported.
Due to financial and technological constraints, developers can’t possibly own every device and ROM combination, which means there are a lot of users who have devices and ROMs that the developer has not used. This is important information. Every bug report should always include the make and model of the device, the name and version number of the ROM. An example such as, “Nexus 5 stock Android 4.4.4 build KTU84P.” Provide the device details upfront, the developer should never have ask for them, this is a basic detail that is always required. A bug may be specific to a particular device, or it may occur on different devices, but these details can make all the difference, and providing will usually result in you getting a fix sooner.
A bug report should always contain a log of the error. There are a number of things going on in the background on your device that you don’t see but are relevant to the operation of GravityBox. A minor UI glitch might be nearly impossible to track down without a log, but by being able to read line by line in a log and seeing what happened, makes it a lot easier to find and fix the bug. Without a log, many bug fixes are like trying to find a needle in a corn field. Provide a verbose log, of only the time period where you reproduce the bug. These logs will likely contain hundreds if not thousands of lines, so please limit it as much as possible to the shortest time needed to reproduce the bug. Attach the log file to your bug report as a file attachment (.txt or .zip file), or paste it on a site like pastebin.com, and then include a link to it in your bug report. But please don't just copy and paste the entire logcat into your post in this thread, it causes posts to be unnecessarily long and difficult to read.
In summary, every single bug report should contain, at the minimum, the following information:
What happened: Describe the bug, what you saw, any error messages, force closes, UI glitches, etc.
What was expected: Describe what you expected to see.
Steps to reproduce the bug: Be thorough and detailed, don’t make any assumptions in the steps. List everything you do, from tapping an icon, changing a setting, turning down the volume, etc. This is the part where you can’t give too much information, more is always better.
Device environment: List your device’s make, model, ROM name and version, OS build if available, and the carrier name is sometimes helpful (if there are multiple different configurations of the same device).
Log file: Provide a logcat file of the steps where you reproduce the bug. Set the log type to verbose, and limit the duration to as short of a time as needed to capture the bug.
If you can’t provide all of this information, then please explain why. If you’re trying to get a logcat, but it errors out before running, explain that. It’s better to explain what is preventing you from providing a crucial piece of information, than to just omit it. A bug report that contains all of this information, or as much of it as possible, will go a long way to helping the developer recreate the bug on his end, determine what is causing it, and provide a fix for it, all in a timely fashion.
And always remember to be gracious and appreciative of the developer for donating his time and effort to helping you. Developers on XDA do not get paid for their work, they do it all because they want to, on their own time and at their own expense. They owe nothing to anyone on this site. Even if you have donated to their project, they still owe you nothing more than anyone else. You donated because you wanted to contribute to the development of the project, not to buy any extra level of support.
Let’s help the developers help us, the users, by providing the necessary information they need, in the bug reports we post.
Click to expand...
Click to collapse
Thanks! (First! ) but I get a parsing error for the package...
Gesendet von meinem Nexus 4 mit Tapatalk
Maxr1998 said:
Thanks! (First! ) but I get a parsing error for the package...
Gesendet von meinem Nexus 4 mit Tapatalk
Click to expand...
Click to collapse
You can't install this on Android lower than 4.4
Thanks. Installed fine. Looking forward to trying it out
Sent from my Nexus 4 using Tapatalk
C3C076 said:
You can't install this on Android lower than 4.4
Click to expand...
Click to collapse
But I have a Nexus 4 with KRT16S...
EDIT: Worked fine now...reupload solved the issue...
Gesendet von meinem Nexus 4 mit Tapatalk
So, do you have any ideas how to get the MotoX files to decompile? Which one did you have trouble with? I can't get the framework-res.apk to install.
Great Work, AWESOME !
All i need now is KK for my phone
Thank you for great work. It's working!
Is it possible to add battery bar - line on top? If possible with animation charge. Thank you.
Sent from my GT-I9100G using Tapatalk
Great work installed on my S4.
GravityBox is working well on my n4, thanks for your good work
Gesendet von meinem Nexus 4 mit Tapatalk 2
Maxr1998 said:
But I have a Nexus 4 with KRT16S...
EDIT: Worked fine now...reupload solved the issue...
Gesendet von meinem Nexus 4 mit Tapatalk
Click to expand...
Click to collapse
No problem. I thought you have 4.3 according to your signature info.
C3C076 said:
No problem. I thought you have 4.3 according to your signature info.
Click to expand...
Click to collapse
Umm...I haven't updated it by now...
But I have to say, GravityBox with xThemes makes my phone look wonderful
Gesendet von meinem Nexus 4 mit Tapatalk
Working just fine on my Dev Moto X.
Thanks for your efforts.
To alter auto brightness what are values to start with? I'd like the screen to auto dim more when using the phone in the dark.
Beamed from my Moto X
Thank you so much for all your hard work!
Thanks a lot!!
Sent from my HTC One using Tapatalk
On HTC One GPE based rom, latest update causes phone to reboot immediately if the power button is pressed and held even momentarily. Advanced reboot is unchecked, since the rom has it included (insertcoin, modified stock pretty much)
FSRBIKER said:
Working just fine on my Dev Moto X.
Thanks for your efforts.
To alter auto brightness what are values to start with? I'd like the screen to auto dim more when using the phone in the dark.
Beamed from my Moto X
Click to expand...
Click to collapse
You have to reboot after enabling brightness tweaks. After reboot default stock levels will be filled in which you can the adjust as necessary.
gfp17 said:
On HTC One GPE based rom, latest update causes phone to reboot immediately if the power button is pressed. Advanced reboot is unchecked, since the rom has it included (insertcoin, modified stock pretty much)
Click to expand...
Click to collapse
Custom Roms are not supported but I would be interested in seeing logcat of a crash, anyway.
C3C0, My old Friend, works as expected ,as always. Thank you.
Nexus 4 AOSPA 4.0
ⓐⓝⓓⓡⓞⓒⓛⓓⓔ ⓘⓢ ⓝⓞⓣ ⓐ ⓢⓘⓝ
Hi,
I've been doing some interesting reverse engineering work and came across this Xposed module:
http://forum.xda-developers.com/xposed/modules/xposed-disablesignaturecheck-t2783480 to disable signature checking.
This is a an awesome module, but didn't quite do what I needed in that I wanted to have the system believe that my patched APK was 100% original. To this end I built an Xposed module to spoof the JAR verification at a very low level, which allows for all sorts of interesting possibilities.
This is a research tool and should be used accordingly, as with any such subversion of system behaviour, this is not something you want to leave enabled!
I've added a UI based on the same mechanism of the DisableSignatureCheck module to enable / disable the spoofing behaviour.
The module source can be found on my GitHub page:
https://github.com/sweetlilmre/JARVerificationSpoofer
Comments and criticism are welcome, I hope that someone finds this useful.
-(e)
Thanks I will look at this, sounds promising.
Hope you find it useful.
Where the apk. Or did i miss something
Source is on github.
Awesome work!
@sweetlilmre I am developer of DisableSignatureCheck (now XInstaller) and it is open source. Maybe you would like contribute this feature to this module also?
Sounds like a good idea. Where is the source?
https://github.com/pylerSM/XInstaller here
Thanks. I will try to send a pull request soon.
Isn't it the same as the first patch in Lucky Patcher? It would be awesome to implement all its patches as xposed modules.
Thanks for the pull, it's now integrated in the Xinstaller 3.0 modul. ?
CHEF-KOCH said:
Thanks for the pull, it's now integrated in the Xinstaller 3.0 modul. ?
Click to expand...
Click to collapse
Hi,
I see that this has been added to XInstaller, but as "afterHookedMethod", not "beforeHookedMethod".
The original method will throw a "invalidDigest" exception, if executed i.e. not desired behaviour.
I have submitted a pull request to fix this.
-(e)
Malware Buster
Intro:
This is a Xposed module. It helps to prevent malwares to register service/receiver which were disabled in My Android Tools before.
Manual:
Use My Android Tools/3C Tools to disable service/receiver of your target Apps Install this module, enable it in Xposed Installer, you need to reboot device at the frist time. Check the target Apps you want to disable in Malware Buster UI.
Troubleshoot:
Look at log of Xposed Installer, many runtime information will be shown there.
Reference:
http://developer.android.com/refere...tEnabledSetting(android.content.ComponentName, int, int) https://android.googlesource.com/pl...va/android/app/ApplicationPackageManager.java Some UI codes come from https://github.com/rovo89/XposedAppSettings
Download Link:
http://repo.xposed.info/module/com.rexpress.xposed.malwarebuster
流氓终结者
介绍:
Android上有很多流氓App, 比如xx地图, xx输入法, xxx钱包, xx点评, 会注册一堆service和receiver常驻后台, 即使在App的设置里关掉各种推送也没用. 常见的方法是使用绿色守护. 对于高级用户来说使用My Android Tools/3C Tools, 可以更有效地关闭不必要的service和receiver. 可是这些顽固的App会在运行的过程中重新注册这些service/receiver, 而My Android Tools只是静态地禁用, 没有常驻进程, 无法检测是否被重新开启了. 本App的解决方案是使用Xposed Module, 通过Hook setComponentEnabledSetting方法, 改写参数为DISABLED, 让流氓App无法重新注册service/receiver.
使用方法:
使用My Android Tools/3C Tools禁用service/receiver 初次安装在Xposed Installer里勾选后需要重启 打开本App的界面, 勾选需要和谐的App
Reference:
http://developer.android.com/refere...ting(android.content.ComponentName, int, int)
https://android.googlesource.com/pl...va/android/app/ApplicationPackageManager.java
Some UI codes come from https://github.com/rovo89/XposedAppSettings
Download:
http://repo.xposed.info/module/com.rexpress.xposed.malwarebuster
Source Code:
https://github.com/twilightgod/MalwareBuster
? good thx for share
来自我的 LG-D802 上的 Tapatalk
This module really caught my eye but I can't find "my android tools". Is this app only available for specific devices or in some countries? Can you post a play store link to "my android tools"?
[size=-4]Sent from my Boeffla powered Slim (4.4.4) GT-I9300[/size]
https://play.google.com/store/apps/details?id=cn.wq.myandroidtools
bravo
nice and neat, thank you developer
Is it possible to enable this also for System Apps?
I can see in Amplify that Play Services tries to use Services I have disabled.
Thanks!
need help
@twilightgod Some instruction with details would really be nice. What does it do? Does it just stop the components from loading, shut them down, bypasses them, or what? I already use My Android Tools, awesome app.
I don't have a plan to hack system app, it's dangerous in my local test.
Google Services work well and costs not so much battery without GFW, disabling some of them while keeping basic functionality work will not help to your battery in if you don't have a stable way to get off GFW (like shadowsocks) in my experience.
Sorry, I didn't put much details in English.
The use case is, some apps will register service/receiver when it's running, so even if you disable bad service/receiver in my android tools, they will be registered again in next run, because my android tools will not run all the time in background.
This app will help to prevent them from registration.
Myandroidtools is flagged as malware/Trojan/PUP by 4 different virus scanners and together with appstart and agree to the permissions of the app is a script invoking "qihoo", searching for x86, x64 and a few more libraries on your device.
I seldom buy applications, but this one seemed fine before I got to know it.
Hey everyone,
Due to the lockdown in my country I have to stay home. What a better way to do this than working on a project right ?
The idea is to create a simple launcher with the basic functionnality :
having an app drawer
home screen with dock
possibility to create folder on homescreen
possibility to remove app / folder from homescreen
bonus : possibility to add icon pack
You see, very basic as I said.
I started from scratch, but yesterday I asked on Lawnchair's community telegram and someone talked to me about Launcher3.
I didn't know this launcher and I discovered that a lot of launcher are based on Launcher3, they are all a fork from it.
This motivate me to do a fork to.
But I have a lot of problems to build the launcher itself. I clone the project, open it with Android Studio and I have errors from gradle, when I fix them I have other errors. I think I'm doing wrong but I searched online and I don't find any ressources that can help to start this project or give me clues to understand better.
I am a beginner in Android dev, but trust me I have a really strong motivation I don't want to hear "This is to difficult for you mate, try something else"
Thank you for reading me
hello, you means you want to make a personal launcher project base on launcher3. so now what's your problem in make it build success?
Based on our previous experience, may be has fllow steps:
1.you need a aosp source(or you already have other rom code choose, it's ok), and build it;
2.get the framework.jar from the out path intermediates (for launcher3 has many class only system framework contain);
3.copy launcher3 code from aosp source to your owner path, and make an Android studio project;
4.copy the second step framework.jar to the launcher3 Android studio project(you can put it under app/libs/) and just compileOnly the framework.jar(we just need to declare some system class for compile, finally when the app work it still base on different devices owner framework in the system);
5.add flowing code in you build.gradle:
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << '-Xbootclasspath/p:libs/framework.jar'
}
}
6.if you have a some v7 package implements may be some time will show you some <attr> conflict, like <attr name="icon"> conflict, just change it to <attr name="icon" format="string"> is ok.
Under normal conditions,above steps can help you to make your launcher3 project work well in AS, and also you can compare some open source in github, there has some launcher3 AS project. hope to work for you, if not work for you, you can show the error message you meet more detail, may be we can help to found out the problem
Bro I think you can use jadx decompiler and any working laucher3 to show their source code. Learn from it how the stuffs work. Then start a new project from scratch in Android Studio.. Modify for your own needs.
walker ice said:
hello, you means you want to make a personal launcher project base on launcher3. so now what's your problem in make it build success?
Based on our previous experience, may be has fllow steps:
1.you need a aosp source(or you already have other rom code choose, it's ok), and build it;
2.get the framework.jar from the out path intermediates (for launcher3 has many class only system framework contain);
3.copy launcher3 code from aosp source to your owner path, and make an Android studio project;
4.copy the second step framework.jar to the launcher3 Android studio project(you can put it under app/libs/) and just compileOnly the framework.jar(we just need to declare some system class for compile, finally when the app work it still base on different devices owner framework in the system);
5.add flowing code in you build.gradle:
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << '-Xbootclasspath/p:libs/framework.jar'
}
}
6.if you have a some v7 package implements may be some time will show you some <attr> conflict, like <attr name="icon"> conflict, just change it to <attr name="icon" format="string"> is ok.
Under normal conditions,above steps can help you to make your launcher3 project work well in AS, and also you can compare some open source in github, there has some launcher3 AS project. hope to work for you, if not work for you, you can show the error message you meet more detail, may be we can help to found out the problem
Click to expand...
Click to collapse
Hey,
Thank you for your answer. I clone launcher 3 from here : ht tps:// android.googlesource.com/ platform/ packages/ apps/ Launcher3
But I can built it on android studio, am I doing it wrong ? (I'm on Windows 10 btw)
I open the folder Launcher3 (from which I cloned) and AS ask me for gradle location ...
Thanks again.
[10.0_r40/v222] download : https://androidfilehost.com/?a=show&w=files&flid=286761All-in-one: "Regular" #phhusson Quack AOSP 10.0 vanilla build with microG patches, embedded #su /system, and multiple foss apps:
(/system partition requires: [arm64:>1.9Gb] [arm32:>1.3Gb] minimum)
official microG: GmsCore(mapbox) GoogleServicesFramework DroidGuard
addons: NominatimGeocoderBackend DejaVuBackend IchnaeaNlpBackend LocalWifiNlpBackend openbmapRadiocellsOrg LocalGsmNlpBackend
hot-built: emailExchange2 snapMusic calendarEtar Terminal screenRecorder testDevCamera Calculator
prebuilt: Fdroid F-DroidPrivilegedExtension browserQuarks ZxingClient kDI Superuser BromiteWebview NeoLinker
system/bin* : aapt32 grep64(pcre2grep version 10.22 2016-07-29)
Also included are these non-foss 3 Google : Playstore, Calendar/Contact_Sync; like phh-Superuser apk, they are disabled by default, and can be activated via Settings/Apps.
Click to expand...
Click to collapse
not included: Latest compatible Google Maps 9.84.2 optional https://androidfilehost.com/?fid=11410963190603886579
Extra(s): Nfc and Cafeine tiles, basic photoEditor*, experimental WakelockBlocker via Settings/{}DevOptions <USE WITH CAUTION>.
Nota: android Webview v87 is signed & upgradable from Bromite, Terminal is activated via Settings/System/Advanced/DeveloperOptions and Playstore has to be ForceStop-ed once after registration/wizard, and relaunch. F-Droid V.102.3 auto-update needs FDroid/Settings/ExpertMode/Privileged disabled.
After first rom flash and MicroG prim-initialization, for immediate working location, toggle /Settings /Security&Location /Location off&on. Switching between vtm & mapbox can need wipe for apk cache & account re-creation.
All included prebuilds are fdroid signed editions.
donations: Consider prim-origin @phhusson @MaR-V-iN @csagan5(Bromite)
others : @ale5000 @Setialpha #ThibG(DroidGuard)
+info for microG implementation https://forum.xda-developers.com/android/development/microg-unofficial-installer-t3432360
If you need more, please let me know about it, but for more "Google": just switch to phhusson "gapps" flavour...
Bugs reporting
ufOfficial rom includes static & passive app kDI (KalturaDeviceInfo) to list all your device specs (treble, widevine...) in a json, and can help you with GSFid or others info(s). This app doesn't connect to internet, and the json (~Android/data/com.oF2pks.kalturadeviceinfo/files/) should not include any private data or ids; it's up to you to share or not.
If you encounter major AOSP "hardware (not software)" related bugs, please switch to #phhusson vanilla v___ edition and help him with proper focused hardware logs. For Camera2 missing features, take time to check OpenCamera first, aosp DevCamera "sample stub" is included for testing purpose : autofocus... ; full cam specs are also in KalturaDeviceInfo (per each "physical" cam).
Click to expand...
Click to collapse
(Specific Redmi Note 9 Pro overlay_joyeuse & props_ curtana/joyeuse are added)
(Huawei/msm8937 Moto/G7Play Razer/cheryl Sony/XZ3 Realme/X2Pro overlays are switched to aosp FusedLocation)
swappiness =28 & dirty_writeback_centisecs =1500: check #suKAdiutor for other tweaks.
For Treble with root, you can do some tests modifying specifically,
/system/bin/rw-system.sh to change some features on post-fs:
https://github.com/phhusson/device_phh_treble/blob/android-10.0/vndk.rc#L1
check also phh-on-boot.sh & phh-on-data.sh
hot-built links :
Code:
[SIZE="1"]<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="los" fetch="https://github.com/LineageOS/" />
<remote name="of2" fetch="https://gitlab.com/oF2pks/" />
<remote name="qcom" fetch="https://source.codeaurora.org/" />
<remote name="aos" fetch="https://android.googlesource.com/"/>
<project path="packages/apps/ExactCalculator" name="platform/packages/apps/ExactCalculator" remote="aos" revision="master"/>
<project path="packages/apps/Recorder" name="android_packages_apps_Recorder" remote="los" revision="lineage-17.1" />
<project path="packages/apps/Jelly" name="jelly" remote="of2" revision="jQuarksMore" />
<project path="packages/apps/SnapdragonMusic" name="quic/la/platform/packages/apps/SnapdragonMusic" remote="qcom" revision="android_ui.lnx.4.0.r24-rel" />
<project path="packages/apps/Exchange" name="external/gigabyte/platform/packages/apps/Exchange" remote="qcom" revision="caf/LA.UM.7.7.c25" />
<remove-project name="platform/packages/apps/Calendar" />
<project path="packages/apps/Etar" name="android_packages_apps_Etar" remote="los" revision="lineage-17.1" />
<remove-project name="platform/packages/apps/Terminal" />
<project path="packages/apps/Terminal" name="android_packages_apps_Terminal" remote="los" revision="lineage-17.1" />
</manifest>
[/SIZE]
- Bromite latest webView v84, upgradable via F-Droid repo https://fdroid.bromite.org/fdroid/repo
- Optimized browser Quarks ( adBlocker, offline reading mht , print/pdf , share/clipboard target ...) https://gitlab.com/oF2pks/jelly/commits/jQuarksMore. Conversely to embedded WebViewShell, Quarks don't allow permissions for Camera & Microphone capture (WebRTC)
Attached State_Changes___.zip if for rom devs only
Thanks. will definitely see how it works on razer phone 2
Working super great here on OnePlus6 (enchilada), but I noticed a bug with the fingerprint sensor: working fine right after 1st boot, but not anymore after some times (I don't exactly know how to reproduce). Anyone is experiencing the same?
Edit: after a data wipe, fingerprint sensor is working fine during 1st boot but stops working right after any reboot without any modifications to system settings or app installed.
Edit2: it is actually a Quack Phh-Treble issue, confirmed on system-quack-arm64-ab-floss.img .
Edit3: Possible temporary workaround waiting for a real fix: https://github.com/phhusson/treble_experimentations/issues/1432#issuecomment-675568932
@oF2pks is the org.openbmap.unifiedNlpProvider package deprecated and thus can be disabled without any trouble for microG location backend to work?
That's what I think but I would like a confirmation.
Edit: found a confirmation here
https://github.com/FriendlyNeighborhoodShane/MinMicroG_releases/releases
Replaced abandoned FDroid GSM NLP backend with releases from @ploink
Click to expand...
Click to collapse
Thanks for the work, those prebuilds are handful
Everything is running fine here.
there's a problem with google maps download from androidfilehost:
Code:
ava6.androidfilehost.com sent an invalid response.
ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION
any chance of a mirror?
edit: nevermind, I've found it
How do I update to more recent build of MicroG GMS Core, for example the one released today?
New home build of GmsCore uploaded in post#1
pvdeejay said:
How do I update to more recent build of MicroG GMS Core, for example the one released today?
Click to expand...
Click to collapse
Due to missing official #MaR-V-iN mapbox.key for extensive use of microG (https://github.com/microg/android_pa...re/issues/1155), I will not maintain home build of 3x microG components, and switch next @phhusson aosp10 (if any ?) to official #MaR-V-iN 3x apk.
( @pvdeejay ) , if you have twrp on your device, I already suggest trying #Setialpha packages with official #MaR-V-iN releases https://forum.xda-developers.com/apps/magisk/module-nanomod-5-0-20170405-microg-t3584928.
Even with a future aosp10 GSi; since I'm using anticipated PlayServices variants to v20.99.99, this will need manual (root #su) cleaning of /data/data/* for all 3 microG apks https://forum.xda-developers.com/showpost.php?p=83540735&postcount=37 or a complete re-install (fastboot erase).
hmm, this is tricky as I have device with no TWRP xiaomi redmi 9 code name galahad.
So I guess I need to tweak the image with new apks and reflash using fastboot. Am I right?
pvdeejay said:
hmm, this is tricky as I have device with no TWRP xiaomi redmi 9 code name galahad.
So I guess I need to tweak the image with new apks and reflash using fastboot. Am I right?
Click to expand...
Click to collapse
For now, use my recent attached. I don't believe a GSi can be tweaked easily. If @phhusson don't update aosp10 anymore (r45 is still on cve Aug 2020 and r46/47 are unfinished by Google), I will re-upload aosp10.0_r40 with official #MaR-V-iN 3x apks, but that would need fastboot erase (or root:#su file manager on /data/data/*).
I'm sorry, I'm getting 404 error on the latest microg upload no matter if I click in the first post or the latest one.
Should I just wait or can you do something about it please?
pvdeejay said:
I'm sorry, I'm getting 404 error on the latest microg upload no matter if I click in the first post or the latest one.
Click to expand...
Click to collapse
AFH link : https://androidfilehost.com/?fid=10763459528675570052
Even I did uploaded it myself on xda , I've same 404E ( @svetius ?). Guess something is wrong with mirrors ( or new xda changes) ?
I am coming back to this after a while.
I don't seem to be able to get google maps work. it always crashes when started.
I have only installed this as an app update and I don't managed to add it as a system app. Might that be a problem?
Latest GmsCore uploaded in post #1 2020-11-19 commits: https://forum.xda-developers.com/attachment.php?attachmentid=5138863&d=1605887888
pvdeejay said:
I am coming back to this after a while.
I don't seem to be able to get google maps work. it always crashes when started.
I have only installed this as an app update and I don't managed to add it as a system app. Might that be a problem?
Click to expand...
Click to collapse
Seems the issue is about cronet JAVA NIO ByteBuffers ; check https://github.com/microg/GmsCore/issues?q=cronet . Latest @MaR-V-iN don't solve it (this issue is not on Webview implementation).
Final(?) release.
Due to missing official #MaR-V-iN mapbox.key for extensive use of microG (https://github.com/microg/GmsCore/issues/1155):
aosp10.0_r40 with official #MaR-V-iN 3x apks is re-uploaded
https://androidfilehost.com/?a=show&w=files&flid=286761{_Names} = {_Apks}
- DroidGuard = org.microg.gms.droidguard
- GoogleServicesFramework = com.google.android.gsf
- GmsCore = com.google.android.gms
(Because of anticipated to v20.99.99 PlayServicesvariants),
TO UPGRADE from previous rom, you need to imperatively apply following steps:
Remove Google account(s) via Settings/Accounts
Uninstall any update via Settings/Apps/3x_apks (microG_Services_Core)
Clear storage via Settings/Apps for 3x_apks
root:#su with GhostCommander (or other or TWRP) to delete 3x_apks for: /data/data/3x_apks
fastboot flash system10.img and reboot
Click to expand...
Click to collapse
I also switch hot-built jQuarks browser to latest F-Droid signed jQuarks (upgradable) edition: be sure to save your possible *.mht archives prior to fastboot flash system.
pvdeejay said:
How do I update to more recent build of MicroG GMS Core, for example the one released today?
Click to expand...
Click to collapse
Once updated, use F-Droid repo or straight https://microg.org/download.html to update microG 3x_apks.
Hello,
I have issues migrating to the microg.org compatible build.
I have no uninstall option for microg gms core so I have only wiped the data and flashed the updated system image.
After rebooting I can see no packages with compatible signature when looking at microg version in f-droid.
So I have manually tried to remove everything related to GMS under /data and /data/app using su and rm over adb.
But still when reflashing and rebooting I do have this.
How would I go about fixing it?
gsf proxy and microg guard helper are both okay as I had no updates to them installed.
Edit:
Granted signature spoofing through Settings -> Apps -> MicroG GMS Core.
However I still have two permissions missing: receive SMS and background location.
When I tap them on the self check activity nothing changes. I can't enable them from the Settings -> apps...
And still F-Droid can find no compatible versions so I suspect I have semi broken install here.
Edit:
I've downloaded latest apk from microg.org and installed it on the top of what I have so far and it sorted it-self meaning that device registration, FCM and unified NLP are all working great. F-droid now correctly shows compatible versions and I expect that it will be able to install updates in the future.
What I have noticed is that I have only few apps that were able to reregister FCM token after this upgrade dance. A lot of apps are still waiting for push messages with the old token e.g. Microsoft Teams, Viber, Element (former riot.im), Revolut, George (Die Ertzte banking) and more. I am looking for a way on how to invalidate their FCM tokens and force these apps to register for push messages again other than clearing their data and logging in and / or setting up them from scratch.
Is there a way around this?
Thanks and greetings
Peter
It appears I can't edit my previous post...
Okay, figured the last bit of the puzzle and now I'm happy with the migration.
Please note that this rom is prerooted thus I fired up ADB and poked a bit with shared preference storage related to the apps I wished to force refreshing their FCM tokens.
I ended up deleting files related to GMS, FCM, firebase and similar such as these....
FirebaseAppHeartBeat.xml
com.google.android.gms.appid.xml
com.google.android.gms.measurement.prefs.xml
com.google.firebase.crashlytics.xml
com.appboy.push_registration.xml
com.appboy.storage.user_cache.push_token_store.37a6259cc0c1dae299a7866489dff0bd.
This is not straight forward, but it's easily done with a bit of common sense.
Out of 10 apps I had to reinstall only one of them.
Also I have discovered in the process that some apps may refresh their FCM token on upgrade as this has happened to me with one of those 10 apps.
pvdeejay said:
However I still have two permissions missing: receive SMS and background location.
When I tap them on the self check activity nothing changes. I can't enable them from the Settings -> apps...
Click to expand...
Click to collapse
These bugs seem fixed in today GmsCore v0.2.15.204713 .
I"ll build android11 soon and check whether it can be flash straight over android10 without any loss.
oF2pks said:
These bugs seem fixed in today GmsCore v0.2.15.204713 .
I"ll build android11 soon and check whether it can be flash straight over android10 without any loss.
Click to expand...
Click to collapse
table tap to wake dont work. viber that had problems with many custom roms, works ok