Skip to content
This repository has been archived by the owner on Oct 29, 2024. It is now read-only.

Configurable clipboard auto-clear timeout #357

Open
wants to merge 324 commits into
base: 13
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
324 commits
Select commit Hold shift + click to select a range
08ddef9
Snap for 9392049 from 0a33f4234584cf06151232c3e4c50b7573bed211 to tm-…
Dec 11, 2022
d51234e
Snap for 9392640 from 9e7dc1926a983e984739d5cd716108af3e6c3240 to tm-…
Dec 12, 2022
cbc06e5
Revert "[Bouncer] refine entry for bouncer user switcher."
anothem Dec 12, 2022
5562aa5
Merge cherrypicks of ['ag/20707506'] into tm-qpr2-release.
Dec 12, 2022
cf76646
Snap for 9397138 from af2ba65d089adb13dd78e05a4a698f06a457a544 to tm-…
Dec 13, 2022
f9c7953
Snap for 9401607 from d94b755f1c028e2c31b134937e9402e44fcc1f27 to tm-…
Dec 14, 2022
dfceb9e
Snap for 9406096 from 6dca005ed2fa5c26780f712198052cac113d6470 to tm-…
Dec 15, 2022
453b701
Snap for 9410359 from e78c205dc8ef24da132550df21bda93567b1cccf to tm-…
Dec 16, 2022
b2270bc
Snap for 9414670 from 38d1b72cb2927d559123bba3b79666421a74cb3e to tm-…
Dec 17, 2022
bdc3e04
Snap for 9416697 from 52f08d1e0ab62597d305cbf0b75170294b16e4ae to tm-…
Dec 17, 2022
dbaaa75
Snap for 9417701 from b9b844866be534a828f7157b1fa194320604e591 to tm-…
Dec 18, 2022
cf64234
Revert "[Bouncer] Do not send message if face auth..."
Dec 19, 2022
b2a12a7
Merge cherrypicks of ['ag/20787356'] into tm-qpr2-release.
Dec 20, 2022
c3961e5
Snap for 9420665 from 5ff4c03fb238881010caeacc924b139496772a89 to tm-…
Dec 20, 2022
913f03e
Revert "[Bouncer] Do not send message if face auth..."
Dec 19, 2022
cc96c32
Merge cherrypicks of ['ag/20787356'] into tm-qpr2-release.
Dec 20, 2022
7d71f86
Snap for 9424627 from 80e6ca393e1d9c6ebf8b5b63cb0a2c9f15bcd3b6 to tm-…
Dec 21, 2022
4b104cf
Revert "Implement a global maximum on number of shortcuts an app can …
pinyaoting Dec 15, 2022
b760d72
Merge cherrypicks of ['ag/20750338'] into sparse-9410919-L42800000957…
Dec 21, 2022
c98a09f
[coastguard skipped] Merge sparse cherrypicks from sparse-9410919-L42…
Dec 21, 2022
53d06f2
Snap for 9428515 from d287d1d6bb76f8606aadcfeddeed4a50ff34d746 to tm-…
Dec 22, 2022
4ce422f
Snap for 9432151 from 1746734f5d9f6f53b596d9e1f1ac7d088be6142d to tm-…
Dec 23, 2022
77d215b
Snap for 9434600 from d5a4b9e514fecfcac7de4f8a5d1b63372602afd6 to tm-…
Dec 24, 2022
7352559
Snap for 9435245 from f6436573b416b96dda77a3b82d0b26d56c9e005b to tm-…
Dec 25, 2022
927d629
Snap for 9438050 from f1fc4e774a50077a9a2c280f0ffb935ba15e24b5 to tm-…
Dec 27, 2022
1ccf4ff
Snap for 9439764 from 971c479068bd11170ec3618f6dbce87a9612e7e0 to tm-…
Dec 28, 2022
5250295
Snap for 9442415 from fa71876cc023e55bd939cf7f39a991abbb2eb4f9 to tm-…
Dec 29, 2022
fef67ba
Snap for 9444344 from c3f30502f8ee03947077d0957a7b7a0922d33eb2 to tm-…
Dec 30, 2022
b4f33e8
Snap for 9446458 from ab90ee56c3fce4bc7c9a2981acdae3d842b4cf01 to tm-…
Dec 31, 2022
be89f3c
Snap for 9447015 from f9701b65e377c1424313cf79b1b1c391de64e870 to tm-…
Jan 1, 2023
060e7b6
Snap for 9447492 from b4838aa947b16189538a0e87ebf0ba61eb03accd to tm-…
Jan 2, 2023
f4c70d6
Snap for 9451646 from b638b557b80bc71ef6d1d9272d3fdc675795eca9 to tm-…
Jan 4, 2023
429f1f1
Snap for 9454839 from bc2a65562efeace2f98e178faba1a9053b3324b3 to tm-…
Jan 5, 2023
e8b6677
Snap for 9459725 from 4987fc3a16310cbe4cfce1743ec4d20fd6c12bcd to tm-…
Jan 6, 2023
b0e0f22
Snap for 9463735 from c956023fe65b8deaf126b14aafa8541572b0a404 to tm-…
Jan 7, 2023
66669cc
Snap for 9465878 from 846ed06579c9e7d20947c659d126cf6094b7ac49 to tm-…
Jan 7, 2023
068ea56
Snap for 9467077 from 0d0f74b7db7ab6f864eac6e95d3ec68cb41ae5a3 to tm-…
Jan 8, 2023
3c90e2e
Fix DisplayManager race condition when state is unknown
nicomazz Jan 9, 2023
d23ffc2
NotificationChildrenContainer apply the roundness on NotificationHead…
Jan 9, 2023
835d37a
Make the header INVISIBLE when alpha is 0
Jan 4, 2023
72f7918
Revert "Add dumpsys logs to debug lockscreen stack height"
Jan 10, 2023
2a7b7d0
Revert "Ensure that only SysUI can override pending intent launch flags"
Jan 11, 2023
e7a5f0b
Merge cherrypicks of ['ag/20911782', 'ag/20911787', 'ag/20928109', 'a…
Jan 11, 2023
d2b4515
[Status Bar] Append "__external" to external icons.
caitlinshk Jan 12, 2023
fd6c648
Merge cherrypicks of ['ag/20961401'] into tm-qpr2-release.
Jan 17, 2023
f53c15d
Use the correct FGS View when animating into a dialog
Jan 11, 2023
c262d57
Revisit how launch animations handle View visibility
Jan 11, 2023
893296d
Merge cherrypicks of ['ag/20941605', 'ag/20946885'] into tm-qpr2-rele…
Jan 20, 2023
8adc88a
Fix work tile setup when adding work profile
Dec 8, 2022
34696dc
Fix QS header constraints so status icons are now ellipsized where there
Jan 5, 2023
746d233
Send system user broadcasts in headless system user mode.
bokyung Jan 12, 2023
cbd27dc
Merge cherrypicks of ['ag/20690268', 'ag/20877927', 'ag/20965081'] in…
Jan 24, 2023
69cf0a5
DO NOT MERGE ANYWHERE
Jan 25, 2023
cbcb3ba
DO NOT MERGE ANYWHERE
Jan 26, 2023
9295c13
Merge cherrypicks of ['googleplex-android-review.googlesource.com/210…
Jan 28, 2023
74caed9
Validate package name passed to setApplicationRestrictions. (Reland)
Sep 2, 2022
d69be73
Merge cherrypicks of ['googleplex-android-review.googlesource.com/198…
Feb 2, 2023
63cf687
Revert change that would detectFp when FP is locked out
Feb 16, 2023
af0429f
Merge cherrypicks of ['googleplex-android-review.googlesource.com/214…
Feb 17, 2023
07b248d
a set of helper classes for defining system settings
muhomorr Feb 12, 2023
29ad043
constify JNINativeMethod tables
thestinger Aug 16, 2022
278d11c
add exec-based spawning support
thestinger Mar 14, 2015
728cc08
disable exec spawning when using debugging options
thestinger May 22, 2019
7da0906
add parameter for avoiding full preload with exec
thestinger May 14, 2019
b66af91
pass through fullPreload to libcore
thestinger Sep 11, 2019
b11d2aa
disable OpenGL preloading for exec spawning
thestinger May 14, 2019
82d6722
Revert "disable OpenGL preloading for exec spawning"
thestinger Oct 16, 2021
f0b586d
disable resource preloading for exec spawning
thestinger May 14, 2019
3bb8db9
disable class preloading for exec spawning
thestinger May 14, 2019
5f2d8a7
disable WebView reservation for exec spawning
thestinger May 14, 2019
719d148
disable JCA provider warm up for exec spawning
thestinger May 14, 2019
c9f0635
disable preloading classloaders for exec spawning
thestinger Sep 11, 2019
ee3abe4
disable preloading HALs for exec spawning
thestinger Sep 11, 2019
b696dea
pass through runtime flags for exec spawning and implement them in th…
randomhydrosol Oct 30, 2020
d413eef
use persistent exec spawning property
thestinger Mar 27, 2022
5a8df55
fonts: Use variable font for Roboto Regular
kdrag0n Oct 6, 2021
d6a5a14
enable doze and app standby
thestinger Oct 16, 2016
3b64fb4
enable app compaction by default
thestinger Mar 16, 2021
e2dbd7a
enable boot/bootloader/radio version checks
thestinger Jun 15, 2017
1a11a36
always set deprecated Build.SERIAL to UNKNOWN
thestinger Sep 7, 2017
38737b9
Display UART notification on user builds
flawedworld Jul 16, 2021
cbf00a4
use round adaptive icon mask and parse round icons
thestinger Mar 10, 2018
113ba02
enable gesture navigation by default
thestinger Nov 28, 2018
c4421d9
revert to pre-12 power button behavior
thestinger Oct 9, 2021
660600e
enable multi user UI
thestinger Nov 28, 2018
39e8d0c
raise maximum users to 32
thestinger Nov 28, 2018
676801a
enable secondary user logout support by default
flawedworld Oct 15, 2021
69b4972
enable backup service for non-owner users
empratyush May 2, 2021
e359d1f
disable bluetooth by default
thestinger Dec 4, 2018
ed4bf05
increase default max password length to 64
thestinger Jun 29, 2017
8121d18
use rounded corners in system UI
thestinger Oct 9, 2021
1e850b4
GrapheneOS boot logo mask
thestinger May 11, 2019
274c101
use black wallpaper by default
thestinger Mar 7, 2022
50fbfc0
stop auto-granting location to system browsers
thestinger Mar 17, 2019
ef6f846
appop: Save discrete app op history for more permissions
kdrag0n Oct 11, 2021
b8d65eb
enable backup support via seedvault
thestinger Oct 15, 2021
58e1945
disable long press on power assistant setting
thestinger Oct 17, 2021
39b8207
use Cloudflare DNS as the default fallback
thestinger Apr 2, 2018
59a8c20
Always show APN settings on CDMA carriers
flawedworld Sep 28, 2021
aba6056
disable safe volume everywhere, not just the US
rustybird Apr 22, 2020
1eee96d
set TEXT_SHOW_PASSWORD to false by default
thestinger Feb 3, 2017
b0f16de
have NfcTile get an NfcAdapter directly
inthewaves Sep 20, 2020
abffd3a
add check for empty TTS engine name
thestinger Dec 20, 2020
c8e9a81
SettingsLib: use Cloudflare DNS servers as hints
thestinger Apr 2, 2018
40f292e
set GrapheneOS launcher as notification listener
thestinger Mar 16, 2021
4ced390
Add a config to state whether a device supports increased touch sensi…
lzlrd Jun 30, 2021
5f3fd6a
Do not mark dun APN types as read only
flawedworld Feb 9, 2022
1ed13d8
stop enforcing camera sound for certain carriers
thestinger Feb 11, 2022
78edf97
Always show ICCID
flawedworld Mar 5, 2022
059ded5
colors: Switch to GrapheneOS blue color palette for Material You
kdrag0n Mar 7, 2022
7de32f8
improve PendingIntent security check compatibility
thestinger Mar 18, 2022
9283dce
Show USB icon in notification instead of generic system icon
kdrag0n Oct 6, 2020
5280003
Add settings string for attestation certificate rotation server
flawedworld Mar 28, 2022
7cf88f4
Add infrastructure for choosing PSDS server
flawedworld Apr 17, 2022
2eef81c
Sharesheet: Display two rows of max ranked targets
luk1337 Oct 28, 2020
18b8fec
SystemUI: enable NFC quick settings tile
thestinger Mar 17, 2019
1247bf2
SystemUI: Skip screen-on animation in all scenarios
kdrag0n Dec 16, 2020
f023e78
SystemUI: Enable production-ready feature flags
kdrag0n Mar 14, 2022
4dcfa0d
SystemUI: Require unlocking to use sensitive QS tiles
kdrag0n Oct 6, 2021
455894c
SystemUI: Fix uneven volume icon padding in status bar
kdrag0n Sep 25, 2020
5a0ae37
SystemUI: Remove nav bar background in QS customizer
kdrag0n Oct 12, 2021
9e0da4e
SystemUI: Use new privacy indicators for location
kdrag0n Oct 11, 2021
67796ce
Add config to exempt telephony-related app from location indicators
kdrag0n Feb 17, 2022
1f794c8
exempt some system packages from status bar privacy indicator
thestinger Apr 17, 2022
4950b19
Revert "Remove dependency on IME subtype from TSMS"
mikeNG Dec 27, 2021
cba28ed
link "App info" screen from the uninstallation dialog
muhomorr Apr 17, 2022
4835986
don't crash apps that try to access the "NETWORK" location provider
muhomorr May 11, 2022
a236099
make sure PackageInstaller UI returns a result
muhomorr Jun 2, 2022
0175605
infrastructure for system_server extensions
muhomorr Jul 31, 2022
fd5af5c
Wi-Fi auto turn off
muhomorr Jul 31, 2022
768984c
Bluetooth auto turn off
muhomorr Jul 31, 2022
4ed4454
Warn the user if they are using a prototype Pixel device
flawedworld Jun 15, 2022
ec1875a
added Battery share & Battery share quick tiles
empratyush Jun 21, 2022
97ebd9c
Support forwarding notifications from other users
girlbossceo Mar 19, 2022
e6aebb6
DeviceIdleJobsController: don't ignore whitelisted system apps
muhomorr Jul 7, 2022
6ff04de
decrease minimum color temperature for Night Light to 686K
thestinger Aug 26, 2022
a1766be
infrastructure for spoofing self permission checks
muhomorr Jul 31, 2022
9a4a0b3
infrastructure for special runtime permissions
muhomorr Feb 9, 2023
125fc8a
add special runtime permission for other sensors
muhomorr Feb 9, 2023
1e06b43
notify the user when sensors access is denied by OTHER_SENSORS perm
muhomorr Oct 4, 2022
f10619e
make INTERNET into a special runtime permission
thestinger Mar 17, 2019
31886c1
improve compatibility of INTERNET special runtime permission
muhomorr Jul 31, 2022
acf3a22
PackageInstallerUI: an option to skip auto-grant of INTERNET permission
muhomorr Oct 7, 2022
7717f24
implement dynamic deny_new_usb toggle mode
thestinger Jun 16, 2016
00dc588
use permanent fingerprint lockout immediately
thestinger Sep 12, 2017
d3af5fe
add option to scramble PIN
thestinger Jan 15, 2017
7e3881e
hide sensitive information while locked by default
thestinger Jan 2, 2017
2dc0fb8
add system property for disabling keyguard camera
thestinger Jul 25, 2017
5072ed5
Migration for legacy fingerprint keyguard toggle to modern biometric …
flawedworld Oct 18, 2021
7c698b1
automatically reboot device after timeout if set
randomhydrosol Oct 17, 2021
dcb7137
support for per-app GrapheneOS-specific persistent state
muhomorr Jul 31, 2022
2402bb3
SettingsLib: allow Permission APEX to use ActionButtons and MainSwitch
muhomorr Jul 2, 2022
ad7cb2c
infrastructure for the Storage Scopes feature
muhomorr Jul 31, 2022
59c20b4
control access to Android/obb directory with a GosPackageState flag
muhomorr Jul 31, 2022
6c33aac
exec spawning: don't close the binder connection when the app crashes
muhomorr Aug 8, 2022
d6e2313
add an option to show the details of an application error to the user
muhomorr Aug 8, 2022
0a1d630
switch to providing WebView via Vanadium
inthewaves Oct 6, 2020
a1c8815
Set always-on and lockdown on by default on first vpn connection at s…
quh4gko8 Aug 1, 2022
2ef7695
mark UserHandle#get{Uid, UserId} as module SystemApi
muhomorr Aug 17, 2022
945410c
[temporary] don't report statementservice crashes
thestinger Oct 20, 2021
d188dc2
fully enable location indicators by default
thestinger Aug 17, 2022
b0e067c
change default quick tiles and quick tile order
thestinger Oct 19, 2021
e6aa782
add missing display cutout overlays
thestinger Oct 26, 2021
c72eb23
fix DevicePolicyManager#logoutUser() never succeeding
muhomorr Aug 18, 2022
1d46894
bugfix: automatic notification permission request breaks in some cases
muhomorr Aug 22, 2022
d0abca6
pre-grant POST_NOTIFICATIONS to more system apps
muhomorr Aug 22, 2022
807aa71
add a wrapper for execveat(2)
muhomorr Aug 14, 2022
81d4dba
zygote: define new runtime flags that relax app hardening
muhomorr Aug 14, 2022
ad0e1fd
exec spawning: add an option to relax app hardening
muhomorr Aug 14, 2022
2f21222
add camera app QrTile activity as default
empratyush Oct 29, 2022
f826f4e
don't leak device-wide package list to apps when work profile is present
muhomorr Nov 5, 2022
207a987
don't skip AOT compilation of apps that weren't recently used
muhomorr Nov 14, 2022
065a2ac
enable the post-upgrade "Optimizing apps" progress indication UI
muhomorr Nov 14, 2022
6934b8b
always auto-grant permissions that have "normal" protectionLevel
muhomorr Dec 3, 2022
d6c5384
SystemUI: under-display fingerprint scanner support
muhomorr Dec 6, 2022
8013260
Revert "Don't treat user switch as a brightness slider interaction"
octocorvus Dec 9, 2022
451efad
AlertWindowNotification: Correctly load app label
hustler-not-chatty Nov 2, 2022
77e1c16
toast: fix bg color not changing with theme change
SuperDroidBond Sep 11, 2022
b60ee3b
IllustrationPreference: Hide illustration when we fail to play anim
luk1337 Jun 9, 2022
47e4237
Add app.grapheneos.apps to vendor_required_apps_managed_*
girlbossceo Dec 16, 2022
32ee78e
don't allow updating system packages to the same versionCode
muhomorr Dec 27, 2022
1129cd2
allow privileged installer to search for packages across all users
muhomorr Nov 23, 2022
1691d8f
Set config_clockFontFamily to empty string
luk1337 Dec 9, 2022
f6288ff
bugfix: lite APK parser didn't parse targetSdkVersion in some cases
muhomorr Dec 30, 2022
eb8c755
[temporary] extra logging to debug app-ops getting reset after reboot
muhomorr Dec 30, 2022
670a801
Enable screen auto brightness by default
girlbossceo Jan 6, 2023
4208fb6
Revert "Null safe package name in AppOps writeState"
muhomorr Jan 6, 2023
10795cd
appops: skip ops for invalid null package during state serialization
muhomorr Jan 6, 2023
83796d1
[temporary] appops: add logging to catch construction of invalid ops
muhomorr Jan 6, 2023
9936072
SUPL: Don't send IMSI / Phone number to SUPL server
MSe1969 Oct 29, 2018
d498bed
fully disallow installing instant apps
muhomorr Jan 20, 2023
6d7c801
bugfix: isServiceTokenValidLocked() was called without holding the lock
muhomorr Jan 20, 2023
28dd76d
SystemUI: improve media projection dialog wording
muhomorr Jan 22, 2023
93474c2
extend original-package renaming to provider authorities for Vanadium
muhomorr Nov 5, 2022
1f86ecd
extend original-package renaming to static launcher shortcuts
muhomorr Nov 23, 2022
02ca0ec
allow out-of-band package updates to use original-package system
muhomorr Jan 27, 2023
48a960a
disable package parser cache
muhomorr Jan 30, 2023
dbb837d
perform additional boot-time checks on system package updates
muhomorr Jan 31, 2023
f93c861
require fs-verity when installing system package updates
muhomorr Jan 31, 2023
eae6958
gmscompat: add compatibility layer for unprivileged GMS
thestinger Jun 2, 2022
0c70a7d
infrastructure for privileged eSIM management apps that depend on GMS
muhomorr Jul 31, 2022
8410c90
add a setting for forcibly disabling SUPL
muhomorr Feb 10, 2023
539e86b
add getContext() method to ContentResolver
muhomorr Feb 18, 2023
88ae201
Remove build fingerprint from screenshot EXIF
girlbossceo Apr 29, 2022
164e6ad
add toggle for screenshot timestamp EXIF metadata
girlbossceo Feb 18, 2023
4a39bf0
improve support for per-user settings in setting helper classes
muhomorr Feb 19, 2023
89993de
imprecise authenticated timestamps using https
renlord Nov 14, 2019
d203fcc
improve HTTPS-based network time implementation
thestinger Feb 21, 2023
d82cb7f
disable using telephony-based auto time
thestinger Feb 22, 2023
39c2a33
disable auto time refresh when auto time is off
renlord Jun 30, 2020
e0919cb
reduce time update threshold
thestinger Feb 22, 2023
bf9d609
reduce system clock drift warning
thestinger Feb 22, 2023
a81bc62
make settings defined in ExtSettings unreadable by third-party apps
muhomorr Feb 25, 2023
7c98117
copy isSystem() property into result of PackageManager.findPackage()
muhomorr Feb 25, 2023
be98501
don't show INTERNET pre-grant checkbox when installing a system app
muhomorr Feb 25, 2023
b3f11ba
improve the dev option for skipping fs-verity requirement
muhomorr Feb 24, 2023
4c1fac2
improve the same versionCode system package update restriction
muhomorr Feb 24, 2023
35f5db7
Revert "add a setting for forcibly disabling SUPL"
muhomorr Mar 3, 2023
91e4fbd
add GNSS SUPL setting
muhomorr Mar 3, 2023
72996e5
gmscompat: add a debugging option to skip GNSS location updates
muhomorr Feb 19, 2023
75fdcdc
gmscompat: support forcing PhenotypeFlags to their default values
muhomorr Feb 16, 2023
057713f
gmscompat: support spoofing self permission checks
muhomorr Mar 3, 2023
13e0eb5
allow privileged installers to maintain a global list of busy packages
muhomorr Mar 4, 2023
b896ca0
gmscompat: remove reference to the now-removed CannotDeliverBroadcast…
muhomorr Mar 13, 2023
3765a6c
Revert "SystemUI: Skip screen-on animation in all scenarios"
muhomorr Mar 14, 2023
e0c8169
Revert "add option to scramble PIN"
muhomorr Mar 14, 2023
080c270
add option to scramble PIN layout
muhomorr Feb 24, 2023
3c28e2d
bugfix: PIN layout scrambling state was out-of-date in some cases
muhomorr Mar 14, 2023
48fce6c
simplify removal of SUPL IMSI / phone number
thestinger Mar 15, 2023
dd1d124
make screenshot sound use touch sounds setting
girlbossceo Mar 19, 2023
0ec50fc
gmscompat: don't spoof self permission checks that come from gmscompat
muhomorr Mar 17, 2023
ff0b25c
do not auto-grant Camera permission to the eUICC LPA UI app
muhomorr Mar 19, 2023
06bdcab
gmscompat: bugfix: properly handle null when appending to value of Gm…
muhomorr Mar 20, 2023
40f63de
allow toggling VoWiFi while roaming by default
girlbossceo Mar 24, 2023
0d91eae
gosps: support reading and writing GosPackageState across users
muhomorr Mar 12, 2023
99ac781
gosps: add fine-grained GosPackageState access permissions
muhomorr Mar 12, 2023
e87c03a
don't bypass cache when spoofing INTERNET permission self-checks
muhomorr Feb 8, 2023
d4cadb0
don't bypass permission check cache when spoofing self permission checks
muhomorr Mar 8, 2023
623ac1f
refactor self permission check spoofing in Storage Scopes
muhomorr Mar 8, 2023
ada89ee
gosps: share common code between GosPackageState and GosPackageStatePm
muhomorr Mar 10, 2023
fe03a27
gmscompat: improve support for test packages on debuggable builds
muhomorr Mar 27, 2023
38a5ca0
don't crash apps that depend on missing Gservices provider
muhomorr Mar 26, 2023
d87b699
add a set of hooks for modifying PackageManager behavior
muhomorr Mar 27, 2023
d53b301
integrate Google's EuiccSupportPixel package
muhomorr Mar 27, 2023
8cb96de
integrate Google's eUICC LPA app
muhomorr Mar 27, 2023
9dab90e
Default to automatically rebooting device after 72 hours
flawedworld Mar 29, 2023
167e962
whitelist CAPTURE_AUDIO_OUTPUT for Dialer
thestinger Apr 3, 2023
bee384b
Revert "Add settings string for attestation certificate rotation server"
girlbossceo Apr 1, 2023
dec308f
attestation key provisioning server setting
girlbossceo Apr 3, 2023
332d28f
configurable clipboard auto-clear timeout
secrecyflag Apr 2, 2023
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
  •  
  •  
  •  
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.Disabled;
import android.compat.annotation.EnabledSince;
Expand Down Expand Up @@ -936,6 +937,14 @@ 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;
}

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 @@ -579,6 +582,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 @@ -73,7 +73,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 @@ -2090,14 +2090,14 @@ public boolean isAppOnWhitelist(int appid) {
}

/**
* 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 @@ -89,7 +89,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 @@ -132,7 +132,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 @@ -193,7 +193,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
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 @@ -354,7 +354,7 @@ static void closeDevice(JNIEnv* /* env */, jclass /* clazz */, jlong ptr) {
}
}

static JNINativeMethod sMethods[] = {
static const JNINativeMethod sMethods[] = {
{"nativeOpenDevice",
"(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 @@ -301,7 +301,7 @@ static void setAbsInfo(JNIEnv* env, jclass /* clazz */, jint handle, jint axisCo
::ioctl(static_cast<int>(handle), UI_ABS_SETUP, &absSetup);
}

static JNINativeMethod sMethods[] = {
static const JNINativeMethod sMethods[] = {
{"nativeOpenUinputDevice",
"(Ljava/lang/String;IIIII"
"Lcom/android/commands/uinput/Device$DeviceCallback;)J",
Expand Down
3 changes: 3 additions & 0 deletions core/api/current.txt
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,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 @@ -225,7 +226,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
15 changes: 15 additions & 0 deletions core/api/module-lib-current.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,16 @@ package android.app.admin {

}

package android.app.compat.gms {

public class GmsModuleHooks {
method public static void enableBluetoothAdapter();
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 @@ -392,6 +402,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
88 changes: 88 additions & 0 deletions core/api/system-current.txt
Original file line number Diff line number Diff line change
Expand Up @@ -951,6 +951,24 @@ package android.app {
method public boolean isStatusBarExpansionDisabled();
}

public final class StorageScope {
ctor public StorageScope(@NonNull String, int);
method @NonNull public static android.content.Intent createConfigActivityIntent(@NonNull String);
method @NonNull public static android.app.StorageScope[] deserializeArray(@NonNull android.content.pm.GosPackageState);
method public boolean isDirectory();
method public boolean isFile();
method public boolean isWritable();
method public static int maxArrayLength();
method @Nullable public static byte[] serializeArray(@NonNull android.app.StorageScope[]);
field public static final String EXTERNAL_STORAGE_PROVIDER_METHOD_CONVERT_DOC_ID_TO_PATH = "StorageScopes_convertDocIdToPath";
field public static final int FLAG_ALLOW_WRITES = 1; // 0x1
field public static final int FLAG_IS_DIR = 2; // 0x2
field public static final String MEDIA_PROVIDER_METHOD_INVALIDATE_MEDIA_PROVIDER_CACHE = "StorageScopes_invalidateCache";
field public static final String MEDIA_PROVIDER_METHOD_MEDIA_ID_TO_FILE_PATH = "StorageScopes_mediaIdToFilePath";
field public final int flags;
field @NonNull public final String path;
}

public final class SystemServiceRegistry {
method public static <TServiceClass> void registerContextAwareService(@NonNull String, @NonNull Class<TServiceClass>, @NonNull android.app.SystemServiceRegistry.ContextAwareServiceProducerWithBinder<TServiceClass>);
method public static <TServiceClass> void registerContextAwareService(@NonNull String, @NonNull Class<TServiceClass>, @NonNull android.app.SystemServiceRegistry.ContextAwareServiceProducerWithoutBinder<TServiceClass>);
Expand Down Expand Up @@ -1739,6 +1757,16 @@ package android.app.compat {

}

package android.app.compat.gms {

public final class GmsCompat {
method public static boolean hasPermission(@NonNull String);
method public static boolean isEnabled();
method public static boolean isGmsApp(@NonNull String, int);
}

}

package android.app.contentsuggestions {

public final class ClassificationsRequest implements android.os.Parcelable {
Expand Down Expand Up @@ -3168,6 +3196,11 @@ package android.content.om {

package android.content.pm {

public class AppPermissionUtils {
method public static boolean shouldSkipPermissionRequestDialog(@NonNull android.content.pm.GosPackageState, @NonNull String);
method public static boolean shouldSpoofPermissionRequestResult(@NonNull android.content.pm.GosPackageState, @NonNull String);
}

public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
method public boolean isEncryptionAware();
method public boolean isInstantApp();
Expand All @@ -3191,6 +3224,53 @@ package android.content.pm {
method @NonNull public final int getType();
}

public final class GosPackageState implements android.os.Parcelable {
method public static boolean attachableToPackage(@NonNull String);
method public int describeContents();
method @NonNull public android.content.pm.GosPackageState.Editor edit();
method @NonNull public static android.content.pm.GosPackageState.Editor edit(@NonNull String);
method @NonNull public static android.content.pm.GosPackageState.Editor edit(@NonNull String, int);
method @Nullable public static android.content.pm.GosPackageState get(@NonNull String);
method @Nullable public static android.content.pm.GosPackageState get(@NonNull String, int);
method @Nullable public static android.content.pm.GosPackageState getForSelf();
method @NonNull public String getPackageName();
method public int getUserId();
method public boolean hasDerivedFlag(int);
method public boolean hasDerivedFlags(int);
method public boolean hasFlag(int);
method public final boolean hasFlags(int);
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.GosPackageState> CREATOR;
field public static final int DFLAGS_SET = 1; // 0x1
field public static final int DFLAG_EXPECTS_ACCESS_TO_MEDIA_FILES_ONLY = 4; // 0x4
field public static final int DFLAG_EXPECTS_ALL_FILES_ACCESS = 2; // 0x2
field public static final int DFLAG_EXPECTS_LEGACY_EXTERNAL_STORAGE = 4096; // 0x1000
field public static final int DFLAG_EXPECTS_STORAGE_WRITE_ACCESS = 8; // 0x8
field public static final int DFLAG_HAS_ACCESS_MEDIA_LOCATION_DECLARATION = 256; // 0x100
field public static final int DFLAG_HAS_MANAGE_EXTERNAL_STORAGE_DECLARATION = 64; // 0x40
field public static final int DFLAG_HAS_MANAGE_MEDIA_DECLARATION = 128; // 0x80
field public static final int DFLAG_HAS_READ_EXTERNAL_STORAGE_DECLARATION = 16; // 0x10
field public static final int DFLAG_HAS_READ_MEDIA_AUDIO_DECLARATION = 512; // 0x200
field public static final int DFLAG_HAS_READ_MEDIA_IMAGES_DECLARATION = 1024; // 0x400
field public static final int DFLAG_HAS_READ_MEDIA_VIDEO_DECLARATION = 2048; // 0x800
field public static final int DFLAG_HAS_WRITE_EXTERNAL_STORAGE_DECLARATION = 32; // 0x20
field public static final int FLAG_ALLOW_ACCESS_TO_OBB_DIRECTORY = 2; // 0x2
field public static final int FLAG_DISABLE_HARDENED_MALLOC = 4; // 0x4
field public static final int FLAG_ENABLE_COMPAT_VA_39_BIT = 8; // 0x8
field public static final int FLAG_STORAGE_SCOPES_ENABLED = 1; // 0x1
field public final int derivedFlags;
}

public static class GosPackageState.Editor {
method @NonNull public android.content.pm.GosPackageState.Editor addFlags(int);
method @Nullable public android.content.pm.GosPackageState apply();
method @NonNull public android.content.pm.GosPackageState.Editor clearFlags(int);
method @NonNull public android.content.pm.GosPackageState.Editor killUidAfterApply();
method @NonNull public android.content.pm.GosPackageState.Editor setFlagsState(int, boolean);
method @NonNull public android.content.pm.GosPackageState.Editor setKillUidAfterApply(boolean);
method @NonNull public android.content.pm.GosPackageState.Editor setStorageScopes(@Nullable byte[]);
}

public final class InstallationFile {
method public long getLengthBytes();
method public int getLocation();
Expand Down Expand Up @@ -3546,6 +3626,14 @@ package android.content.pm {
field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.ShortcutManager.ShareShortcutInfo> CREATOR;
}

public class SpecialRuntimePermAppUtils {
method public static boolean awareOfRuntimeInternetPermission();
method public static boolean isInternetCompatEnabled();
method public static boolean requestsInternetPermission();
field public static final int FLAG_AWARE_OF_RUNTIME_INTERNET_PERMISSION = 4; // 0x4
field public static final int FLAG_REQUESTS_INTERNET_PERMISSION = 2; // 0x2
}

public final class SuspendDialogInfo implements android.os.Parcelable {
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
Expand Down
47 changes: 47 additions & 0 deletions core/java/android/app/Activity.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import android.app.admin.DevicePolicyManager;
import android.app.assist.AssistContent;
import android.app.compat.CompatChanges;
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 @@ -160,6 +161,9 @@
import com.android.internal.app.IVoiceInteractor;
import com.android.internal.app.ToolbarActionBar;
import com.android.internal.app.WindowDecorActionBar;
import com.android.internal.gmscompat.GmsCompatApp;
import com.android.internal.gmscompat.GmsHooks;
import com.android.internal.gmscompat.PlayStoreHooks;
import com.android.internal.policy.PhoneWindow;
import com.android.internal.util.dump.DumpableContainerImpl;

Expand Down Expand Up @@ -1652,6 +1656,10 @@ private void notifyVoiceInteractionManagerServiceActivityEvent(
@MainThread
@CallSuper
protected void onCreate(@Nullable Bundle savedInstanceState) {
if (GmsCompat.isEnabled()) {
GmsHooks.activityOnCreate(this);
}

if (DEBUG_LIFECYCLE) Slog.v(TAG, "onCreate " + this + ": " + savedInstanceState);

if (mLastNonConfigurationInstances != null) {
Expand Down Expand Up @@ -5500,6 +5508,45 @@ public void startActivityForResult(@RequiresPermission Intent intent, int reques
*/
public void startActivityForResult(@RequiresPermission Intent intent, int requestCode,
@Nullable Bundle options) {
if (GmsCompat.isEnabled()) {
ComponentName cn = intent.getComponent();
if (cn != null && "com.google.android.permissioncontroller".equals(cn.getPackageName())) {
// PermissionController activities can't be opened by unprivileged apps.
// (Replacing absent com.google.android.permissioncontroller package with
// com.android.permissioncontroller would not help)
return;
}
}

if (android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS.equals(intent.getAction())) {
Uri data = intent.getData();
if (data != null && "package".equals(data.getScheme())) {
String pkg = data.getSchemeSpecificPart();

if (pkg != null) {
switch (pkg) {
case "com.google.android.tts":
if (GmsCompat.isClientOfGmsCore()) {
boolean installed;
try {
installed = ActivityThread.getPackageManager().getApplicationInfo(pkg, 0, getUserId()) != null;
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}

if (!installed) {
try {
GmsCompatApp.iClientOfGmsCore2Gca().showMissingAppNotification(pkg);
} catch (RemoteException e) {
GmsCompatApp.callFailed(e);
}
}
}
}
}
}
}

if (mParent == null) {
options = transferSpringboardActivityOptions(options);
Instrumentation.ActivityResult ar =
Expand Down
Loading