add per-app setting for hiding carrier/network information - #394
Open
maade93791 wants to merge 453 commits into
Open
add per-app setting for hiding carrier/network information#394maade93791 wants to merge 453 commits into
maade93791 wants to merge 453 commits into
Conversation
If there's no network location provider: - redirect network location requests to one of available location providers - stub out mock location management calls for network provider (TestProvider methods), since redirecting them is infeasible These changes apply only to third-party apps. There's a relevant system feature (android.hardware.location.network) that is still listed as available to improve app compatibility. Removing it would not make this change redundant, because there are apps that try to use the network location provider without declaring the need for this feature or checking its presence at runtime.
- report job progress when it's running - prompt the user to restart optimized apps after job completion - schedule automatic restart of optimized apps via ActivityManager.killProcessesWhenImperceptible() in case they aren't restarted manually
This allows to skip restarting them after post-OTA asynchronous optimization, which some VPN service hosts don't handle properly.
Some of per-app features (e.g. SELinux restrictions) require app process restart to be applied.
Value of the previous global setting is used as a default value of the new per-app setting. For system apps, native debugging is blocked unconditionally.
"App info" screen for controlling ptrace access is linked from this notification.
All non-app tombstones were considered to have the same processName ("UNKNOWN"), which meant that
frequent tombstones from one system process rate-limited tombstones from all system processes.
Instances of FileList and EntryFile are stored in java.util.TreeSet. TreeSet requires that compareTo() is consistent with equals().
System error file contents are added to the DropBox when file's timestamp changes. Last known file timestamps are kept in a separate file. This race condition caused some updates to last known timestamps getting lost, which led to their corresponding system error files being treated as new system errors after device reboot.
Show notifications about the following events:
- kernel crash (from last_kmsg) (optional)
- file system check error
- system_server crash (Java or native)
- system app native crash (optional, except for memory tagging crashes)
- non-app process native crash (optional, except for memory tagging crashes)
- some of hardened_malloc app crashes (those that are caused by fatal_error() call in hardened_malloc
after it detects an app error)
These events are recorded in the system journal ("DropBox") already, this commit surfaces them to
the user.
Currently covers restriction of dynamic code loading via memory/storage and blocking of ptrace access. Testing is performed on three kinds of HardeningTestApp: targetSdk 27, current targetSdk and preinstalled current targetSdk app (the latter is included on debuggable builds). Preinstalled app is tested separately to make sure that restrictions can't be weakened for it, regardless of GosPackageState values. To run the test, execute `atest HardeningTest`.
ART has special support for System.gc() and Android already uses this to purge memory after unlocking. It makes sense to purge as much as we can when locking too. Change-Id: I3696b36bfa3a9e418b57e9241e27f7153769368c
Change-Id: I0d7a3a4732de2b526b15aef4b047dd916c8b0b5a
See previous GrapheneOS@e38a7a0#diff-011b32fdcd5ea1e2e73efc213d16ecc75b1882828437db6372ebf47fec388a7aR347-R354 Add back missing mLockDomain parameter Adjust to new Android 17 changes from GrapheneOS@853fa20 to prevent showing incorrect message "Or unlock with fingerprint" when failing 2FA pin
…tead of getDataDir()
Since Android 17, receiving Bluetooth state broadcasts for non-primary users requires using registerReceiverForAllUsers().
adapt to the new (17) bionic changes
maade93791
requested review from
inthewaves and
muhomorr
and removed request for
inthewaves
June 25, 2026 21:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
to be merged with:
GrapheneOS/platform_packages_apps_Settings#436
GrapheneOS/platform_bionic#73
GrapheneOS/platform_packages_services_Telephony#26