Skip to content

AppCleaner: Improve detection for locked system apps on Android 11 - #1718

Merged
d4rken merged 1 commit into
mainfrom
acs-abort-conditions
Apr 30, 2025
Merged

AppCleaner: Improve detection for locked system apps on Android 11#1718
d4rken merged 1 commit into
mainfrom
acs-abort-conditions

Conversation

@d4rken

@d4rken d4rken commented Apr 18, 2025

Copy link
Copy Markdown
Member

API30 has system apps with locked cache buttons too, e.g.: realme/RMX2001EEA/RMX2001L1:11/RP1A.200720.011/1647528410735:user/release-keys

0: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=525b1a6, bounds=Rect(0, 0 - 1080, 2400)
-1: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=43bcf94, bounds=Rect(0, 0 - 1080, 2268)
--2: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=72eaa3d, bounds=Rect(0, 0 - 1080, 2268)
---3: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/action_bar_root pkg=com.android.settings, identity=eeb4232, bounds=Rect(0, 0 - 1080, 2268)
----4: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=android:id/content pkg=com.android.settings, identity=d029b83, bounds=Rect(0, 0 - 1080, 2268)
-----5: text='null', class=android.view.ViewGroup, clickable=false, checkable=false enabled=true, id=com.android.settings:id/content_parent pkg=com.android.settings, identity=fd05100, bounds=Rect(0, 0 - 1080, 2268)
------6: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/content_frame pkg=com.android.settings, identity=a60ad39, bounds=Rect(0, 115 - 1080, 2268)
-------7: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=3074f7e, bounds=Rect(0, 115 - 1080, 2268)
--------8: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/main_content pkg=com.android.settings, identity=dc96cdf, bounds=Rect(0, 115 - 1080, 2268)
---------9: text='null', class=android.view.ViewGroup, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=1697d2c, bounds=Rect(0, 115 - 1080, 2268)
----------10: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/main_layout pkg=com.android.settings, identity=b44e58a, bounds=Rect(0, 115 - 1080, 2268)
-----------11: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=android:id/list_container pkg=com.android.settings, identity=d01f7fb, bounds=Rect(0, 313 - 1080, 2268)
------------12: text='null', class=androidx.recyclerview.widget.RecyclerView, clickable=false, checkable=false enabled=true, id=com.android.settings:id/recycler_view pkg=com.android.settings, identity=a874018, bounds=Rect(0, 313 - 1080, 2268)
-------------13: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=619fa30, bounds=Rect(0, 313 - 1080, 588)
--------------14: text='null', class=android.widget.ScrollView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=46a56a9, bounds=Rect(0, 313 - 1080, 588)
---------------15: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/all_details pkg=com.android.settings, identity=764942e, bounds=Rect(72, 367 - 1008, 534)
----------------16: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=com.android.settings:id/app_icon pkg=com.android.settings, identity=e5c895c, bounds=Rect(72, 382 - 216, 526)
----------------16: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=48d4bcf, bounds=Rect(288, 367 - 615, 534)
-----------------17: text='Media-Auswahl', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=com.android.settings:id/app_name pkg=com.android.settings, identity=6a9c53a, bounds=Rect(288, 382 - 615, 447)
-----------------17: text='15', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=com.android.settings:id/app_version pkg=com.android.settings, identity=868b465, bounds=Rect(288, 447 - 336, 519)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=a116b73, bounds=Rect(0, 588 - 1080, 588)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=3149be2, bounds=Rect(0, 660 - 1080, 743)
--------------14: text='Insgesamt', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/title pkg=com.android.settings, identity=73531e1, bounds=Rect(72, 660 - 298, 743)
--------------14: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=2d6df48, bounds=Rect(301, 730 - 831, 731)
--------------14: text='58,8 MB', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/summary pkg=com.android.settings, identity=53cd5eb, bounds=Rect(834, 660 - 1008, 743)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=1039cad, bounds=Rect(0, 743 - 1080, 826)
--------------14: text='App', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/title pkg=com.android.settings, identity=b1ea7f4, bounds=Rect(72, 743 - 157, 826)
--------------14: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=b10e5c7, bounds=Rect(160, 813 - 831, 814)
--------------14: text='53,5 MB', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/summary pkg=com.android.settings, identity=bdefb06, bounds=Rect(834, 743 - 1008, 826)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=2bc45c4, bounds=Rect(0, 826 - 1080, 909)
--------------14: text='Daten', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/title pkg=com.android.settings, identity=92c1763, bounds=Rect(72, 826 - 198, 909)
--------------14: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=4dfc192, bounds=Rect(201, 896 - 858, 897)
--------------14: text='5,0 MB', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/summary pkg=com.android.settings, identity=df20b1d, bounds=Rect(861, 826 - 1008, 909)
-------------13: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=76e18d7, bounds=Rect(0, 909 - 1080, 1084)
--------------14: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=784f60, bounds=Rect(0, 909 - 1080, 1084)
---------------15: text='null', class=android.view.View, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=fb464de, bounds=Rect(72, 945 - 1008, 947)
---------------15: text='null', class=android.widget.RelativeLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=fa93c19, bounds=Rect(72, 983 - 1008, 1048)
----------------16: text='Daten löschen', class=android.widget.Button, clickable=true, checkable=false enabled=false, id=com.android.settings:id/button pkg=com.android.settings, identity=83ec6bf, bounds=Rect(703, 983 - 1008, 1048)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=113d056, bounds=Rect(0, 1156 - 1080, 1239)
--------------14: text='Cache', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/title pkg=com.android.settings, identity=9df0ea, bounds=Rect(72, 1156 - 205, 1239)
--------------14: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=c0880d5, bounds=Rect(208, 1226 - 852, 1227)
--------------14: text='200 KB', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/summary pkg=com.android.settings, identity=a03018c, bounds=Rect(855, 1156 - 1008, 1239)
-------------13: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=badca71, bounds=Rect(0, 1239 - 1080, 1414)
--------------14: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=1a30fdb, bounds=Rect(0, 1239 - 1080, 1414)
---------------15: text='null', class=android.view.View, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=5dd5551, bounds=Rect(72, 1275 - 1008, 1277)
---------------15: text='null', class=android.widget.RelativeLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=fa4aa78, bounds=Rect(72, 1313 - 1008, 1378)
----------------16: text='Cache leeren', class=android.widget.Button, clickable=true, checkable=false enabled=false, id=com.android.settings:id/button pkg=com.android.settings, identity=ce231b6, bounds=Rect(733, 1313 - 1008, 1378)
----------10: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/abl pkg=com.android.settings, identity=a15e3f5, bounds=Rect(0, 115 - 1080, 297)
-----------11: text='null', class=android.view.ViewGroup, clickable=false, checkable=false enabled=true, id=com.android.settings:id/toolbar pkg=com.android.settings, identity=fb5f624, bounds=Rect(0, 115 - 1080, 295)
------------12: text='null', class=android.widget.ImageButton, clickable=true, checkable=false enabled=true, id=null pkg=com.android.settings, identity=3019f53, bounds=Rect(0, 145 - 174, 295)
------------12: text='Speichernutzung', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=657b342, bounds=Rect(174, 186 - 1047, 251)
------------12: text='null', class=androidx.appcompat.widget.LinearLayoutCompat, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=550f58d, bounds=Rect(1047, 145 - 1047, 295)
-----------11: text='null', class=android.view.View, clickable=false, checkable=false enabled=true, id=com.android.settings:id/divider_line pkg=com.android.settings, identity=38ceb7, bounds=Rect(72, 295 - 1008, 297)
-1: text='null', class=android.view.View, clickable=false, checkable=false enabled=true, id=android:id/navigationBarBackground pkg=com.android.settings, identity=99167e7, bounds=Rect(0, 2268 - 1080, 2400)

API30 has system apps with locked cache buttons too, e.g.:
`realme/RMX2001EEA/RMX2001L1:11/RP1A.200720.011/1647528410735:user/release-keys`

```java
0: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=525b1a6, bounds=Rect(0, 0 - 1080, 2400)
-1: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=43bcf94, bounds=Rect(0, 0 - 1080, 2268)
--2: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=72eaa3d, bounds=Rect(0, 0 - 1080, 2268)
---3: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/action_bar_root pkg=com.android.settings, identity=eeb4232, bounds=Rect(0, 0 - 1080, 2268)
----4: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=android:id/content pkg=com.android.settings, identity=d029b83, bounds=Rect(0, 0 - 1080, 2268)
-----5: text='null', class=android.view.ViewGroup, clickable=false, checkable=false enabled=true, id=com.android.settings:id/content_parent pkg=com.android.settings, identity=fd05100, bounds=Rect(0, 0 - 1080, 2268)
------6: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/content_frame pkg=com.android.settings, identity=a60ad39, bounds=Rect(0, 115 - 1080, 2268)
-------7: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=3074f7e, bounds=Rect(0, 115 - 1080, 2268)
--------8: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/main_content pkg=com.android.settings, identity=dc96cdf, bounds=Rect(0, 115 - 1080, 2268)
---------9: text='null', class=android.view.ViewGroup, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=1697d2c, bounds=Rect(0, 115 - 1080, 2268)
----------10: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/main_layout pkg=com.android.settings, identity=b44e58a, bounds=Rect(0, 115 - 1080, 2268)
-----------11: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=android:id/list_container pkg=com.android.settings, identity=d01f7fb, bounds=Rect(0, 313 - 1080, 2268)
------------12: text='null', class=androidx.recyclerview.widget.RecyclerView, clickable=false, checkable=false enabled=true, id=com.android.settings:id/recycler_view pkg=com.android.settings, identity=a874018, bounds=Rect(0, 313 - 1080, 2268)
-------------13: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=619fa30, bounds=Rect(0, 313 - 1080, 588)
--------------14: text='null', class=android.widget.ScrollView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=46a56a9, bounds=Rect(0, 313 - 1080, 588)
---------------15: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/all_details pkg=com.android.settings, identity=764942e, bounds=Rect(72, 367 - 1008, 534)
----------------16: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=com.android.settings:id/app_icon pkg=com.android.settings, identity=e5c895c, bounds=Rect(72, 382 - 216, 526)
----------------16: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=48d4bcf, bounds=Rect(288, 367 - 615, 534)
-----------------17: text='Media-Auswahl', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=com.android.settings:id/app_name pkg=com.android.settings, identity=6a9c53a, bounds=Rect(288, 382 - 615, 447)
-----------------17: text='15', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=com.android.settings:id/app_version pkg=com.android.settings, identity=868b465, bounds=Rect(288, 447 - 336, 519)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=a116b73, bounds=Rect(0, 588 - 1080, 588)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=3149be2, bounds=Rect(0, 660 - 1080, 743)
--------------14: text='Insgesamt', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/title pkg=com.android.settings, identity=73531e1, bounds=Rect(72, 660 - 298, 743)
--------------14: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=2d6df48, bounds=Rect(301, 730 - 831, 731)
--------------14: text='58,8 MB', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/summary pkg=com.android.settings, identity=53cd5eb, bounds=Rect(834, 660 - 1008, 743)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=1039cad, bounds=Rect(0, 743 - 1080, 826)
--------------14: text='App', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/title pkg=com.android.settings, identity=b1ea7f4, bounds=Rect(72, 743 - 157, 826)
--------------14: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=b10e5c7, bounds=Rect(160, 813 - 831, 814)
--------------14: text='53,5 MB', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/summary pkg=com.android.settings, identity=bdefb06, bounds=Rect(834, 743 - 1008, 826)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=2bc45c4, bounds=Rect(0, 826 - 1080, 909)
--------------14: text='Daten', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/title pkg=com.android.settings, identity=92c1763, bounds=Rect(72, 826 - 198, 909)
--------------14: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=4dfc192, bounds=Rect(201, 896 - 858, 897)
--------------14: text='5,0 MB', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/summary pkg=com.android.settings, identity=df20b1d, bounds=Rect(861, 826 - 1008, 909)
-------------13: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=76e18d7, bounds=Rect(0, 909 - 1080, 1084)
--------------14: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=784f60, bounds=Rect(0, 909 - 1080, 1084)
---------------15: text='null', class=android.view.View, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=fb464de, bounds=Rect(72, 945 - 1008, 947)
---------------15: text='null', class=android.widget.RelativeLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=fa93c19, bounds=Rect(72, 983 - 1008, 1048)
----------------16: text='Daten löschen', class=android.widget.Button, clickable=true, checkable=false enabled=false, id=com.android.settings:id/button pkg=com.android.settings, identity=83ec6bf, bounds=Rect(703, 983 - 1008, 1048)
-------------13: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=113d056, bounds=Rect(0, 1156 - 1080, 1239)
--------------14: text='Cache', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/title pkg=com.android.settings, identity=9df0ea, bounds=Rect(72, 1156 - 205, 1239)
--------------14: text='null', class=android.widget.ImageView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=c0880d5, bounds=Rect(208, 1226 - 852, 1227)
--------------14: text='200 KB', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=android:id/summary pkg=com.android.settings, identity=a03018c, bounds=Rect(855, 1156 - 1008, 1239)
-------------13: text='null', class=android.widget.FrameLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=badca71, bounds=Rect(0, 1239 - 1080, 1414)
--------------14: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=1a30fdb, bounds=Rect(0, 1239 - 1080, 1414)
---------------15: text='null', class=android.view.View, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=5dd5551, bounds=Rect(72, 1275 - 1008, 1277)
---------------15: text='null', class=android.widget.RelativeLayout, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=fa4aa78, bounds=Rect(72, 1313 - 1008, 1378)
----------------16: text='Cache leeren', class=android.widget.Button, clickable=true, checkable=false enabled=false, id=com.android.settings:id/button pkg=com.android.settings, identity=ce231b6, bounds=Rect(733, 1313 - 1008, 1378)
----------10: text='null', class=android.widget.LinearLayout, clickable=false, checkable=false enabled=true, id=com.android.settings:id/abl pkg=com.android.settings, identity=a15e3f5, bounds=Rect(0, 115 - 1080, 297)
-----------11: text='null', class=android.view.ViewGroup, clickable=false, checkable=false enabled=true, id=com.android.settings:id/toolbar pkg=com.android.settings, identity=fb5f624, bounds=Rect(0, 115 - 1080, 295)
------------12: text='null', class=android.widget.ImageButton, clickable=true, checkable=false enabled=true, id=null pkg=com.android.settings, identity=3019f53, bounds=Rect(0, 145 - 174, 295)
------------12: text='Speichernutzung', class=android.widget.TextView, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=657b342, bounds=Rect(174, 186 - 1047, 251)
------------12: text='null', class=androidx.appcompat.widget.LinearLayoutCompat, clickable=false, checkable=false enabled=true, id=null pkg=com.android.settings, identity=550f58d, bounds=Rect(1047, 145 - 1047, 295)
-----------11: text='null', class=android.view.View, clickable=false, checkable=false enabled=true, id=com.android.settings:id/divider_line pkg=com.android.settings, identity=38ceb7, bounds=Rect(72, 295 - 1008, 297)
-1: text='null', class=android.view.View, clickable=false, checkable=false enabled=true, id=android:id/navigationBarBackground pkg=com.android.settings, identity=99167e7, bounds=Rect(0, 2268 - 1080, 2400)
```
@d4rken d4rken added enhancement New feature, request, improvement or optimization c: AppCleaner Automation Accessibility service related (ACS) labels Apr 18, 2025
@d4rken
d4rken merged commit 9af6859 into main Apr 30, 2025
@d4rken
d4rken deleted the acs-abort-conditions branch April 30, 2025 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Automation Accessibility service related (ACS) c: AppCleaner enhancement New feature, request, improvement or optimization

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant