Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
281 commits
Select commit Hold shift + click to select a range
8c25882
enable boot/bootloader/radio version checks
thestinger Jun 15, 2017
f5fb0ff
always set deprecated Build.SERIAL to UNKNOWN
thestinger Sep 7, 2017
60778e9
Display UART notification on user builds
flawedworld Jul 16, 2021
cf029a5
change system_server label from "Android System" to "GrapheneOS"
muhomorr Oct 23, 2023
734427b
core/config: [temporary] don't report statementservice crashes
thestinger Oct 20, 2021
1cc54e6
core/config: Set config_clockFontFamily to empty string
luk1337 Dec 9, 2022
8b0d599
core/config: enable doze and app standby
thestinger Oct 16, 2016
68cd8be
core/config: enable gesture navigation by default
thestinger Nov 28, 2018
a6c58e8
core/config: enable multi user UI
thestinger Nov 28, 2018
fe35af4
core/config: revert to pre-12 power button behavior
thestinger Oct 9, 2021
0da26d1
core/config: raise maximum users to 32
thestinger Nov 28, 2018
f951897
core/config: disable long press on power assistant setting
thestinger Oct 17, 2021
50b5380
core/config: disable safe volume everywhere, not just the US
rustybird Apr 22, 2020
7c674e4
core/config: use Cloudflare DNS as the default fallback
thestinger Apr 2, 2018
896b7b1
core/config: set GrapheneOS launcher as notification listener
thestinger Mar 16, 2021
8a948c6
core/config: use round adaptive icon mask and parse round icons
thestinger Mar 10, 2018
0e731c9
core/config: decrease minimum color temperature for Night Light to 686K
thestinger Aug 26, 2022
b261109
core/config: add camera app QrTile activity as default
empratyush Oct 29, 2022
9f7c7ef
SettingsLib: use Cloudflare DNS servers as hints
thestinger Apr 2, 2018
442218e
SettingsLib: support replacing drawable in SelectorWithWidgetPreference
muhomorr May 16, 2023
79d76db
SettingsLib: allow Permission APEX to use ActionButtons and MainSwitch
muhomorr Jul 2, 2022
07cb59a
SettingsLib: show more APK details on App info screen
muhomorr Mar 2, 2024
ae0d90d
SettingsLib: add support for extending permission toggle UIs
muhomorr Mar 2, 2024
b398a26
SettingsProvider: disable bluetooth by default
thestinger Dec 4, 2018
b621021
SettingsProvider: enable backup support via seedvault
thestinger Oct 15, 2021
d23cdf1
SettingsProvider: set TEXT_SHOW_PASSWORD to false by default
thestinger Feb 3, 2017
5ada243
SettingsProvider: Enable screen auto brightness by default
x86pup Jan 6, 2023
e4bf48f
SettingsProvider: hide sensitive information while locked by default
thestinger Jan 2, 2017
af03df8
SettingsProvider: Migration for legacy fingerprint keyguard toggle
flawedworld Oct 18, 2021
66e42b7
SettingsProvider: add a helper class for migrating Global,Secure values
muhomorr May 24, 2023
0c1dc5f
SettingsProviderHooks: Infrastructure for hooking settings state init
quh4gko8 Jun 29, 2023
c16a78f
Disable "Add users when locked" settings on every boot
quh4gko8 Jul 1, 2023
01a588a
Disable instant apps feature on every boot
quh4gko8 Jul 1, 2023
f3ce28e
CarrierConfig: Always show APN settings on CDMA carriers
flawedworld Sep 28, 2021
e01ef9b
CarrierConfig: Do not mark dun APN types as read only
flawedworld Feb 9, 2022
73d9f2d
CarrierConfig: Always show ICCID
flawedworld Mar 5, 2022
41f9eaa
CarrierConfig: allow toggling VoWiFi while roaming by default
x86pup Mar 24, 2023
1f6e94a
enable secondary user logout support by default
flawedworld Oct 15, 2021
43a6034
enable backup service for non-owner users
empratyush May 2, 2021
bc8e43a
increase default max password length to 64
thestinger Jun 29, 2017
dae521e
increase default max password length to 128
neelchauhan May 24, 2024
d46bcca
GrapheneOS boot logo mask
thestinger May 11, 2019
6c14a4e
use black wallpaper by default
thestinger Mar 7, 2022
6c28596
stop auto-granting location to system browsers
thestinger Mar 17, 2019
75690a4
appop: Save discrete app op history for more permissions
kdrag0n Oct 11, 2021
ba72397
add check for empty TTS engine name
thestinger Dec 20, 2020
6f8ccca
Add a config to state whether a device supports increased touch sensi…
lzlrd Jun 30, 2021
0496acc
stop enforcing camera sound for certain carriers
thestinger Feb 11, 2022
297a962
colors: Switch to GrapheneOS blue color palette for Material You
kdrag0n Mar 7, 2022
e29f6ed
improve PendingIntent security check compatibility
thestinger Mar 18, 2022
46f19b2
Show USB icon in notification instead of generic system icon
kdrag0n Oct 6, 2020
7075736
Sharesheet: Display two rows of max ranked targets
luk1337 Oct 28, 2020
0edd79f
extsettings: add a set of helper classes for defining system settings
muhomorr Feb 12, 2023
670a4f8
add exec-based spawning support
thestinger Mar 14, 2015
e5dc4ba
disable exec spawning when using debugging options
thestinger May 22, 2019
17ed20f
add parameter for avoiding full preload with exec
thestinger May 14, 2019
3fd8042
pass through fullPreload to libcore
thestinger Sep 11, 2019
449c1e5
disable OpenGL preloading for exec spawning
thestinger May 14, 2019
26e2744
Revert "disable OpenGL preloading for exec spawning"
thestinger Oct 16, 2021
b9d72fc
disable resource preloading for exec spawning
thestinger May 14, 2019
b41cfc9
disable class preloading for exec spawning
thestinger May 14, 2019
8bade4f
disable WebView reservation for exec spawning
thestinger May 14, 2019
a1cf16c
disable JCA provider warm up for exec spawning
thestinger May 14, 2019
51bbb96
disable preloading classloaders for exec spawning
thestinger Sep 11, 2019
aaa670f
disable preloading HALs for exec spawning
thestinger Sep 11, 2019
2b9ab24
pass through runtime flags for exec spawning and implement them in th…
randomhydrosol Oct 30, 2020
9890fae
exec spawning: don't close the binder connection when the app crashes
muhomorr Aug 8, 2022
da90429
add a wrapper for execveat(2)
muhomorr Aug 14, 2022
e6b8ae4
zygote: define runtime flags that depend on exec spawning
muhomorr Aug 14, 2022
fb6cda0
exec spawning: support runtime resource overlays
muhomorr Mar 30, 2023
5da25c3
exec spawning: support disabling hardened_malloc and extended VA space
muhomorr Aug 14, 2022
732a4ec
exec spawning: add workaround for late init of ART userfaultfd GC
muhomorr Apr 9, 2024
d4e4af4
use HTTPS X-Time header for time updates instead of NTP
muhomorr Jan 23, 2024
2f5ef3d
extend auto-time setting to forced time updates
muhomorr Jan 24, 2024
bdfb513
reduce system clock drift warning
thestinger Feb 22, 2023
30a4dfe
core/config: disable using telephony-based auto time
thestinger Feb 22, 2023
1966001
add system package check methods to PackageUtils
muhomorr Jun 22, 2023
5a30153
filter out non-system packages from location indicator exemptions
muhomorr Jun 22, 2023
6270121
filter out non-system packages from getLocationBypassPackages() result
muhomorr Jun 22, 2023
45b3589
define package name of first-party app source
muhomorr Jan 3, 2024
d13a8c9
SystemUI: require unlocking to use QS tiles by default
muhomorr Mar 11, 2024
e63ec5d
SystemUI: allow to use some QS tiles while device is locked
muhomorr Mar 11, 2024
a7366a5
SystemUI: enable NFC quick settings tile
thestinger Mar 17, 2019
107b954
SystemUI: Enable production-ready feature flags
kdrag0n Mar 14, 2022
ae39293
SystemUI: Use new privacy indicators for location
kdrag0n Oct 11, 2021
c38dc1e
SystemUI: fully enable location indicators by default
thestinger Aug 17, 2022
cfe0723
SystemUI: specify config_sceenshotWorkProfileFilesApp
muhomorr Jun 18, 2023
50caf8d
SystemUI: improve media projection dialog wording
muhomorr Jan 22, 2023
963cbee
SystemUI: add Battery share & Battery share quick tiles
empratyush Jun 21, 2022
4c5a93e
SystemUI: change default quick tiles and quick tile order
thestinger Oct 19, 2021
353307f
SystemUI: make screenshot sound use touch sounds setting
x86pup Mar 19, 2023
4f753ed
SystemUI: apply "Add users from lock screen" setting to guest users
muhomorr Jun 23, 2023
a69b139
SystemUI: Allow customizing lock screen shortcuts via ThemePicker
quh4gko8 Oct 10, 2023
ef83af4
Add config to exempt telephony-related app from location indicators
kdrag0n Feb 17, 2022
bf14b1a
exempt some system packages from status bar privacy indicator
thestinger Apr 17, 2022
25fea4e
allow PackageInstaller to use platform APIs
muhomorr Mar 5, 2024
bf9914f
PackageInstaller: link "App info" screen from the uninstallation dialog
muhomorr Apr 17, 2022
b419cd3
PackageInstaller: fix NPE due to a race condition in PackageUtil
muhomorr Aug 15, 2024
222f7bf
disable support for pre-approving PackageInstaller sessions
muhomorr Dec 22, 2023
521f90b
define READ_LOGS_FULL permission for promptless logcat access
muhomorr Jan 6, 2024
be46f7f
add APIs for launching LogViewer app
muhomorr Jan 6, 2024
e417340
add helpers for system_server extensions
muhomorr Jul 31, 2022
d275673
Warn the user if they are using a prototype Pixel device
flawedworld Jun 15, 2022
106049b
Support forwarding notifications from other users
x86pup Mar 19, 2022
63ce6f2
DeviceIdleJobsController: don't ignore whitelisted system apps
muhomorr Jul 7, 2022
d34c3ec
do not allow disabling app visibility filtering
muhomorr Apr 6, 2023
de1530a
add hooks for modifying PackageManagerService behavior
muhomorr Mar 27, 2023
c041200
rename AppsFilterImpl.grantImplicitAccess method
muhomorr Apr 30, 2024
747b1d3
add hooks for modifying ActivityThread behavior
muhomorr Aug 18, 2023
4ae27f1
AppBindArgs: infrastructure for passing extra args to app process init
muhomorr May 16, 2023
b9db494
infrastructure for custom handling of known packages
muhomorr Dec 20, 2023
bb22689
gosps: support for per-app GrapheneOS-specific persistent state
muhomorr Jul 31, 2022
52cbae7
extend excludedMethods list in AndroidPackageTest
muhomorr Jun 2, 2024
8f09442
add method for updating cached package permission state
muhomorr Dec 18, 2023
e9746ee
PackageHooks: infrastructure for per-package hooks in system_server
muhomorr Dec 18, 2023
8d70e8c
add base class for complex per-app switches
muhomorr Sep 24, 2023
a0ac0dc
SettingsLib: add CategoryKey for Exploit protection screen
muhomorr Jul 30, 2024
65883ae
infrastructure for spoofing self permission checks
muhomorr Jul 31, 2022
fdd7c16
infrastructure for special runtime permissions
muhomorr Feb 9, 2023
16ee0e4
add special runtime permission for other sensors
muhomorr Feb 9, 2023
426ebe8
notify the user when sensors access is denied by OTHER_SENSORS perm
muhomorr Oct 4, 2022
7cd647e
make INTERNET into a special runtime permission
thestinger Mar 17, 2019
b5496f4
improve compatibility of INTERNET special runtime permission
muhomorr Jul 31, 2022
dafbdf2
don't run jobs that need connectivity in apps that lack INTERNET perm
muhomorr May 19, 2023
d228141
PackageInstallerUI: an option to skip auto-grant of INTERNET permission
muhomorr Oct 7, 2022
1158e9f
use permanent fingerprint lockout immediately
thestinger Sep 12, 2017
e147282
add system property for disabling keyguard camera
thestinger Jul 25, 2017
095a856
add auto-reboot feature
muhomorr Jan 13, 2024
85b07f6
infrastructure for the Storage Scopes feature
muhomorr Jul 31, 2022
475b9bb
sscopes: temp: disable incomplete handling of READ_MEDIA_VISUAL_USER_…
muhomorr Oct 5, 2023
0289d24
control access to Android/obb directory with a GosPackageState flag
muhomorr Jul 31, 2022
b239018
add an option to show the details of an application error to the user
muhomorr Aug 8, 2022
ecf6366
ErrorDialogController: do not auto-dismiss crash dialogs
muhomorr Oct 1, 2023
0d0fdbe
Set always-on and lockdown on by default on first vpn connection at s…
quh4gko8 Aug 1, 2022
07bfa87
pre-grant POST_NOTIFICATIONS to more system apps
muhomorr Aug 22, 2022
8a6d778
allow privileged installer to search for packages across all users
muhomorr Nov 23, 2022
d7a3aab
extend original-package renaming to provider authorities for Vanadium
muhomorr Nov 5, 2022
bb05a13
extend original-package renaming to static launcher shortcuts
muhomorr Nov 23, 2022
2d023ee
bugfix: properly acquire package state from original package
quh4gko8 Mar 13, 2024
50bad2f
disable package parser cache
muhomorr Jan 30, 2023
f248285
perform additional boot-time checks on system package updates
muhomorr Jan 31, 2023
4276716
allow out-of-band package updates to use original-package system
muhomorr Jan 27, 2023
80f4c29
require fs-verity when installing system package updates
muhomorr Jan 31, 2023
a7d432e
don't allow updating system packages to the same versionCode
muhomorr Dec 27, 2022
8329f4d
allow privileged installers to use getSharedLibraries(MATCH_ANY_USER)
muhomorr Mar 30, 2024
0f440e4
allow only first party app source and shell to update system packages
muhomorr May 2, 2024
62029c8
Remove build fingerprint from screenshot EXIF
x86pup Apr 29, 2022
4d707e3
add toggle for screenshot timestamp EXIF metadata
x86pup Feb 18, 2023
06a52a5
SUPL: Don't send IMSI / Phone number to SUPL server
MSe1969 Oct 29, 2018
9210e8f
add GNSS SUPL setting
muhomorr Mar 3, 2023
3488118
allow privileged installers to maintain a global list of busy packages
muhomorr Mar 4, 2023
20cc1c6
add option to scramble PIN layout
muhomorr Feb 24, 2023
d69f956
enable LOCK_PIN_ENHANCED_PRIVACY setting by default
muhomorr Jun 14, 2023
5ae824b
don't crash apps that depend on missing Gservices provider
muhomorr Mar 26, 2023
d9e4b8c
integrate Google's EuiccSupportPixel package
muhomorr Mar 27, 2023
eeb2e32
integrate Google's eUICC LPA package (EuiccGoogle)
muhomorr May 30, 2023
f09b140
do not auto-grant Camera permission to the eUICC LPA UI app
muhomorr Mar 19, 2023
f887e36
gmscompat: add compatibility layer for unprivileged GMS
thestinger Jun 6, 2023
4534484
require vendor camera extensions package to be a system app by default
muhomorr Mar 30, 2023
7f808a4
add config for Pixel Camera Services
muhomorr Jan 9, 2024
bfd586f
infrastructure for creating per-package seinfo overrides
muhomorr Mar 30, 2023
5114b43
support denying special access to hardware accelerators by Google apps
muhomorr Apr 6, 2023
8126a67
add GNSS PSDS setting
muhomorr May 2, 2023
93bf9dc
support redirecting ContentProvider calls to another provider
muhomorr May 16, 2023
36cfa2f
infrastructure for the Contact Scopes feature
muhomorr May 16, 2023
a5aabbf
add connectivity checks setting and its migration from Settings.Global
muhomorr May 25, 2023
0e85d33
Wi-Fi auto turn off
muhomorr Jul 31, 2022
d0b2fa5
Bluetooth auto turn off
muhomorr Jul 31, 2022
e34a174
implement dynamic deny_new_usb toggle mode
thestinger Jun 16, 2016
82fa921
add support for hooking LocationManager methods
muhomorr Jun 19, 2023
fbcc1aa
improve compat with apps that try to access network location provider
muhomorr Jun 19, 2023
250bb4b
add RemoteKeyProvisioning server override setting
muhomorr Aug 10, 2023
d29a3c6
support showing dexopt progress during boot
muhomorr Oct 3, 2023
38d4406
fix crash of boot-time info dialog due to delayed font init
muhomorr Jun 13, 2024
41aed78
don't skip AOT compilation of apps that weren't recently used
muhomorr Nov 14, 2022
301f71d
do not delete compiled code (OAT files) of hibernated apps
muhomorr Oct 11, 2023
4fb9589
disable OtaDexoptService
muhomorr Oct 23, 2023
cf44709
add notification-based UI for the background dexopt job
muhomorr Oct 23, 2023
cb069ff
infrastructure for per-package dex2oat compiler filter overrides
muhomorr Oct 31, 2023
201afcd
always use speed dex2oat compiler filter for VPN service packages
muhomorr Nov 1, 2023
e3b4bb2
add helper class for launching non-standard Settings intents
muhomorr Nov 15, 2023
6b3823e
add helper class for notifications that link AppSwitch UI
muhomorr Nov 8, 2023
3c09fac
infrastructure for passing extra args to Zygote and WebViewZygote
muhomorr Sep 23, 2023
f36cde8
infrastructure for passing SELinux flags to the kernel
muhomorr Sep 24, 2023
5d3e345
add per-app setting for hardened_malloc and extended VA space
muhomorr Sep 26, 2023
6429e07
always stop app zygotes when app is being force-stopped
muhomorr Nov 8, 2023
08c15e9
add per-app native debugging setting
muhomorr Sep 26, 2023
3b4f7dc
add system API for getting app info by PID
muhomorr Nov 8, 2023
023a655
infrastructure for handling callbacks from logd to system_server
muhomorr Nov 8, 2023
23e3b1b
infrastructure for showing notifications about SELinux TSEC_FLAG denials
muhomorr Nov 15, 2023
76609f3
show notification after app is blocked from accessing ptrace
muhomorr Nov 19, 2023
cfca696
fix rate limiting for non-app tombstones
muhomorr Nov 8, 2023
71c4a9d
DropBoxManager: fix TreeSet API contract violations
muhomorr Dec 23, 2023
caee9d4
DropBox: skip spurious system_server_crash entries
muhomorr Jan 15, 2024
7c158ee
DropBox: skip fsck.f2fs results that don't contain errors
muhomorr Jan 16, 2024
e3d74bd
notify the user about notable system journal entries
muhomorr Nov 8, 2023
137ab52
add per-app dynamic code execution settings
muhomorr Sep 26, 2023
de02900
improve memory DCL restriction setting
muhomorr Aug 16, 2024
ac6984e
improve storage DCL restriction setting
muhomorr Aug 16, 2024
83ccdd5
add per-app memory tagging setting
muhomorr Nov 5, 2023
693a806
add a test for the new per-app hardening features
muhomorr Sep 20, 2023
453aaf1
Widevine provisioning setting
maade93791 Sep 29, 2023
127daad
add a method for sending BOOT_COMPLETED broadcast to a specific package
muhomorr Dec 23, 2023
55dc6cf
define READ_DEVICE_SERIAL_NUMBER permission for Build.getSerial() access
muhomorr Dec 18, 2023
113ae79
aauto: define a restricted version of the MANAGE_USB permission
muhomorr Dec 18, 2023
5a4c686
aauto: add definition of restricted BLUETOOTH_PRIVILEGED permission
muhomorr Dec 18, 2023
7f58bf9
aauto: add definition of restricted WIFI_PRIVILEGED permission
muhomorr Dec 18, 2023
9395524
aauto: add definition of restricted READ_PRIVILEGED_PHONE_STATE permi…
muhomorr Dec 25, 2023
c942a21
adjust definition of TelecomManager.getUserSelectedOutgoingPhoneAccou…
muhomorr Dec 25, 2023
f2eb7e3
aauto: support using aauto USB accessory activity as a default activity
muhomorr Dec 20, 2023
e7acaf3
aauto: define ASSOCIATE_COMPANION_DEVICES_RESTRICTED permission
muhomorr Dec 18, 2023
08fe829
aauto: support allowing association with "automotive projection" devices
muhomorr Dec 18, 2023
b2d7194
aauto: support granting privileged permissions via PackageHooks
muhomorr Dec 18, 2023
4500bea
hide from Aurora Store packages that it's not allowed to update
muhomorr Jan 15, 2024
2b6dd1d
run full explicit GC in SystemUI and system_server after locking
thestinger Feb 2, 2024
d18fcc8
add UsbManager API for configuring USB port security state
muhomorr Feb 23, 2024
08b1be1
add setting for USB port security state
muhomorr Feb 23, 2024
627d4e1
Do not use filter calling uid parameter originally intended for insta…
quh4gko8 Nov 3, 2023
0aa7014
Disallow the camera shortcut toggle from the lockscreen
neelchauhan May 28, 2024
9870ad6
disable support for adoptable storage
muhomorr May 29, 2024
668957b
add a helper class for wiping eUICCs
muhomorr May 29, 2024
64abd25
extend the upstream wipe-without-reboot implementation
muhomorr Jun 1, 2024
f373878
add duress password feature
muhomorr May 29, 2024
452e552
add lock_settings shell commands for testing the duress password feature
muhomorr May 30, 2024
5f7dd6f
add lock_settings shell command option for printing executed Weaver ops
muhomorr Jun 1, 2024
68b6e65
add a test for the duress password feature
muhomorr May 29, 2024
cdbd468
fix ApplicationInfo flag initialization being skipped in some cases
muhomorr Jun 13, 2024
7eb869a
stub out reads of hidden system settings in Google's text-to-speech app
muhomorr Jul 1, 2024
51d50a9
show a deprecation warning dialog on each launch of a 32-bit app
muhomorr Jul 6, 2024
f38511b
better 32-bit deprecation warning
thestinger Jul 7, 2024
0254f2c
fix touch-to-unlock on Google devices with side fingerprint scanner
muhomorr Jul 16, 2024
111a038
add setting for alternative touchscreen mode
muhomorr Jun 19, 2024
05aa2a9
don't report some android.hardware.bluetooth-service.bcmbtlinux crashes
muhomorr Aug 5, 2024
6dac9ef
don't report some vendor.google.wifi_ext-service-vendor crashes
muhomorr Aug 5, 2024
0f3cf6a
sysconfig: support enabling association restrictions without exemptions
muhomorr Aug 29, 2024
26bd7c4
add config for Pixel Health app
muhomorr Aug 26, 2024
dcd8f61
15: enable signature matching of updated system apps for all such apps
muhomorr Aug 9, 2024
b81f740
15: new PermissionService: implement shouldBlockGrantRuntimePermission()
muhomorr Aug 10, 2024
fbdc462
15: new PermissionService: implement updatePermissions()
muhomorr Aug 10, 2024
5d9f9a4
15: new PermissionService: implement PackageHooks support
muhomorr Aug 10, 2024
fde84d8
15: new PermissionService: support for special runtime permissions
muhomorr Aug 11, 2024
610bc62
15: PackageInstallerUI: add option to skip auto-grants of INTERNET perm
muhomorr Aug 11, 2024
15c199f
temp: unconditionally enable system crash notifications
muhomorr Jun 3, 2024
9eb04a6
Revert "temp: unconditionally enable system crash notifications"
thestinger Jun 13, 2024
6d5cb36
15: gmscompat: support using GSF 34 on SDK 35
muhomorr Aug 15, 2024
69d996f
_fixup! PackageHooks: infrastructure for per-package hooks in system_…
muhomorr Sep 3, 2024
9ac66a7
_fixup! add config for Pixel Health app
muhomorr Sep 3, 2024
f1d76a7
update lint baseline
muhomorr Sep 4, 2024
1efe711
Reapply "temp: unconditionally enable system crash notifications"
muhomorr Sep 4, 2024
aabcfbf
wip: fixup! Support forwarding notifications from other users
muhomorr Sep 3, 2024
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.client.ClientPriorityManager;

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()) {
ClientPriorityManager.raiseToForeground(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 @@ -2383,14 +2383,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 @@ -90,7 +90,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 @@ -133,7 +133,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 @@ -194,7 +194,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 @@ -35,6 +35,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 @@ -2357,6 +2358,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 @@ -231,6 +231,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 @@ -344,7 +345,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 @@ -43277,7 +43280,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
39 changes: 38 additions & 1 deletion core/api/lint-baseline.txt
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,30 @@ DeprecationMismatch: javax.microedition.khronos.egl.EGL10#eglCreatePixmapSurface
Method javax.microedition.khronos.egl.EGL10.eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, Object, int[]): @Deprecated annotation (present) and @deprecated doc tag (not present) do not match


FlaggedApiLiteral: android.Manifest.permission#BIND_TV_AD_SERVICE:
@FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.media.tv.flags.Flags.FLAG_ENABLE_AD_SERVICE_FW).
FlaggedApiLiteral: android.Manifest.permission#MANAGE_DEVICE_POLICY_THREAD_NETWORK:
@FlaggedApi contains a string literal, but should reference the field generated by aconfig (com.android.net.thread.platform.flags.Flags.FLAG_THREAD_USER_RESTRICTION_ENABLED).
FlaggedApiLiteral: android.Manifest.permission#REQUEST_OBSERVE_DEVICE_UUID_PRESENCE:
@FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.companion.Flags.FLAG_DEVICE_PRESENCE).
FlaggedApiLiteral: android.R.attr#adServiceTypes:
@FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.media.tv.flags.Flags.FLAG_ENABLE_AD_SERVICE_FW).
FlaggedApiLiteral: android.R.attr#languageSettingsActivity:
@FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.view.inputmethod.Flags.FLAG_IME_SWITCHER_REVAMP).
FlaggedApiLiteral: android.R.attr#optional:
@FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.content.pm.Flags.FLAG_SDK_LIB_INDEPENDENCE).
FlaggedApiLiteral: android.accessibilityservice.AccessibilityService#OVERLAY_RESULT_INTERNAL_ERROR:
@FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.view.accessibility.Flags.FLAG_A11Y_OVERLAY_CALLBACKS).
FlaggedApiLiteral: android.accessibilityservice.AccessibilityService#OVERLAY_RESULT_INVALID:
@FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.view.accessibility.Flags.FLAG_A11Y_OVERLAY_CALLBACKS).
FlaggedApiLiteral: android.accessibilityservice.AccessibilityService#OVERLAY_RESULT_SUCCESS:
@FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.view.accessibility.Flags.FLAG_A11Y_OVERLAY_CALLBACKS).


GetterSetterNullability: android.media.tv.ad.TvAdView#getOnUnhandledInputEventListener():
Nullability of android.media.tv.ad.TvAdView.OnUnhandledInputEventListener? in getter method android.media.tv.ad.TvAdView.getOnUnhandledInputEventListener() does not match android.media.tv.ad.TvAdView.OnUnhandledInputEventListener in corresponding setter method android.media.tv.ad.TvAdView.setOnUnhandledInputEventListener(android.media.tv.ad.TvAdView.OnUnhandledInputEventListener)


InvalidNullabilityOverride: android.app.Notification.TvExtender#extend(android.app.Notification.Builder) parameter #0:
Invalid nullability on parameter `builder` in method `extend`. Parameters of overrides cannot be NonNull if the super parameter is unannotated.
InvalidNullabilityOverride: android.media.midi.MidiUmpDeviceService#onBind(android.content.Intent) parameter #0:
Expand All @@ -395,6 +419,14 @@ KotlinOperator: android.graphics.Matrix44#set(int, int, float):
Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)


ManagerLookup: android.telephony.SubscriptionManager#createForAllUserProfiles():
Managers must always be obtained from Context (`createForAllUserProfiles`)


MissingGetterMatchingBuilder: android.content.AttributionSource.Builder#setNextAttributionSource(android.content.AttributionSource):
android.content.AttributionSource does not declare a `getNextAttributionSource()` method matching method android.content.AttributionSource.Builder.setNextAttributionSource(android.content.AttributionSource)


RequiresPermission: android.accounts.AccountManager#getAccountsByTypeAndFeatures(String, String[], android.accounts.AccountManagerCallback<android.accounts.Account[]>, android.os.Handler):
Method 'getAccountsByTypeAndFeatures' documentation mentions permissions without declaring @RequiresPermission
RequiresPermission: android.accounts.AccountManager#hasFeatures(android.accounts.Account, String[], android.accounts.AccountManagerCallback<java.lang.Boolean>, android.os.Handler):
Expand Down Expand Up @@ -1093,6 +1125,12 @@ Todo: android.provider.ContactsContract.RawContacts#newEntityIterator(android.da
Documentation mentions 'TODO'


UnflaggedApi: android.Manifest.permission#OTHER_SENSORS:
New API must be flagged with @FlaggedApi: field android.Manifest.permission.OTHER_SENSORS
UnflaggedApi: android.Manifest.permission_group#NETWORK:
New API must be flagged with @FlaggedApi: field android.Manifest.permission_group.NETWORK
UnflaggedApi: android.Manifest.permission_group#OTHER_SENSORS:
New API must be flagged with @FlaggedApi: field android.Manifest.permission_group.OTHER_SENSORS
UnflaggedApi: android.R.color#on_surface_disabled_material:
New API must be flagged with @FlaggedApi: field android.R.color.on_surface_disabled_material
UnflaggedApi: android.R.color#outline_disabled_material:
Expand Down Expand Up @@ -1445,7 +1483,6 @@ UnflaggedApi: android.graphics.text.PositionedGlyphs#getItalicOverride(int):
New API must be flagged with @FlaggedApi: method android.graphics.text.PositionedGlyphs.getItalicOverride(int)
UnflaggedApi: android.graphics.text.PositionedGlyphs#getWeightOverride(int):
New API must be flagged with @FlaggedApi: method android.graphics.text.PositionedGlyphs.getWeightOverride(int)

UnflaggedApi: android.media.MediaRoute2Info#TYPE_REMOTE_CAR:
New API must be flagged with @FlaggedApi: field android.media.MediaRoute2Info.TYPE_REMOTE_CAR
UnflaggedApi: android.media.MediaRoute2Info#TYPE_REMOTE_COMPUTER:
Expand Down
42 changes: 42 additions & 0 deletions 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 Down Expand Up @@ -140,6 +154,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 @@ -456,6 +493,11 @@ package android.os {
field public static final long TRACE_TAG_NETWORK = 2097152L; // 0x200000L
}

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