AppOpsXposed is a module for the Xposed framework that restores AppOps functionality on Android >= 4.4.2, and also adds
"App ops" in the ROM's "Settings" app for Android 4.3+. Why not just install XPrivacy? you may ask - read this post.
Source code is available on github (License: GPLv3+)
CHANGES IN 1.22 / THE FUTURE OF AppOpsXposed
Prior to 1.21, AppOpsXposed simply exposed the AppOps feature hidden in your ROMs "Settings" app. AppOpsXposed 1.1 was
a quick-n'-dirty fix hacked together in an hour that restored AppOps functionality for AOSP ROMs. Over time, I added support for
an increasing number of ROMs, which at times proved to be difficult since I have no way to test a Samsung/HTC/whatever ROM (my only device is a Nexus 4).
In the last few months, my time to work on AppOpsXposed has been limited, so I've come up with a new method (aka "Compatibility mode"): instead of simply exposing the (often broken) implementation of AppOps in a ROMs settings app, I've extracted the AOSP AppOps implementation from the AOSP settings app, which has the benefit that bugs are much easier to fix, plus I don't have to worry about different ROMs.
While 1.21 required Xposed to get the neccessary permissions for "Compatibility mode" to work, 1.22 allows AppOpsXposed to be used without Xposed - you can actually use it on Android 5.0 - by simply adding an option to install it as a system app. The downside of this method is that the various hacks will not work.
This raises the question whether AppOpsXposed is still neccessary, since this approach has been used by others already: one example being this, but also other apps in the Play Store. The only thing setting AppOpsXposed's "Compatibility mode" apart is that it's open-source, so if you're paranoid about non-open-source apps that require root, that's a plus.
WHAT APPOPSXPOSED IS, AND WHAT IT ISN'T
(when not using "Compatibility mode")
As the name implies, AppOpsXposed primarily exposes (i.e. enables) the builtin (but disabled) AppOps functionality as implemented by your ROM vendor/developer. AppOps consists of two parts: the interface you see, and the framework that does the real work.
This means that:
- Your ROM's implementation might be incomplete, or broken
- Your ROM's implementation might differ in functionality, compared to other ROMs
- The module's primary task is to get the builtin AppOps interface working
- The module's secondary task is to fix serious errors in your ROM vendor's AppOps framework that would otherwise severely limit the AppOps feature.
- Everything else (e.g. adding new features, especially to the framework part) is low priority stuff.
- I will not reinvent the wheel that is XPrivacy. If you need more fine-grained control, or more features, you're better of with that than AppOpsXposed!
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. I'm not quite sure as to why it helps, but sometimes it does.
If "App ops" doesn't show up in your Settings app, I'm gonna need its APK file! Don't just say "It crashes on device XYZ" - usually this kind of information is of no help at all. Starting with version 1.19, AppOpsXposed includes a simple bug report feature. Simply go to the module's settings and select "Build bug report", then send the created file via email (or upload it to Dropbox/Google Drive/whatever and post a link):
Post AT LEAST the following info:
- Android version (4.3, 4.4, etc.)
- Name and type (stock/custom) of ROM
- Logs: in the Xposed Installer app there's a "Log" section! A logcat would be even better.
***** When upgrading from a version before 1.12, uninstall AppOpsXposed first before installing this version; otherwise, the update will fail!*****
* 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
* Fix compatibility mode
* 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
* Fixed version number (updates should work now)
* Fixed compatibility with some LG ROMs
* Fixed WakeLockFix (JellyBean currently broken)
* Updated icon in settings for non-AOSP ROMs
- Fixed some issues in Samsung ROMs
- Fixed issue in detection of CyanogenMod-based ROMs
- Added bug report functionality
* 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)
- Xperia only: more human readable info (e.g. "Run at start-up" vs "BOOT_COMPLETED")
- Fixed compatibility with Galaxy S5 settings app (grid layout)
- Fixed crash on Xperia KitKat ROMs
- 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
- Fix crashes on Android 4.3
- Added module-specific settings (click module name in Xposed Installer's "Module" section)
- Launcher icon can now be hidden
- Added Korean translation by sdkoongchi@github
- This release should fix further crashes on recent cn11 nightlies
- Attempted to fix issues on recent cm11 nightlies - again
- Added Japanese translation (WedyDQ10@github)
- 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.
- Fixed layout issue on Xperia ROMs.
- Hopefully fix crash on Sony stock ROMs
- 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"
- 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
- 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
- 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
- Sort entries in App ops alphabetically.
- Another attempt at fixing Samsung-related issues. "App ops" should now be listed below "Apps", wherever "Apps" may be
on your device.
- On Samsung devices with a tabbed interface in "Settings", "App ops" should now be displayed in the "General" tab only.
- Should fix issue where "App ops" was shown more than once in "Settings"
- Fixed Android 4.3 compatibility
- No longer allow module to be installed on Android versions before 4.3
- Add "App ops" in Settings app; thirdparty AppOps-launcher no longer required!
>>> DOWNLOAD LINK (github) <<<
*) This does not mean that this module re-enables the :android:show_fragment vulnerability in PreferenceActivity - it only adds AppOpsSummary to the list of allowed Fragments!