Skip to content

Commit 6bf089b

Browse files
authored
chore: clean up in _get_hardcoded_permissions_for_group (#294)
1 parent 06655cd commit 6bf089b

File tree

1 file changed

+50
-32
lines changed

1 file changed

+50
-32
lines changed

adbe/adb_enhanced.py

Lines changed: 50 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/usr/bin/env python3
22

33
import os
4-
import random
54
import re
5+
import secrets
66
import signal
77
import subprocess
88
import sys
@@ -859,7 +859,7 @@ def _create_tmp_file(filename_prefix=None, filename_suffix=None):
859859
tmp_dir = "/data/local/tmp"
860860

861861
filepath_on_device = (
862-
f"{tmp_dir}/{filename_prefix}-{random.randint(1, 1000 * 1000 * 1000):d}.{filename_suffix}")
862+
f"{tmp_dir}/{filename_prefix}-{secrets.randbelow(1000 * 1000 * 1000):d}.{filename_suffix}")
863863
if _file_exists(filepath_on_device):
864864
# Retry if the file already exists
865865
print_verbose(f"Tmp File {filepath_on_device} already exists, trying a new random name")
@@ -919,36 +919,54 @@ def get_permission_group(args) -> str | None:
919919

920920
# Android keeps emptying these groups so that granted permissions are denied
921921
# but the expectation of this tool is to do the right mapping
922-
def _get_hardcoded_permissions_for_group(permission_group) -> list[str]:
923-
match permission_group:
924-
case "android.permission-group.CONTACTS":
925-
return ["android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS"]
926-
case "android.permission-group.PHONE":
927-
return [
928-
"android.permission.READ_PHONE_STATE",
929-
"android.permission.READ_PHONE_NUMBERS",
930-
"android.permission.CALL_PHONE",
931-
"android.permission.ANSWER_PHONE_CALLS"
932-
]
933-
case "android.permission-group.CALENDAR":
934-
return ["android.permission.READ_CALENDAR", "android.permission.WRITE_CALENDAR"]
935-
case "android.permission-group.CAMERA":
936-
return ["android.permission.CAMERA"]
937-
case "android.permission-group.SENSORS":
938-
return ["android.permission.BODY_SENSORS"]
939-
case "android.permission-group.LOCATION":
940-
return ["android.permission.ACCESS_FINE_LOCATION", "android.permission.ACCESS_COARSE_LOCATION"]
941-
case "android.permission-group.STORAGE":
942-
return ["android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE"]
943-
case "android.permission-group.MICROPHONE":
944-
return ["android.permission.RECORD_AUDIO"]
945-
case "android.special-permission-group.NOTIFICATIONS":
946-
return ["android.permission.POST_NOTIFICATIONS"]
947-
case "android.permission-group.SMS":
948-
return ["android.permission.READ_SMS", "android.permission.RECEIVE_SMS", "android.permission.SEND_SMS"]
949-
case _:
950-
print_verbose(f"Unexpected permission group: {permission_group}")
951-
return [] # Default case if no match found
922+
def _get_hardcoded_permissions_for_group(permission_group: str) -> list[str]:
923+
result_map = {
924+
"android.permission-group.CONTACTS": [
925+
"android.permission.READ_CONTACTS",
926+
"android.permission.WRITE_CONTACTS",
927+
],
928+
"android.permission-group.PHONE": [
929+
"android.permission.READ_PHONE_STATE",
930+
"android.permission.READ_PHONE_NUMBERS",
931+
"android.permission.CALL_PHONE",
932+
"android.permission.ANSWER_PHONE_CALLS",
933+
],
934+
"android.permission-group.CALENDAR": [
935+
"android.permission.READ_CALENDAR",
936+
"android.permission.WRITE_CALENDAR",
937+
],
938+
"android.permission-group.CAMERA": [
939+
"android.permission.CAMERA",
940+
],
941+
"android.permission-group.SENSORS": [
942+
"android.permission.BODY_SENSORS",
943+
],
944+
"android.permission-group.LOCATION": [
945+
"android.permission.ACCESS_FINE_LOCATION",
946+
"android.permission.ACCESS_COARSE_LOCATION",
947+
],
948+
"android.permission-group.STORAGE": [
949+
"android.permission.READ_EXTERNAL_STORAGE",
950+
"android.permission.WRITE_EXTERNAL_STORAGE",
951+
],
952+
"android.permission-group.MICROPHONE": [
953+
"android.permission.RECORD_AUDIO",
954+
],
955+
"android.special-permission-group.NOTIFICATIONS": [
956+
"android.permission.POST_NOTIFICATIONS",
957+
],
958+
"android.permission-group.SMS": [
959+
"android.permission.READ_SMS",
960+
"android.permission.RECEIVE_SMS",
961+
"android.permission.SEND_SMS",
962+
],
963+
}
964+
965+
result = result_map.get(permission_group, [])
966+
if not result:
967+
print_error(f"Unexpected permission group: {permission_group}")
968+
969+
return result
952970

953971

954972
# Pass the full-qualified permission group name to this method.

0 commit comments

Comments
 (0)