Merge "Don't crash when a broadcast requires an unknown permission"

This commit is contained in:
TreeHugger Robot
2019-02-13 21:51:03 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 0 deletions

View File

@@ -898,6 +898,11 @@ public final class BroadcastQueue {
for (int i = perms.length-1; i >= 0; i--) {
try {
PermissionInfo pi = pm.getPermissionInfo(perms[i], "android", 0);
if (pi == null) {
// a required permission that no package has actually
// defined cannot be signature-required.
return false;
}
if ((pi.protectionLevel & (PermissionInfo.PROTECTION_MASK_BASE
| PermissionInfo.PROTECTION_FLAG_PRIVILEGED))
!= PermissionInfo.PROTECTION_SIGNATURE) {

View File

@@ -439,6 +439,14 @@ public class ActivityTestMain extends Activity {
return true;
}
});
menu.add("Require unknown permission").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override public boolean onMenuItemClick(MenuItem item) {
final Intent intent = new Intent(SLOW_RECEIVER_ACTION);
intent.putExtra(SLOW_RECEIVER_EXTRA, 5038);
sendOrderedBroadcast(intent, "com.google.android.test.activity.permission.UNDEFINED");
return true;
}
});
menu.add("Stack Doc").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override public boolean onMenuItemClick(MenuItem item) {
ActivityManager.AppTask task = findDocTask();