mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 19:15:58 +00:00
Add SET_PERMISSION APIs (#159)
This commit is contained in:
21
Readme-en.md
21
Readme-en.md
@@ -86,15 +86,18 @@ Samsung restricts Android's multiple users feature. There is currently no soluti
|
|||||||
## API
|
## API
|
||||||
|
|
||||||
| ID | Extras | Minimum Android version |
|
| ID | Extras | Minimum Android version |
|
||||||
|------------------------|---------------|:-----------------------:|
|
|--------------------------|------------------------|:-----------------------:|
|
||||||
| HIDE | `package` | |
|
| `HIDE` | `package` | |
|
||||||
| UNHIDE | `package` | |
|
| `UNHIDE` | `package` | |
|
||||||
| SUSPEND | `package` | 7 |
|
| `SUSPEND` | `package` | 7 |
|
||||||
| UNSUSPEND | `package` | 7 |
|
| `UNSUSPEND` | `package` | 7 |
|
||||||
| ADD_USER_RESTRICTION | `restriction` | |
|
| `ADD_USER_RESTRICTION` | `restriction` | |
|
||||||
| CLEAR_USER_RESTRICTION | `restriction` | |
|
| `CLEAR_USER_RESTRICTION` | `restriction` | |
|
||||||
| LOCK | | |
|
| `SET_PERMISSION_DEFAULT` | `package` `permission` | 6 |
|
||||||
| REBOOT | | 7 |
|
| `SET_PERMISSION_GRANTED` | `package` `permission` | 6 |
|
||||||
|
| `SET_PERMISSION_DENIED` | `package` `permission` | 6 |
|
||||||
|
| `LOCK` | | |
|
||||||
|
| `REBOOT` | | 7 |
|
||||||
|
|
||||||
[Available user restrictions](https://developer.android.com/reference/android/os/UserManager#constants_1)
|
[Available user restrictions](https://developer.android.com/reference/android/os/UserManager#constants_1)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
[English](Readme-en.md) | [简体中文](Readme.md)
|
[English](Readme-en.md) | [简体中文](Readme.md)
|
||||||
|
|
||||||
|
> [!important]
|
||||||
|
> The Japanese readme need update
|
||||||
|
|
||||||
# OwnDroid
|
# OwnDroid
|
||||||
|
|
||||||
AndroidのDevice owner特権を使用してデバイスを管理します。
|
AndroidのDevice owner特権を使用してデバイスを管理します。
|
||||||
|
|||||||
21
Readme.md
21
Readme.md
@@ -84,15 +84,18 @@ user limit reached
|
|||||||
## API
|
## API
|
||||||
|
|
||||||
| ID | Extra | 最小安卓版本 |
|
| ID | Extra | 最小安卓版本 |
|
||||||
|------------------------|---------------|:------:|
|
|--------------------------|------------------------|:------:|
|
||||||
| HIDE | `package` | |
|
| `HIDE` | `package` | |
|
||||||
| UNHIDE | `package` | |
|
| `UNHIDE` | `package` | |
|
||||||
| SUSPEND | `package` | 7 |
|
| `SUSPEND` | `package` | 7 |
|
||||||
| UNSUSPEND | `package` | 7 |
|
| `UNSUSPEND` | `package` | 7 |
|
||||||
| ADD_USER_RESTRICTION | `restriction` | |
|
| `ADD_USER_RESTRICTION` | `restriction` | |
|
||||||
| CLEAR_USER_RESTRICTION | `restriction` | |
|
| `CLEAR_USER_RESTRICTION` | `restriction` | |
|
||||||
| LOCK | | |
|
| `SET_PERMISSION_DEFAULT` | `package` `permission` | 6 |
|
||||||
| REBOOT | | 7 |
|
| `SET_PERMISSION_GRANTED` | `package` `permission` | 6 |
|
||||||
|
| `SET_PERMISSION_DENIED` | `package` `permission` | 6 |
|
||||||
|
| `LOCK` | | |
|
||||||
|
| `REBOOT` | | 7 |
|
||||||
|
|
||||||
[可用的用户限制](https://developer.android.google.cn/reference/android/os/UserManager#constants_1)
|
[可用的用户限制](https://developer.android.google.cn/reference/android/os/UserManager#constants_1)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.bintianqi.owndroid
|
package com.bintianqi.owndroid
|
||||||
|
|
||||||
|
import android.app.admin.DevicePolicyManager
|
||||||
import android.content.BroadcastReceiver
|
import android.content.BroadcastReceiver
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -18,8 +19,10 @@ class ApiReceiver: BroadcastReceiver() {
|
|||||||
val dpm = context.getDPM()
|
val dpm = context.getDPM()
|
||||||
val receiver = context.getReceiver()
|
val receiver = context.getReceiver()
|
||||||
val app = intent.getStringExtra("package")
|
val app = intent.getStringExtra("package")
|
||||||
|
val permission = intent.getStringExtra("permission")
|
||||||
val restriction = intent.getStringExtra("restriction")
|
val restriction = intent.getStringExtra("restriction")
|
||||||
if (!app.isNullOrEmpty()) log += "\npackage: $app"
|
if (!app.isNullOrEmpty()) log += "\npackage: $app"
|
||||||
|
if (!permission.isNullOrEmpty()) log += "\npermission: $permission"
|
||||||
try {
|
try {
|
||||||
@SuppressWarnings("NewApi")
|
@SuppressWarnings("NewApi")
|
||||||
val ok = when(intent.action?.removePrefix("com.bintianqi.owndroid.action.")) {
|
val ok = when(intent.action?.removePrefix("com.bintianqi.owndroid.action.")) {
|
||||||
@@ -29,6 +32,24 @@ class ApiReceiver: BroadcastReceiver() {
|
|||||||
"UNSUSPEND" -> dpm.setPackagesSuspended(receiver, arrayOf(app), false).isEmpty()
|
"UNSUSPEND" -> dpm.setPackagesSuspended(receiver, arrayOf(app), false).isEmpty()
|
||||||
"ADD_USER_RESTRICTION" -> { dpm.addUserRestriction(receiver, restriction); true }
|
"ADD_USER_RESTRICTION" -> { dpm.addUserRestriction(receiver, restriction); true }
|
||||||
"CLEAR_USER_RESTRICTION" -> { dpm.clearUserRestriction(receiver, restriction); true }
|
"CLEAR_USER_RESTRICTION" -> { dpm.clearUserRestriction(receiver, restriction); true }
|
||||||
|
"SET_PERMISSION_DEFAULT" -> {
|
||||||
|
dpm.setPermissionGrantState(
|
||||||
|
receiver, app!!, permission!!,
|
||||||
|
DevicePolicyManager.PERMISSION_GRANT_STATE_DEFAULT
|
||||||
|
)
|
||||||
|
}
|
||||||
|
"SET_PERMISSION_GRANTED" -> {
|
||||||
|
dpm.setPermissionGrantState(
|
||||||
|
receiver, app!!, permission!!,
|
||||||
|
DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED
|
||||||
|
)
|
||||||
|
}
|
||||||
|
"SET_PERMISSION_DENIED" -> {
|
||||||
|
dpm.setPermissionGrantState(
|
||||||
|
receiver, app!!, permission!!,
|
||||||
|
DevicePolicyManager.PERMISSION_GRANT_STATE_DENIED
|
||||||
|
)
|
||||||
|
}
|
||||||
"LOCK" -> { dpm.lockNow(); true }
|
"LOCK" -> { dpm.lockNow(); true }
|
||||||
"REBOOT" -> { dpm.reboot(receiver); true }
|
"REBOOT" -> { dpm.reboot(receiver); true }
|
||||||
else -> {
|
else -> {
|
||||||
|
|||||||
@@ -323,7 +323,8 @@ fun ApiSettings(onNavigateUp: () -> Unit) {
|
|||||||
onClick = {
|
onClick = {
|
||||||
sp.apiKey = key
|
sp.apiKey = key
|
||||||
context.showOperationResultToast(true)
|
context.showOperationResultToast(true)
|
||||||
}
|
},
|
||||||
|
enabled = key.isNotEmpty()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.apply))
|
Text(stringResource(R.string.apply))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -536,7 +536,8 @@ fun PermissionsManagerScreen(onNavigateUp: () -> Unit, param: PermissionsManager
|
|||||||
}
|
}
|
||||||
if(selectedPermission != null) {
|
if(selectedPermission != null) {
|
||||||
fun changeState(state: Int) {
|
fun changeState(state: Int) {
|
||||||
dpm.setPermissionGrantState(receiver, packageName, selectedPermission!!.permission, state)
|
val result = dpm.setPermissionGrantState(receiver, packageName, selectedPermission!!.permission, state)
|
||||||
|
if (!result) context.showOperationResultToast(false)
|
||||||
statusMap[selectedPermission!!.permission] = dpm.getPermissionGrantState(receiver, packageName, selectedPermission!!.permission)
|
statusMap[selectedPermission!!.permission] = dpm.getPermissionGrantState(receiver, packageName, selectedPermission!!.permission)
|
||||||
selectedPermission = null
|
selectedPermission = null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user