Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
444 commits
Select commit Hold shift + click to select a range
ea200a2
require vendor camera extensions package to be a system app by default
muhomorr Mar 30, 2023
f16669e
add config for Pixel Camera Services
muhomorr Jan 9, 2024
f013d2c
infrastructure for creating per-package seinfo overrides
muhomorr Mar 30, 2023
4c4c506
support denying special access to hardware accelerators by Google apps
muhomorr Apr 6, 2023
26835bf
add GNSS PSDS setting
muhomorr May 2, 2023
27fdd4f
support redirecting ContentProvider calls to another provider
muhomorr May 16, 2023
3ad2e13
infrastructure for the Contact Scopes feature
muhomorr May 16, 2023
70f523a
add connectivity checks setting and its migration from Settings.Global
muhomorr May 25, 2023
c7b7e2c
Wi-Fi auto turn off
muhomorr Jul 31, 2022
8b56dfe
Bluetooth auto turn off
muhomorr Jul 31, 2022
cedd8d3
add support for hooking LocationManager methods
muhomorr Jun 19, 2023
5eecc01
improve compat with apps that try to access network location provider
muhomorr Jun 19, 2023
7e49903
add RemoteKeyProvisioning server override setting
muhomorr Aug 10, 2023
0a88325
do not delete compiled code (OAT files) of hibernated apps
muhomorr Oct 11, 2023
4cb99bf
add notification-based UI for the background dexopt job
muhomorr Oct 23, 2023
4dbb1c2
infrastructure for per-package dex2oat compiler filter overrides
muhomorr Oct 31, 2023
4346202
always use speed dex2oat compiler filter for VPN service packages
muhomorr Nov 1, 2023
2c2b737
add helper class for notifications that link AppSwitch UI
muhomorr Nov 8, 2023
979deec
infrastructure for passing extra args to Zygote and WebViewZygote
muhomorr Sep 23, 2023
f951bff
infrastructure for passing SELinux flags to the kernel
muhomorr Sep 24, 2023
a0d0755
add per-app setting for hardened_malloc and extended VA space
muhomorr Sep 26, 2023
c3368e3
always stop app zygotes when app is being force-stopped
muhomorr Nov 8, 2023
fd2be63
add per-app native debugging setting
muhomorr Sep 26, 2023
a63f846
add system API for getting app info by PID
muhomorr Nov 8, 2023
0478e7f
infrastructure for handling callbacks from logd to system_server
muhomorr Nov 8, 2023
33dd65c
infrastructure for showing notifications about SELinux TSEC_FLAG denials
muhomorr Nov 15, 2023
63d3dae
show notification after app is blocked from accessing ptrace
muhomorr Nov 19, 2023
be0b729
fix rate limiting for non-app tombstones
muhomorr Nov 8, 2023
2b7a50c
DropBoxManager: fix TreeSet API contract violations
muhomorr Dec 23, 2023
f2a95e2
fix an upstream race condition in handling of system error files
muhomorr Oct 7, 2024
9d1e092
DropBox: skip spurious system_server_crash entries
muhomorr Jan 15, 2024
4135597
DropBox: skip fsck.f2fs results that don't contain errors
muhomorr Jan 16, 2024
a03cebe
notify the user about notable system journal entries
muhomorr Nov 8, 2023
6c42dcc
support for per-app dynamic code loading restrictions
muhomorr Sep 26, 2023
89c8f9d
add test for SELinux flags-based per-app hardening features
muhomorr Sep 20, 2023
add3301
add per-app memory tagging setting
muhomorr Nov 5, 2023
f47fffa
Widevine provisioning setting
maade93791 Sep 29, 2023
03b7795
hide from Aurora Store packages that it's not allowed to update
muhomorr Jan 15, 2024
000c9e4
run full explicit GC in SystemUI and system_server after locking
thestinger Feb 2, 2024
ea3a5c3
add setting for USB port security state
muhomorr Feb 23, 2024
3458c47
Do not use filter calling uid parameter originally intended for insta…
quh4gko8 Nov 3, 2023
2c181b0
Disallow the camera shortcut toggle from the lockscreen
neelchauhan May 28, 2024
a3934d6
disable support for adoptable storage
muhomorr May 29, 2024
c6750f2
add a helper class for wiping eUICCs
muhomorr May 29, 2024
c5d6205
extend the upstream wipe-without-reboot implementation
muhomorr Jun 1, 2024
cf79e42
add duress password feature
muhomorr May 29, 2024
938dd01
add lock_settings shell commands for testing the duress password feature
muhomorr May 30, 2024
115fbe8
add lock_settings shell command option for printing executed Weaver ops
muhomorr Jun 1, 2024
4ea7cf2
add a test for the duress password feature
muhomorr May 29, 2024
524147d
fix ApplicationInfo flag initialization being skipped in some cases
muhomorr Jun 13, 2024
521dac8
stub out reads of hidden system settings in Google's text-to-speech app
muhomorr Jul 1, 2024
c9f231c
make Google's text-to-speech app force-queryable
muhomorr Nov 25, 2024
3d536e9
show a deprecation warning dialog on each launch of a 32-bit app
muhomorr Jul 6, 2024
acc1c3f
better 32-bit deprecation warning
thestinger Jul 7, 2024
82a635b
fix touch-to-unlock on Google devices with side fingerprint scanner
muhomorr Jul 16, 2024
47b61da
add setting for alternative touchscreen mode
muhomorr Jun 19, 2024
510c56b
don't report some android.hardware.bluetooth-service.bcmbtlinux crashes
muhomorr Aug 5, 2024
9ebb1f3
don't report harmless fingerprint-service.goodix crash
muhomorr Nov 15, 2024
60ebeb3
sysconfig: support enabling association restrictions without exemptions
muhomorr Aug 29, 2024
2d02160
add config for Pixel Health app
muhomorr Aug 26, 2024
4b1f94e
new PermissionService: implement shouldBlockGrantRuntimePermission()
muhomorr Aug 10, 2024
7bb5bb5
new PermissionService: implement updatePermissions()
muhomorr Aug 10, 2024
703eeed
new PermissionService: implement PackageHooks support
muhomorr Aug 10, 2024
83db866
new PermissionService: support for special runtime permissions
muhomorr Aug 11, 2024
cbbdb77
ignore factory reset protection (FRP)
muhomorr Oct 16, 2024
fc01d41
disable memory tagging for Pixel Camera Services
muhomorr Oct 20, 2024
fc3ef25
don't remove app widgets from user's home screen when the user stops
muhomorr Oct 22, 2024
cb460b0
raise backup transport timeout
thestinger Oct 23, 2024
eeb3d26
add utility class for obtaining and keeping track of Binder caller info
muhomorr Nov 4, 2024
87a1edc
fix handling of MATCH_ARCHIVED_PACKAGES flag in getPackageUidInternal()
muhomorr Nov 4, 2024
04d1a74
delay activation of the Allow button in USB ADB confirmation dialog
muhomorr Dec 5, 2024
e88b7d0
FusedLocation: remove racy and redundant lazy init in Service.onBind()
muhomorr Dec 4, 2024
e7ed95b
never remove location providers at runtime
muhomorr Dec 4, 2024
6e6a97f
disable safe media volume management
muhomorr Dec 11, 2024
d1168e8
add battery charge limit setting
muhomorr Dec 29, 2024
b186437
SystemUI: add support for battery charge limit feature
muhomorr Dec 29, 2024
2a0ff8b
add dev option to log Java binder transaction
muhomorr Dec 28, 2024
22041d3
prevent recycling user IDs
u-fred Dec 21, 2024
5e41574
backend part of 2FA changes
muhomorr Nov 12, 2025
c0a5a8a
throw Exception to notify of SceneContainerFlag
u-fred Dec 21, 2024
a794c82
prevent face auth in KUM
u-fred Dec 21, 2024
2fb790d
fix upstream fingerprint mode change bug
u-fred Dec 21, 2024
edc3c9c
fix feature check in DPMS.getPasswordMinimumMetricsUnchecked()
muhomorr Dec 25, 2024
adef7df
fix collision check in SyntheticPasswordManager.generateProtectorId()
muhomorr Dec 25, 2024
9d27f4c
SystemUI: don't skip fingerprint auth success haptic when 2FA is on
muhomorr Jan 3, 2025
fee5668
add workaround for SSM.newTargetUser() system_server crash
muhomorr Jan 6, 2025
0d8b857
don't break boot of debug OS build on permission allowlist violations
muhomorr Jan 7, 2025
af146c5
opt-out TunerSettings from edge-to-edge
thestinger Jan 9, 2025
a87156d
protect against upstream bugs bypassing 2FA
thestinger Jan 14, 2025
dd1f6c5
fix serious upstream lockscreen animation bug
thestinger Jan 14, 2025
fd11ac0
zygote: don't reload android.os.Build after applying appcompat sysprops
muhomorr Jan 24, 2025
59fc44e
enable appcompat sysprop overrides for user-installed apps
muhomorr Jan 24, 2025
40745ff
don't delay setting observer callbacks for background system packages
muhomorr Feb 1, 2025
4024300
add network location setting
soupslurpr Nov 5, 2024
53434fa
add network location provider to config_locationProviderPackageNames
soupslurpr Dec 24, 2024
4b28a7c
FusedLocation: don't attempt to flush inactive providers
muhomorr Feb 28, 2025
fb45d46
exclude Network Location from location indicator
thestinger Feb 28, 2025
0bde0e6
disable HttpEngine preloading for exec spawning
muhomorr Mar 5, 2025
7ad72df
SystemUI: make screenshot sound use sound effects setting
muhomorr Mar 8, 2025
8ff73c1
SystemUI: Fix constraints for keyguard slice view
luk1337 Dec 28, 2024
7c37d5c
SystemUI: Don't remove keyguard slice view
luk1337 Dec 28, 2024
3c147e5
SystemUI: Fix burn-in translations not applying to keyguard slices
AndyCGYan Jan 18, 2025
334238c
config: enable desktop mode support
muhomorr Mar 15, 2025
e92a6e9
SystemUI: fix keyguard media section placement when split shade is used
muhomorr Mar 18, 2025
b5e2779
SystemUI: fix orientation of keyguard slice view rows
muhomorr Mar 20, 2025
feaf87c
SystemUI: don't hide date text on lockscreen when media is playing
muhomorr Mar 20, 2025
b73c2eb
SystemUI: add keyguard slice view to split shade layout
muhomorr Mar 20, 2025
2e31463
don't allow to install APEXes on user builds
muhomorr Mar 23, 2025
b4e4f4e
fix NPE system_server crash in F2fsUtils.getFilesRecursive()
muhomorr Mar 28, 2025
fb5c912
don't allow enabling the instant apps feature
muhomorr Mar 30, 2025
525f822
don't allow enabling the "add users when locked" setting
muhomorr Mar 30, 2025
f59fced
fix upstream RecoverySystem.verifyPackage vulnerability
thestinger Apr 9, 2025
7b2ecbd
Section for adding non-runtime permissions downstream
quh4gko8 Dec 15, 2024
aba29d6
Add permission definition to read additional security state
quh4gko8 Dec 18, 2024
b58b9a2
Extend getting security state bundle to include downstream configurat…
quh4gko8 Dec 16, 2024
222e629
Method to fetch if a user can have a specific profile type
quh4gko8 Apr 2, 2025
f65ed12
Set secondary secondary users allow having private profiles
quh4gko8 Apr 2, 2025
703c142
Support adding private profiles when parent user can have private pro…
quh4gko8 Apr 2, 2025
e45ec71
Settings definition for cross profile clipboard access
quh4gko8 Mar 25, 2025
f0d66ac
Enforce cross profile clipboard access settings
quh4gko8 Mar 25, 2025
46b349e
bugfix: correctly find private profile in main user
quh4gko8 May 17, 2025
a7d6fb5
AppCopyHelper: store Context argument as a field
quh4gko8 Dec 31, 2024
44e5527
AppCopyHelper: Extend SelectableAppInfo fields with info stored from …
quh4gko8 Dec 31, 2024
f6c52a7
NFC auto turn off
mrxx0 Mar 15, 2025
cdd6f51
Definition of setting to disallow delayed locking on user stop or lock
quh4gko8 May 18, 2025
892fb96
Enforce setting to disallow delayed locking for user when stopped/locked
quh4gko8 May 18, 2025
c7326a0
Always cache users that delay storage locking
quh4gko8 May 20, 2025
55f0166
Lock cached profiles that delay locking of storage when parent user i…
quh4gko8 May 20, 2025
16da6ef
bugfix: appropriately set quiet mode when being enabled/disabled
quh4gko8 May 22, 2025
3b00b06
Set quiet mode and stop certain profiles when its parent user is star…
quh4gko8 May 20, 2025
3905c6f
Definition of AppInfoExt flag for apps signed using Play signing
quh4gko8 May 27, 2025
e11c7f8
Append AppInfoExt flag for apps signed with Play signing
quh4gko8 May 27, 2025
80831d7
PackageExt: Method to check for presence of an AppInfoExt flag
quh4gko8 May 27, 2025
de4a726
Hide provider(s) for startup on apps with valid Play Store source stamp
quh4gko8 May 27, 2025
4403137
16: definition for Google Battery interface
quh4gko8 Jun 11, 2025
ef69932
fix DevicePolicyManager#logoutUser to succeed without device admin
quh4gko8 Jun 11, 2025
b7d2760
allow SystemUITests to read SystemUI-readable settings on debug builds
inthewaves Jun 13, 2025
1d98e15
allow system apps to opt-out of edge-to-edge enforcement
muhomorr2 Jun 12, 2025
fbc964f
_fixup! allow SystemUITests to read SystemUI-readable settings on deb…
muhomorr2 Jun 15, 2025
b38c30f
don't enable port security restrictions by default on debug builds
muhomorr2 Jun 23, 2025
2937197
aapt2: add host library for parsing aapt2 protobuf APKs
muhomorr Dec 16, 2024
4df98a2
never force camera sound
muhomorr Jun 28, 2025
bb8d46c
set max number of running users based on total memory size
muhomorr Jun 28, 2025
fc02c7f
Revert "Legacy app compatibility workaround"
thestinger Jun 30, 2025
f033f73
fix Keyguard slice
u-fred Jul 4, 2025
f3465b2
add lockscreen synchronisation failsafe
u-fred Jul 4, 2025
1ab4912
restrict custom activity animations for third-party apps
muhomorr Jul 7, 2025
c652ce8
temporarily remove NFC auto-off feature
thestinger Jul 8, 2025
0186a72
SystemUI: clear keyguard indication background and icon on empty text
inthewaves Jul 4, 2025
4e876e5
use shared bitmaps in MediaMetadata to avoid Binder failures
muhomorr Jul 20, 2025
629f7f1
add ConnectivityUtil
u-fred Jun 5, 2025
17dbaf3
remove dev option to switch to a pseudo-locale
muhomorr Jul 30, 2025
95970b9
[temporary] make AOSP dialer call notifications not groupable
inthewaves Jul 30, 2025
d5f5e91
add Geocoder setting
soupslurpr Jul 27, 2025
b535359
require android.permission.INTERNET to use geocoder
soupslurpr Jul 27, 2025
f9f71fc
reduce time update threshold from 2000ms to 50ms
thestinger Aug 9, 2025
5fdbded
gmscompat: add stub for Debug.dumpService("media_projection")
muhomorr Sep 3, 2025
6c14c43
gmscompat: add READ_PHONE_NUMBERS uses-permission to GmsCore
muhomorr Sep 26, 2025
651f2dd
PackageExt: add Bugle (Google Messages) ids
muhomorr Sep 26, 2025
a140222
gmscompat: allow device identifier access to GmsCore when Bugle has it
muhomorr Sep 26, 2025
cb8c3d1
SystemUI: split PowerNotificationWarnings into Google-specific class
inthewaves Jul 8, 2025
a0c9351
SystemUI: add battery replacement notification for bluejay
inthewaves Jul 8, 2025
f73f5b2
telephony: add method to expose overridden carrier config
inthewaves Sep 27, 2025
3e91c9d
SettingsLib: add alwaysExpand to TopIntroPreference
inthewaves Sep 28, 2025
784b160
add infrastructure for extended SIM state
inthewaves Oct 2, 2025
196423c
SettingsLib: fix RestrictedPreference not updating properly
inthewaves Sep 27, 2025
f6ce781
adjust infrastructure for carrier config overrides
muhomorr Oct 2, 2025
ce35195
gmscompat: add stub for Window.setHideOverlayWindows()
muhomorr Oct 3, 2025
391ad9c
gmscompat: simplify Build.getSerial() shim
muhomorr Sep 29, 2025
94a16d4
gmscompat: add stub for TelephonyManager.getImei()
muhomorr Oct 8, 2025
59d74a5
gmscompat: make Play Store ignore app auto-install config
muhomorr Oct 8, 2025
1301bdc
gmscompat: adjust to Stub.Proxy binder classes being public
muhomorr Oct 20, 2025
5991885
gmscompat: add support for clearing caches of Java binder wrappers
muhomorr Oct 20, 2025
c42d94e
add is_dev_build aconfig flag
muhomorr Oct 20, 2025
bb7c3e6
gmscompat: add support for granting any permission to GmsCore on dev …
muhomorr Oct 20, 2025
9973ebb
gmscompat: add hooks for overriding BinderProxy transactions
muhomorr Oct 20, 2025
ae3087b
add grapheneos.version system feature
muhomorr Oct 20, 2025
8d85032
aapt2: add optimized proto-adevtool APK conversion format
muhomorr Nov 12, 2025
333a5a0
aapt2: add "dump brief-package-info" command
muhomorr Nov 12, 2025
7fb0ea1
add TODO
muhomorr Nov 12, 2025
6c9270b
SettingsProvider: add migration for BIOMETRIC_KEYGUARD_ENABLED setting
muhomorr Nov 14, 2025
2594a80
fix styling of ext entries on TogglePermissionAppInfoPages
muhomorr Nov 17, 2025
120d39d
SystemUI: add QSTileConfig for NFC tile
muhomorr Nov 17, 2025
212b423
add back coarse location access indicator
muhomorr Dec 5, 2025
b030e0f
remove unused legacy code for special runtime permission support
muhomorr Nov 20, 2025
264911d
Revert "SystemUI: don't skip fingerprint auth success haptic when 2FA…
muhomorr Dec 5, 2025
7fa8c5c
temp: PIN scrambling without 2FA
muhomorr Dec 5, 2025
3fc733f
add TODO-16-qpr2
muhomorr Dec 5, 2025
a5f6a92
fixup! enable backup service for non-owner users
muhomorr Dec 6, 2025
c6c05f3
fixup! add duress password feature
muhomorr Dec 6, 2025
f2fe6df
restore Private space availability
muhomorr Dec 6, 2025
a8e9af5
add second factor UI
muhomorr Nov 12, 2025
9ce9191
append "Safe" to risky upstream method names
u-fred Dec 22, 2024
6cdca92
add second factor to fingerprint unlock
muhomorr Nov 12, 2025
45af195
Revert "temp: PIN scrambling without 2FA"
muhomorr Dec 6, 2025
78944d6
Reapply "SystemUI: don't skip fingerprint auth success haptic when 2F…
muhomorr Dec 6, 2025
8f96f59
Revert "add TODO-16-qpr2"
muhomorr Dec 6, 2025
859590e
gmscompat: add stubs for 16 QPR2
muhomorr Dec 6, 2025
d9fd701
fixup! perform additional boot-time checks on system package updates
muhomorr Dec 8, 2025
709b972
fixup! backend part of 2FA changes
muhomorr Dec 8, 2025
219a494
fixup! append "Safe" to risky upstream method names
muhomorr Dec 8, 2025
6b28c34
fixup! add second factor to fingerprint unlock
muhomorr Dec 8, 2025
82c25ff
tests for backend part of 2FA changes
muhomorr Nov 12, 2025
1faefe3
fixup! tests for backend part of 2FA changes
muhomorr Dec 8, 2025
eb6edaa
tests for "add second factor UI" change
muhomorr Nov 12, 2025
8bc4cb6
fixup! tests for "add second factor UI" change
muhomorr Dec 8, 2025
c5d5705
tests for "add second factor to fingerprint unlock" change
muhomorr Nov 12, 2025
dc33c5f
mark notification summaries & organizer as unsupported by default
inthewaves Dec 11, 2025
63b157a
force default unsupported notification adjustments
inthewaves Dec 11, 2025
2b43016
fix missing notification backgrounds
bisuhkfurio Dec 12, 2025
6d8109d
set initial port security state at an earlier boot stage
muhomorr Dec 13, 2025
58da741
Revert "config: enable desktop mode support"
muhomorr Dec 14, 2025
b27dd67
add a workaround for WallpaperManagerService.hasPermission() crash
muhomorr Dec 17, 2025
991553d
fix system_server crash in NotificationHistory.getPooledStringsToWrite()
muhomorr Dec 17, 2025
3c9c721
remove end session button on lockscreen
inthewaves Dec 23, 2025
8d0640b
add Process.isMemoryTaggingSupported() system API
muhomorr Dec 24, 2025
edb8148
Revert "fix DevicePolicyManager#logoutUser to succeed without device …
muhomorr Dec 24, 2025
7a2d0c0
Revert "enable secondary user logout support by default"
muhomorr Dec 24, 2025
ef3aac0
SystemUI: enable UserManager logout support
muhomorr Dec 24, 2025
e05bbe6
fix system_server crash in NotificationHistoryProtoHelper
muhomorr Dec 24, 2025
d064fe0
fixup! gmscompat: add support for clearing caches of Java binder wrap…
quh4gko8 Dec 18, 2025
db5b3cd
add workaround for KeySetManagerService system_server crash
muhomorr Dec 30, 2025
449a7cf
fixup! infrastructure for spoofing self permission checks
muhomorr Jan 2, 2026
62b611b
disable the upstream USB data protection feature
muhomorr Jan 3, 2026
0ad2355
issue the CHARGING_ONLY_IMMEDIATE port control command in more cases
muhomorr Jan 6, 2026
63c1016
skip all pseudo kernel crash reports caused by device reboot
muhomorr Jan 3, 2026
b0bbf97
add workaround for UsageStatsDatabase OOM system_server crash
muhomorr Jan 6, 2026
73bb435
add workaround for WindowContext.finalize() system_server crash
muhomorr Jan 6, 2026
3979674
gmscompat: narrow down the isNotificationListenerAccessGranted() stub
muhomorr Jan 3, 2026
75d3d83
gmscompat: add MEDIA_CONTENT_CONTROL uses-permission to Android Auto
muhomorr Jan 3, 2026
466ed2e
gmscompat: fix phenotype flags not working in GmsCore clients
muhomorr Jan 3, 2026
abb05ec
Revert "PackageInstallerUI: an option to skip auto-grant of INTERNET …
muhomorr Jan 7, 2026
688a644
Revert "PackageInstaller: fix crash when showing app's first confirma…
muhomorr Jan 7, 2026
de3dd66
Revert "PackageInstaller: link "App info" screen from the uninstallat…
muhomorr Jan 7, 2026
bb9e2af
add App info link to the app uninstall dialog
muhomorr Jan 7, 2026
bcab7b3
add app install dialog checkbox for skipping INTERNET perm pre-grant
muhomorr Jan 7, 2026
087ced4
use setCanceledOnTouchOutside(false) for app install confirmation dialog
muhomorr Jan 7, 2026
857e81b
re-enable the system keyboard at boot if it's disabled
muhomorr Jan 6, 2026
4996188
switch to the system keyboard when device boots to the safe mode
muhomorr Jan 6, 2026
fc51893
add "Reboot to safe mode" power menu button in BFU state
muhomorr Jan 6, 2026
58223e9
gmscompat: fix incorrect usage of createPackageContext()
muhomorr Jan 10, 2026
2034dc2
SettingsLib: add isDevelopmentSettingsEnabled() overload
muhomorr Jan 8, 2026
ae333ed
UsbPortSecurityHooks: add support for the standard USB data signal API
muhomorr Jan 10, 2026
664969b
gmscompat: add stub for ContentResolver.acquireUnstableProvider()
muhomorr Jan 10, 2026
ca73a0b
fix an upstream infinite loop bug in ProtoFieldFilter.skipBytes()
muhomorr Jan 14, 2026
ccfeb25
remove INTERNET uses-permission from Pixel Camera Services
muhomorr Dec 26, 2025
bbfcad7
update network location setting names
soupslurpr Jan 23, 2026
c5156ec
add Apple China option for network location
soupslurpr Jan 23, 2026
276106d
Revert "[temporary] make AOSP dialer call notifications not groupable"
inthewaves Jan 24, 2026
751e18e
Add toggle to hide location access indicator on a per-app basis
elian1203 Jan 27, 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
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions TODO-16-qpr1
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Skipped commits:
colors: Switch to GrapheneOS blue color palette for Material You
port 2FA tests
enable boot/bootloader/radio version checks (not clear whether it's needed)

Potential issue:
always-on Location indicator changes
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 @@ -2394,14 +2394,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 @@ -39,6 +39,7 @@
import android.app.usage.UsageStatsManager;
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 @@ -2549,6 +2550,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 @@ -244,6 +244,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 @@ -372,7 +373,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 @@ -45100,7 +45103,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
52 changes: 51 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.os.profiling.anomaly.flags.anomaly_detector_core") 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 @@ -145,6 +158,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 @@ -505,6 +550,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