Merge "Add support for dumping new badging" into klp-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5223a5ff24
@@ -346,6 +346,7 @@ enum {
|
||||
LABEL_ATTR = 0x01010001,
|
||||
ICON_ATTR = 0x01010002,
|
||||
NAME_ATTR = 0x01010003,
|
||||
PERMISSION_ATTR = 0x01010006,
|
||||
DEBUGGABLE_ATTR = 0x0101000f,
|
||||
VERSION_CODE_ATTR = 0x0101021b,
|
||||
VERSION_NAME_ATTR = 0x0101021c,
|
||||
@@ -631,12 +632,25 @@ int doDump(Bundle* bundle)
|
||||
bool hasOtherServices = false;
|
||||
bool hasWallpaperService = false;
|
||||
bool hasImeService = false;
|
||||
bool hasAccessibilityService = false;
|
||||
bool hasPrintService = false;
|
||||
bool hasWidgetReceivers = false;
|
||||
bool hasDeviceAdminReceiver = false;
|
||||
bool hasIntentFilter = false;
|
||||
bool actMainActivity = false;
|
||||
bool actWidgetReceivers = false;
|
||||
bool actDeviceAdminEnabled = false;
|
||||
bool actImeService = false;
|
||||
bool actWallpaperService = false;
|
||||
bool actAccessibilityService = false;
|
||||
bool actPrintService = false;
|
||||
|
||||
// These permissions are required by services implementing services
|
||||
// the system binds to (IME, Accessibility, PrintServices, etc.)
|
||||
bool hasBindDeviceAdminPermission = false;
|
||||
bool hasBindInputMethodPermission = false;
|
||||
bool hasBindAccessibilityServicePermission = false;
|
||||
bool hasBindPrintServicePermission = false;
|
||||
|
||||
// These two implement the implicit permissions that are granted
|
||||
// to pre-1.6 applications.
|
||||
@@ -760,11 +774,17 @@ int doDump(Bundle* bundle)
|
||||
hasOtherActivities |= !actMainActivity;
|
||||
} else if (withinReceiver) {
|
||||
hasWidgetReceivers |= actWidgetReceivers;
|
||||
hasOtherReceivers |= !actWidgetReceivers;
|
||||
hasDeviceAdminReceiver |= (actDeviceAdminEnabled &&
|
||||
hasBindDeviceAdminPermission);
|
||||
hasOtherReceivers |= (!actWidgetReceivers && !actDeviceAdminEnabled);
|
||||
} else if (withinService) {
|
||||
hasImeService |= actImeService;
|
||||
hasWallpaperService |= actWallpaperService;
|
||||
hasOtherServices |= (!actImeService && !actWallpaperService);
|
||||
hasAccessibilityService |= (actAccessibilityService &&
|
||||
hasBindAccessibilityServicePermission);
|
||||
hasPrintService |= (actPrintService && hasBindPrintServicePermission);
|
||||
hasOtherServices |= (!actImeService && !actWallpaperService &&
|
||||
!actAccessibilityService && !actPrintService);
|
||||
}
|
||||
}
|
||||
withinIntentFilter = false;
|
||||
@@ -1166,6 +1186,16 @@ int doDump(Bundle* bundle)
|
||||
" %s\n", error.string());
|
||||
goto bail;
|
||||
}
|
||||
|
||||
String8 permission = getAttribute(tree, PERMISSION_ATTR, &error);
|
||||
if (error == "") {
|
||||
if (permission == "android.permission.BIND_DEVICE_ADMIN") {
|
||||
hasBindDeviceAdminPermission = true;
|
||||
}
|
||||
} else {
|
||||
fprintf(stderr, "ERROR getting 'android:permission' attribute for"
|
||||
" receiver '%s': %s\n", receiverName.string(), error.string());
|
||||
}
|
||||
} else if (tag == "service") {
|
||||
withinService = true;
|
||||
serviceName = getAttribute(tree, NAME_ATTR, &error);
|
||||
@@ -1175,6 +1205,20 @@ int doDump(Bundle* bundle)
|
||||
" service: %s\n", error.string());
|
||||
goto bail;
|
||||
}
|
||||
|
||||
String8 permission = getAttribute(tree, PERMISSION_ATTR, &error);
|
||||
if (error == "") {
|
||||
if (permission == "android.permission.BIND_INPUT_METHOD") {
|
||||
hasBindInputMethodPermission = true;
|
||||
} else if (permission == "android.permission.BIND_ACCESSIBILITY_SERVICE") {
|
||||
hasBindAccessibilityServicePermission = true;
|
||||
} else if (permission == "android.permission.BIND_PRINT_SERVICE") {
|
||||
hasBindPrintServicePermission = true;
|
||||
}
|
||||
} else {
|
||||
fprintf(stderr, "ERROR getting 'android:permission' attribute for"
|
||||
" service '%s': %s\n", serviceName.string(), error.string());
|
||||
}
|
||||
}
|
||||
} else if (withinSupportsInput && tag == "input-type") {
|
||||
String8 name = getAttribute(tree, NAME_ATTR, &error);
|
||||
@@ -1189,7 +1233,13 @@ int doDump(Bundle* bundle)
|
||||
} else if ((depth == 4) && (tag == "intent-filter")) {
|
||||
hasIntentFilter = true;
|
||||
withinIntentFilter = true;
|
||||
actMainActivity = actWidgetReceivers = actImeService = actWallpaperService = false;
|
||||
actMainActivity = false;
|
||||
actWidgetReceivers = false;
|
||||
actImeService = false;
|
||||
actWallpaperService = false;
|
||||
actAccessibilityService = false;
|
||||
actPrintService = false;
|
||||
actDeviceAdminEnabled = false;
|
||||
} else if ((depth == 5) && withinIntentFilter){
|
||||
String8 action;
|
||||
if (tag == "action") {
|
||||
@@ -1206,12 +1256,18 @@ int doDump(Bundle* bundle)
|
||||
} else if (withinReceiver) {
|
||||
if (action == "android.appwidget.action.APPWIDGET_UPDATE") {
|
||||
actWidgetReceivers = true;
|
||||
} else if (action == "android.app.action.DEVICE_ADMIN_ENABLED") {
|
||||
actDeviceAdminEnabled = true;
|
||||
}
|
||||
} else if (withinService) {
|
||||
if (action == "android.view.InputMethod") {
|
||||
actImeService = true;
|
||||
} else if (action == "android.service.wallpaper.WallpaperService") {
|
||||
actWallpaperService = true;
|
||||
} else if (action == "android.accessibilityservice.AccessibilityService") {
|
||||
actAccessibilityService = true;
|
||||
} else if (action == "android.printservice.PrintService") {
|
||||
actPrintService = true;
|
||||
}
|
||||
}
|
||||
if (action == "android.intent.action.SEARCH") {
|
||||
@@ -1411,12 +1467,21 @@ int doDump(Bundle* bundle)
|
||||
if (hasWidgetReceivers) {
|
||||
printf("app-widget\n");
|
||||
}
|
||||
if (hasDeviceAdminReceiver) {
|
||||
printf("device-admin\n");
|
||||
}
|
||||
if (hasImeService) {
|
||||
printf("ime\n");
|
||||
}
|
||||
if (hasWallpaperService) {
|
||||
printf("wallpaper\n");
|
||||
}
|
||||
if (hasAccessibilityService) {
|
||||
printf("accessibility\n");
|
||||
}
|
||||
if (hasPrintService) {
|
||||
printf("print\n");
|
||||
}
|
||||
if (hasOtherActivities) {
|
||||
printf("other-activities\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user