@@ -920,29 +920,35 @@ def get_permission_group(args) -> str | None:
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
922922def _get_hardcoded_permissions_for_group (permission_group ) -> list [str ]:
923- if permission_group == "android.permission-group.CONTACTS" :
924- return ["android.permission.READ_CONTACTS" , "android.permission.WRITE_CONTACTS" ]
925- if permission_group == "android.permission-group.PHONE" :
926- return ["android.permission.READ_PHONE_STATE" , "android.permission.READ_PHONE_NUMBERS" ,
927- "android.permission.CALL_PHONE" , "android.permission.ANSWER_PHONE_CALLS" ]
928- if permission_group == "android.permission-group.CALENDAR" :
929- return ["android.permission.READ_CALENDAR" , "android.permission.WRITE_CALENDAR" ]
930- if permission_group == "android.permission-group.CAMERA" :
931- return ["android.permission.CAMERA" ]
932- if permission_group == "android.permission-group.SENSORS" :
933- return ["android.permission.BODY_SENSORS" ]
934- if permission_group == "android.permission-group.LOCATION" :
935- return ["android.permission.ACCESS_FINE_LOCATION" , "android.permission.ACCESS_COARSE_LOCATION" ]
936- if permission_group == "android.permission-group.STORAGE" :
937- return ["android.permission.READ_EXTERNAL_STORAGE" , "android.permission.WRITE_EXTERNAL_STORAGE" ]
938- if permission_group == "android.permission-group.MICROPHONE" :
939- return ["android.permission.RECORD_AUDIO" ]
940- if permission_group == "android.special-permission-group.NOTIFICATIONS" :
941- return ["android.permission.POST_NOTIFICATIONS" ]
942- if permission_group == "android.permission-group.SMS" :
943- return ["android.permission.READ_SMS" , "android.permission.RECEIVE_SMS" , "android.permission.SEND_SMS" ]
944- print_verbose (f"Unexpected permission group: { permission_group } " )
945- return []
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
946952
947953
948954# Pass the full-qualified permission group name to this method.
0 commit comments