[XPOSED][MOD][5.0+] No Device Check - Xposed Framework Modules

Google introduced new SafetyNet API for app developers to check "device compatibility". Basically, if your device is rooted/modified, this check will always return "false" and then app would disable some of its features, if not all. This module changes this device compatibility check and now it always returns "true" so app "thinks" it runs on unmodified, unrooted Android device and all features are available.
Download:
http://repo.xposed.info/module/com.pyler.nodevicecheck

Tested, does not work.

Thread closed and link removed per OP's request.

Related

[APP][KK][XPOSED] GravityBox v3.6.2 - tweak box for Android 4.4 [23/04/2017]

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
ⓐⓝⓓⓡⓞⓒⓛⓓⓔ ⓘⓢ ⓝⓞⓣ ⓐ ⓢⓘⓝ

[Xposed][MOD][1.30.3] AppOpsXposed - AppOps for 4.3+

AppOpsXposed is a module for the Xposed framework that restores AppOps functionality on Android >= 4.4.2, and works on all Android versions from Jellybean 4.3 up to Marshmallow 6.0.1. Why not just install XPrivacy? you may ask - read this post.
Source code is available on github (License: GPLv3+)
ChangeLog:
1.30.3 (2016-02-21):
* Fix missing op labels/summaries
* Fix issue in "Show changed"
* Fix OP_BOOT_COMPLETED on Marshmallow
1.30.2 (2016-02-20):
* Fixed crashes
1.30.1 (2016-02-20):
* Fixed crash
* Updated Slovak translation
1.30 (2016-02-19):
* Better support for Marshmallow
* Fixed crashes
* Fixed label/summary issues
* Fixed multiple icons in "App info" screen
* New "Minimal" variant (disables icon in "Settings" app)
1.29-BETA10
* Fixed crashes
1.29-BETA9
* Fixed crashes
1.29-BETA8 (2015-11-09):
* Fixed crashes / empty app lists
* Potentially fixed missing bootup tab
1.29-BETA7:
* Add option to customize appearance (theme, icons)
* Fixed issue on MiUi where ops were reset
* Add AppOps to AOSP Lollipop Settings
* Add option to export/import app restrictions
* AOX now displays notifications on app installs/updates, launching the AppOps screen for that particular app
1.28.1 (2015-08-04)
* Fix bugs in hacks for OP_WAKE_LOCK and OP_BOOT_COMPLETED
1.28 (2015-05-17)
* Fix crashes on certain HTC devices
* Fix switch labels
* Smaller icon in Settings
1.27 (2015-05-15):
* Add translations for 22 languages
1.26.1:
* Fixed issue on Sony ROMs where all ops were shown as disabled
* Restrictions can be reset under "Show changed"
* Fix crash when changing ops
* Better handling of non-AOSP ops (labels, summaries)
1.25.3:
* Multiple fixes for Lollipop
1.24:
* Add option to disable verbose logs
* Potential fix for LG icon issue
* Potential fix for Samsung GridSettings bug
* Add hack to fix ops resetting on reboot if
installed on SD.
1.23
* Finally got the HTC variant working
(thanks to @Mikanoshi)
* Fixed some system-app-install issues
* Bugfixes
1.22:
* AppOpsXposed now works without Xposed, by installing
as a system-app.
* Add new ops for Lollipop (compatibility mode)
* When enabled, use compatibility mode when launching
from settings app as well
1.21.1:
* Fix compatibility mode
1.21:
* Added new compatibility mode (BETA)
* Fix crash on LG ROMs
* Attempted to fix wrong icon size on some ROMs
* WakeLock hack disabled on JellyBean for now
1.20.2:
* Fixed version number (updates should work now)
1.20.1:
* Fixed compatibility with some LG ROMs
* Fixed WakeLockFix (JellyBean currently broken)
* Updated icon in settings for non-AOSP ROMs
1.19:
- Fixed some issues in Samsung ROMs
- Fixed issue in detection of CyanogenMod-based ROMs
- Added bug report functionality
1.18:
* Added OP_BOOT_COMPLETED hack (must be enabled manually under "Hacks")
* Added WakeLock fix (must be enabled manually under "Hacks")
* Fixed crashes in CyanogenMod-based ROMs
* Now using a dedicated icon in Settings (thanks @Kickinpigeons)
* Added Spanish translation (thanks @Jose Artuñedo)
1.17.2:
- Xperia only: more human readable info (e.g. "Run at start-up" vs "BOOT_COMPLETED")
1.17:
- Fixed compatibility with Galaxy S5 settings app (grid layout)
- Fixed crash on Xperia KitKat ROMs
1.16:
- Added OmniROM variant (no header in settings, only icon in "App info")
- Added variant for Sony KitKat ROMs with a switch in AppOps, as opposed to the drop-down menu found in 4.3 ROMs
1.15.1:
- Fix crashes on Android 4.3
1.15:
- Added module-specific settings (click module name in Xposed Installer's "Module" section)
- Launcher icon can now be hidden
- Added Korean translation by [email protected]
1.14:
- This release should fix further crashes on recent cn11 nightlies
1.13:
- Attempted to fix issues on recent cm11 nightlies - again
- Added Japanese translation ([email protected])
1.12:
- Hopefully fixed crashes on Xperia devices
- For now, on CM11 nightlies >= 2014-01-28 almost all features are disabled. AppOps can be launched via the launcher icon only.
1.11:
- Fixed layout issue on Xperia ROMs.
1.10.2:
- Hopefully fix crash on Sony stock ROMs
1.10.1:
- On Android 4.3, AppOpsXposed now works as a launcher even if the Xposed Framework is not installed
- Fixed issue where AppOps could not be started from "App info"
1.9:
- AppOpsXposed is now compatible with Sony Xperia devices
- Fixed AppOps details layout for languages where strings were much longer than in English
- Fixed error where AppOps could not be launched from "App info"
- "App info" now uses AppOpsXposed's icon instead of text
- Better detection of Stock vs. AOSP ROMs
- Added 63 translations of "App ops"
- New icon
1.8:
- AppOps for a specific app can now also be launched from the "App info" page of an app
- The module should now work correctly on Sony (Xperia) devices
1.7:
- Added launcher icon for ROMs where there's no icon in Settings
- Reverted sorting in AppOps to default for now
- Potential fix for HTC devices
1.6.1:
- Sort entries in App ops alphabetically.
1.6:
- Another attempt at fixing Samsung-related issues. "App ops" should now be listed below "Apps", wherever "Apps" may be
on your device.
1.5:
- On Samsung devices with a tabbed interface in "Settings", "App ops" should now be displayed in the "General" tab only.
1.4:
- Should fix issue where "App ops" was shown more than once in "Settings"
1.3:
- Fixed Android 4.3 compatibility
1.2:
- No longer allow module to be installed on Android versions before 4.3
1.1:
- Add "App ops" in Settings app; thirdparty AppOps-launcher no longer required!
What is AppOps(Xposed)? What's the difference between AppOps and permissions?
AppOps is a feature that is included in Android starting with JellyBean 4.3. It allows the user to limit an apps functionality, regardless of permissions granted; for example, you can prevent an app from reading your contact list, or accessing your current location. The difference between revoking permissions and using AppOps is that in the latter case, the affected app will not know what happend and, most importantly, will (usually) not crash. In the case of the location, the app will think that the location is currently unavailable. In the case of your contact list, the app will see an empty list. See this flowchart for an example:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
You'll notice ALLOWED, IGNORED and ERRORED; these are the so-called modes, which can be set for each operation. The AppOps interface is very simple, as it provides an on/off switch for every operation. Using this, you switch between ALLOWED and IGNORED, which is usually enough. ERRORED will (likely) make an app crash, or in some cases it will behave exactly as IGNORED.
In the flowchart above, the permission for reading the contact list is android.permission.READ_CALL_LOG,
the corresponding app op is OP_READ_CALL_LOG. Not every permission has a corresponding op, and likewise some ops don't have a corresponding permission. For example, there's no op for the network access permission android.permission.INTERNET, and there's no permission corresponding to the OP_POST_NOTIFICATION op. Note that some app ops are used internally by Android: for example, starting with KitKat Android only allows one app to act as the messaging app; this is controlled by OP_WRITE_SMS.
You'll also notice that in the AppOps app-list, there are often more ops listed for an app than when clicking it. This is because Android groups certain ops into one switch. For example, the "Location" switch controls 7 ops at once: OP_COARSE_LOCATION, OP_FINE_LOCATION, OP_GPS, OP_WIFI_SCAN, OP_NEIGHBORING_CELLS, OP_MONITOR_LOCATION, OP_MONITOR_HIGH_POWER_LOCATION.
Another important thing to keep in mind is that AppOps was not intended for end-users, so some features do not work as advertised. Limiting "Keep awake" for example has no effect, as this was not implemented by the Android developers.
Now that Marshmallow has permission control, what does this module do on Marshmallow?
It may come as a surprise that permission control on Marshmallow doesn't directly use AppOps directly, but instead operates on the permission level. The mechanism used in Marshmallow is this:
When installing an app, so-called "dangerous permissions" [1]are not immediately granted
An app must check whether a permission has been granted before performing an operation that requires this permission
The app is notified of the user's decision and must handle it accordingly (displaying an error message, for example).
This is in contrast to previous Android versions, where an app was granted all requested permissions after install. Revoking a permission thus most often caused the app to crash, since it generally did not expect the permission to be denied.
The mechanism layed out above leads to a slightly different permission/op flowchart, as compared to pre-Marshmallow:
The major difference here is, as explained above, that the app itself must check whether a permission has been granted, and then handle the result accordingly. This also means that an app will be notified of the users decision on a permission level, but not the AppOps level,
i.e. an app may believe that it can access the user's contact list, because the user permitted the app to do so (i.e. granted it the READ_CONTACTS permission), when in fact it is not, because OP_READ_CONTACTS is set to MODE_IGNORED).
A list of so-called "dangerous" permissions can be found here.
The history of AppOps(Xposed)
Until Android 4.4.2, you could access a hidden AppOps interface in the "Settings" app, which you could use to limit the operations of apps; root access was not needed. In 4.4.2, this possibility was disabled. The interface was still there, but it could not be launched from the outside anymore. It was at this point that I decided to create AppOpsXposed, initially a *really* simple (source code) Xposed module, that restored the previous behaviour by hacking into the "Settings" app and re-enabling the interface again.
Starting with AppOpsXposed 1.1, I also added an entry in the "Settings" app, so a launcher icon was not needed anymore. This however only worked for AOSP and AOSP-based ROMs, so I had to add support for ROMs from Sony, HTC, Samsung, etc.. This proved to be a difficult task over time, as many made major modifications to the "Settings" app, and I had no way of testing the code without an actual device - my only device is a Nexus 4. I thus had to rely on user-supplied logs, and then hope that they follow up with more info, to get an issue in the "Settings" app fixed.
Starting with AppOpsXposed 1.21, I added a feature called "Compatibility mode", which ignored the AppOps interface in the Settings app, which didn't use the AppOps interface in your settings app, but rather one included in AppOpsXposed itself. This makes it much easier to fix bugs and add new features, and relieves me of the pain in the ass that is the support of so many different ROMs out there. See another flowchart for a TL;DR:
Starting with AppOpsXposed 1.25, "Compatibility mode" was enabled for all ROMs, and could no longer be disabled. The app uses the GET_APP_OPS_STATS and UPDATE_APP_OPS_STATS permissions to access and change operation modes; this also allows the app to work without Xposed, by installing it as a system app (because the *_APP_OPS_STATS permissions are not granted to normal applications).
I have plans to add several new features in the AppOps interface, but as always, be patient. I'm often busy and this is just my hobby!
READ BEFORE YOU POST
It might seem stupid, but before reporting a crash please try the following: uninstall AppOpsXposed, reinstall it, re-enable it in the Xposed Installer, reboot. It often helps, don't as me why.
Post AT LEAST the following info:
Device,
Android version (4.3, 4.4, etc.)
Name and type (stock/custom) of ROM
In AppOpsXposed's settings menu there's an option "Build bug report" (see below) - use it! Normal logcats are not enough!
>>> DOWNLOAD LINK (github) <<<
caspase said:
AppOpsXposed is a quick-'n-dirty module for the Xposed framework that restores the AppOps functionality on Android 4.4.2. The module enables the :android:show_fragment hack used by many AppOps-launching apps on KitKat and also adds "App ops" in the native android Settings app.
ChangeLog:
1.1:
- Add "App ops" in Settings app; thirdparty AppOps-launcher no longer required!
Source code is available on github (can't post link though).
Click to expand...
Click to collapse
Is root required ?
dive3000 said:
Is root required ?
Click to expand...
Click to collapse
It requires the Xposed Framewoek, so yes!
caspase said:
It requires the Xposed Framewoek, so yes!
Click to expand...
Click to collapse
Fancy uploading it to the repo at http://repo.xposed.info/ ?
Great job, thank you!
The module itself doesn't need root right?
Sent from my Nexus 7 using Tapatalk 4
drewstiff said:
Fancy uploading it to the repo at ... ?
Click to expand...
Click to collapse
Done, can't post link though, need 10 posts first
stfudude said:
The module itself doesn't need root right?
Click to expand...
Click to collapse
Nope, but it's useless w/o root since Xposed Framework needs root. The source is available on github (link
Works perfectly for me ... and I love that you added the AppOps to the settings menu thank you much!
Please add support for 4.3 S3.
Where is it shown in settings?
tariq2kn said:
Please add support for 4.3 S3.
Where is it shown in settings?
Click to expand...
Click to collapse
It should be shown in the "Personal" section, or the very last entry in Settings.
To add proper support for devices not running stock Android I need the Settings.apk file, since the module's design is very implementation-specific.
Sent from my Nexus 4 using xda app-developers app
Works great. Thank you!!
Sent from my Nexus 4 using Tapatalk
Every time... problem parsing the package... please re-upload.
Will this effect the OTA update? As far as I know the xposed framework will cancel OTA veryfication...
LittleGreenMan13 said:
Will this effect the OTA update? As far as I know the xposed framework will cancel OTA veryfication...
Click to expand...
Click to collapse
If you uninstall xposed, OTA will install fine.
68325426
Awesome work dude......thankyou.. :highfive:
bobstone said:
Every time... problem parsing the package... please re-upload.
Click to expand...
Click to collapse
Ensure that you have version 2.4.1 of Xposed Framework installed. What version of Android are you on? Can you post the relevant sections from a logcat?
Sent from my Nexus 4 using xda app-developers app
caspase said:
It should be shown in the "Personal" section, or the very last entry in Settings.
To add proper support for devices not running stock Android I need the Settings.apk file, since the module's design is very implementation-specific.
Sent from my Nexus 4 using xda app-developers app
Click to expand...
Click to collapse
Not showing anywhere on my S3 4.3.
felix1234 said:
If you uninstall xposed, OTA will install fine.
Click to expand...
Click to collapse
To slightly clarify, you don't need to uninstall the app itself or any of it's modules. Just go into the xposed app and click uninstall, but leave the app installed. Once OTA is done and you're re-rooted, go back to the app and click install/update.
Thanks for this, I was hoping someone would finally make a mod for this.
tariq2kn said:
Not showing anywhere on my S3 4.3.
Click to expand...
Click to collapse
In my last post I asked for some info, without it there's little I can do! If you're using Samsung ROM it's very likely that it won't work, because their Settings app is likely to differ implementation-wise!
For now I've tested it ONLY on Nexus Kitkat ROMs (4.4.2), so be patient!
Sent from my Nexus 4 using xda app-developers app

[XPOSED][MODULE][4.4.2+] FrankerFaceZ V2

This is a simple module that adds the framework of FrankerFaceZ to the Twitch.TV mobile Android app. This module is available to Android 4.4.2 users and up.
I have another Thread, however, I thought that due to the complete re-write that is happening, as well as the fact that the old was for a different version of Android, I will be re-posting a new version here listed as V2. This thread can be used as a discussion thread, or a bug report thread, so feel free to provide commentary, request features, or report bugs .
In post 2 below, I will also be talking about my findings when decompiling and exploring the source code behind the app that may be used in future updates.
Install the App
Enabled it
Reboot
???
See FrankerFaceZ emotes
Profit
Package Name: com.stdsbot.FrankerFaceZ
Module Name: FrankerFaceZ
Version Name: 2.0.0
Version Code: 1
The module has not yet been released, this is just a pre-release post in-case people have ideas or feedback before completing the first build.
Questions? Comments? Concerns? Bugs?
Post them here and I will see what I can do.​
Known Bugs
None
FAQ
You say you update an Emote or <insert X resource here>, but I don't see the change....
The way twitch caches images, you will need to clear the app cache through your settings.
*Please note, this is my SECOND Xposed module, and as such, I expect things to go wrong sometimes.*
Change Log
2.0.0 - Initial Release
Source Discovery
RESERVED
One of the first things I noticed is that Twitch now has an array set for / commands that are not going to be posted in chat. This will allow me to make togglable features such as Emote display, but also POSSIBLE dark chat on mobile?!?!?!

[MOD][XPOSED][OMAPI] Override SIM Secure Element Access Control

Hi!
This module may be mainly interesting for developers. This module alone does nothing if not properly used together or within another app. Only use it if you know what you are doing.
Overview:
I created a Xposed module which overrides the Access Rule Checks within the SIMalliance Open Mobile API. These checks normally determine which app is allowed to access a SIM-card based Secure Element (SE) and which is not. Normally within the Secure Element (SIM card) there exists a special "Access Rule File" (also called "ARF") or a special card applet called "Access Rule Application Master" (also called "ARA-M") which has the AID A00000015141434C00) and (basically) contains application signatures and according access rules. So the maintainer of the Secure Element can define (and also update) the access rules with these mechanisms: which app is allowed to access the SE and which not. (see reference [1] for details below).
So while the access rules are securely stored in the hardware module (SE) the enforcement of these rules is done in software (within the Open Mobile "SmartcardService.apk"). And this is where this Xposed module hooks into. By using this module (or by integrating it into your app) you may access the SIM-card-based Secure Element with your app, even if the access rules within the SE would not allow it.
Here's the code:
https://github.com/johnzweng/XposedOMAPIOverrideSEAccessRules
This module does not globally disable the access rule checks but instead only grants full access to a single package name (app) which you manually have to define in code as TARGET_APPLICATION_PACKAGE_NAME.
More details and background story:
A few months ago the banks here in Austria started to roll out NFC-based tap'n'pay solutions which allow you to pay with your Android smartphone worldwide at every NFC-capable payment terminal. In contrast to Android Pay this is not a cloud-based software solution (using Host Card Emulation) but instead really uses a hardware-based secure element (like the chips used within EMV (chip'n'pin) plastic NFC banking cards). Austrian Banks decided to use Secure Elements located within the SIM-card (which is basically the same technology as your banking-card chip) so they don't need cooperations with all the phone manufacturers (and also not with Google), but only with the three mobile network operators (MNOs) here in Austria (which control all the SIM cards).
Unfortunately Google has not included an API in current Android which allows accessing SIM-card-based Secure Elements from an app (I guess they don't want banks and MNOs to develop their own independent payment solutions but instead want to push Android Pay). For this reason one of the largest smartcard manufacturers (Giesecke & Devrient - G&D) started to work on a third-party system API which is nowadays known as SIMalliance OpenMobile API (OMAPI). The SIMalliance is a group of industry players which want to push the use of Secure Elements in mobile phones. See also: Members of SIMalliance.
As this API is not part of official Android API the phone manufacturers (OEMs) have to include this API additionally on the phones. A lot of manufacturers do this already. You can check on your phone if this 3rd-party API exists by looking for these files:
/system/etc/permissions/org.simalliance.openmobileapi.xml
/system/framework/org.simalliance.openmobileapi.jar
/system/priv-app/SmartcardService/ (which hosts "SmartcardService.apk")
(and optionally in newer versions: /system/priv-app/UiccTerminal/)
As Google currently doesn't support this type of access to the SIM-card Secure Element you will not find this API on the Nexus phones. One exception was the Nexus 6 running Lollipop where Google included the SIMalliance Open Mobile API because they supported the Softcard (formerly Isis Mobile) wallet. After Google has acquired Softcard in 2015 they removed again the OpenMobile API from Nexus 6 in Android 6.
As I personally used a LG Nexus 5 and now use the Motorola Nexus 6 I started to work on integrating the Open Mobile API myself (which should be possible now on every phone since Android Lollipop (API level 21) as the TelephonyManager system class has got a few interesting new methods including one for sending APDUs over a logical channel to the SIM card: iccOpenLogicalChannel(String AID). As every phone running Android 5 or newer must implement this API you now can get the OMAPI working on every phone running Android 5 or newer (with minor restrictions). (Also the phone needs to have a special hardware wiring between the SIM card and the NFC chip - see "Single Wire Protocol" for details - to get a NFC payment working). But this is a different story which doesn't belong in this thread. For the interested, look at my Github repo which contains a fork of OMAPI working on unmodified Android versions (and two pre-built releases for OMAPI 2.05 and OMAPI 3.0 under the "releases" section - including a short How-To). This worked for me on a Nexus 5 and a Nexus 6.
But back to this topic:
After I had worked out the integration of OMAPI into Android 6.0.1 I finally was able to use tap'n'pay with my Nexus 6 using the banking card within my SIM card Secure Element. But as I am curious I was also interested in exploring my banking-card within the SIM Secure Element using a self-written app. This was when I realized that there is some kind of access control within the Secure Element which blocks my own test-app but not the app of my bank. (See reference [1] for details on these access rules.) To circumvent this I wrote this Xposed module and voilá, now we also have the possibility to talk with the Secure Element over OMAPI.
Final notes:
This Xposed module will only work if your device has the SIMalliance Open Mobile API (OMAPI) installed
This Xposed module may not work if the OMAPI on your device has been compiled using code obfuscation or was modified otherwise by your phone OEM (as the OMAPI is not part of official Android, every OEM may include its own version)
This Xposed module also may not work on other versions of OMAPI (it was tested with OMAPI v2.05 and should also work with OMAPI V3.0)
I hope this might be useful for someone. Have a nice day.
References:
[1] GlobalPlatform Device Technology - Secure Element Access Control (PDF)
[2] Open Mobile API specification - V2.05 (PDF)
[3] Open Mobile API specification - V3.0 (PDF)
[4] my Github repository for this Xposed module: XposedOMAPIOverrideSEAccessRules
[5] my Github repository with OMAPI fork for working on unmodified Android 5 or newer
I'm very impressed! Love your 'investigations'
I installed OMAPI 2.05 with adb on my xperia sp with cyanogenmod 13 (android 6.0.1).
After that I installed the elba-pay app, but it's not working. May you help me?
polo_joe said:
I installed OMAPI 2.05 with adb on my xperia sp with cyanogenmod 13 (android 6.0.1).
After that I installed the elba-pay app, but it's not working. May you help me?
Click to expand...
Click to collapse
Hi polo_joe:
This doesn't directly match the topic of this thread. But send me a PM then we can continue to communicate on a different channel (email, etc.). Most interesting would be a output of "logcat":
On your computer enter the command: "adb logcat -v time > logcat_debug.txt" in a terminal window then try to start the ELBA Pay app and afterwards look in the "logcat_debug.txt" logfile for errors.
john
androcheck said:
Hi polo_joe:
This doesn't directly match the topic of this thread. But send me a PM then we can continue to communicate on a different channel (email, etc.). Most interesting would be a output of "logcat":
On your computer enter the command: "adb logcat -v time > logcat_debug.txt" in a terminal window then try to start the ELBA Pay app and afterwards look in the "logcat_debug.txt" logfile for errors.
john
Click to expand...
Click to collapse
thanks, will do!

Hijack Suite (Q&A)

It is an xposed module capable of spoofing some of the identities of an Android device.
Customize the identites to your own choices!
Download Here : Mod edit: link removed.
Below are the supported identities :
- Android Id
- Serial Number
- IMEI
- MAC address
- Device build number
Another interesting option available is, ability to randomize the identity for different processes.
It just hijacks the identities on the fly. Hence the original valules are not modified.
Once the app is disabled, get back all the original ids.
How to use!
You need to have an android device which is rooted and has Xposed framework installed.
Open Hijack Suite and enter custome values for the identities.
Press save.
Goto Xposed installer app.
Enable 'Hijack suite'
Reboot the device.
View the customized values being replaced at places where they are tried to fetch.(Check using different apps.)
Observe the behaviour of the app under test by changing the id values.
Disclaimer
Please try the app only if you can understand the above description.
It is built for Android application security testers. (pentesting)
Do not use the app for any illegal purpose.
Use the app at your own risk.
Thanks to rovo89 for developing the wonderful XPOSED framework.
Keywords : Change Android ID, Change Serial number, Change imei, Change MAC address, Change Device fingerprint,
Mask imei, Mask identity, Spoof identity, Hijack id
No free version for XDA community, thread closed.
EDIT:
Free version added to new thread here:
http://forum.xda-developers.com/xposed/modules/hijack-suite-t3429770

Categories

Resources