Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
367 commits
Select commit Hold shift + click to select a range
42d5cd7
SystemUI: apply "Add users from lock screen" setting to guest users
muhomorr Jun 23, 2023
77ab716
SystemUI: Allow customizing lock screen shortcuts via ThemePicker
quh4gko8 Oct 10, 2023
6ba4ec2
Add config to exempt telephony-related app from location indicators
kdrag0n Feb 17, 2022
540bbec
exempt some system packages from status bar privacy indicator
thestinger Apr 17, 2022
b4030e2
allow PackageInstaller to use platform APIs
muhomorr Mar 5, 2024
d0bea0e
PackageInstaller: link "App info" screen from the uninstallation dialog
muhomorr Apr 17, 2022
106ad88
PackageInstaller: fix crash when showing app's first confirmation prompt
muhomorr Oct 19, 2024
6caea6e
disable support for pre-approving PackageInstaller sessions
muhomorr Dec 22, 2023
229dcbf
define READ_LOGS_FULL permission for promptless logcat access
muhomorr Jan 6, 2024
7ee3bcd
add APIs for launching LogViewer app
muhomorr Jan 6, 2024
b8efc1b
add helpers for system_server extensions
muhomorr Jul 31, 2022
492d8ad
Warn the user if they are using a prototype Pixel device
flawedworld Jun 15, 2022
46cea69
Support forwarding notifications from other users
x86pup Mar 19, 2022
350bef0
DeviceIdleJobsController: don't ignore whitelisted system apps
muhomorr Jul 7, 2022
445d827
do not allow disabling app visibility filtering
muhomorr Apr 6, 2023
c87f579
add hooks for modifying PackageManagerService behavior
muhomorr Mar 27, 2023
a11e30f
rename AppsFilterImpl.grantImplicitAccess method
muhomorr Apr 30, 2024
0214d6f
add hooks for modifying ActivityThread behavior
muhomorr Aug 18, 2023
2ae0df1
add helper class for launching non-standard Settings intents
muhomorr Nov 15, 2023
055faac
AppBindArgs: infrastructure for passing extra args to app process init
muhomorr May 16, 2023
0aadcb7
infrastructure for custom handling of known packages
muhomorr Dec 20, 2023
f92233d
SettingsProvider: add support for further restriction of setting access
muhomorr Mar 28, 2025
a47dd36
gosps: support for per-app GrapheneOS-specific persistent state
muhomorr Jul 31, 2022
1a5fb90
extend excludedMethods list in AndroidPackageTest
muhomorr Jun 2, 2024
e4bc3cd
add method for updating cached package permission state
muhomorr Dec 18, 2023
9cb5043
PackageHooks: infrastructure for per-package hooks in system_server
muhomorr Dec 18, 2023
aca3a99
add base class for complex per-app switches
muhomorr Sep 24, 2023
30b852b
SettingsLib: add CategoryKey for Exploit protection screen
muhomorr Jul 30, 2024
ec90912
infrastructure for spoofing self permission checks
muhomorr Jul 31, 2022
71aedf0
infrastructure for special runtime permissions
muhomorr Feb 9, 2023
b221e96
add special runtime permission for other sensors
muhomorr Feb 9, 2023
948fd3d
notify the user when sensors access is denied by OTHER_SENSORS perm
muhomorr Oct 4, 2022
e238cd1
make INTERNET into a special runtime permission
thestinger Mar 17, 2019
90fd2ba
improve compatibility of INTERNET special runtime permission
muhomorr Jul 31, 2022
56c25bd
don't run jobs that need connectivity in apps that lack INTERNET perm
muhomorr May 19, 2023
a75d705
PackageInstallerUI: an option to skip auto-grant of INTERNET permission
muhomorr Oct 7, 2022
0c08b20
use permanent fingerprint lockout immediately
thestinger Sep 12, 2017
8ce4826
add system property for disabling keyguard camera
thestinger Jul 25, 2017
b735e8d
add auto-reboot feature
muhomorr Jan 13, 2024
ebd1064
infrastructure for the Storage Scopes feature
muhomorr Jul 31, 2022
f411bdd
sscopes: temp: disable incomplete handling of READ_MEDIA_VISUAL_USER_…
muhomorr Oct 5, 2023
bd070d4
control access to Android/obb directory with a GosPackageState flag
muhomorr Jul 31, 2022
0d0ffa7
ErrorDialogController: do not auto-dismiss crash dialogs
muhomorr Oct 1, 2023
1a34dbe
fix ANR details link not working in profiles and in secondary users
muhomorr Nov 1, 2024
71b2c9f
include path of ANR stack traces file in ApplicationErrorReport
muhomorr Oct 7, 2024
7eec2f6
don't block reading ANR stack traces file via Unix file permissions
muhomorr Oct 8, 2024
ff7a131
add option to view application error details in LogViewer app
muhomorr Aug 8, 2022
0c83447
Set always-on and lockdown on by default on first vpn connection at s…
quh4gko8 Aug 1, 2022
c5d7d10
pre-grant POST_NOTIFICATIONS to more system apps
muhomorr Aug 22, 2022
209defc
allow privileged installer to search for packages across all users
muhomorr Nov 23, 2022
74f1c0e
extend original-package renaming to provider authorities for Vanadium
muhomorr Nov 5, 2022
569c693
extend original-package renaming to static launcher shortcuts
muhomorr Nov 23, 2022
28c40a4
disable package parser cache
muhomorr Jan 30, 2023
ae40232
perform additional boot-time checks on system package updates
muhomorr Jan 31, 2023
db07cdc
allow out-of-band package updates to use original-package system
muhomorr Jan 27, 2023
70c9503
require fs-verity when installing system package updates
muhomorr Jan 31, 2023
604046b
don't allow updating system packages to the same versionCode
muhomorr Dec 27, 2022
94a76e3
allow privileged installers to use getSharedLibraries(MATCH_ANY_USER)
muhomorr Mar 30, 2024
dec15b1
allow only first party app source and shell to update system packages
muhomorr May 2, 2024
770a18b
Remove build fingerprint from screenshot EXIF
x86pup Apr 29, 2022
db47dad
add toggle for screenshot timestamp EXIF metadata
x86pup Feb 18, 2023
a6bf14a
SUPL: Don't send IMSI / Phone number to SUPL server
MSe1969 Oct 29, 2018
f6a64ba
add GNSS SUPL setting
muhomorr Mar 3, 2023
c6cd155
allow privileged installers to maintain a global list of busy packages
muhomorr Mar 4, 2023
9eabb65
add option to scramble PIN layout
muhomorr Feb 24, 2023
48afc75
enable LOCK_PIN_ENHANCED_PRIVACY setting by default
muhomorr Jun 14, 2023
62a4509
don't crash apps that depend on missing Gservices provider
muhomorr Mar 26, 2023
357fbab
integrate Google's EuiccSupportPixel package
muhomorr Mar 27, 2023
faa5013
integrate Google's eUICC LPA package (EuiccGoogle)
muhomorr May 30, 2023
2d1c035
do not auto-grant Camera permission to the eUICC LPA UI app
muhomorr Mar 19, 2023
f0e9737
add a method for sending BOOT_COMPLETED broadcast to a specific package
muhomorr Dec 23, 2023
3d74995
define READ_DEVICE_SERIAL_NUMBER permission for Build.getSerial() access
muhomorr Dec 18, 2023
50113d9
aauto: define a restricted version of the MANAGE_USB permission
muhomorr Dec 18, 2023
8d002b3
aauto: add definition of restricted BLUETOOTH_PRIVILEGED permission
muhomorr Dec 18, 2023
68bffd0
aauto: add definition of restricted WIFI_PRIVILEGED permission
muhomorr Dec 18, 2023
5dd72a0
aauto: add definition of restricted READ_PRIVILEGED_PHONE_STATE permi…
muhomorr Dec 25, 2023
9a72e08
adjust definition of TelecomManager.getUserSelectedOutgoingPhoneAccou…
muhomorr Dec 25, 2023
a7d2af3
aauto: support using aauto USB accessory activity as a default activity
muhomorr Dec 20, 2023
6d52854
aauto: define ASSOCIATE_COMPANION_DEVICES_RESTRICTED permission
muhomorr Dec 18, 2023
05c8c5e
aauto: support allowing association with "automotive projection" devices
muhomorr Dec 18, 2023
51d1ad5
add BinderWrapper
muhomorr Jan 17, 2025
addbb7c
gmscompat: add compatibility layer for unprivileged GMS
thestinger Jun 6, 2023
49ac45b
require vendor camera extensions package to be a system app by default
muhomorr Mar 30, 2023
536302d
add config for Pixel Camera Services
muhomorr Jan 9, 2024
6b72f31
infrastructure for creating per-package seinfo overrides
muhomorr Mar 30, 2023
3221b74
support denying special access to hardware accelerators by Google apps
muhomorr Apr 6, 2023
2482b3c
add GNSS PSDS setting
muhomorr May 2, 2023
2ceab2e
support redirecting ContentProvider calls to another provider
muhomorr May 16, 2023
718cf83
infrastructure for the Contact Scopes feature
muhomorr May 16, 2023
33cf30b
add connectivity checks setting and its migration from Settings.Global
muhomorr May 25, 2023
2908911
Wi-Fi auto turn off
muhomorr Jul 31, 2022
aba6cea
Bluetooth auto turn off
muhomorr Jul 31, 2022
3c8257e
add support for hooking LocationManager methods
muhomorr Jun 19, 2023
ea73a4f
improve compat with apps that try to access network location provider
muhomorr Jun 19, 2023
ad38e22
add RemoteKeyProvisioning server override setting
muhomorr Aug 10, 2023
46cc33a
don't skip AOT compilation of apps that weren't recently used
muhomorr Nov 14, 2022
f01c88c
do not delete compiled code (OAT files) of hibernated apps
muhomorr Oct 11, 2023
f14a381
disable OtaDexoptService
muhomorr Oct 23, 2023
b3cd34d
add notification-based UI for the background dexopt job
muhomorr Oct 23, 2023
e97643e
infrastructure for per-package dex2oat compiler filter overrides
muhomorr Oct 31, 2023
5c811ad
always use speed dex2oat compiler filter for VPN service packages
muhomorr Nov 1, 2023
49f9755
add helper class for notifications that link AppSwitch UI
muhomorr Nov 8, 2023
d024dd0
infrastructure for passing extra args to Zygote and WebViewZygote
muhomorr Sep 23, 2023
9d297cc
infrastructure for passing SELinux flags to the kernel
muhomorr Sep 24, 2023
c63535f
add per-app setting for hardened_malloc and extended VA space
muhomorr Sep 26, 2023
709ecfd
always stop app zygotes when app is being force-stopped
muhomorr Nov 8, 2023
a4c62f0
add per-app native debugging setting
muhomorr Sep 26, 2023
82115b9
add system API for getting app info by PID
muhomorr Nov 8, 2023
77c58e1
infrastructure for handling callbacks from logd to system_server
muhomorr Nov 8, 2023
5bfa9bf
infrastructure for showing notifications about SELinux TSEC_FLAG denials
muhomorr Nov 15, 2023
3fce065
show notification after app is blocked from accessing ptrace
muhomorr Nov 19, 2023
cb7d6f7
fix rate limiting for non-app tombstones
muhomorr Nov 8, 2023
2b9caf9
DropBoxManager: fix TreeSet API contract violations
muhomorr Dec 23, 2023
e7f7754
fix an upstream race condition in handling of system error files
muhomorr Oct 7, 2024
9884987
DropBox: skip spurious system_server_crash entries
muhomorr Jan 15, 2024
ce7b0b3
DropBox: skip fsck.f2fs results that don't contain errors
muhomorr Jan 16, 2024
c7f9210
notify the user about notable system journal entries
muhomorr Nov 8, 2023
9caf947
support for per-app dynamic code loading restrictions
muhomorr Sep 26, 2023
cf5fe2d
add test for SELinux flags-based per-app hardening features
muhomorr Sep 20, 2023
1295c94
add per-app memory tagging setting
muhomorr Nov 5, 2023
7a8e6e6
Widevine provisioning setting
maade93791 Sep 29, 2023
9fc921a
hide from Aurora Store packages that it's not allowed to update
muhomorr Jan 15, 2024
b30b92d
run full explicit GC in SystemUI and system_server after locking
thestinger Feb 2, 2024
536b77a
add UsbManager API for configuring USB port security state
muhomorr Feb 23, 2024
6e642c4
add setting for USB port security state
muhomorr Feb 23, 2024
2ae4db8
Do not use filter calling uid parameter originally intended for insta…
quh4gko8 Nov 3, 2023
196a6a3
Disallow the camera shortcut toggle from the lockscreen
neelchauhan May 28, 2024
93c1459
disable support for adoptable storage
muhomorr May 29, 2024
bd1512c
add a helper class for wiping eUICCs
muhomorr May 29, 2024
ba75130
extend the upstream wipe-without-reboot implementation
muhomorr Jun 1, 2024
2835a14
add duress password feature
muhomorr May 29, 2024
b5278c1
add lock_settings shell commands for testing the duress password feature
muhomorr May 30, 2024
15442cb
add lock_settings shell command option for printing executed Weaver ops
muhomorr Jun 1, 2024
d13ffcc
add a test for the duress password feature
muhomorr May 29, 2024
27a6a44
fix ApplicationInfo flag initialization being skipped in some cases
muhomorr Jun 13, 2024
704a3d4
stub out reads of hidden system settings in Google's text-to-speech app
muhomorr Jul 1, 2024
3eae473
make Google's text-to-speech app force-queryable
muhomorr Nov 25, 2024
b4e986f
show a deprecation warning dialog on each launch of a 32-bit app
muhomorr Jul 6, 2024
1e59043
better 32-bit deprecation warning
thestinger Jul 7, 2024
acd38a9
fix touch-to-unlock on Google devices with side fingerprint scanner
muhomorr Jul 16, 2024
f621dc7
add setting for alternative touchscreen mode
muhomorr Jun 19, 2024
4ff56b5
don't report some android.hardware.bluetooth-service.bcmbtlinux crashes
muhomorr Aug 5, 2024
db20ec0
don't report harmless fingerprint-service.goodix crash
muhomorr Nov 15, 2024
7df2706
sysconfig: support enabling association restrictions without exemptions
muhomorr Aug 29, 2024
ef6e425
add config for Pixel Health app
muhomorr Aug 26, 2024
8180156
new PermissionService: implement shouldBlockGrantRuntimePermission()
muhomorr Aug 10, 2024
fa6a698
new PermissionService: implement updatePermissions()
muhomorr Aug 10, 2024
07a17ec
new PermissionService: implement PackageHooks support
muhomorr Aug 10, 2024
9486edc
new PermissionService: support for special runtime permissions
muhomorr Aug 11, 2024
2337d21
temp: unconditionally enable system crash notifications
muhomorr Jun 3, 2024
b0e489a
Revert "temp: unconditionally enable system crash notifications"
muhomorr2 Jun 6, 2025
c655c2f
ignore factory reset protection (FRP)
muhomorr Oct 16, 2024
b64e46d
fix check for the current holder of the Wallet app role
muhomorr Oct 19, 2024
0785cef
disable memory tagging for Pixel Camera Services
muhomorr Oct 20, 2024
d0f2932
don't remove app widgets from user's home screen when the user stops
muhomorr Oct 22, 2024
64c0904
raise backup transport timeout
thestinger Oct 23, 2024
ea338ba
add utility class for obtaining and keeping track of Binder caller info
muhomorr Nov 4, 2024
75afdaa
fix handling of MATCH_ARCHIVED_PACKAGES flag in getPackageUidInternal()
muhomorr Nov 4, 2024
be4d715
delay activation of the Allow button in USB ADB confirmation dialog
muhomorr Dec 5, 2024
bb9535c
FusedLocation: remove racy and redundant lazy init in Service.onBind()
muhomorr Dec 4, 2024
6942ed2
never remove location providers at runtime
muhomorr Dec 4, 2024
8760d12
disable safe media volume management
muhomorr Dec 11, 2024
d5ba2fa
add battery charge limit setting
muhomorr Dec 29, 2024
e9e0726
SystemUI: add support for battery charge limit feature
muhomorr Dec 29, 2024
2477c2c
add dev option to log Java binder transaction
muhomorr Dec 28, 2024
871ada0
prevent recycling user IDs
u-fred Dec 21, 2024
0a48a7b
add LockDomain
u-fred Dec 21, 2024
40e1e9c
add second factor to DevicePolicyManagerService
u-fred Dec 21, 2024
315208c
add second factor to LockSettingsService
u-fred Dec 21, 2024
299aaed
add second factor to LockSettingsStateListener
u-fred Dec 21, 2024
49cfda7
add second factor to AdaptiveAuthService
u-fred Dec 21, 2024
40ebec9
add second factor to TrustManagerService
u-fred Dec 21, 2024
d1b0fe4
add biometric keyguard settings to LPU
u-fred Dec 21, 2024
30bd2ef
improve upstream LPU#isCredentialSharableWithParent
u-fred Dec 21, 2024
ca17055
add second factor to LockPattern classes
u-fred Dec 21, 2024
92b2eea
add BiometricAuthTokenStore
u-fred Dec 21, 2024
cd530e2
add second factor to FingerprintService
u-fred Dec 21, 2024
a7f5da0
add second factor UI
u-fred Dec 21, 2024
7a4b93b
throw Exception to notify of SceneContainerFlag
u-fred Dec 21, 2024
1beccff
prevent face auth in KUM
u-fred Dec 21, 2024
bf67ab2
fix upstream fingerprint mode change bug
u-fred Dec 21, 2024
9bfb355
append "Safe" to risky upstream method names
u-fred Dec 22, 2024
e69c6ca
add second factor to fingerprint unlock
u-fred Dec 21, 2024
4798aab
fix feature check in DPMS.getPasswordMinimumMetricsUnchecked()
muhomorr Dec 25, 2024
95a135b
fix collision check in SyntheticPasswordManager.generateProtectorId()
muhomorr Dec 25, 2024
1e8a594
SystemUI: don't skip fingerprint auth success haptic when 2FA is on
muhomorr Jan 3, 2025
e73b788
add workaround for SSM.newTargetUser() system_server crash
muhomorr Jan 6, 2025
5fe2be2
don't break boot of debug OS build on permission allowlist violations
muhomorr Jan 7, 2025
babcd3c
opt-out TunerSettings from edge-to-edge
thestinger Jan 9, 2025
500c39b
protect against upstream bugs bypassing 2FA
thestinger Jan 14, 2025
e8c9dc3
fix serious upstream lockscreen animation bug
thestinger Jan 14, 2025
cb48a52
zygote: don't reload android.os.Build after applying appcompat sysprops
muhomorr Jan 24, 2025
98dc7a7
enable appcompat sysprop overrides for user-installed apps
muhomorr Jan 24, 2025
ee4345e
don't delay setting observer callbacks for background system packages
muhomorr Feb 1, 2025
a41e244
add network location setting
soupslurpr Nov 5, 2024
84ef793
add network location provider to config_locationProviderPackageNames
soupslurpr Dec 24, 2024
67a37f8
FusedLocation: don't attempt to flush inactive providers
muhomorr Feb 28, 2025
5c0d910
exclude Network Location from location indicator
thestinger Feb 28, 2025
a94591c
disable HttpEngine preloading for exec spawning
muhomorr Mar 5, 2025
c894e66
SystemUI: make screenshot sound use sound effects setting
muhomorr Mar 8, 2025
7932a53
SystemUI: Fix constraints for keyguard slice view
luk1337 Dec 28, 2024
4c13489
SystemUI: Don't remove keyguard slice view
luk1337 Dec 28, 2024
312b429
config: enable desktop mode support
muhomorr Mar 15, 2025
9bbeb1d
SystemUI: fix keyguard media section placement when split shade is used
muhomorr Mar 18, 2025
ce44d70
SystemUI: fix orientation of keyguard slice view rows
muhomorr Mar 20, 2025
9ed018f
SystemUI: don't hide date text on lockscreen when media is playing
muhomorr Mar 20, 2025
45801e3
SystemUI: add keyguard slice view to split shade layout
muhomorr Mar 20, 2025
dfd9713
SystemUI: fix a screenshot process crash in ScrollCaptureController
muhomorr Mar 25, 2025
d3bfee3
don't allow to install APEXes on user builds
muhomorr Mar 23, 2025
54ab9f2
fix NPE system_server crash in F2fsUtils.getFilesRecursive()
muhomorr Mar 28, 2025
c152803
don't allow enabling the instant apps feature
muhomorr Mar 30, 2025
5ba1b22
don't allow enabling the "add users when locked" setting
muhomorr Mar 30, 2025
4ded9e7
fix upstream RecoverySystem.verifyPackage vulnerability
thestinger Apr 9, 2025
a0f6ab1
Section for adding non-runtime permissions downstream
quh4gko8 Dec 15, 2024
c337b95
Add permission definition to read additional security state
quh4gko8 Dec 18, 2024
93e1c7a
Extend getting security state bundle to include downstream configurat…
quh4gko8 Dec 16, 2024
6c30687
Method to fetch if a user can have a specific profile type
quh4gko8 Apr 2, 2025
39869fd
Set secondary secondary users allow having private profiles
quh4gko8 Apr 2, 2025
0e3eea5
Support adding private profiles when parent user can have private pro…
quh4gko8 Apr 2, 2025
bdf0e13
Settings definition for cross profile clipboard access
quh4gko8 Mar 25, 2025
14e12c8
Enforce cross profile clipboard access settings
quh4gko8 Mar 25, 2025
9f04c0f
AppCopyHelper: store Context argument as a field
quh4gko8 Dec 31, 2024
1646fca
AppCopyHelper: Extend SelectableAppInfo fields with info stored from …
quh4gko8 Dec 31, 2024
ed35a3c
NFC auto turn off
mrxx0 Mar 15, 2025
949ef9c
Definition of setting to disallow delayed locking on user stop or lock
quh4gko8 May 18, 2025
7face28
Enforce setting to disallow delayed locking for user when stopped/locked
quh4gko8 May 18, 2025
551a694
Always cache users that delay storage locking
quh4gko8 May 20, 2025
9186d6b
Lock cached profiles that delay locking of storage when parent user i…
quh4gko8 May 20, 2025
3456517
bugfix: appropriately set quiet mode when being enabled/disabled
quh4gko8 May 22, 2025
9ded3b1
Set quiet mode and stop certain profiles when its parent user is star…
quh4gko8 May 20, 2025
528f302
Definition of AppInfoExt flag for apps signed using Play signing
quh4gko8 May 27, 2025
242a539
Append AppInfoExt flag for apps signed with Play signing
quh4gko8 May 27, 2025
c49eb71
PackageExt: Method to check for presence of an AppInfoExt flag
quh4gko8 May 27, 2025
11ea3a8
Hide provider(s) for startup on apps with valid Play Store source stamp
quh4gko8 May 27, 2025
7d58d43
16: definition for Google Battery interface
quh4gko8 Jun 11, 2025
4eff5a3
fixup! improve upstream LPU#isCredentialSharableWithParent
inthewaves Jun 11, 2025
ce20e3e
fixup! gmscompat: add compatibility layer for unprivileged GMS
inthewaves Jun 11, 2025
eb99444
fixup! infrastructure for passing extra args to Zygote and WebViewZygote
inthewaves Jun 11, 2025
2fd8cd6
fixup! add second factor to LockSettingsService
inthewaves Jun 11, 2025
404da78
fixup! fix rate limiting for non-app tombstones
inthewaves Jun 11, 2025
bbead36
bugfix: correctly find private profile in main user
quh4gko8 May 17, 2025
7293868
fixup! aauto: support allowing association with "automotive projectio…
inthewaves Jun 11, 2025
a630e2b
fixup! Enforce cross profile clipboard access settings
inthewaves Jun 11, 2025
a42a055
SceneJankMonitor: add AuthenticationMethodModel.BiometricSecondFactorPin
octocorvus Jun 11, 2025
de6d808
fixup! SystemUI: don't skip fingerprint auth success haptic when 2FA …
inthewaves Jun 11, 2025
ab837ad
[temporary] crude workaround
inthewaves Jun 11, 2025
ea88ec6
Revert "fix DevicePolicyManager#logoutUser() never succeeding"
quh4gko8 Jun 11, 2025
7aa91cc
fix DevicePolicyManager#logoutUser to succeed without device admin
quh4gko8 Jun 11, 2025
382a222
appop: Save discrete app op history for more permissions
kdrag0n Oct 11, 2021
ed2ad27
add special runtime permissions test cases
inthewaves Apr 24, 2025
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
  •  
  •  
  •  
1 change: 1 addition & 0 deletions Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ java_library {
"android.hardware.usb-V1.0-java-constants",
"android.hardware.usb-V1.1-java-constants",
"android.hardware.usb-V1.2-java-constants",
"android.hardware.usb.ext-V1-java",
"android.hardware.usb.gadget-V1-java",
"android.hardware.usb.gadget-V1.0-java",
"android.hardware.usb.gadget-V1.1-java",
Expand Down
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 @@ -26,6 +26,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 @@ -1049,6 +1050,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 @@ -2389,14 +2389,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 @@ -204,7 +204,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 @@ -36,6 +36,7 @@
import android.app.job.UserVisibleJobSummary;
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 @@ -2518,6 +2519,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
6 changes: 4 additions & 2 deletions cmds/app_process/app_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,10 @@ class AppRuntime : public AndroidRuntime
AndroidRuntime* ar = AndroidRuntime::getRuntime();
ar->callMain(mClassName, mClass, mArgs);

IPCThreadState::self()->stopProcess();
hardware::IPCThreadState::self()->stopProcess();
if (mClassName != "com.android.internal.os.ExecInit") {
IPCThreadState::self()->stopProcess();
hardware::IPCThreadState::self()->stopProcess();
}
}

virtual void onZygoteInit()
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
5 changes: 4 additions & 1 deletion core/api/current.txt
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,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 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";
field @Deprecated public static final String PERSISTENT_ACTIVITY = "android.permission.PERSISTENT_ACTIVITY";
Expand Down Expand Up @@ -363,7 +364,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 Expand Up @@ -44567,7 +44570,7 @@ package android.telecom {
method public android.telecom.PhoneAccountHandle getSimCallManager();
method @Nullable public android.telecom.PhoneAccountHandle getSimCallManagerForSubscription(int);
method @Nullable public String getSystemDialerPackage();
method @Nullable @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telecom.PhoneAccountHandle getUserSelectedOutgoingPhoneAccount();
method @Nullable @RequiresPermission(anyOf={"android.permission.READ_PRIVILEGED_PHONE_STATE", "android.permission.READ_PRIVILEGED_PHONE_STATE_ANDROID_AUTO"}) public android.telecom.PhoneAccountHandle getUserSelectedOutgoingPhoneAccount();
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVoiceMailNumber(android.telecom.PhoneAccountHandle);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handleMmi(String);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handleMmi(String, android.telecom.PhoneAccountHandle);
Expand Down
43 changes: 42 additions & 1 deletion core/api/module-lib-current.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,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 @@ -99,7 +113,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.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";
field public static final String TEST_NETWORK_SERVICE = "test_network";
Expand Down Expand Up @@ -142,6 +155,29 @@ package android.content.pm {

}

package android.ext.settings {

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 {

public class UsbManager {
Expand Down Expand Up @@ -486,6 +522,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);
}

}

package android.os.storage {
Expand Down
Loading