Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
493 commits
Select commit Hold shift + click to select a range
ec054cc
stub out reads of hidden system settings in Google's text-to-speech app
muhomorr Jul 1, 2024
a686fe8
make Google's text-to-speech app force-queryable
muhomorr Nov 25, 2024
0ab11c0
show a deprecation warning dialog on each launch of a 32-bit app
muhomorr Jul 6, 2024
a92bd3e
better 32-bit deprecation warning
thestinger Jul 7, 2024
2d66955
fix touch-to-unlock on Google devices with side fingerprint scanner
muhomorr Jul 16, 2024
f10d606
add setting for alternative touchscreen mode
muhomorr Jun 19, 2024
da2c560
don't report some android.hardware.bluetooth-service.bcmbtlinux crashes
muhomorr Aug 5, 2024
0fb63d2
don't report harmless fingerprint-service.goodix crash
muhomorr Nov 15, 2024
a040bdc
sysconfig: support enabling association restrictions without exemptions
muhomorr Aug 29, 2024
f28ca15
add config for Pixel Health app
muhomorr Aug 26, 2024
d722a72
new PermissionService: implement shouldBlockGrantRuntimePermission()
muhomorr Aug 10, 2024
535ee77
new PermissionService: implement updatePermissions()
muhomorr Aug 10, 2024
b7948ef
PermissionService: support for special runtime permissions
muhomorr Aug 11, 2024
cafc6b9
ignore factory reset protection (FRP)
muhomorr Oct 16, 2024
43d74ad
disable memory tagging for Pixel Camera Services
muhomorr Oct 20, 2024
31d783e
raise backup transport timeout
thestinger Oct 23, 2024
4d26506
add utility class for obtaining and keeping track of Binder caller info
muhomorr Nov 4, 2024
955de99
fix handling of MATCH_ARCHIVED_PACKAGES flag in getPackageUidInternal()
muhomorr Nov 4, 2024
b47f658
delay activation of the Allow button in USB ADB confirmation dialog
muhomorr Dec 5, 2024
771eb4b
FusedLocation: remove racy and redundant lazy init in Service.onBind()
muhomorr Dec 4, 2024
e7a530d
never remove location providers at runtime
muhomorr Dec 4, 2024
099f169
disable safe media volume management
muhomorr Dec 11, 2024
e79b220
add battery charge limit setting
muhomorr Dec 29, 2024
d3bd79c
SystemUI: add support for battery charge limit feature
muhomorr Dec 29, 2024
09fe350
add dev option to log Java binder transaction
muhomorr Dec 28, 2024
1e1a4b4
prevent recycling user IDs
u-fred Dec 21, 2024
e695456
backend part of 2FA changes
muhomorr Nov 12, 2025
3ca4632
throw Exception to notify of SceneContainerFlag
u-fred Dec 21, 2024
5990528
prevent face auth in KUM
u-fred Dec 21, 2024
b5774a9
fix upstream fingerprint mode change bug
u-fred Dec 21, 2024
04f067d
fix feature check in DPMS.getPasswordMinimumMetricsUnchecked()
muhomorr Dec 25, 2024
3622452
fix collision check in SyntheticPasswordManager.generateProtectorId()
muhomorr Dec 25, 2024
9044ee0
add workaround for SSM.newTargetUser() system_server crash
muhomorr Jan 6, 2025
b1728e8
don't break boot of debug OS build on permission allowlist violations
muhomorr Jan 7, 2025
d7b5b29
opt-out TunerSettings from edge-to-edge
thestinger Jan 9, 2025
a920664
protect against upstream bugs bypassing 2FA
thestinger Jan 14, 2025
620320f
fix serious upstream lockscreen animation bug
thestinger Jan 14, 2025
7866496
zygote: don't reload android.os.Build after applying appcompat sysprops
muhomorr Jan 24, 2025
8f33f42
enable appcompat sysprop overrides for user-installed apps
muhomorr Jan 24, 2025
6fd541c
don't delay setting observer callbacks for background system packages
muhomorr Feb 1, 2025
96d731e
add network location setting
soupslurpr Nov 5, 2024
e6578b2
add network location provider to config_locationProviderPackageNames
soupslurpr Dec 24, 2024
914820d
FusedLocation: don't attempt to flush inactive providers
muhomorr Feb 28, 2025
eb75d28
exclude Network Location from location indicator
thestinger Feb 28, 2025
ec4dec9
disable HttpEngine preloading for exec spawning
muhomorr Mar 5, 2025
9a4638c
SystemUI: make screenshot sound use sound effects setting
muhomorr Mar 8, 2025
b30535f
don't allow to install APEXes on user builds
muhomorr Mar 23, 2025
29a1250
fix NPE system_server crash in F2fsUtils.getFilesRecursive()
muhomorr Mar 28, 2025
186a54a
don't allow enabling the instant apps feature
muhomorr Mar 30, 2025
fa6a95a
don't allow enabling the "add users when locked" setting
muhomorr Mar 30, 2025
8e786ca
fix upstream RecoverySystem.verifyPackage vulnerability
thestinger Apr 9, 2025
67379bd
Section for adding non-runtime permissions downstream
quh4gko8 Dec 15, 2024
611c0a7
Add permission definition to read additional security state
quh4gko8 Dec 18, 2024
c5676d9
Extend getting security state bundle to include downstream configurat…
quh4gko8 Dec 16, 2024
44679ee
Settings definition for cross profile clipboard access
quh4gko8 Mar 25, 2025
40e7ac8
Enforce cross profile clipboard access settings
quh4gko8 Mar 25, 2025
e213c14
AppCopyHelper: store Context argument as a field
quh4gko8 Dec 31, 2024
f1022ac
AppCopyHelper: Extend SelectableAppInfo fields with info stored from …
quh4gko8 Dec 31, 2024
b9d69de
add placeholder NFC auto-off setting
mrxx0 Mar 15, 2025
dab36a1
Definition of setting to disallow delayed locking on user stop or lock
quh4gko8 May 18, 2025
df48d40
Enforce setting to disallow delayed locking for user when stopped/locked
quh4gko8 May 18, 2025
9821da7
Always cache users that delay storage locking
quh4gko8 May 20, 2025
17b5add
Lock cached profiles that delay locking of storage when parent user i…
quh4gko8 May 20, 2025
ed9e7a0
bugfix: appropriately set quiet mode when being enabled/disabled
quh4gko8 May 22, 2025
b42a429
Set quiet mode and stop certain profiles when its parent user is star…
quh4gko8 May 20, 2025
c5aa127
PackageExt: Method to check for presence of an AppInfoExt flag
quh4gko8 May 27, 2025
fa924ec
16: definition for Google Battery interface
quh4gko8 Jun 11, 2025
45de559
allow system apps to opt-out of edge-to-edge enforcement
muhomorr2 Jun 12, 2025
293ca5f
never force camera sound
muhomorr Jun 28, 2025
7c95b09
set max number of running users based on total memory size
muhomorr Jun 28, 2025
d99ed88
Revert "Legacy app compatibility workaround"
thestinger Jun 30, 2025
4f889af
add lockscreen synchronisation failsafe
u-fred Jul 4, 2025
e4e6057
restrict custom activity animations for third-party apps
muhomorr Jul 7, 2025
3683091
SystemUI: clear keyguard indication background and icon on empty text
inthewaves Jul 4, 2025
42759ad
use shared bitmaps in MediaMetadata to avoid Binder failures
muhomorr Jul 20, 2025
14c5c2a
add ConnectivityUtil
u-fred Jun 5, 2025
9a08729
remove dev option to switch to a pseudo-locale
muhomorr Jul 30, 2025
db5f709
add Geocoder setting
soupslurpr Jul 27, 2025
def5117
require android.permission.INTERNET to use geocoder
soupslurpr Jul 27, 2025
160314f
reduce time update threshold from 2000ms to 50ms
thestinger Aug 9, 2025
966f30a
SystemUI: split PowerNotificationWarnings into Google-specific class
inthewaves Jul 8, 2025
a8424d6
SystemUI: add battery replacement notification for bluejay
inthewaves Jul 8, 2025
7df22ca
telephony: add method to expose overridden carrier config
inthewaves Sep 27, 2025
8c045bb
SettingsLib: add alwaysExpand to TopIntroPreference
inthewaves Sep 28, 2025
286584a
add infrastructure for extended SIM state
inthewaves Oct 2, 2025
cd54b65
SettingsLib: fix RestrictedPreference not updating properly
inthewaves Sep 27, 2025
b5a7dea
add Private space support in secondary users
quh4gko8 Apr 2, 2025
5e9ac57
tests for backend part of 2FA changes
muhomorr Nov 12, 2025
339e5a0
add second factor UI
muhomorr Nov 12, 2025
8188a73
tests for "add second factor UI" change
muhomorr Nov 12, 2025
a7b7fea
append "Safe" to risky upstream method names
u-fred Dec 22, 2024
8a96150
add second factor to fingerprint unlock
muhomorr Nov 12, 2025
4881122
tests for "add second factor to fingerprint unlock" change
muhomorr Nov 12, 2025
f3c2981
add option to scramble 2FA PIN layout
muhomorr Mar 3, 2026
30b8d6a
allow SystemUITests to read SystemUI-readable settings on debug builds
inthewaves Jun 13, 2025
267e2b3
SystemUI: don't skip fingerprint auth success haptic when 2FA is on
muhomorr Dec 6, 2025
7a805fd
mark notification summaries & organizer as unsupported by default
inthewaves Dec 11, 2025
e80cbde
force default unsupported notification adjustments
inthewaves Dec 11, 2025
abe1ba2
fix missing notification backgrounds
bisuhkfurio Dec 12, 2025
0bd867f
fix system_server crash in NotificationHistory.getPooledStringsToWrite()
muhomorr Dec 17, 2025
2a4940e
SystemUI: remove end session button on lockscreen
inthewaves Dec 23, 2025
9a0bd25
SystemUI: enable UserManager logout support
muhomorr Dec 24, 2025
1ba9c7a
add Process.isMemoryTaggingSupported() system API
muhomorr Dec 24, 2025
4dc2313
fix system_server crash in NotificationHistoryProtoHelper
muhomorr Dec 24, 2025
a80d79f
add workaround for UsageStatsDatabase OOM system_server crash
muhomorr Jan 6, 2026
b55474f
add workaround for WindowContext.finalize() system_server crash
muhomorr Jan 6, 2026
df580bc
add App info link to the app uninstall dialog
muhomorr Jan 7, 2026
72bd4ec
add app install dialog checkbox for skipping INTERNET perm pre-grant
muhomorr Jan 7, 2026
1620522
use setCanceledOnTouchOutside(false) for app install confirmation dialog
muhomorr Jan 7, 2026
c649564
re-enable the system keyboard at boot if it's disabled
muhomorr Jan 6, 2026
c328f87
switch to the system keyboard when device boots to the safe mode
muhomorr Jan 6, 2026
a7f9069
add "Reboot to safe mode" power menu button in BFU state
muhomorr Jan 6, 2026
fa8ee39
SettingsLib: add isDevelopmentSettingsEnabled() overload
muhomorr Jan 8, 2026
bc4a00d
save discrete app-op history for more permissions
muhomorr Jan 27, 2026
a813dd4
add workaround for system_server startUserInBackgroundTemporarily crash
muhomorr Jan 23, 2026
7dcfa8e
FusedLocationProvider: restore pre-16-QPR1 GNSS usage policy
muhomorr Jan 26, 2026
48cf0ae
match the initial call stack between exec and zygote spawning
muhomorr Jan 28, 2026
d46c7a7
SystemUI: replace default quick settings tiles config
muhomorr Feb 12, 2026
6b5cfdd
SystemUI: add a smartspace implementation
liamsmith827 Feb 15, 2026
e0bed64
change geocoder GrapheneOS proxy to server and Nominatim server to Op…
soupslurpr Mar 4, 2026
d39e888
use correct name for OpenStreetMap in Geocoder settings
soupslurpr Mar 6, 2026
a400b75
allow Setup Wizard to modify GEOCODER setting
soupslurpr Mar 4, 2026
33e4d11
gmscompat: notify for RCS permissions if Bugle tries to verifies number
inthewaves Feb 17, 2026
8fbbd31
gmscompat: allow GmsCompat app to read/write package flags
inthewaves Feb 20, 2026
c70ab15
[temporary] gmscompat: add TODO for USE_ICC_AUTH for RCS in Android 17
inthewaves Feb 19, 2026
7fb0510
add definition of new UPDATE_AND_INVALIDATE_PERMISSION_STATE permission
inthewaves Feb 20, 2026
bd26bd2
Partially revert "add method for updating cached package permission s…
inthewaves Feb 26, 2026
3a9cf24
add method for updating and invalidating package state
inthewaves Feb 20, 2026
8b55057
grant UPDATE_AND_INVALIDATE_PERMISSION_STATE to Shell
inthewaves Feb 26, 2026
de8966b
make temp biometric lockouts permanent & only framework can clear loc…
inthewaves Apr 5, 2026
1da0b56
disable support for face HIDL HAL
inthewaves Apr 6, 2026
d357dfb
aapt2: add library element to brief-package-info
inthewaves Apr 25, 2026
79f377b
enable lockscreen widgets feature by default
inthewaves May 1, 2026
0a26d0f
gmscompat: fix exception message for Android Auto installation block
muhomorr Mar 28, 2026
3c548c2
gmscompat: remove GmsCorePackageFlag from system API
muhomorr Mar 30, 2026
fd49397
gmscompat: add shim for BluetoothAdapter.ACTION_REQUEST_ENABLE
muhomorr Apr 23, 2026
8d8b594
apply active Java DCL restrictions inside isolated processes
muhomorr May 4, 2026
51f4d54
add app API for checking DCL restriction states
muhomorr May 4, 2026
f78f975
add GosCompatTests with maps scan test
inthewaves May 10, 2026
aea3ee3
set TalkBack as the default accessibility service
muhomorr May 14, 2026
af2d347
add GosCompatWebViewTests
inthewaves May 22, 2026
60e11ba
add GosCompatDmaBufReleaseTests
inthewaves May 23, 2026
bc2cc5a
add GosCompatWifiScanTimeoutTests
inthewaves May 28, 2026
41f1cc5
SystemUI: show location indicator for OP_COARSE_LOCATION
inthewaves May 29, 2026
58b35b1
SourceStampVerifier: add an option to require a specific source stamp
muhomorr Jun 5, 2026
7a12635
add a method to check for Play Store APK source stamp
muhomorr Jun 6, 2026
0a88cef
bypass pairip for apps that are verified by the Play Store source stamp
muhomorr Jun 5, 2026
735698f
skip pairip bypass for apps that are installed from the Play Store
muhomorr Jun 14, 2026
a665537
exec spawning: add handling of compat changes
muhomorr Jun 16, 2026
ffcafe2
implement PIN scrambling for the biometrics CredentialPinPad
muhomorr Jun 16, 2026
9a8e1e3
Reapply "Add sign out option to user switcher"
muhomorr Jun 16, 2026
50fdd3a
Revert "Remove user_switcher_add_sign_out_option flag"
muhomorr Jun 16, 2026
f70ca57
make ShowSecretsSetting false by default
muhomorr Jun 16, 2026
593ed42
add support for split special runtime permissions
muhomorr Jun 16, 2026
e25da5c
Revert "adjust definition of TelecomManager.getUserSelectedOutgoingPh…
muhomorr Jun 16, 2026
62c5300
fixup! add connectivity checks setting and its migration from Setting…
muhomorr Jun 12, 2026
477b193
SystemUI: fix max PIN length check in CredentialPinView
muhomorr Jun 19, 2026
341d0cd
fixup! SystemUI: allow to use some QS tiles while device is locked
muhomorr Jun 19, 2026
c1bd692
don't decrease the max saved log size on user builds
muhomorr Jun 19, 2026
f7d57c3
allow empty flagExtraArgs in NativeZygoteProcess
muhomorr Jun 19, 2026
20143d3
fixup! add second factor UI
inthewaves Jun 19, 2026
fee41d6
define resource ID ranges for GrapheneOS framework resources
muhomorr Jun 19, 2026
e5a7019
fixup! define package names of the system browser
muhomorr Jun 19, 2026
3631ff3
fixup! use HTTPS X-Time header for time updates instead of NTP
muhomorr Jun 19, 2026
db0ff1b
fixup! define package name of first-party app source
muhomorr Jun 19, 2026
e22516a
fixup! Add config to exempt telephony-related app from location indic…
muhomorr Jun 19, 2026
88d2089
fixup! Warn the user if they are using a prototype Pixel device
muhomorr Jun 19, 2026
9a2ccc3
fixup! Support forwarding notifications from other users
muhomorr Jun 19, 2026
381b29c
fixup! infrastructure for custom handling of known packages
muhomorr Jun 19, 2026
6187127
fixup! add special runtime permission for other sensors
muhomorr Jun 19, 2026
ec20aec
fixup! notify the user when sensors access is denied by OTHER_SENSORS…
muhomorr Jun 19, 2026
19618b4
fixup! make INTERNET into a special runtime permission
muhomorr Jun 19, 2026
82b1a7c
fixup! add option to view application error details in LogViewer app
muhomorr Jun 19, 2026
147bc3e
fixup! support denying special access to hardware accelerators by Goo…
muhomorr Jun 19, 2026
4b6bfb2
fixup! add GNSS PSDS setting
muhomorr Jun 19, 2026
54e9b39
fixup! Bluetooth auto turn off
muhomorr Jun 19, 2026
6a9ad21
fixup! add notification-based UI for the background dexopt job
muhomorr Jun 19, 2026
315561f
fixup! add helper class for notifications that link AppSwitch UI
muhomorr Jun 19, 2026
c940c66
fixup! add per-app native debugging setting
muhomorr Jun 19, 2026
4c42d4d
fixup! show notification after app is blocked from accessing ptrace
muhomorr Jun 19, 2026
9c41a47
fixup! notify the user about notable system journal entries
muhomorr Jun 19, 2026
0a84e20
fixup! support for per-app dynamic code loading restrictions
muhomorr Jun 19, 2026
cffca1d
fixup! add per-app memory tagging setting
muhomorr Jun 19, 2026
22d2b99
fixup! add setting for USB port security state
muhomorr Jun 19, 2026
ff6d92d
fixup! better 32-bit deprecation warning
muhomorr Jun 19, 2026
b423d1f
fixup! add setting for alternative touchscreen mode
muhomorr Jun 19, 2026
92f29b0
fixup! Add permission definition to read additional security state
muhomorr Jun 19, 2026
cdd7f25
fixup! Add config to exempt telephony-related app from location indic…
muhomorr Jun 19, 2026
9dad4ac
add missing hide markers to public-ext resource entries
muhomorr Jun 19, 2026
941dd4b
Preserve implicit special-runtime splits across resets
RankoR Jun 19, 2026
36cbf13
fixup! add second factor UI
inthewaves Jun 19, 2026
22c0482
SystemUI: screenrecorder: handle missing video editor app
muhomorr Jun 19, 2026
7cb2bcf
gmscompat: obtain GMS Core data dir prefixes from ApplicationInfo ins…
RankoR Jun 20, 2026
4d947fe
gmscompat: aauto: add ACCESS_LOCAL_NETWORK to list of wireless perms
muhomorr Jun 21, 2026
2bb5e82
SystemUI: make Wi-Fi tile disable Wi-Fi when it's enabled
muhomorr Jun 21, 2026
1dbc2b8
fixup! Bluetooth auto turn off
muhomorr Jun 23, 2026
6aab26b
fixup! Bluetooth auto turn off
muhomorr Jun 23, 2026
ed01fbe
gmscompat: remove permission error text from ThermalManagerService dump
muhomorr Jun 23, 2026
8cc9932
gmscompat: add comment to ThermalManagerService.dump() change
muhomorr Jun 23, 2026
e012b99
don't report harmless ExynosDevice::dynamicRecompositionThreadLoop crash
muhomorr Jun 23, 2026
4de78c1
don't auto-remove always-on VPN when its service becomes unresolvable
muhomorr Jun 23, 2026
a8a15e9
fixup! don't report harmless ExynosDevice::dynamicRecompositionThread…
muhomorr Jun 25, 2026
9a2ee60
gmscompat: add stub for PackageInstaller.installPackageArchived()
muhomorr Jun 25, 2026
df2628a
fixup! tests for "add second factor UI" change
maade93791 Jun 25, 2026
2746b58
fix NFC tile state for secondary users
maade93791 Jun 25, 2026
9ec315a
gmscompat: only proxy read-only GmsCore data opens
inthewaves Jun 23, 2026
14bd863
gmscompat: use fresh file proxy fds for app opens
inthewaves Jun 23, 2026
4e07001
gmscompat: update outdated fd comment in GmsDynamiteClientHooks
inthewaves Jun 25, 2026
a4cb2a0
add SELinux flags support to native zygote
muhomorr Jun 24, 2026
7883644
add setting for Certificate Transparency downloads
muhomorr Jun 27, 2026
3c2f401
fixup! SettingsProvider: set TEXT_SHOW_PASSWORD to false by default
muhomorr Jun 28, 2026
9106baa
SettingsProvider: never discard TEXT_SHOW_PASSWORD during migration
muhomorr Jun 28, 2026
da668a6
SettingsProvider: run TEXT_SHOW_PASSWORD migration again
muhomorr Jun 28, 2026
599fc9e
SystemUI: run scroll capture tile handling on main thread
inthewaves Jul 2, 2026
dab8041
fixup! implement PIN scrambling for the biometrics CredentialPinPad
inthewaves Jul 3, 2026
1fe8459
implement enhanced PIN privacy for the biometrics CredentialPinPad
inthewaves Jul 3, 2026
a90e9b6
fixup! AppBindArgs: infrastructure for passing extra args to app proc…
soupslurpr Jun 25, 2026
8b8f45f
fixup! tests for backend part of 2FA changes
soupslurpr Jun 25, 2026
0e2f507
rebuild coarse locations from allowlisted fields
soupslurpr Jul 2, 2026
b47950c
GeocodeProviderBase: fix RemoteException handling in SingleUseCallback
muhomorr Jul 7, 2026
6f1dd14
SystemUI: fix external display mirroring in secondary users
maade93791 Jun 28, 2026
46413e2
fix multi-user screen recording handling
inthewaves Jul 7, 2026
461c88e
gmscompat: add MODIFY_PHONE_STATE to Android Auto phone call permissions
muhomorr Jul 9, 2026
22fd006
fixup! support for per-app dynamic code loading restrictions
muhomorr Jun 12, 2026
aed2911
Revert "exec spawning: add handling of compat changes"
muhomorr Jun 25, 2026
b5dcdf3
Revert "match the initial call stack between exec and zygote spawning"
muhomorr Jun 25, 2026
b23d966
Revert "exec spawning: add workaround for late init of ART userfaultf…
muhomorr Jun 25, 2026
5b70e91
Revert "exec spawning: support disabling hardened_malloc and extended…
muhomorr Jun 25, 2026
5d504d3
Revert "exec spawning: don't close the binder connection when the app…
muhomorr Jun 25, 2026
0655b1b
Revert "add a wrapper for execveat(2)"
muhomorr Jun 25, 2026
7f93480
remove the previous exec spawning implementation
muhomorr Jun 25, 2026
34e07c7
fixup! AppBindArgs: infrastructure for passing extra args to app proc…
muhomorr Jun 12, 2026
463875c
fixup! exec spawning: support runtime resource overlays
muhomorr Jun 12, 2026
5c464ca
gosps: add USE_EXEC_SPAWNING flags
muhomorr Jun 12, 2026
f5b7ee7
add exec spawning implementation
muhomorr Jun 12, 2026
4c93bfa
refactor zygote infrastructure to support arbitrary number of zygotes
muhomorr Jun 12, 2026
a6376e5
add compat zygote instance which uses scudo instead of hardened_malloc
muhomorr Jun 12, 2026
043a166
add GosCompatSecureSpawnTests
inthewaves Jun 12, 2026
216d0bd
adjust GosCompatSecureSpawnTests to exec spawning changes
muhomorr Jun 12, 2026
e5e483e
fixup! add base class for complex per-app switches
muhomorr Jun 12, 2026
c8f990f
fixup! add per-app setting for hardened_malloc and extended VA space
muhomorr Jun 12, 2026
d881c58
extend HardeningTest to native app processes and app spawning modes
muhomorr Jul 2, 2026
d0c7d0e
exec spawning: skip vkey.android.vos.VosZygotePreload
muhomorr Jul 15, 2026
2d455f4
exec spawning: skip redundant mount namespace setup
muhomorr Jul 15, 2026
6c31ea7
start compat zygote at boot instead of starting it on-demand
muhomorr Jul 15, 2026
b6ab732
use lazy preloading for compat zygote
muhomorr Jul 15, 2026
6f0ee41
SecureSpawnTests: add file descriptor regression tests
inthewaves Jul 15, 2026
06d2f38
PackageManagerServiceTests: fix dataDir lookup with multiple users
inthewaves Jul 18, 2026
e5e3560
[tmp] workaround original-package issue with Vanadium manifest proper…
inthewaves Jul 19, 2026
70b8ffc
gmscompat: allow remote credential entries from GmsCore
maade93791 Jul 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions apex/jobscheduler/framework/java/android/app/AlarmManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.annotation.TestApi;
import android.app.compat.gms.GmsCompat;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledSince;
import android.compat.annotation.UnsupportedAppUsage;
Expand Down Expand Up @@ -1129,6 +1130,17 @@ private void setImpl(@AlarmType int type, long triggerAtMillis, long windowMilli
long intervalMillis, int flags, PendingIntent operation, final OnAlarmListener listener,
String listenerTag, Executor targetExecutor, WorkSource workSource,
AlarmClockInfo alarmClock) {
if (GmsCompat.isEnabled()) {
if (windowMillis == WINDOW_EXACT && !canScheduleExactAlarms()) {
windowMillis = WINDOW_HEURISTIC;
}
// non-null WorkSource requires privileged UPDATE_DEVICE_STATS permission
workSource = null;

// requires privileged SCHEDULE_PRIORITIZED_ALARM permission
flags &= ~FLAG_PRIORITIZE;
}

if (triggerAtMillis < 0) {
/* NOTYET
if (mAlwaysExact) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,11 @@
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.annotation.UserHandleAware;
import android.app.compat.gms.GmsCompat;
import android.content.Context;

import com.android.internal.gmscompat.GmsCompatApp;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Collections;
Expand Down Expand Up @@ -626,6 +629,11 @@ public void removeFromPermanentAllowList(@NonNull String packageName) {
@RequiresPermission(android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST)
public void addToTemporaryAllowList(@NonNull String packageName, @ReasonCode int reasonCode,
@Nullable String reason, long durationMs) {
if (GmsCompat.isEnabled()) {
GmsCompatApp.raisePackageToForeground(packageName, durationMs, reason, reasonCode);
return;
}

try {
mService.addPowerSaveTempWhitelistApp(packageName, durationMs, mContext.getUserId(),
reasonCode, reason);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ void addPowerSaveTempWhitelistAppDirect(int uid, long duration,

boolean isAppOnWhitelist(int appid);

int[] getPowerSaveWhitelistUserAppIds();
int[] getPowerSaveWhitelistAppIds();

int[] getPowerSaveTempWhitelistAppIds();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2415,14 +2415,14 @@ public String[] getFullPowerWhitelistExceptIdle() {
}

/**
* Returns the array of app ids whitelisted by user. Take care not to
* Returns the array of whitelisted app ids. Take care not to
* modify this, as it is a reference to the original copy. But the reference
* can change when the list changes, so it needs to be re-acquired when
* {@link PowerManager#ACTION_POWER_SAVE_WHITELIST_CHANGED} is sent.
*/
@Override
public int[] getPowerSaveWhitelistUserAppIds() {
return DeviceIdleController.this.getPowerSaveWhitelistUserAppIds();
public int[] getPowerSaveWhitelistAppIds() {
return DeviceIdleController.this.getAppIdWhitelistInternal();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ public void onReceive(Context context, Intent intent) {
case PowerManager.ACTION_POWER_SAVE_WHITELIST_CHANGED:
synchronized (mLock) {
mDeviceIdleWhitelistAppIds =
mLocalDeviceIdleController.getPowerSaveWhitelistUserAppIds();
mLocalDeviceIdleController.getPowerSaveWhitelistAppIds();
if (DEBUG) {
Slog.d(TAG, "Got whitelist "
+ Arrays.toString(mDeviceIdleWhitelistAppIds));
Expand Down Expand Up @@ -143,7 +143,7 @@ public DeviceIdleJobsController(JobSchedulerService service) {
mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
mLocalDeviceIdleController =
LocalServices.getService(DeviceIdleInternal.class);
mDeviceIdleWhitelistAppIds = mLocalDeviceIdleController.getPowerSaveWhitelistUserAppIds();
mDeviceIdleWhitelistAppIds = mLocalDeviceIdleController.getPowerSaveWhitelistAppIds();
mPowerSaveTempWhitelistAppIds =
mLocalDeviceIdleController.getPowerSaveTempWhitelistAppIds();
mDeviceIdleUpdateFunctor = new DeviceIdleUpdateFunctor();
Expand Down Expand Up @@ -205,7 +205,7 @@ public void setUidActiveLocked(int uid, boolean active) {
}

/**
* Checks if the given job's scheduling app id exists in the device idle user whitelist.
* Checks if the given job's scheduling app id exists in the device idle whitelist.
*/
boolean isWhitelistedLocked(JobStatus job) {
return Arrays.binarySearch(mDeviceIdleWhitelistAppIds,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import android.compat.annotation.ChangeId;
import android.content.ClipData;
import android.content.ComponentName;
import android.content.Context;
import android.net.Network;
import android.net.NetworkRequest;
import android.net.Uri;
Expand Down Expand Up @@ -2976,6 +2977,23 @@ private boolean isConstraintsSatisfied(int satisfiedConstraints) {
return true;
}

if ((mRequiredConstraintsOfInterest & CONSTRAINT_CONNECTIVITY) != 0) {
if ((satisfiedConstraints & CONSTRAINT_CONNECTIVITY) != 0) {
var pmi = LocalServices.getService(
com.android.server.pm.permission.PermissionManagerServiceInternal.class);

if (pmi.checkUidPermission(getSourceUid(), android.Manifest.permission.INTERNET, Context.DEVICE_ID_DEFAULT) !=
android.content.pm.PackageManager.PERMISSION_GRANTED) {
if (DEBUG) {
Slog.d(TAG, "skipping job " + getJobId() + " for " + getSourcePackageName()
+ " in user " + getSourceUserId() + ": it has CONSTRAINT_CONNECTIVITY, "
+ "but its UID doesn't have the INTERNET permission");
}
return false;
}
}
}

int sat = satisfiedConstraints;
if (overrideState == OVERRIDE_SOFT) {
// override: pretend all 'soft' requirements are satisfied
Expand Down
2 changes: 1 addition & 1 deletion cmds/hid/jni/com_android_commands_hid_Device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ static void closeDevice(JNIEnv* /* env */, jclass /* clazz */, jlong ptr) {
}
}

static JNINativeMethod sMethods[] = {
static const JNINativeMethod sMethods[] = {
{"nativeOpenDevice",
"(Ljava/lang/String;Ljava/lang/String;IIII[B"
"Lcom/android/commands/hid/Device$DeviceCallback;)J",
Expand Down
2 changes: 1 addition & 1 deletion cmds/uinput/jni/com_android_commands_uinput_Device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ static jint getEvdevInputPropByLabel(JNIEnv* env, jclass /* clazz */, jstring ra
return InputEventLookup::getLinuxEvdevInputPropByLabel(label.c_str()).value_or(-1);
}

static JNINativeMethod sMethods[] = {
static const JNINativeMethod sMethods[] = {
{"nativeOpenUinputDevice",
"(Ljava/lang/String;IIIIIILjava/lang/String;"
"Lcom/android/commands/uinput/Device$DeviceCallback;)J",
Expand Down
3 changes: 3 additions & 0 deletions core/api/current.txt
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@ package android {
field public static final String NFC = "android.permission.NFC";
field public static final String NFC_PREFERRED_PAYMENT_INFO = "android.permission.NFC_PREFERRED_PAYMENT_INFO";
field public static final String NFC_TRANSACTION_EVENT = "android.permission.NFC_TRANSACTION_EVENT";
field public static final String OTHER_SENSORS = "android.permission.OTHER_SENSORS";
field @FlaggedApi("com.android.media.mediasession.flags.override_media_session_owner") public static final String OVERRIDE_MEDIA_SESSION_OWNER = "android.permission.OVERRIDE_MEDIA_SESSION_OWNER";
field public static final String OVERRIDE_WIFI_CONFIG = "android.permission.OVERRIDE_WIFI_CONFIG";
field public static final String PACKAGE_USAGE_STATS = "android.permission.PACKAGE_USAGE_STATS";
Expand Down Expand Up @@ -388,7 +389,9 @@ package android {
field public static final String LOCATION = "android.permission-group.LOCATION";
field public static final String MICROPHONE = "android.permission-group.MICROPHONE";
field public static final String NEARBY_DEVICES = "android.permission-group.NEARBY_DEVICES";
field public static final String NETWORK = "android.permission-group.NETWORK";
field public static final String NOTIFICATIONS = "android.permission-group.NOTIFICATIONS";
field public static final String OTHER_SENSORS = "android.permission-group.OTHER_SENSORS";
field public static final String PHONE = "android.permission-group.PHONE";
field public static final String READ_MEDIA_AURAL = "android.permission-group.READ_MEDIA_AURAL";
field public static final String READ_MEDIA_VISUAL = "android.permission-group.READ_MEDIA_VISUAL";
Expand Down
59 changes: 58 additions & 1 deletion core/api/module-lib-current.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,20 @@ package android.app.admin {

}

package android.app.compat.gms {

public class GmsModuleHooks {
method @Nullable public static String deviceConfigGetProperty(@NonNull String, @NonNull String);
method public static boolean deviceConfigSetProperties(@NonNull android.provider.DeviceConfig.Properties);
method public static boolean deviceConfigSetProperty(@NonNull String, @NonNull String, @Nullable String);
method @Nullable public static Boolean enableBluetoothAdapter();
method public static void enableNfc();
method public static boolean interceptSynchronousResultReceiverException(@NonNull RuntimeException);
method public static void makeBluetoothAdapterDiscoverable();
}

}

package android.content {

public abstract class ContentProvider implements android.content.ComponentCallbacks2 {
Expand All @@ -100,7 +114,6 @@ package android.content {
public abstract class Context {
method @NonNull public android.content.Context createContextForSdkInSandbox(@NonNull android.content.pm.ApplicationInfo, int) throws android.content.pm.PackageManager.NameNotFoundException;
method @NonNull public android.os.IBinder getProcessToken();
method @NonNull public android.os.UserHandle getUser();
field @FlaggedApi("android.os.profiling.anomaly.flags.anomaly_detector_core_c") public static final String ANOMALY_DETECTOR_SERVICE = "anomaly_detector";
field @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence_module") public static final int BIND_FOREGROUND_SERVICE = 67108864; // 0x4000000
field public static final String PAC_PROXY_SERVICE = "pac_proxy";
Expand Down Expand Up @@ -141,6 +154,45 @@ package android.content.pm {

}

package android.ext {

public class ConnectivityUtil {
method public static boolean isRegularAppWithLockdownVpnEnabled(@NonNull android.content.Context, int);
method public static boolean isSystem(@NonNull android.content.Context, int);
}

}

package android.ext.settings {

public class CertTransparencyDownloaderSetting {
field @NonNull public static final android.ext.settings.IntSetting SETTING;
field public static final int VAL_GRAPHENEOS = 0; // 0x0
field public static final int VAL_OFF = 2; // 0x2
field public static final int VAL_STANDARD = 1; // 0x1
}

public class ConnChecksSetting {
method public static int get();
method public static boolean put(int);
field public static final int VAL_DEFAULT = 0; // 0x0
field public static final int VAL_DISABLED = 2; // 0x2
field public static final int VAL_GRAPHENEOS = 0; // 0x0
field public static final int VAL_STANDARD = 1; // 0x1
}

public class RemoteKeyProvisioningSettings {
method @Nullable public static String getServerUrlOverride(@NonNull android.content.Context);
field public static final int GRAPHENEOS_PROXY = 0; // 0x0
field public static final int STANDARD_SERVER = 1; // 0x1
}

public class WidevineProvisioningSettings {
method @Nullable public static String getServerHostnameOverride(@NonNull android.content.Context);
}

}

package android.hardware.usb {

@RestrictedForEnvironment(environments=android.annotation.RestrictedForEnvironment.ENVIRONMENT_SDK_RUNTIME, from=android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) public class UsbManager {
Expand Down Expand Up @@ -574,6 +626,11 @@ package android.os {
method @FlaggedApi("android.os.update_engine_api") public void triggerPostinstall(@NonNull String);
}

public final class UserHandle implements android.os.Parcelable {
method public static int getUid(int, int);
method public static int getUserId(int);
}

public class UserManager {
field @FlaggedApi("android.multiuser.user_restriction_config_wifi_shared_private") public static final String DISALLOW_CONFIG_WIFI_PRIVATE = "no_config_wifi_private";
field @FlaggedApi("android.multiuser.user_restriction_config_wifi_shared_private") public static final String DISALLOW_CONFIG_WIFI_SHARED = "no_config_wifi_shared";
Expand Down
Loading