[MOD][XPOSED][4.0+]App Settings v1.8 (2014-04-13)
Xposed module: App Settings v1.8
What it is
This is an Xposed module that allows changing generic settings on a per-app basis.
"Generic settings" means settings that are global to all applications
, such as: perceived
DPI, rotation behavior, fullscreen, etc.; full list is below.
These are settings that can in principle be applied to all packages, even if for some it might not produce any effects.
Not to be confused with app-specific settings. If it's something that only app Y or Z needs changing, chances are it won't belong in this module.
What the mod CAN do
Here's the list of settings that can be defined for each target package:
: Changes the DPI used by this app both when loading resources (some might be DPI-specific) and also when rendering them.
- Font Scale
: Scales the font up or down, similarly to the system-wide "Font Size" setting.
- Screen dimensions
: Affects the resources loaded by the app in case it bundles different ones for different screen sizes; use the "List Res." button to get some hints on the kind of alternatives the app might have for different resolutions.
qualifier for resources: also affects alternate resources used by the apps (tipically for tablets / devices with big screens); see previous item.
: the language used by the app for loading resources, formatting numbers and dates, etc.; you can use this for apps that do include translations but don't give you an option of using a different language than your global one.
: you can force an app to always use fullscreen (hiding the statusbar only
, not the navigation bar for devices that have it) or never use it; on KitKat Immersive mode can also be activated.
- No title
: hides the title bar, gaining more space for the actual contents. Note that many apps might crash
if they're relying on some elements of the titlebar to be there.
- Keep screen on
: If set, the screen won't dim or turn off after the inactivity period whenever this app is on the foreground. Remember not to put the device on your pocket with the app active.
- Show when locked
: Display this app's screen on top of the lockscreen, without requiring e.g. the PIN to be entered (dangerous). Note that you'll have to find a way (somewhere else) to open the app from the lockscreen, depending on the kind of app.
- Resident in memory
: If set, the system will try much harder to keep the app in memory even when you leave it. It might make the app more responsive when reopening but will also consume more RAM
, possibly slowing down the overall system.
- No fullscreen IME
: prevents the keyboard from taking up the entire fullscreen when in landscape mode.
: Override the orientation settings build into the app. You can force "normal behavior" (rotate according to the device settings, even if the developer hardcoded a specific orientation), "always portrait", "always landscape" or "force auto" (use the sensors even if the auto-rotate system setting is off). Additional options exist for forced reversing the portrait or landscape orientations, use the sensor so they can be inverted by tilting the device, and 4-way rotation.
- Insistent notifications
: If active, the sounds used by any of the app's raised notifications will loop endlessly
. Danger of depleting the battery (and annoying crowds) if you're not around when it starts playing the sound.
- No big notifications
: Prevent notifications to have an alternate layout for the "expanded" mode; it will always be collapsed and can't even be expanded manually
- Show in recents
: You can prevent the app from showing on the Recents list, or force it to appear.
- Mute audio
: Prevents all sound from being played from the app. If videos are played, they will be muted. (this doesn't work for all apps, due to technical limitations on the system)
- Force legacy menu button
: For devices that don't have a physical menu button, menu entries will usually appear on the far right of the Action Bar. With this option, the 3-dot button will be displayed on the navbar and the menu options will appear there.
- Revoke permissions
: selectively block permissions requested by the app. Needless to say, depending on the permission and the app, it's very likely that it will start failing
; don't expect revoking INTERNET or READ_CONTACTS and having the apps continuing to work every time - most of them will fail unless the developer anticipated this kind of permission denials
Some of the features that help you manage the settings for each app:
Search / filter apps
- by name or package
- by type (user/system)
- by applied settings: global state, overridden or unchanged state for each setting
Shortcuts for app actions
on the main list or on the individual settings screen
- launch app (main launcher activity)
- go to system settings screen (uninstall, clear data, ...)
- Play Store link (if applicable)
The app can be killed when saving settings, so they can take effect immediately after relaunch
instead of requiring a reboot.
What the mod CAN'T / WON'T do
The settings you can define for each app won't add functionality that simply isn't there, such as:
- adding tablet / large screen layouts
- using languages for which no resources are included in the app
- display "properly" in portrait or landscape mode
- operate flawlessly on top of the lockscreen
- keep working as expected (whatever that means to you) even after you revoke permissions
Not only these would be not possible to implement in an app-independent way, it's also beyond the scope of this particular module.
If you're familiar with the Xposed Framework, you're probably aware that lots of things can be tweaked or added to specific apps.
However, unless it's:
- generic behavior that can be applied to most apps
- relatively easy to implement
then don't bother requesting App Settings to provide it.
If it does obey these 2 conditions, then by all means suggest it (preferably with code contributions / pull requests).
- Xposed Framework
2.2 or newer
- ICS (4.0.3) or newer (up to 4.4); this is not only a requirement for the framework, but also for this module due to the hooked APIs
The installation can be performed from within Xposed Framework
by browsing the repository
and finding the "App Settings" entry. Any updates will also appear there.
Alternatively, the repository entry can be browsed directly at http://repo.xposed.info/module/de.ro...ds.appsettings
Usage of this thread
This thread serves primarily to publish updates
to the module, report bugs
and suggest or discuss new features
(user or developer-wise).
You can also use it to share and discuss your experiences with tweaking specific apps
(e.g. resources settings, revoked permissions, etc.) - but I must warn that you should not expect feedback from me
on that matter.
Quite frankly, I'm not that much of a smartphone heavy user, and I'm not willing to install loads of apps on my device in order to experiment and achieve ideal configurations for *you* to use. That's what the community is here for, though
so feel free to discuss this on the thread.
Some images showing: main apps list; settings panel for an individual app; list of resources bundled in an app; editing permissions to revoke; menu with actions for an app; filtering by settings; filtering by permissions used.
: The foundations of this module were created by @rovo89
as a hidden feature within his Tweakbox
module, which was the first daily-use mod taking advantage of the (then new) Xposed framework and somewhat of a showcase for it. By directly editing the xml settings file, it was possible to change the dpi, screen dimensions and language for an app's loaded resources.
Eventually it got promoted to its own standalone mod once a minimal UI was built to edit the configuration and more and more settings were added. It was promoted and discussed on @pulser_g2
's Making Stock Custom ROMs Defunct
thread and the repository he was kind enough to setup and administer some time ago.
Since it's been pretty stable for a while - both in robustness and in expected update frequency - and Xposed Framework now has repository functionality, it has come the time to create a dedicated thread for this and also bump the version to 1.x with the latest added features.