Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support setting quiet mode with flag for stopping user with immediate storage locking #99

Open
wants to merge 339 commits into
base: 15
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
339 commits
Select commit Hold shift + click to select a range
089b6ae
disable OpenGL preloading for exec spawning
thestinger May 14, 2019
2849cb0
Revert "disable OpenGL preloading for exec spawning"
thestinger Oct 16, 2021
2c90ef9
disable resource preloading for exec spawning
thestinger May 14, 2019
b126cef
disable class preloading for exec spawning
thestinger May 14, 2019
91a8c28
disable WebView reservation for exec spawning
thestinger May 14, 2019
e4d3976
disable JCA provider warm up for exec spawning
thestinger May 14, 2019
4788dc2
disable preloading classloaders for exec spawning
thestinger Sep 11, 2019
7e8e315
disable preloading HALs for exec spawning
thestinger Sep 11, 2019
12e3424
pass through runtime flags for exec spawning and implement them in th…
randomhydrosol Oct 30, 2020
787a99b
exec spawning: don't close the binder connection when the app crashes
muhomorr Aug 8, 2022
08243b6
add a wrapper for execveat(2)
muhomorr Aug 14, 2022
b2e5c24
zygote: define runtime flags that depend on exec spawning
muhomorr Aug 14, 2022
c3c8c55
exec spawning: support runtime resource overlays
muhomorr Mar 30, 2023
0646842
exec spawning: support disabling hardened_malloc and extended VA space
muhomorr Aug 14, 2022
e1c39d4
exec spawning: add workaround for late init of ART userfaultfd GC
muhomorr Apr 9, 2024
c21530e
use HTTPS X-Time header for time updates instead of NTP
muhomorr Jan 23, 2024
f7f4991
extend auto-time setting to forced time updates
muhomorr Jan 24, 2024
107ba0c
reduce system clock drift warning
thestinger Feb 22, 2023
9216640
core/config: disable using telephony-based auto time
thestinger Feb 22, 2023
19bb01e
add system package check methods to PackageUtils
muhomorr Jun 22, 2023
b216a87
filter out non-system packages from location indicator exemptions
muhomorr Jun 22, 2023
1a95994
filter out non-system packages from getLocationBypassPackages() result
muhomorr Jun 22, 2023
85316d0
define package name of first-party app source
muhomorr Jan 3, 2024
7740243
SystemUI: require unlocking to use QS tiles by default
muhomorr Mar 11, 2024
8abc24f
SystemUI: allow to use some QS tiles while device is locked
muhomorr Mar 11, 2024
f8f4964
SystemUI: enable NFC quick settings tile
thestinger Mar 17, 2019
1f6a09a
SystemUI: Enable production-ready feature flags
kdrag0n Mar 14, 2022
08a37c4
SystemUI: Use new privacy indicators for location
kdrag0n Oct 11, 2021
e24ade0
SystemUI: fully enable location indicators by default
thestinger Aug 17, 2022
cdcb5ec
SystemUI: specify config_sceenshotWorkProfileFilesApp
muhomorr Jun 18, 2023
8955c97
SystemUI: add Battery share & Battery share quick tiles
empratyush Jun 21, 2022
0d25a8f
SystemUI: change default quick tiles and quick tile order
thestinger Oct 19, 2021
b34a3d6
SystemUI: make screenshot sound use touch sounds setting
girlbossceo Mar 19, 2023
1a5259c
SystemUI: apply "Add users from lock screen" setting to guest users
muhomorr Jun 23, 2023
00126c0
SystemUI: Allow customizing lock screen shortcuts via ThemePicker
quh4gko8 Oct 10, 2023
ef15ca8
Add config to exempt telephony-related app from location indicators
kdrag0n Feb 17, 2022
c17b823
exempt some system packages from status bar privacy indicator
thestinger Apr 17, 2022
12f15de
allow PackageInstaller to use platform APIs
muhomorr Mar 5, 2024
7909798
PackageInstaller: link "App info" screen from the uninstallation dialog
muhomorr Apr 17, 2022
3f09743
PackageInstaller: fix NPE due to a race condition in PackageUtil
muhomorr Aug 15, 2024
04c322e
PackageInstaller: fix crash when showing app's first confirmation prompt
muhomorr Oct 19, 2024
8e97fc6
disable support for pre-approving PackageInstaller sessions
muhomorr Dec 22, 2023
33db4b0
define READ_LOGS_FULL permission for promptless logcat access
muhomorr Jan 6, 2024
a2b6ea5
add APIs for launching LogViewer app
muhomorr Jan 6, 2024
7814944
add helpers for system_server extensions
muhomorr Jul 31, 2022
da3e5ec
Warn the user if they are using a prototype Pixel device
flawedworld Jun 15, 2022
aef9d82
Support forwarding notifications from other users
girlbossceo Mar 19, 2022
a2ba128
DeviceIdleJobsController: don't ignore whitelisted system apps
muhomorr Jul 7, 2022
3662db1
do not allow disabling app visibility filtering
muhomorr Apr 6, 2023
1c3229b
add hooks for modifying PackageManagerService behavior
muhomorr Mar 27, 2023
e97565f
rename AppsFilterImpl.grantImplicitAccess method
muhomorr Apr 30, 2024
0b46b69
add hooks for modifying ActivityThread behavior
muhomorr Aug 18, 2023
5cbb30f
AppBindArgs: infrastructure for passing extra args to app process init
muhomorr May 16, 2023
9756429
infrastructure for custom handling of known packages
muhomorr Dec 20, 2023
bde0294
gosps: support for per-app GrapheneOS-specific persistent state
muhomorr Jul 31, 2022
3e15bb9
extend excludedMethods list in AndroidPackageTest
muhomorr Jun 2, 2024
eac8d03
add method for updating cached package permission state
muhomorr Dec 18, 2023
6361156
PackageHooks: infrastructure for per-package hooks in system_server
muhomorr Dec 18, 2023
fb075ff
add base class for complex per-app switches
muhomorr Sep 24, 2023
826fd92
SettingsLib: add CategoryKey for Exploit protection screen
muhomorr Jul 30, 2024
c9ec7cd
infrastructure for spoofing self permission checks
muhomorr Jul 31, 2022
6bf6518
infrastructure for special runtime permissions
muhomorr Feb 9, 2023
7337ae0
add special runtime permission for other sensors
muhomorr Feb 9, 2023
c2ebde0
notify the user when sensors access is denied by OTHER_SENSORS perm
muhomorr Oct 4, 2022
9159f7a
make INTERNET into a special runtime permission
thestinger Mar 17, 2019
9250dcc
improve compatibility of INTERNET special runtime permission
muhomorr Jul 31, 2022
d6e3563
don't run jobs that need connectivity in apps that lack INTERNET perm
muhomorr May 19, 2023
febda47
PackageInstallerUI: an option to skip auto-grant of INTERNET permission
muhomorr Oct 7, 2022
295e5a9
use permanent fingerprint lockout immediately
thestinger Sep 12, 2017
f878809
add system property for disabling keyguard camera
thestinger Jul 25, 2017
365c232
add auto-reboot feature
muhomorr Jan 13, 2024
82f8234
infrastructure for the Storage Scopes feature
muhomorr Jul 31, 2022
75b2cc0
sscopes: temp: disable incomplete handling of READ_MEDIA_VISUAL_USER_…
muhomorr Oct 5, 2023
01ece8e
control access to Android/obb directory with a GosPackageState flag
muhomorr Jul 31, 2022
591a581
ErrorDialogController: do not auto-dismiss crash dialogs
muhomorr Oct 1, 2023
e4e8110
fix ANR details link not working in profiles and in secondary users
muhomorr Nov 1, 2024
bd2deaa
include path of ANR stack traces file in ApplicationErrorReport
muhomorr Oct 7, 2024
a32093d
don't block reading ANR stack traces file via Unix file permissions
muhomorr Oct 8, 2024
c025a52
add option to view application error details in LogViewer app
muhomorr Aug 8, 2022
2155b3a
Set always-on and lockdown on by default on first vpn connection at s…
quh4gko8 Aug 1, 2022
91d13bf
pre-grant POST_NOTIFICATIONS to more system apps
muhomorr Aug 22, 2022
7204d24
allow privileged installer to search for packages across all users
muhomorr Nov 23, 2022
b3a9d8a
extend original-package renaming to provider authorities for Vanadium
muhomorr Nov 5, 2022
3de5f5a
extend original-package renaming to static launcher shortcuts
muhomorr Nov 23, 2022
0397d0e
bugfix: properly acquire package state from original package
quh4gko8 Mar 13, 2024
0ca9217
disable package parser cache
muhomorr Jan 30, 2023
ca8a4ee
perform additional boot-time checks on system package updates
muhomorr Jan 31, 2023
e9a6f73
allow out-of-band package updates to use original-package system
muhomorr Jan 27, 2023
73287e5
require fs-verity when installing system package updates
muhomorr Jan 31, 2023
0a778e0
don't allow updating system packages to the same versionCode
muhomorr Dec 27, 2022
373cba2
allow privileged installers to use getSharedLibraries(MATCH_ANY_USER)
muhomorr Mar 30, 2024
fd8c7a5
allow only first party app source and shell to update system packages
muhomorr May 2, 2024
c717ac7
Remove build fingerprint from screenshot EXIF
girlbossceo Apr 29, 2022
cd3fcdf
add toggle for screenshot timestamp EXIF metadata
girlbossceo Feb 18, 2023
4dc7904
SUPL: Don't send IMSI / Phone number to SUPL server
MSe1969 Oct 29, 2018
aa578ce
add GNSS SUPL setting
muhomorr Mar 3, 2023
6b0c6d2
allow privileged installers to maintain a global list of busy packages
muhomorr Mar 4, 2023
c8947e2
add option to scramble PIN layout
muhomorr Feb 24, 2023
6750d53
enable LOCK_PIN_ENHANCED_PRIVACY setting by default
muhomorr Jun 14, 2023
6f29e21
don't crash apps that depend on missing Gservices provider
muhomorr Mar 26, 2023
0905bd0
integrate Google's EuiccSupportPixel package
muhomorr Mar 27, 2023
6bca7fe
integrate Google's eUICC LPA package (EuiccGoogle)
muhomorr May 30, 2023
f63774e
do not auto-grant Camera permission to the eUICC LPA UI app
muhomorr Mar 19, 2023
4d3600e
add a method for sending BOOT_COMPLETED broadcast to a specific package
muhomorr Dec 23, 2023
763d368
define READ_DEVICE_SERIAL_NUMBER permission for Build.getSerial() access
muhomorr Dec 18, 2023
adeeb4b
aauto: define a restricted version of the MANAGE_USB permission
muhomorr Dec 18, 2023
294bdbd
aauto: add definition of restricted BLUETOOTH_PRIVILEGED permission
muhomorr Dec 18, 2023
ff2cc3e
aauto: add definition of restricted WIFI_PRIVILEGED permission
muhomorr Dec 18, 2023
dae450b
aauto: add definition of restricted READ_PRIVILEGED_PHONE_STATE permi…
muhomorr Dec 25, 2023
c98c49f
adjust definition of TelecomManager.getUserSelectedOutgoingPhoneAccou…
muhomorr Dec 25, 2023
018a2b9
aauto: support using aauto USB accessory activity as a default activity
muhomorr Dec 20, 2023
4537ffa
aauto: define ASSOCIATE_COMPANION_DEVICES_RESTRICTED permission
muhomorr Dec 18, 2023
fa24f71
aauto: support allowing association with "automotive projection" devices
muhomorr Dec 18, 2023
b741dac
gmscompat: add compatibility layer for unprivileged GMS
thestinger Jun 6, 2023
98c1fd8
require vendor camera extensions package to be a system app by default
muhomorr Mar 30, 2023
4c7090f
add config for Pixel Camera Services
muhomorr Jan 9, 2024
2399cc8
infrastructure for creating per-package seinfo overrides
muhomorr Mar 30, 2023
a4fd803
support denying special access to hardware accelerators by Google apps
muhomorr Apr 6, 2023
e6e8447
add GNSS PSDS setting
muhomorr May 2, 2023
78429cd
support redirecting ContentProvider calls to another provider
muhomorr May 16, 2023
e86cd41
infrastructure for the Contact Scopes feature
muhomorr May 16, 2023
fbe79cb
add connectivity checks setting and its migration from Settings.Global
muhomorr May 25, 2023
b106e6c
Wi-Fi auto turn off
muhomorr Jul 31, 2022
7a2ec06
Bluetooth auto turn off
muhomorr Jul 31, 2022
23d5e3f
implement dynamic deny_new_usb toggle mode
thestinger Jun 16, 2016
7529b08
add support for hooking LocationManager methods
muhomorr Jun 19, 2023
063fa27
improve compat with apps that try to access network location provider
muhomorr Jun 19, 2023
4b8229e
add RemoteKeyProvisioning server override setting
muhomorr Aug 10, 2023
616ee10
support showing dexopt progress during boot
muhomorr Oct 3, 2023
11450cf
fix crash of boot-time info dialog due to delayed font init
muhomorr Jun 13, 2024
d453db6
don't skip AOT compilation of apps that weren't recently used
muhomorr Nov 14, 2022
61ae3de
do not delete compiled code (OAT files) of hibernated apps
muhomorr Oct 11, 2023
ce91f27
disable OtaDexoptService
muhomorr Oct 23, 2023
40e06f3
add notification-based UI for the background dexopt job
muhomorr Oct 23, 2023
ccacc05
infrastructure for per-package dex2oat compiler filter overrides
muhomorr Oct 31, 2023
6cbc362
always use speed dex2oat compiler filter for VPN service packages
muhomorr Nov 1, 2023
f56efb0
add helper class for launching non-standard Settings intents
muhomorr Nov 15, 2023
4252069
add helper class for notifications that link AppSwitch UI
muhomorr Nov 8, 2023
fd93a0a
infrastructure for passing extra args to Zygote and WebViewZygote
muhomorr Sep 23, 2023
1a9f8d6
infrastructure for passing SELinux flags to the kernel
muhomorr Sep 24, 2023
e77780c
add per-app setting for hardened_malloc and extended VA space
muhomorr Sep 26, 2023
f744fb5
always stop app zygotes when app is being force-stopped
muhomorr Nov 8, 2023
5aa28e3
add per-app native debugging setting
muhomorr Sep 26, 2023
d4af0d2
add system API for getting app info by PID
muhomorr Nov 8, 2023
bc2a6a4
infrastructure for handling callbacks from logd to system_server
muhomorr Nov 8, 2023
4278b1c
infrastructure for showing notifications about SELinux TSEC_FLAG denials
muhomorr Nov 15, 2023
a5d9dea
show notification after app is blocked from accessing ptrace
muhomorr Nov 19, 2023
4abfc6a
fix rate limiting for non-app tombstones
muhomorr Nov 8, 2023
84ae152
DropBoxManager: fix TreeSet API contract violations
muhomorr Dec 23, 2023
8ef1bc4
fix an upstream race condition in handling of system error files
muhomorr Oct 7, 2024
daa4f5a
DropBox: skip spurious system_server_crash entries
muhomorr Jan 15, 2024
6c0fb36
DropBox: skip fsck.f2fs results that don't contain errors
muhomorr Jan 16, 2024
a9b3f8a
notify the user about notable system journal entries
muhomorr Nov 8, 2023
925099f
add per-app dynamic code execution settings
muhomorr Sep 26, 2023
36b4ecb
improve memory DCL restriction setting
muhomorr Aug 16, 2024
2375a48
improve storage DCL restriction setting
muhomorr Aug 16, 2024
5e29800
add per-app memory tagging setting
muhomorr Nov 5, 2023
996209f
add a test for the new per-app hardening features
muhomorr Sep 20, 2023
274e510
Widevine provisioning setting
maade93791 Sep 29, 2023
0595f60
hide from Aurora Store packages that it's not allowed to update
muhomorr Jan 15, 2024
4a8282e
run full explicit GC in SystemUI and system_server after locking
thestinger Feb 2, 2024
597b284
add UsbManager API for configuring USB port security state
muhomorr Feb 23, 2024
fd52464
add setting for USB port security state
muhomorr Feb 23, 2024
6a74cd4
Do not use filter calling uid parameter originally intended for insta…
quh4gko8 Nov 3, 2023
43a994e
Disallow the camera shortcut toggle from the lockscreen
neelchauhan May 28, 2024
feabd08
disable support for adoptable storage
muhomorr May 29, 2024
0c93b5a
add a helper class for wiping eUICCs
muhomorr May 29, 2024
2b55776
extend the upstream wipe-without-reboot implementation
muhomorr Jun 1, 2024
4a2a2dc
add duress password feature
muhomorr May 29, 2024
b08f4fa
add lock_settings shell commands for testing the duress password feature
muhomorr May 30, 2024
42b2db9
add lock_settings shell command option for printing executed Weaver ops
muhomorr Jun 1, 2024
a4bf6dc
add a test for the duress password feature
muhomorr May 29, 2024
4f88ac4
fix ApplicationInfo flag initialization being skipped in some cases
muhomorr Jun 13, 2024
4a721e6
stub out reads of hidden system settings in Google's text-to-speech app
muhomorr Jul 1, 2024
7e919b6
make Google's text-to-speech app force-queryable
muhomorr Nov 25, 2024
d705029
show a deprecation warning dialog on each launch of a 32-bit app
muhomorr Jul 6, 2024
421de68
better 32-bit deprecation warning
thestinger Jul 7, 2024
b6544e8
fix touch-to-unlock on Google devices with side fingerprint scanner
muhomorr Jul 16, 2024
bea3c8b
add setting for alternative touchscreen mode
muhomorr Jun 19, 2024
51e5178
don't report some android.hardware.bluetooth-service.bcmbtlinux crashes
muhomorr Aug 5, 2024
4814a07
don't report harmless fingerprint-service.goodix crash
muhomorr Nov 15, 2024
8a94cf1
sysconfig: support enabling association restrictions without exemptions
muhomorr Aug 29, 2024
e42d1b8
add config for Pixel Health app
muhomorr Aug 26, 2024
c8d8158
new PermissionService: implement shouldBlockGrantRuntimePermission()
muhomorr Aug 10, 2024
82532ee
new PermissionService: implement updatePermissions()
muhomorr Aug 10, 2024
74bd361
new PermissionService: implement PackageHooks support
muhomorr Aug 10, 2024
4a1fceb
new PermissionService: support for special runtime permissions
muhomorr Aug 11, 2024
04aa85d
temp: unconditionally enable system crash notifications
muhomorr Jun 3, 2024
1c30650
Revert "temp: unconditionally enable system crash notifications"
thestinger Jun 13, 2024
5e352f5
add handling for early boot-time system journal notifications
muhomorr Oct 7, 2024
4108470
add helper class for notifying the user about system_server errors
muhomorr Oct 7, 2024
fa2fae4
include path of text tombstone file in LogViewer intents
muhomorr Oct 8, 2024
caf3b0a
ignore factory reset protection (FRP)
muhomorr Oct 16, 2024
74e8701
fix KGUM.onPostureChanged() NPE SystemUI crash on foldable devices
muhomorr Oct 16, 2024
3f5c3cd
fix check for the current holder of the Wallet app role
muhomorr Oct 19, 2024
a2c90da
disable memory tagging for Pixel Camera Services
muhomorr Oct 20, 2024
5e8bd5f
don't remove app widgets from user's home screen when the user stops
muhomorr Oct 22, 2024
c7b5c75
raise backup transport timeout
thestinger Oct 23, 2024
f2cf9d6
partially reset granted special runtime perm state to pre-A15 state
muhomorr Oct 23, 2024
b34004b
don't spam to the system log buffer from loadAconfigDefaultValues()
muhomorr Oct 29, 2024
7ae3b1e
add workaround for showShutdownDialog() system_server crash
muhomorr Nov 4, 2024
10e0000
add utility class for obtaining and keeping track of Binder caller info
muhomorr Nov 4, 2024
71ab5f3
fix handling of MATCH_ARCHIVED_PACKAGES flag in getPackageUidInternal()
muhomorr Nov 4, 2024
e8e6337
update lint baseline
muhomorr Nov 30, 2024
30f573f
Reapply "temp: unconditionally enable system crash notifications"
muhomorr Dec 6, 2024
e5744c0
Revert "partially reset granted special runtime perm state to pre-A15…
muhomorr Dec 6, 2024
c82fc7e
delay activation of the Allow button in USB ADB confirmation dialog
muhomorr Dec 5, 2024
8b4c501
FusedLocation: remove racy and redundant lazy init in Service.onBind()
muhomorr Dec 4, 2024
d0b8e5a
never remove location providers at runtime
muhomorr Dec 4, 2024
4cbf12c
Revert "Reapply "temp: unconditionally enable system crash notificati…
muhomorr Dec 9, 2024
09b4ed2
Revert "core/config: disable safe volume everywhere, not just the US"
muhomorr Dec 11, 2024
3cb7656
disable safe media volume management
muhomorr Dec 11, 2024
9001fc2
fix NPE system_server crash in IMMS.resetDefaultImeLocked()
muhomorr Oct 16, 2024
3e4b75d
fix NPE system_server crash in NotificationManagerService
muhomorr Dec 15, 2024
08d33b4
add battery charge limit setting
muhomorr Dec 29, 2024
f360055
SystemUI: add support for battery charge limit feature
muhomorr Dec 29, 2024
cf79a0c
fixup! add base class for complex per-app switches
muhomorr Dec 29, 2024
5b700f8
fixup! add per-app dynamic code execution settings
muhomorr Dec 29, 2024
e611f19
Revert "fix crash of boot-time info dialog due to delayed font init"
muhomorr Dec 29, 2024
222ebb7
Revert "add workaround for showShutdownDialog() system_server crash"
muhomorr Dec 29, 2024
83dc49e
partially revert "report post-OTA dexopt progress to PackageManager"
muhomorr Dec 29, 2024
9a021fc
gmscompat: lower log verbosity in overrideApplicationLocales dev option
muhomorr Dec 28, 2024
683b625
add dev option to log Java binder transaction
muhomorr Dec 28, 2024
f5f42e2
fixup! don't report harmless fingerprint-service.goodix crash
muhomorr Dec 29, 2024
f4dd0dc
fixup! add duress password feature
u-fred Dec 21, 2024
3219439
prevent recycling user IDs
u-fred Dec 21, 2024
3531036
add LockDomain
u-fred Dec 21, 2024
90f9897
add second factor to DevicePolicyManagerService
u-fred Dec 21, 2024
4fe525e
add second factor to LockSettingsService
u-fred Dec 21, 2024
3de7326
add second factor to LockSettingsStateListener
u-fred Dec 21, 2024
a495942
add second factor to AdaptiveAuthService
u-fred Dec 21, 2024
6c3b427
add second factor to TrustManagerService
u-fred Dec 21, 2024
2014294
add biometric keyguard settings to LPU
u-fred Dec 21, 2024
e5b9340
improve upstream LPU#isCredentialSharableWithParent
u-fred Dec 21, 2024
e4e7803
add second factor to LockPattern classes
u-fred Dec 21, 2024
ceb8e6d
add BiometricAuthTokenStore
u-fred Dec 21, 2024
dea9617
add second factor to FingerprintService
u-fred Dec 21, 2024
244a761
add second factor UI
u-fred Dec 21, 2024
bba7ed2
throw Exception to notify of SceneContainerFlag
u-fred Dec 21, 2024
277409d
prevent face auth in KUM
u-fred Dec 21, 2024
8bfb7a9
fix upstream fingerprint mode change bug
u-fred Dec 21, 2024
e1e275f
append "Safe" to risky upstream method names
u-fred Dec 22, 2024
ba3926b
add second factor to fingerprint unlock
u-fred Dec 21, 2024
798cf04
fix feature check in DPMS.getPasswordMinimumMetricsUnchecked()
muhomorr Dec 25, 2024
e2d0cbf
fixup! add duress password feature
muhomorr Dec 25, 2024
5681bcc
fix collision check in SyntheticPasswordManager.generateProtectorId()
muhomorr Dec 25, 2024
810d430
fixup! add option to scramble PIN layout
muhomorr Dec 25, 2024
40fa839
fixup! add option to scramble PIN layout
muhomorr Dec 25, 2024
a0a53c4
Support for toggling delayed storage locking for setting quiet mode
quh4gko8 Jan 4, 2025
f3b05f1
Support for setting flag to stop user without delayed storage locking
quh4gko8 Jan 4, 2025
File filter

Filter by extension

Filter by extension

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

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

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

import com.android.internal.gmscompat.GmsCompatApp;

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

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

boolean isAppOnWhitelist(int appid);

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

int[] getPowerSaveTempWhitelistAppIds();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 @@ -232,6 +232,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 @@ -345,7 +346,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 @@ -43364,7 +43367,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 @@ -469,6 +506,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