Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
400 commits
Select commit Hold shift + click to select a range
c16bbf5
infrastructure for the Storage Scopes feature
muhomorr Jul 31, 2022
8c5080d
sscopes: temp: disable incomplete handling of READ_MEDIA_VISUAL_USER_…
muhomorr Oct 5, 2023
b169157
control access to Android/obb directory with a GosPackageState flag
muhomorr Jul 31, 2022
e2d9d95
ErrorDialogController: do not auto-dismiss crash dialogs
muhomorr Oct 1, 2023
572cfc2
fix ANR details link not working in profiles and in secondary users
muhomorr Nov 1, 2024
b38e0c2
include path of ANR stack traces file in ApplicationErrorReport
muhomorr Oct 7, 2024
df66b72
don't block reading ANR stack traces file via Unix file permissions
muhomorr Oct 8, 2024
ddd0cbe
add option to view application error details in LogViewer app
muhomorr Aug 8, 2022
3620200
Set always-on and lockdown on by default on first vpn connection at s…
quh4gko8 Aug 1, 2022
b61272d
pre-grant POST_NOTIFICATIONS to more system apps
muhomorr Aug 22, 2022
e448122
allow privileged installer to search for packages across all users
muhomorr Nov 23, 2022
a1d9b4b
extend original-package renaming to provider authorities for Vanadium
muhomorr Nov 5, 2022
1c3bec6
extend original-package renaming to static launcher shortcuts
muhomorr Nov 23, 2022
ae9cda1
disable package parser cache
muhomorr Jan 30, 2023
de88441
perform additional boot-time checks on system package updates
muhomorr Jan 31, 2023
b56ba97
allow out-of-band package updates to use original-package system
muhomorr Jan 27, 2023
00c88c8
require fs-verity when installing system package updates
muhomorr Jan 31, 2023
4ab7af7
don't allow updating system packages to the same versionCode
muhomorr Dec 27, 2022
35b4ebf
allow privileged installers to use getSharedLibraries(MATCH_ANY_USER)
muhomorr Mar 30, 2024
8d9a040
allow only first party app source and shell to update system packages
muhomorr May 2, 2024
22d46a2
Remove build fingerprint from screenshot EXIF
x86pup Apr 29, 2022
e32ac02
add toggle for screenshot timestamp EXIF metadata
x86pup Feb 18, 2023
e606f23
SUPL: Don't send IMSI / Phone number to SUPL server
MSe1969 Oct 29, 2018
e36b5e1
add GNSS SUPL setting
muhomorr Mar 3, 2023
351a30d
allow privileged installers to maintain a global list of busy packages
muhomorr Mar 4, 2023
fe7745d
add option to scramble PIN layout
muhomorr Feb 24, 2023
2e1f320
enable LOCK_PIN_ENHANCED_PRIVACY setting by default
muhomorr Jun 14, 2023
33664a1
don't crash apps that depend on missing Gservices provider
muhomorr Mar 26, 2023
2d77284
integrate Google's EuiccSupportPixel package
muhomorr Mar 27, 2023
85c4348
integrate Google's eUICC LPA package (EuiccGoogle)
muhomorr May 30, 2023
7c22ba3
do not auto-grant Camera permission to the eUICC LPA UI app
muhomorr Mar 19, 2023
530d14f
add a method for sending BOOT_COMPLETED broadcast to a specific package
muhomorr Dec 23, 2023
3174190
define READ_DEVICE_SERIAL_NUMBER permission for Build.getSerial() access
muhomorr Dec 18, 2023
c0f1f51
aauto: define a restricted version of the MANAGE_USB permission
muhomorr Dec 18, 2023
ab47253
aauto: add definition of restricted BLUETOOTH_PRIVILEGED permission
muhomorr Dec 18, 2023
c55a293
aauto: add definition of restricted WIFI_PRIVILEGED permission
muhomorr Dec 18, 2023
1c26f05
aauto: add definition of restricted READ_PRIVILEGED_PHONE_STATE permi…
muhomorr Dec 25, 2023
33ecadf
adjust definition of TelecomManager.getUserSelectedOutgoingPhoneAccou…
muhomorr Dec 25, 2023
703d9da
aauto: support using aauto USB accessory activity as a default activity
muhomorr Dec 20, 2023
a8d2dcd
aauto: define ASSOCIATE_COMPANION_DEVICES_RESTRICTED permission
muhomorr Dec 18, 2023
7fc413a
aauto: support allowing association with "automotive projection" devices
muhomorr Dec 18, 2023
b67bce9
add BinderWrapper
muhomorr Jan 17, 2025
c6b60bb
gmscompat: add compatibility layer for unprivileged GMS
thestinger Jun 6, 2023
4fa7cd8
require vendor camera extensions package to be a system app by default
muhomorr Mar 30, 2023
47f3801
add config for Pixel Camera Services
muhomorr Jan 9, 2024
5579182
infrastructure for creating per-package seinfo overrides
muhomorr Mar 30, 2023
a6eae6b
support denying special access to hardware accelerators by Google apps
muhomorr Apr 6, 2023
a15a468
add GNSS PSDS setting
muhomorr May 2, 2023
8cf265d
support redirecting ContentProvider calls to another provider
muhomorr May 16, 2023
0e1a7d8
infrastructure for the Contact Scopes feature
muhomorr May 16, 2023
2b7fa61
add connectivity checks setting and its migration from Settings.Global
muhomorr May 25, 2023
84bf56e
Wi-Fi auto turn off
muhomorr Jul 31, 2022
afb369e
Bluetooth auto turn off
muhomorr Jul 31, 2022
73b0b06
add support for hooking LocationManager methods
muhomorr Jun 19, 2023
ef6c348
improve compat with apps that try to access network location provider
muhomorr Jun 19, 2023
5dce23a
add RemoteKeyProvisioning server override setting
muhomorr Aug 10, 2023
e3d6dee
do not delete compiled code (OAT files) of hibernated apps
muhomorr Oct 11, 2023
48fa487
add notification-based UI for the background dexopt job
muhomorr Oct 23, 2023
599adb9
infrastructure for per-package dex2oat compiler filter overrides
muhomorr Oct 31, 2023
b0ac01a
always use speed dex2oat compiler filter for VPN service packages
muhomorr Nov 1, 2023
beb1c11
add helper class for notifications that link AppSwitch UI
muhomorr Nov 8, 2023
5948e43
infrastructure for passing extra args to Zygote and WebViewZygote
muhomorr Sep 23, 2023
7786bbe
infrastructure for passing SELinux flags to the kernel
muhomorr Sep 24, 2023
93046cb
add per-app setting for hardened_malloc and extended VA space
muhomorr Sep 26, 2023
928898a
always stop app zygotes when app is being force-stopped
muhomorr Nov 8, 2023
07191b7
add per-app native debugging setting
muhomorr Sep 26, 2023
967cafb
add system API for getting app info by PID
muhomorr Nov 8, 2023
ef32998
infrastructure for handling callbacks from logd to system_server
muhomorr Nov 8, 2023
5727644
infrastructure for showing notifications about SELinux TSEC_FLAG denials
muhomorr Nov 15, 2023
6193c9a
show notification after app is blocked from accessing ptrace
muhomorr Nov 19, 2023
6073723
fix rate limiting for non-app tombstones
muhomorr Nov 8, 2023
d99656e
DropBoxManager: fix TreeSet API contract violations
muhomorr Dec 23, 2023
fb3438a
fix an upstream race condition in handling of system error files
muhomorr Oct 7, 2024
a0d64c3
DropBox: skip spurious system_server_crash entries
muhomorr Jan 15, 2024
4210d20
DropBox: skip fsck.f2fs results that don't contain errors
muhomorr Jan 16, 2024
68617c9
notify the user about notable system journal entries
muhomorr Nov 8, 2023
57f4232
support for per-app dynamic code loading restrictions
muhomorr Sep 26, 2023
2586d57
add test for SELinux flags-based per-app hardening features
muhomorr Sep 20, 2023
aad554f
add per-app memory tagging setting
muhomorr Nov 5, 2023
96ab408
Widevine provisioning setting
maade93791 Sep 29, 2023
832d4fd
hide from Aurora Store packages that it's not allowed to update
muhomorr Jan 15, 2024
ed8ed5f
run full explicit GC in SystemUI and system_server after locking
thestinger Feb 2, 2024
9ea8d5e
add setting for USB port security state
muhomorr Feb 23, 2024
234ccea
Do not use filter calling uid parameter originally intended for insta…
quh4gko8 Nov 3, 2023
c5ac071
Disallow the camera shortcut toggle from the lockscreen
neelchauhan May 28, 2024
a6dc0d4
disable support for adoptable storage
muhomorr May 29, 2024
f76c155
add a helper class for wiping eUICCs
muhomorr May 29, 2024
ae21bf7
extend the upstream wipe-without-reboot implementation
muhomorr Jun 1, 2024
eb39185
add duress password feature
muhomorr May 29, 2024
6bb49fa
add lock_settings shell commands for testing the duress password feature
muhomorr May 30, 2024
6fa68ce
add lock_settings shell command option for printing executed Weaver ops
muhomorr Jun 1, 2024
37c8851
add a test for the duress password feature
muhomorr May 29, 2024
a8b5188
fix ApplicationInfo flag initialization being skipped in some cases
muhomorr Jun 13, 2024
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
01e67ea
Bump flatted in /packages/SystemUI/scripts/token_alignment
dependabot[bot] Jun 18, 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
13 changes: 10 additions & 3 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 Expand Up @@ -335,7 +337,12 @@ int main(int argc, char* const argv[])
if (zygote) {
runtime.start("com.android.internal.os.ZygoteInit", args, zygote);
} else if (!className.empty()) {
runtime.start("com.android.internal.os.RuntimeInit", args, zygote);
const char* isExecSpawning = getenv("IS_EXEC_SPAWNED_APP_PROCESS");
if (isExecSpawning != nullptr && strcmp(isExecSpawning, "1") == 0) {
runtime.start("com.android.internal.os.ZygoteInit", args, false);
} else {
runtime.start("com.android.internal.os.RuntimeInit", args, zygote);
}
} else {
fprintf(stderr, "Error: no class name or --zygote supplied.\n");
app_usage();
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
52 changes: 51 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,38 @@ 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 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 +619,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