blob: dbf844b273c7708862f1c872a6d443423be01c8c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package com.android.permissioncontroller.permission.service
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Process
import android.os.UserHandle
/**
* For manually exempting a restricted permission.
* STOPSHIP This functionality should not be in the final release.
*/
class ExemptRestrictedPermission : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val packageName = intent.getStringExtra("package") ?: return
val permission = intent.getStringExtra("permission") ?: return
val userId = intent.getIntExtra("user", Process.myUserHandle().identifier)
val userContext = context.createContextAsUser(UserHandle.of(userId), 0)
// Use upgrade flag. If the permission needs to be manually exempted then it probably
// should have been done on upgrade.
userContext.packageManager.addWhitelistedRestrictedPermission(packageName, permission,
PackageManager.FLAG_PERMISSION_WHITELIST_UPGRADE)
}
}
|