Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
969 commits
Select commit Hold shift + click to select a range
d02c7c2
SystemUI: Fix edge light, media art, pulse on ambient display
neobuddy89 Feb 12, 2026
083a1ab
audio: add message MSG_L_BT_ACTIVE_DEVICE_CHANGE_EXT to messageMutesM…
Feb 9, 2026
4c15f70
base: Migrate to MaterialExpressiveTheme
Rve27 Jan 19, 2026
ce5b4d6
core: Preventing memory leaks from bloating os memory that leads to OOM
rmp22 Nov 21, 2025
8ceae01
media: disable noisy exifinterface logs
rmp22 Aug 23, 2025
1844d8f
core: add guard to null ResourcesImpl log spam
rmp22 Aug 23, 2025
4071c82
SystemUI: Revert new landscape notification behaviour
prochy-exe May 28, 2022
8408c85
Update CE storage handling in StorageManagerService
cevente Feb 12, 2026
ae66cfb
SystemUI: Fix imageloader spam in BrightnessSliderViewModel
neobuddy89 Oct 22, 2025
8dcd3ad
SystemUI: Extend QS Header Image to support animated GIF/WEBP [1/2]
kamikaonashi Dec 4, 2025
b2a670f
SystemUI: Start QS header animation only on expanding
neobuddy89 Feb 14, 2026
56d9125
SystemUI: Fix concurrent modification exception on config change
neobuddy89 Dec 9, 2025
ccd6af7
SystemUI: ConfigurationControllerImpl: Avoid NullPointerException
someone5678 Dec 15, 2024
59d0626
SystemUI: Add notification row transluency toggle
rmp22 Jan 22, 2026
110111f
SystemUI: Fix notification transparency issues
rmp22 Jan 22, 2026
fe54fdd
SystemUI: Add toggle for translucent notifications on lockscreen
neobuddy89 Oct 9, 2025
b0d6057
SystemUI: Add charging bolt indicator for text-only battery style
Ghosuto Feb 16, 2026
fd3593e
Allow complex resource types to follow references
talle112 Feb 12, 2026
739f300
base: Add support for daily and weekly data usage cycles [1/2]
idoybh Aug 22, 2025
be553db
base: Fix crash caused by back gesture on popup view
Ruyue-Kinsenka Feb 11, 2026
bb21b8e
SystemUI: Hide mobile data tile when unsupported
neobuddy89 Feb 23, 2026
4cfa89d
SystemUI: Add QS tile gradient customization
neobuddy89 Feb 25, 2026
5848771
SystemUI: Add QS brightness slider gradient customization
neobuddy89 Feb 25, 2026
3c2407c
SystemUI: Add volume slider gradient customization
neobuddy89 Feb 26, 2026
69634d6
SystemUI: Add custom gradient start/end color support
neobuddy89 Feb 26, 2026
9b409a7
SystemUI: Add gradient for volume buttons along with slider
neobuddy89 Mar 3, 2026
a192bba
SystemUI: Fix up gradient related glitch in volume slider
neobuddy89 Mar 8, 2026
3465a8b
Avoid NPE in CriticalEventLog.saveLogToFileNow()
mnkassis Feb 26, 2026
a5a30ab
SettingsTheme: Correctly theming AlertDialog with M3 colors
someone5678 Oct 1, 2025
c383d82
SystemUI: Fix notification flicker with transluency enabled
neobuddy89 Mar 3, 2026
39bd10f
Update battery info every second when device is charging
SagarMakhar Aug 7, 2021
bd6c982
Add config overlay for battery info update
ShevT Jan 12, 2023
fb58552
Avoid memory leak of activity in ExitTransitionCoordinator
Mar 6, 2026
bf2da40
SystemUI: Allow Omnijaw weather to show on aod
Ghosuto Jan 11, 2026
af542c7
SystemUI: WeatherViewController: Implement settings observer
neobuddy89 Mar 15, 2026
46f0775
Update EGL context type from EGLDisplay to EGLContext
Mar 17, 2026
da51131
SystemUI: keep Wi-Fi QS tile subtitle Wi-Fi-specific
geek0609 Mar 18, 2026
a872ac9
SystemUI: Introduce Clock face feature
minaripenguin Oct 14, 2024
137da65
SystemUI: Implement weather views for clock styles
minaripenguin Feb 24, 2026
165f8f4
SystemUI: Add layout section for clock style
Arman-ATI Feb 24, 2026
3b5327e
SystemUI: Clocks: Add various clock styles
Ghosuto Nov 9, 2024
95cb008
SystemUI: Lock Screen Clock Accent Color Option
Ghosuto Apr 10, 2025
1076405
SystemUI: Improve clock face color option
Ghosuto May 23, 2025
41e5f34
SystemUI: Hide clock properly when clock style set
tejas101k Feb 27, 2026
5e1aac3
SystemUI: Allow adjust height of lockscreen clock styles [1/2]
tejas101k Feb 27, 2026
c766616
SystemUI: Add support custom clock color [1/2]
Ghosuto Feb 27, 2026
fdfb934
SystemUI: Add block and bubble to no-color exclude list
Ghosuto Mar 7, 2026
17c37f9
SystemUI: Import stylish clock styles
neobuddy89 Mar 17, 2026
83cf2a3
SystemUI: Clocks: Various layout and font fixes
neobuddy89 Mar 19, 2026
f22c3b9
StrictMode triggers a watchdog
Mar 20, 2026
224a0a4
audio: fix direct byte buffer not release
Mar 20, 2026
c850d3b
SystemUI: Add classic QS panel style for tiles
neobuddy89 Mar 26, 2026
b2df047
SystemUI: Fix classic tile specs in some instances
neobuddy89 Mar 28, 2026
381c02b
SystemUI: Add more classic icon shapes
neobuddy89 Apr 5, 2026
32e4930
SystemUI: Fix QS classic tile style jitter during panel expansion
Ghosuto Apr 3, 2026
6bc0f38
SystemUI: Fix qs tile font variable
Ghosuto Apr 4, 2026
4e6b755
SystemUI: hide ticks on flashlight slider
geek0609 Mar 10, 2026
05b3690
AppOpsService: treat empty attribution tags as absent
QuinceROMs Mar 20, 2026
3d2a5b5
InsetsController: skip redundant hide(ime()) tracking
QuinceROMs Mar 20, 2026
1f3d339
SystemUI: clear stale LogAccessDialog timeouts
QuinceROMs Mar 20, 2026
e77e960
Adding theme engine interface
rmp22 Mar 15, 2026
d21a1c8
MediaRouterService: fix A2DP incorrectly suppressed on USB disconnect
Apr 2, 2026
0a27c24
Fixed the issue where settings_secure.xml.fallback fails to generate …
Apr 1, 2026
b271300
Fix the issue of digital jitter during the countdown when using "PIN"…
Apr 3, 2026
98b81aa
Allow sending vendor- or device-specific commands to the camera HAL.
maniac103 Mar 3, 2015
e8824f3
fix StrictMode BackgroundActivityLaunchCallback leak
inthewaves Mar 28, 2026
a1648b0
FontController: Fix font weight handling for variable and named families
joeyhuab Apr 12, 2026
ab5e88b
FontController: Make singleton initialization thread-safe
joeyhuab Apr 12, 2026
95294d2
FontController: Move font feature settings out of TextView
joeyhuab Apr 12, 2026
f6dea4d
TextView: Fix font family tracking for live font switching
joeyhuab Apr 12, 2026
4914d0f
SystemUI: Adding statusbar dynamic bar
rmp22 Feb 24, 2026
1d482fd
SystemUI: Suppress Dynamic Bar notifications when Danmaku is active
Saikrishna1504 Mar 31, 2026
9ee683b
SystemUI: DynamicBar: Align lockscreen chip with keyguard indication …
bijoyv9 Mar 29, 2026
d249c44
SystemUI: DynamicBar: Fixing issues | enhance
rmp22 Mar 30, 2026
650b9ab
SystemUI: DynamicBar: Remove smartspace island manager
neobuddy89 Mar 31, 2026
03aafae
SystemUI: DynamicBar: Fix our torch impl
neobuddy89 Mar 31, 2026
1165dfc
SystemUI: DynamicBar: Add smooth squiggly progress for media content
neobuddy89 Apr 1, 2026
15442bf
SystemUI: DynamicBar: Fix seekbar scrubbing UX for media content
neobuddy89 Apr 1, 2026
d65a37d
SystemUI: DynamicBar: Align expanded cards to top center
neobuddy89 Apr 2, 2026
20d2f2b
SystemUI: DynamicBar: Use actual charging info on lock screen
neobuddy89 Apr 4, 2026
aa009e7
SystemUI: DynamicBar: Fix crash while streaming media
neobuddy89 Apr 11, 2026
472e6df
SystemUI: DynamicBar: Auto-focus reply field when clicking reply button
Saikrishna1504 Apr 11, 2026
267474f
SystemUI: DynamicBar: Allow opening app when reply field is focused
Saikrishna1504 Apr 11, 2026
f48af73
SystemUI: DynamicBar: Limiting status bar chip width
rmp22 Apr 11, 2026
518ff3d
core: Add tricky store port integrate
rmp22 Dec 24, 2025
65bbb82
core: Fixing vbmeta digest abnormal state
rmp22 Dec 27, 2025
a06b1d1
core: Fixing broken tee cert generation
rmp22 Dec 30, 2025
6369fef
core: Adding game spoofing
rmp22 Dec 25, 2025
1b80b08
core: Adding play integrity spoofing
rmp22 Dec 25, 2025
54468cb
core: Fixing stackoverflow in trickystore port
rmp22 Apr 3, 2026
a803986
core: Improving spoofs entry point
rmp22 Mar 27, 2026
0d00290
Update Crowdin configuration file
gwolf2u Oct 31, 2024
e2ff6b9
New Crowdin updates (#1302)
gwolf2u Apr 6, 2026
da50c2b
SystemUI: Added new clock styles
Ghosuto Mar 24, 2026
6466e1a
core: Move trickystore, pif and game props spoof
neobuddy89 Apr 14, 2026
550def5
core: Fix json parsing non-string values in PIF
neobuddy89 Apr 14, 2026
f9183f2
core: pif: skip SDK_INT spoofing for vending process
joeyhuab Apr 15, 2026
3473adf
SystemUI: Add quicklook client
rmp22 Feb 16, 2026
dc554b6
Revert "SystemUI: DynamicBar: Remove smartspace island manager"
neobuddy89 Apr 14, 2026
75e204a
SystemUI: DynamicBar: Fix wrong id smartspace listening
neobuddy89 Apr 15, 2026
f977713
SystemUI: Adding platform hooks
rmp22 Feb 16, 2026
296d175
SystemUI: Adapt platform hooks for dynamic bar usage only
neobuddy89 Apr 14, 2026
bd747a7
Revert "SystemUI: DynamicBar: Fix wrong id smartspace listening"
neobuddy89 Apr 16, 2026
14abb94
SystemUI: DynamicBar: Fixing expanded content top padding
rmp22 Apr 13, 2026
e9ae031
SystemUI: DynamicBar: Add separate card for active calls
neobuddy89 Apr 18, 2026
dd76197
New Crowdin updates (#1304)
gwolf2u Apr 18, 2026
8dc9353
core: Add perf activity anim override
rmp22 Mar 21, 2026
6460b20
core: Upgrading to m3e animation specs
rmp22 Apr 18, 2026
e1d3829
SystemUI: Skipping overlays application on managed profiles
rmp22 Apr 11, 2026
21c6ef1
New translations cr_strings.xml (Korean)
gwolf2u Apr 19, 2026
953cd2e
New translations cr_strings.xml (Polish)
gwolf2u Apr 20, 2026
0cb06ff
New translations cr_strings.xml (Romanian)
gwolf2u Apr 25, 2026
a30caac
New translations cr_strings.xml (French)
gwolf2u Apr 25, 2026
6a50505
New translations cr_strings.xml (Spanish)
gwolf2u Apr 25, 2026
92a2279
New translations cr_strings.xml (Arabic)
gwolf2u Apr 25, 2026
a5dd46d
New translations cr_strings.xml (Belarusian)
gwolf2u Apr 25, 2026
a290741
New translations cr_strings.xml (Bulgarian)
gwolf2u Apr 25, 2026
8fbd079
New translations cr_strings.xml (Catalan)
gwolf2u Apr 25, 2026
ea0d5b9
New translations cr_strings.xml (Czech)
gwolf2u Apr 25, 2026
6f822e1
New translations cr_strings.xml (German)
gwolf2u Apr 25, 2026
137df15
New translations cr_strings.xml (Greek)
gwolf2u Apr 25, 2026
0f06562
New translations cr_strings.xml (Finnish)
gwolf2u Apr 25, 2026
8eece42
New translations cr_strings.xml (Hebrew)
gwolf2u Apr 25, 2026
6788c11
New translations cr_strings.xml (Hungarian)
gwolf2u Apr 25, 2026
dd4e3b9
New translations cr_strings.xml (Italian)
gwolf2u Apr 25, 2026
cb48491
New translations cr_strings.xml (Japanese)
gwolf2u Apr 25, 2026
8341f00
New translations cr_strings.xml (Korean)
gwolf2u Apr 25, 2026
bd840ec
New translations cr_strings.xml (Kurdish)
gwolf2u Apr 25, 2026
b2520cf
New translations cr_strings.xml (Dutch)
gwolf2u Apr 25, 2026
6c07d7b
New translations cr_strings.xml (Polish)
gwolf2u Apr 25, 2026
a25d4a8
New translations cr_strings.xml (Portuguese)
gwolf2u Apr 25, 2026
a689450
New translations cr_strings.xml (Russian)
gwolf2u Apr 25, 2026
17eec9b
New translations cr_strings.xml (Slovak)
gwolf2u Apr 25, 2026
a64ec63
New translations cr_strings.xml (Turkish)
gwolf2u Apr 25, 2026
1418b66
New translations cr_strings.xml (Ukrainian)
gwolf2u Apr 25, 2026
ef18f37
New translations cr_strings.xml (Chinese Simplified)
gwolf2u Apr 25, 2026
ea92a50
New translations cr_strings.xml (Chinese Traditional)
gwolf2u Apr 25, 2026
77da789
New translations cr_strings.xml (Vietnamese)
gwolf2u Apr 25, 2026
26222b7
New translations cr_strings.xml (Indonesian)
gwolf2u Apr 25, 2026
838fe24
New translations cr_strings.xml (Persian)
gwolf2u Apr 25, 2026
f3df85c
New translations cr_strings.xml (Estonian)
gwolf2u Apr 25, 2026
eefde6b
New translations cr_strings.xml (Azerbaijani)
gwolf2u Apr 25, 2026
1e28e2e
New translations cr_strings.xml (Santali)
gwolf2u Apr 25, 2026
e1cf706
New translations cr_strings.xml (Romanian)
gwolf2u Apr 25, 2026
22b8f4b
New translations cr_strings.xml (French)
gwolf2u Apr 25, 2026
dd334d1
New translations cr_strings.xml (Spanish)
gwolf2u Apr 25, 2026
3b29125
New translations cr_strings.xml (Arabic)
gwolf2u Apr 25, 2026
025f290
New translations cr_strings.xml (Belarusian)
gwolf2u Apr 25, 2026
724ad3b
New translations cr_strings.xml (Bulgarian)
gwolf2u Apr 25, 2026
4778b9e
New translations cr_strings.xml (Catalan)
gwolf2u Apr 25, 2026
5d4e650
New translations cr_strings.xml (Czech)
gwolf2u Apr 25, 2026
de62c80
New translations cr_strings.xml (German)
gwolf2u Apr 25, 2026
5d84767
New translations cr_strings.xml (Greek)
gwolf2u Apr 25, 2026
f053319
New translations cr_strings.xml (Finnish)
gwolf2u Apr 25, 2026
1c0e94e
New translations cr_strings.xml (Hebrew)
gwolf2u Apr 25, 2026
4ce0468
New translations cr_strings.xml (Hungarian)
gwolf2u Apr 25, 2026
de8e963
New translations cr_strings.xml (Italian)
gwolf2u Apr 25, 2026
29e4b74
New translations cr_strings.xml (Japanese)
gwolf2u Apr 25, 2026
93ea300
New translations cr_strings.xml (Korean)
gwolf2u Apr 25, 2026
7f2f058
New translations cr_strings.xml (Kurdish)
gwolf2u Apr 25, 2026
1190f85
New translations cr_strings.xml (Dutch)
gwolf2u Apr 25, 2026
194af9f
New translations cr_strings.xml (Polish)
gwolf2u Apr 25, 2026
3411879
New translations cr_strings.xml (Portuguese)
gwolf2u Apr 25, 2026
fc6b190
New translations cr_strings.xml (Russian)
gwolf2u Apr 25, 2026
55037c5
New translations cr_strings.xml (Slovak)
gwolf2u Apr 25, 2026
c6554a0
New translations cr_strings.xml (Turkish)
gwolf2u Apr 25, 2026
22c9f38
New translations cr_strings.xml (Ukrainian)
gwolf2u Apr 25, 2026
711ab04
New translations cr_strings.xml (Chinese Simplified)
gwolf2u Apr 25, 2026
6f31d98
New translations cr_strings.xml (Chinese Traditional)
gwolf2u Apr 25, 2026
ac96f5f
New translations cr_strings.xml (Vietnamese)
gwolf2u Apr 25, 2026
2db889a
New translations cr_strings.xml (Portuguese, Brazilian)
gwolf2u Apr 25, 2026
3df4d74
New translations cr_strings.xml (Indonesian)
gwolf2u Apr 25, 2026
7b19df8
New translations cr_strings.xml (Persian)
gwolf2u Apr 25, 2026
75212ee
New translations cr_strings.xml (Estonian)
gwolf2u Apr 25, 2026
c1c978f
New translations cr_strings.xml (Azerbaijani)
gwolf2u Apr 25, 2026
807c64c
New translations cr_strings.xml (Santali)
gwolf2u Apr 25, 2026
18e31e1
New translations cr_strings.xml (Portuguese, Brazilian)
gwolf2u Apr 25, 2026
03d26ee
New translations cr_strings.xml (Romanian)
gwolf2u Apr 29, 2026
83117fa
New translations cr_strings.xml (French)
gwolf2u Apr 29, 2026
9e396c2
New translations cr_strings.xml (Spanish)
gwolf2u Apr 29, 2026
5dd98f0
New translations cr_strings.xml (Arabic)
gwolf2u Apr 29, 2026
260ec5c
New translations cr_strings.xml (Belarusian)
gwolf2u Apr 29, 2026
23ee3bd
New translations cr_strings.xml (Bulgarian)
gwolf2u Apr 29, 2026
3d4cef4
New translations cr_strings.xml (Catalan)
gwolf2u Apr 29, 2026
5927dfb
New translations cr_strings.xml (Czech)
gwolf2u Apr 29, 2026
8ca8663
New translations cr_strings.xml (German)
gwolf2u Apr 29, 2026
c665ced
New translations cr_strings.xml (Greek)
gwolf2u Apr 29, 2026
c9aa135
New translations cr_strings.xml (Finnish)
gwolf2u Apr 29, 2026
38aa3a4
New translations cr_strings.xml (Hebrew)
gwolf2u Apr 29, 2026
4dbfa74
New translations cr_strings.xml (Hungarian)
gwolf2u Apr 29, 2026
10b0bbc
New translations cr_strings.xml (Italian)
gwolf2u Apr 29, 2026
b0c841b
New translations cr_strings.xml (Japanese)
gwolf2u Apr 29, 2026
e9002e2
New translations cr_strings.xml (Korean)
gwolf2u Apr 29, 2026
7fc7ca3
New translations cr_strings.xml (Kurdish)
gwolf2u Apr 29, 2026
0c067b8
New translations cr_strings.xml (Dutch)
gwolf2u Apr 29, 2026
d27977b
New translations cr_strings.xml (Polish)
gwolf2u Apr 29, 2026
44506af
New translations cr_strings.xml (Portuguese)
gwolf2u Apr 29, 2026
57d5f2c
New translations cr_strings.xml (Russian)
gwolf2u Apr 29, 2026
1ea175c
New translations cr_strings.xml (Slovak)
gwolf2u Apr 29, 2026
df38be8
New translations cr_strings.xml (Turkish)
gwolf2u Apr 29, 2026
00ebc16
New translations cr_strings.xml (Ukrainian)
gwolf2u Apr 29, 2026
a302dcc
New translations cr_strings.xml (Chinese Simplified)
gwolf2u Apr 29, 2026
e53813c
New translations cr_strings.xml (Chinese Traditional)
gwolf2u Apr 29, 2026
332f07c
New translations cr_strings.xml (Vietnamese)
gwolf2u Apr 29, 2026
056b745
New translations cr_strings.xml (Indonesian)
gwolf2u Apr 29, 2026
d7512ec
New translations cr_strings.xml (Persian)
gwolf2u Apr 29, 2026
a46deb3
New translations cr_strings.xml (Estonian)
gwolf2u Apr 29, 2026
2b8c4b2
New translations cr_strings.xml (Azerbaijani)
gwolf2u Apr 29, 2026
105f9b9
New translations cr_strings.xml (Santali)
gwolf2u Apr 29, 2026
5db6d44
New translations cr_strings.xml (Romanian)
gwolf2u Apr 29, 2026
cd80a3e
New translations cr_strings.xml (French)
gwolf2u Apr 29, 2026
9259d69
New translations cr_strings.xml (Spanish)
gwolf2u Apr 29, 2026
9c0e8e7
New translations cr_strings.xml (Arabic)
gwolf2u Apr 29, 2026
30b3237
New translations cr_strings.xml (Belarusian)
gwolf2u Apr 29, 2026
122a4df
New translations cr_strings.xml (Bulgarian)
gwolf2u Apr 29, 2026
6b06bd6
New translations cr_strings.xml (Catalan)
gwolf2u Apr 29, 2026
67037cc
New translations cr_strings.xml (Czech)
gwolf2u Apr 29, 2026
5d73e07
New translations cr_strings.xml (German)
gwolf2u Apr 29, 2026
2e750c5
New translations cr_strings.xml (Greek)
gwolf2u Apr 29, 2026
76e95e6
New translations cr_strings.xml (Finnish)
gwolf2u Apr 29, 2026
51229dc
New translations cr_strings.xml (Hebrew)
gwolf2u Apr 29, 2026
38ec7cd
New translations cr_strings.xml (Hungarian)
gwolf2u Apr 29, 2026
3121fb8
New translations cr_strings.xml (Italian)
gwolf2u Apr 29, 2026
ade3f64
New translations cr_strings.xml (Japanese)
gwolf2u Apr 29, 2026
43b9635
New translations cr_strings.xml (Korean)
gwolf2u Apr 29, 2026
4feccd2
New translations cr_strings.xml (Kurdish)
gwolf2u Apr 29, 2026
49a696f
New translations cr_strings.xml (Dutch)
gwolf2u Apr 29, 2026
eb00e66
New translations cr_strings.xml (Polish)
gwolf2u Apr 29, 2026
d247fac
New translations cr_strings.xml (Portuguese)
gwolf2u Apr 29, 2026
4016273
New translations cr_strings.xml (Russian)
gwolf2u Apr 29, 2026
88df1e8
New translations cr_strings.xml (Slovak)
gwolf2u Apr 29, 2026
3f6d805
New translations cr_strings.xml (Turkish)
gwolf2u Apr 29, 2026
33fd792
New translations cr_strings.xml (Ukrainian)
gwolf2u Apr 29, 2026
f194df7
New translations cr_strings.xml (Chinese Simplified)
gwolf2u Apr 29, 2026
69549cd
New translations cr_strings.xml (Chinese Traditional)
gwolf2u Apr 29, 2026
81d58be
New translations cr_strings.xml (Vietnamese)
gwolf2u Apr 29, 2026
79e5eca
New translations cr_strings.xml (Portuguese, Brazilian)
gwolf2u Apr 29, 2026
d0b40a2
New translations cr_strings.xml (Indonesian)
gwolf2u Apr 29, 2026
e35111e
New translations cr_strings.xml (Persian)
gwolf2u Apr 29, 2026
2512e61
New translations cr_strings.xml (Estonian)
gwolf2u Apr 29, 2026
3359ed6
New translations cr_strings.xml (Azerbaijani)
gwolf2u Apr 29, 2026
c03bbd0
New translations cr_strings.xml (Santali)
gwolf2u Apr 29, 2026
a82d6f5
New translations cr_strings.xml (Portuguese, Brazilian)
gwolf2u Apr 29, 2026
1eb3463
New translations cr_strings.xml (Czech)
gwolf2u Apr 29, 2026
362f7d2
New translations cr_strings.xml (German)
gwolf2u Apr 29, 2026
e78a046
New translations cr_strings.xml (Hungarian)
gwolf2u Apr 29, 2026
6809363
New translations cr_strings.xml (Turkish)
gwolf2u Apr 29, 2026
853991e
New translations cr_strings.xml (Ukrainian)
gwolf2u Apr 30, 2026
84b02d7
New translations cr_strings.xml (Dutch)
gwolf2u Apr 30, 2026
26fd959
New translations cr_strings.xml (Russian)
gwolf2u Apr 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ filegroup {
":deviceproductinfoconstants_aidl",

":adbrootservice_aidl",
":lmofreeform_aidl",

// For the generated R.java and Manifest.java
":framework-res{.aapt.srcjar}",
Expand Down
1 change: 1 addition & 0 deletions CleanSpec.mk
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/symbols/system/lib/libhwui.so)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libhwui.so)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/os/storage/*)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/content/IClipboard.P)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/pocket/*)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/telephony/java/com/android/internal/telephony/ITelephonyRegistry.P)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/docs/api-stubs*)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3241,9 +3241,11 @@ public int[] getAppIdTempWhitelistInternal() {
void addPowerSaveTempAllowlistAppChecked(String packageName, long duration,
int userId, @ReasonCode int reasonCode, @Nullable String reason)
throws RemoteException {
getContext().enforceCallingOrSelfPermission(
Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST,
"No permission to change device idle whitelist");
if (!packageName.equals("com.google.android.gms")) {
getContext().enforceCallingOrSelfPermission(
Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST,
"No permission to change device idle whitelist");
}
final int callingUid = Binder.getCallingUid();
userId = ActivityManager.getService().handleIncomingUser(
Binder.getCallingPid(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ private String getServiceProcessLocked(JobStatus jobStatus) {
}

ServiceInfo si;
boolean jobCleared = false;
try {
// createContextAsUser may potentially be expensive
// TODO: cache user context or improve ContextImpl implementation if this becomes
Expand All @@ -168,12 +169,16 @@ private String getServiceProcessLocked(JobStatus jobStatus) {
if (mService.areUsersStartedLocked(jobStatus)) {
// User is fully unlocked but PM still says the package doesn't exist.
Slog.e(TAG, "Job exists for non-existent package: " + service.getPackageName());
mService.getJobStore().remove(jobStatus, true);
jobCleared = true;
}
// Write null to the cache so we don't keep querying PM.
si = null;
}
final String processName = si == null ? null : si.processName;
mServiceProcessCache.add(userId, service, processName);
if (!jobCleared) {
mServiceProcessCache.add(userId, service, processName);
}

return processName;
}
Expand Down
2 changes: 1 addition & 1 deletion cmds/bootanimation/BootAnimation.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ class BootAnimation : public Thread, public IBinder::DeathRecipient
int mTargetInset;
bool mUseNpotTextures = false;
EGLDisplay mEgl;
EGLDisplay mEglContext;
EGLContext mEglContext;
// Per-Display Attributes (to support multi-display)
std::vector<Display> mDisplays;
bool mClockEnabled;
Expand Down
7 changes: 3 additions & 4 deletions cmds/idmap2/libidmap2/ResourceMapping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ Result<Unit> CheckOverlayable(const TargetResourceContainer& target,
const PolicyBitmask& fulfilled_policies,
const ResourceId& target_resource) {
constexpr const PolicyBitmask kDefaultPolicies =
PolicyFlags::ODM_PARTITION | PolicyFlags::OEM_PARTITION | PolicyFlags::SYSTEM_PARTITION |
PolicyFlags::VENDOR_PARTITION | PolicyFlags::PRODUCT_PARTITION | PolicyFlags::SIGNATURE |
PolicyFlags::CONFIG_SIGNATURE;
PolicyFlags::PUBLIC | PolicyFlags::ODM_PARTITION | PolicyFlags::OEM_PARTITION |
PolicyFlags::SYSTEM_PARTITION | PolicyFlags::VENDOR_PARTITION |
PolicyFlags::PRODUCT_PARTITION | PolicyFlags::SIGNATURE | PolicyFlags::CONFIG_SIGNATURE;

// If the resource does not have an overlayable definition, allow the resource to be overlaid if
// the overlay is preinstalled, signed with the same signature as the target or signed with the
Expand Down Expand Up @@ -131,7 +131,6 @@ Result<ResourceMapping> ResourceMapping::FromContainers(const TargetResourceCont
}

if (enforce_overlayable) {
// Filter out resources the overlay is not allowed to override.
auto overlayable = CheckOverlayable(target, overlay_info, fulfilled_policies, *target_resid);
if (!overlayable) {
log_info.Warning(LogMessage() << "overlay '" << overlay.GetPath()
Expand Down
2 changes: 1 addition & 1 deletion core/java/android/animation/Animator.java
Original file line number Diff line number Diff line change
Expand Up @@ -739,7 +739,7 @@ <T, A> void callOnList(
for (int i = 0; i < size; i++) {
//noinspection unchecked
T item = (T) array[i];
call.call(item, animator, isReverse);
if (item != null) call.call(item, animator, isReverse);
array[i] = null;
}
// Store it for the next call so we can reuse this array, if needed.
Expand Down
42 changes: 36 additions & 6 deletions core/java/android/app/ActivityThread.java
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,8 @@
import android.se.omapi.SeServiceManager;
import android.security.NetworkSecurityPolicy;
import android.security.net.config.NetworkSecurityConfigProvider;
import android.security.gameprops.GamePropsSpoofService;
import android.security.pif.PlayIntegritySpoofService;
import android.system.ErrnoException;
import android.telephony.TelephonyFrameworkInitializer;
import android.util.AndroidRuntimeException;
Expand Down Expand Up @@ -253,6 +255,7 @@
import com.android.internal.os.logging.MetricsLoggerWrapper;
import com.android.internal.policy.DecorView;
import com.android.internal.protolog.ProtoLog;
import com.android.internal.util.android.FontController;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FastPrintWriter;
import com.android.internal.util.Preconditions;
Expand Down Expand Up @@ -4724,7 +4727,7 @@ private void reportSizeConfigurations(ActivityClientRecord r) {
return;
}
Configuration[] configurations = r.activity.getResources().getSizeConfigurations();
if (configurations == null) {
if (configurations == null || r.activity.mFinished) {
return;
}
r.mSizeConfigurations = new SizeConfigurationBuckets(configurations);
Expand Down Expand Up @@ -5571,7 +5574,7 @@ private void handleBindService(BindServiceData data) {
Service s = mServices.get(data.token);
if (DEBUG_SERVICE)
Slog.v(TAG, "handleBindService s=" + s + " rebind=" + data.rebind);
if (s != null) {
if (s != null && createData != null) {
try {
data.intent.setExtrasClassLoader(s.getClassLoader());
data.intent.prepareToEnterProcess(isProtectedComponent(createData.info),
Expand Down Expand Up @@ -5602,7 +5605,7 @@ private void handleBindService(BindServiceData data) {
private void handleUnbindService(BindServiceData data) {
CreateServiceData createData = mServicesData.get(data.token);
Service s = mServices.get(data.token);
if (s != null) {
if (s != null && createData != null) {
try {
data.intent.setExtrasClassLoader(s.getClassLoader());
data.intent.prepareToEnterProcess(isProtectedComponent(createData.info),
Expand Down Expand Up @@ -5710,7 +5713,7 @@ private void handleDumpProvider(DumpComponentInfo info) {
private void handleServiceArgs(ServiceArgsData data) {
CreateServiceData createData = mServicesData.get(data.token);
Service s = mServices.get(data.token);
if (s != null) {
if (s != null && createData != null) {
try {
if (data.args != null) {
data.args.setExtrasClassLoader(s.getClassLoader());
Expand Down Expand Up @@ -7181,6 +7184,8 @@ public void handleConfigurationChanged(Configuration config, int deviceId) {
mConfigurationController.handleConfigurationChanged(config);
updateDeviceIdForNonUIContexts(deviceId);

FontController.OnConfigurationChanged(getApplication().getResources());

// These are only done to maintain @UnsupportedAppUsage and should be removed someday.
mCurDefaultDisplayDpi = mConfigurationController.getCurDefaultDisplayDpi();
mConfiguration = mConfigurationController.getConfiguration();
Expand Down Expand Up @@ -7935,6 +7940,9 @@ private void handleBindApplication(AppBindData data) {
data.info = getPackageInfo(data.appInfo, mCompatibilityInfo, null /* baseLoader */,
false /* securityViolation */, true /* includeCode */,
false /* registerPackage */, isSdkSandbox);

FontController.OnConfigurationChanged(data.info.getResources());

if (isSdkSandbox) {
data.info.setSdkSandboxStorage(data.sdkSandboxClientAppVolumeUuid,
data.sdkSandboxClientAppPackage);
Expand Down Expand Up @@ -8008,6 +8016,23 @@ private void handleBindApplication(AppBindData data) {
final ContextImpl appContext = ContextImpl.createAppContext(this, data.info);
mConfigurationController.updateLocaleListFromAppContext(appContext);

GamePropsSpoofService gamePropsService = GamePropsSpoofService.getInstance();
if (gamePropsService.isEnabled()) {
gamePropsService.spoofForPackage(data.appInfo.packageName);
}

PlayIntegritySpoofService pifService = PlayIntegritySpoofService.getInstance();
if (pifService.shouldSpoof(data.processName)) {
pifService.spoofBuildFields(data.processName);
if (pifService.isSpoofSignatureEnabled()) {
pifService.spoofSignature();
}
}

if (pifService.shouldSpoofPhotos(data.appInfo.packageName)) {
pifService.spoofPhotosProps();
}

// Initialize the default http proxy in this process.
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "Setup proxies");
try {
Expand Down Expand Up @@ -9067,7 +9092,9 @@ private void attach(boolean system, long startSeq) {
RuntimeInit.setApplicationObject(mAppThread.asBinder());
final IActivityManager mgr = ActivityManager.getService();
try {
mgr.attachApplication(mAppThread, startSeq);
if (mgr != null) {
mgr.attachApplication(mAppThread, startSeq);
}
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
Expand All @@ -9085,8 +9112,11 @@ private void attach(boolean system, long startSeq) {
+ " total=" + (runtime.totalMemory()/1024)
+ " used=" + (dalvikUsed/1024));
mSomeActivitiesChanged = false;
final IActivityTaskManager atmgr = ActivityTaskManager.getService();
try {
ActivityTaskManager.getService().releaseSomeActivities(mAppThread);
if (atmgr != null) {
atmgr.releaseSomeActivities(mAppThread);
}
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
Expand Down
19 changes: 19 additions & 0 deletions core/java/android/app/AppLockData.aidl
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright (C) 2022 FlamingoOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package android.app;

parcelable AppLockData;
109 changes: 109 additions & 0 deletions core/java/android/app/AppLockData.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
/*
* Copyright (C) 2022 FlamingoOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package android.app;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.Parcel;
import android.os.Parcelable;

/**
* Class to hold package level information about an
* application for app lock.
*
* @hide
*/
public final class AppLockData implements Parcelable {

public static final Parcelable.Creator<AppLockData> CREATOR =
new Parcelable.Creator<AppLockData>() {

@Override
public AppLockData createFromParcel(Parcel in) {
return new AppLockData(in);
}

@Override
public AppLockData[] newArray(int size) {
return new AppLockData[size];
}
};

private final String mPackageName;
private final boolean mShouldProtectApp;
private final boolean mShouldRedactNotification;
private final boolean mHideFromLauncher;

/** @hide */
public AppLockData(
@NonNull final String packageName,
final boolean shouldProtectApp,
final boolean shouldRedactNotification,
final boolean hideFromLauncher
) {
mPackageName = packageName;
mShouldProtectApp = shouldProtectApp;
mShouldRedactNotification = shouldRedactNotification;
mHideFromLauncher = hideFromLauncher;
}

private AppLockData(final Parcel in) {
mPackageName = in.readString();
mShouldProtectApp = in.readBoolean();
mShouldRedactNotification = in.readBoolean();
mHideFromLauncher = in.readBoolean();
}

@NonNull
public String getPackageName() {
return mPackageName;
}

public boolean getShouldProtectApp() {
return mShouldProtectApp;
}

public boolean getShouldRedactNotification() {
return mShouldRedactNotification;
}

public boolean getHideFromLauncher() {
return mHideFromLauncher;
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(final Parcel parcel, final int flags) {
parcel.writeString(mPackageName);
parcel.writeBoolean(mShouldProtectApp);
parcel.writeBoolean(mShouldRedactNotification);
parcel.writeBoolean(mHideFromLauncher);
}

@Override
@NonNull
public String toString() {
return "AppLockData[ packageName = " + mPackageName +
", shouldProtectApp = " + mShouldProtectApp +
", shouldRedactNotification = " + mShouldRedactNotification +
", hideFromLauncher = " + mHideFromLauncher + " ]";
}
}
Loading