diff --git a/Guide.md b/Guide.md
index 54be244..f9d86f3 100644
--- a/Guide.md
+++ b/Guide.md
@@ -1,11 +1,13 @@
# 使用指南
-欢迎来到Android owner使用教程
+欢迎来到OwnDroid使用教程
在这里了解各个功能所需的权限、兼容的安卓版本和注意事项
## 目录
+0. [使用前须知](#使用前须知)
+
1. [权限](#权限)
@@ -25,6 +27,12 @@
9. [其他功能](#其他功能)
+## 使用前须知
+
+1. device admin, profile owner和device owner有极高的特权,包括但不限于让你的设备丢失所有数据。所以,请谨慎使用
+2. 以下的所有命令都需要在`adb shell`中执行。请进入`adb shell`后执行,不要直接`adb shell xxx`,容易出问题
+3. ColorOS用户请在release页面下载testKey版,否则无法激活Device owner
+
## 权限
### Device admin
@@ -41,7 +49,7 @@
ADB激活命令:
```shell
-adb shell dpm set-active-admin com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
+dpm set-active-admin com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
一个设备可以同时存在多个Device admin。
@@ -72,7 +80,7 @@ adb shell dpm set-active-admin com.binbin.androidowner/com.binbin.androidowner.d
ADB激活命令:
```shell
-adb shell dpm set-profile-owner com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
+dpm set-profile-owner com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
#### 停用
@@ -97,7 +105,7 @@ adb shell dpm set-profile-owner com.binbin.androidowner/com.binbin.androidowner.
ADB激活命令:
```shell
-adb shell dpm set-device-owner com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
+dpm set-device-owner com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
ADB激活有一定局限性
@@ -105,20 +113,20 @@ ADB激活有一定局限性
激活前必须删除所有用户(user),否则会报错。你可以使用下面这条ADB命令查看已有的用户
```shell
-adb shell pm list users
+pm list users
```
激活前也要删除所有账号(account),否则会报错。你可以使用下面这条ADB命令查看已有的账号
```shell
-adb shell dumpsys account
+dumpsys account
```
上面两个是安卓系统的限制,此外,还有设备生产商的限制
MIUI:需要在开发者选项中打开”USB调试(安全设置)“
-ColorOS:请使用调试签名的apk
+ColorOS:请使用testKey的apk,否则只能使用Device admin和工作资料中的Profile owner
小天才电话手表(Android 8.1):完全不支持Device owner
@@ -130,14 +138,14 @@ ColorOS:请使用调试签名的apk
ADB命令停用十分麻烦,你需要修改AndroidManifest.xml并自己编译项目。
-你需要把AndroidManifest.xml中第39行的`android:testOnly="false"`的值改为true
+你需要把AndroidManifest.xml中的`android:testOnly="false"`的值改为true
-由于签名校验,如果你已经安装了release,那这个方法没用
+签名校验问题请自己解决
然后,使用这条ADB命令停用
```shell
-adb shell dpm remove-active-admin com.binbin.androidowner/com.binbin.androidowner.MyDeviceAdminReceiver
+dpm remove-active-admin com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
使用这条命令也可以停用Device admin和Profile owner
@@ -148,7 +156,7 @@ adb shell dpm remove-active-admin com.binbin.androidowner/com.binbin.androidowne
请自己学习如何启动[Shizuku](https://github.com/RikkaApps/Shizuku)
-如果Shizuku正在运行但是Android owner无法申请权限,请关闭Shizuku和Android owner的电池优化(这种情况在非原生系统中比较常见)
+如果Shizuku正在运行但是OwnDroid无法申请权限,请关闭Shizuku和OwnDroid的电池优化(这种情况在非原生系统中比较常见)
功能:
@@ -162,7 +170,7 @@ Shizuku的本质是ADB。在安卓10或以下,你还是要连接电脑激活Sh
不能在非主用户中使用
-因为作者懒得研究Shizuku-API,所以Android owner没有添加任何Shizuku相关依赖。以上功能均是通过rish实现。因为是套壳的rish,所以不支持Sui
+因为作者懒得研究Shizuku-API,所以OwnDroid没有添加任何Shizuku相关依赖。以上功能均是通过rish实现。因为是套壳的rish,所以不支持Sui
### 设备唯一标识码
@@ -534,7 +542,7 @@ API34或以上将不能在系统用户中使用WipeData,如果要恢复出厂
## 工作资料
-工作资料是一种特殊的用户,使用`adb shell pm list user`命令可以看到工作资料,工作资料的默认用户名是“工作资料”或“Work Profile”
+工作资料是一种特殊的用户,使用`pm list user`命令可以看到工作资料,工作资料的默认用户名是“工作资料”或“Work Profile”
工作资料创建后默认禁用[安装未知来源应用](#应用)
@@ -548,9 +556,9 @@ API34或以上将不能在系统用户中使用WipeData,如果要恢复出厂
- 跳过加密(需要API24或以上,没有实际作用)
-创建后会跳转到工作资料中的Android owner,请立即按照指引激活工作资料
+创建后会跳转到工作资料中的OwnDroid,请立即按照指引激活工作资料
-创建后工作资料中的Android owner会成为Profile owner
+创建后工作资料中的OwnDroid会成为Profile owner
在WearOS上可以创建工作资料,但是会导致SystemUI停止运行一次。WearOS原生的启动器不会显示工作资料中的应用,你需要使用支持工作资料的启动器。你可以通过[ADB命令移除工作资料](#删除工作资料)。此外,不要尝试给工作资料重置密码,因为WearOS不能输入工作资料的密码。(测试环境:WearOS4(AVD))
@@ -560,15 +568,14 @@ API34或以上将不能在系统用户中使用WipeData,如果要恢复出厂
成为由组织拥有的工作资料后可以使用更多功能
-前提条件:Android owner是工作资料中的Profile owner
+前提条件:OwnDroid是工作资料中的Profile owner
-首先,你需要在工作资料中的Android owner的“用户管理”页面中查看UserID
+首先,你需要在工作资料中的OwnDroid的“用户管理”页面中查看UserID
然后执行下面这个ADB命令
```shell
-adb shell
-dpm mark-profile-owner-on-organization-owned-device --user USER_ID com.binbin.androidowner/com.binbin.androidowner.MyDeviceAdminReceiver
+dpm mark-profile-owner-on-organization-owned-device --user USER_ID com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
把命令中的USER_ID替换为你的UserID
@@ -579,7 +586,7 @@ dpm mark-profile-owner-on-organization-owned-device --user USER_ID com.binbin.an
需要的权限:由组织拥有的工作资料的Profile owner
-只会挂起个人的用户应用,系统应用和Android owner仍然可以打开
+只会挂起个人的用户应用,系统应用和OwnDroid仍然可以打开
### 资料最长关闭时间
@@ -611,12 +618,12 @@ dpm mark-profile-owner-on-organization-owned-device --user USER_ID com.binbin.an
你可以在工作资料中使用 [恢复出厂设置](#恢复出厂设置) 来删除工作资料
-如果你的工作资料不是由组织拥有的,你可以打开安卓设置->安全->更多安全设置->设备管理器->带工作资料图标的Android owner->移除工作资料(非原生用户自己找)
+如果你的工作资料不是由组织拥有的,你可以打开安卓设置->安全->更多安全设置->设备管理器->带工作资料图标的OwnDroid->移除工作资料(非原生用户自己找)
你也可以使用ADB命令移除工作资料(把USER_ID替换为工作资料的UserID)
```shell
-adb shell pm remove-user USER_ID
+pm remove-user USER_ID
```
## 应用管理
@@ -628,7 +635,7 @@ adb shell pm remove-user USER_ID
除了安装应用,所有的操作都需要应用的包名,你可以通过ADB命令查看所有已安装应用的包名
```shell
-adb shell pm list packages
+pm list packages
```
### 应用详情
@@ -680,7 +687,7 @@ adb shell pm list packages
使用这个ADB命令查看系统支持的所有权限
```shell
-adb shell pm list permissions
+pm list permissions
```
权限有三种状态:
@@ -859,7 +866,7 @@ Profile owner无法禁用部分功能,工作资料中部分功能无效,wear
使用ADB查看所有用户:
```shell
-adb shell pm list users
+pm list users
```
上面这条命令返回的结果中,用户名前面的数字就是UserID
@@ -913,12 +920,12 @@ UserID:不是UID。系统用户的UserID为0,其他用户(包括工作资
- 临时用户(需API28)
- 启用所有系统应用(有些系统应用在新用户中是默认不启用的,比如谷歌手机上的YouTube)
-创建后,Android owner会成为受管理用户中的Profile owner
+创建后,OwnDroid会成为受管理用户中的Profile owner
-这个功能在WearOS上使用会导致SystemUI停止运行一次,过几秒恢复正常。创建用户实际上成功了,回到Android owner后能看到新用户的序列号,`pm list users`也能看到新用户。如果切换到新用户,SystemUI无法使用,表现为黑屏(可以用ADB命令启动别的应用)。如果黑屏无法使用,ADB执行下面这个命令(把USER_ID替换成受管理用户的用户序列号)
+这个功能在WearOS上使用会导致SystemUI停止运行一次,过几秒恢复正常。创建用户实际上成功了,回到OwnDroid后能看到新用户的序列号,`pm list users`也能看到新用户。如果切换到新用户,SystemUI无法使用,表现为黑屏(可以用ADB命令启动别的应用)。如果黑屏无法使用,ADB执行下面这个命令(把USER_ID替换成受管理用户的用户序列号)
```shell
-adb shell pm remove-user --set-ephemeral-if-in-use USER_ID
+pm remove-user --set-ephemeral-if-in-use USER_ID
```
新用户会被设为临时用户,重启后临时用户会被删除并切换到主用户
@@ -1009,7 +1016,7 @@ Device owner无论在何时都是附属于设备的用户
需要Device owner
-输入密码错误次数达到限制后会恢复出厂设置(前提是Android owner有权限恢复出厂设置)
+输入密码错误次数达到限制后会恢复出厂设置(前提是OwnDroid有权限恢复出厂设置)
### 密码失效超时时间
@@ -1060,7 +1067,7 @@ Device owner无论在何时都是附属于设备的用户
自定义的项目:
-- 禁用小工具(API21或以上弃用,Android owner的最小兼容API版本21,所以这个功能没用)
+- 禁用小工具(API21或以上弃用,OwnDroid的最小兼容API版本21,所以这个功能没用)
- 禁用相机
- 禁用通知(不知道是否包含音乐播放器)
- 禁用未经编辑的通知(作用未知)
@@ -1095,7 +1102,7 @@ API31及以上弃用,请使用[密码复杂度要求](#密码复杂度要求)
正在修改,预计在5.0版本重新加入。
-在Android owner的设置中打开
+在OwnDroid的设置中打开
适配手表的屏幕大小,添加一些WearOS/AndroidWear相关的提示,比如[密码与锁屏](#密码与锁屏)
@@ -1105,8 +1112,8 @@ API31及以上弃用,请使用[密码复杂度要求](#密码复杂度要求)
在安卓12或以上此功能默认打开
-打开后Android owner中的颜色方案将会跟随系统
+打开后OwnDroid中的颜色方案将会跟随系统
建议打开,因为自带的颜色方案不好看
-打开或关闭此功能都要重启Android owner
+打开或关闭此功能都要重启OwnDroid
diff --git a/Readme-en.md b/Readme-en.md
index e904250..f5a5c64 100644
--- a/Readme-en.md
+++ b/Readme-en.md
@@ -4,13 +4,9 @@
### Description
-Use Device admin and Device owner privilege to fully manage your Android device.
+Use Device admin and Device owner privilege to take full control of your device.
-I'm renaming this app, from "Android Owner" to "OwnDroid".
-
-- [x] rename app
-- [ ] update guide
-- [ ] rename repo
+This app is renamed to "OwnDroid" from "Android Owner".
### Advantage
@@ -40,7 +36,7 @@ This software may not have as many features as Google's official [TestDPC](https
### License
-[License.md](License.md)
+[License.md](LICENSE.md)
> Copyright (C) 2024 BinTianqi
>
diff --git a/Readme.md b/Readme.md
index 9ce787d..642813a 100644
--- a/Readme.md
+++ b/Readme.md
@@ -6,11 +6,7 @@
使用安卓的Device Admin和Device Owner特权,完全掌控你的设备。
-这个APP正在从"Android Owner"改名为"OwnDroid"
-
-- [x] 重命名app
-- [ ] 修改使用指南
-- [ ] 修改仓库名
+这个APP已经改名为"OwnDroid",原名"Android Owner"
### 优点
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 44dcff4..1c7f9a8 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -4,11 +4,11 @@ plugins {
}
android {
- namespace = "com.binbin.androidowner"
+ namespace = "com.bintianqi.owndroid"
compileSdk = 34
defaultConfig {
- applicationId = "com.binbin.androidowner"
+ applicationId = "com.bintianqi.owndroid"
minSdk = 21
targetSdk = 34
versionCode = 24
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 31f2c8f..12cc4ac 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,7 +25,7 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
- android:theme="@style/Theme.AndroidOwner"
+ android:theme="@style/Theme.OwnDroid"
android:enableOnBackInvokedCallback="true"
android:testOnly="false"
tools:targetApi="34">
@@ -33,21 +33,20 @@
android:name=".MainActivity"
android:exported="true"
android:windowSoftInputMode="adjustResize|stateHidden"
- android:theme="@style/Theme.AndroidOwner">
+ android:theme="@style/Theme.OwnDroid">
-
@@ -65,12 +64,12 @@
-
+
diff --git a/app/src/main/assets/rish.sh b/app/src/main/assets/rish.sh
index c3dcac4..1aa980f 100644
--- a/app/src/main/assets/rish.sh
+++ b/app/src/main/assets/rish.sh
@@ -1,5 +1,5 @@
#!/system/bin/sh
BASEDIR=$(dirname "$0")
DEX="$BASEDIR"/rish_shizuku.dex
-[ -z "$RISH_APPLICATION_ID" ] && export RISH_APPLICATION_ID="com.binbin.androidowner"
+[ -z "$RISH_APPLICATION_ID" ] && export RISH_APPLICATION_ID="com.bintianqi.owndroid"
/system/bin/app_process -Djava.class.path="$DEX" /system/bin --nice-name=rish rikka.shizuku.shell.ShizukuShellLoader "$@"
diff --git a/app/src/main/java/com/binbin/androidowner/MainActivity.kt b/app/src/main/java/com/bintianqi/owndroid/MainActivity.kt
similarity index 95%
rename from app/src/main/java/com/binbin/androidowner/MainActivity.kt
rename to app/src/main/java/com/bintianqi/owndroid/MainActivity.kt
index 0a5d713..0cc2665 100644
--- a/app/src/main/java/com/binbin/androidowner/MainActivity.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/MainActivity.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner
+package com.bintianqi.owndroid
import android.app.Activity
import android.app.admin.DevicePolicyManager
@@ -40,11 +40,11 @@ import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.dpm.*
-import com.binbin.androidowner.ui.Animations
-import com.binbin.androidowner.ui.theme.OwnDroidTheme
-import com.binbin.androidowner.ui.theme.SetDarkTheme
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.dpm.*
+import com.bintianqi.owndroid.ui.Animations
+import com.bintianqi.owndroid.ui.theme.OwnDroidTheme
+import com.bintianqi.owndroid.ui.theme.SetDarkTheme
+import com.bintianqi.owndroid.ui.theme.bgColor
lateinit var displayMetrics: DisplayMetrics
@ExperimentalMaterial3Api
@@ -82,7 +82,7 @@ fun MyScaffold(){
val navCtrl = rememberNavController()
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE)
val focusMgr = LocalFocusManager.current
SetDarkTheme()
@@ -127,7 +127,7 @@ fun MyScaffold(){
private fun HomePage(navCtrl:NavHostController){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val activateType =
if(isDeviceOwner(myDpm)){"Device Owner"}
else if(isProfileOwner(myDpm)){
diff --git a/app/src/main/java/com/binbin/androidowner/PermissionPicker.kt b/app/src/main/java/com/bintianqi/owndroid/PermissionPicker.kt
similarity index 95%
rename from app/src/main/java/com/binbin/androidowner/PermissionPicker.kt
rename to app/src/main/java/com/bintianqi/owndroid/PermissionPicker.kt
index 7b74bec..c46bc45 100644
--- a/app/src/main/java/com/binbin/androidowner/PermissionPicker.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/PermissionPicker.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner
+package com.bintianqi.owndroid
import android.Manifest
import android.os.Build.VERSION
@@ -14,10 +14,10 @@ import androidx.compose.ui.draw.alpha
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.navigation.NavHostController
-import com.binbin.androidowner.dpm.applySelectedPermission
-import com.binbin.androidowner.dpm.selectedPermission
-import com.binbin.androidowner.ui.NavIcon
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.dpm.applySelectedPermission
+import com.bintianqi.owndroid.dpm.selectedPermission
+import com.bintianqi.owndroid.ui.NavIcon
+import com.bintianqi.owndroid.ui.theme.bgColor
@OptIn(ExperimentalMaterial3Api::class)
@Composable
diff --git a/app/src/main/java/com/binbin/androidowner/PkgSelector.kt b/app/src/main/java/com/bintianqi/owndroid/PkgSelector.kt
similarity index 94%
rename from app/src/main/java/com/binbin/androidowner/PkgSelector.kt
rename to app/src/main/java/com/bintianqi/owndroid/PkgSelector.kt
index ff86e8e..adeb87e 100644
--- a/app/src/main/java/com/binbin/androidowner/PkgSelector.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/PkgSelector.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner
+package com.bintianqi.owndroid
import android.graphics.drawable.Drawable
import android.widget.Toast
@@ -21,10 +21,10 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.navigation.NavHostController
-import com.binbin.androidowner.dpm.applySelectedPackage
-import com.binbin.androidowner.dpm.selectedPackage
-import com.binbin.androidowner.ui.NavIcon
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.dpm.applySelectedPackage
+import com.bintianqi.owndroid.dpm.selectedPackage
+import com.bintianqi.owndroid.ui.NavIcon
+import com.bintianqi.owndroid.ui.theme.bgColor
import com.google.accompanist.drawablepainter.rememberDrawablePainter
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
@@ -57,7 +57,7 @@ fun PackageSelector(navCtrl:NavHostController){
pkgs.clear()
for(pkg in apps){
val srcDir = pkg.sourceDir
- pkgs+=PkgInfo(
+ pkgs += PkgInfo(
pkg.packageName, pkg.loadLabel(pm).toString(), pkg.loadIcon(pm),
if(srcDir.contains("/data/")){ "data" }
else if(
@@ -168,12 +168,12 @@ fun PackageSelector(navCtrl:NavHostController){
}
@Composable
-private fun PackageItem(pkg:PkgInfo, navCtrl: NavHostController){
+private fun PackageItem(pkg: PkgInfo, navCtrl: NavHostController){
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier
.fillMaxWidth()
- .clickable{selectedPackage=pkg.pkgName;applySelectedPackage=true;navCtrl.navigateUp()}
+ .clickable{selectedPackage =pkg.pkgName;applySelectedPackage =true;navCtrl.navigateUp()}
.padding(vertical = 3.dp)
){
Spacer(Modifier.padding(start = 15.dp))
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/AdminReceiver.kt b/app/src/main/java/com/bintianqi/owndroid/Receiver.kt
similarity index 97%
rename from app/src/main/java/com/binbin/androidowner/dpm/AdminReceiver.kt
rename to app/src/main/java/com/bintianqi/owndroid/Receiver.kt
index 3963060..ed596d8 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/AdminReceiver.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/Receiver.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid
import android.annotation.SuppressLint
import android.app.admin.DeviceAdminReceiver
@@ -11,7 +11,7 @@ import android.os.PersistableBundle
import android.util.Log
import android.widget.Toast
-class MyDeviceAdminReceiver : DeviceAdminReceiver() {
+class Receiver : DeviceAdminReceiver() {
override fun onEnabled(context: Context, intent: Intent) {
super.onEnabled(context, intent)
Toast.makeText(context, "已启用", Toast.LENGTH_SHORT).show()
diff --git a/app/src/main/java/com/binbin/androidowner/Setting.kt b/app/src/main/java/com/bintianqi/owndroid/Setting.kt
similarity index 96%
rename from app/src/main/java/com/binbin/androidowner/Setting.kt
rename to app/src/main/java/com/bintianqi/owndroid/Setting.kt
index a05b5c5..865d909 100644
--- a/app/src/main/java/com/binbin/androidowner/Setting.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/Setting.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner
+package com.bintianqi.owndroid
import android.content.Context
import android.content.Intent
@@ -24,9 +24,9 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.ui.*
-import com.binbin.androidowner.ui.theme.SetDarkTheme
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.ui.*
+import com.bintianqi.owndroid.ui.theme.SetDarkTheme
+import com.bintianqi.owndroid.ui.theme.bgColor
@Composable
fun AppSetting(navCtrl:NavHostController){
diff --git a/app/src/main/java/com/binbin/androidowner/Utils.kt b/app/src/main/java/com/bintianqi/owndroid/Utils.kt
similarity index 98%
rename from app/src/main/java/com/binbin/androidowner/Utils.kt
rename to app/src/main/java/com/bintianqi/owndroid/Utils.kt
index bb243cc..6de36a7 100644
--- a/app/src/main/java/com/binbin/androidowner/Utils.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/Utils.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner
+package com.bintianqi.owndroid
import android.content.ClipData
import android.content.ClipboardManager
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/ApplicationManage.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt
similarity index 96%
rename from app/src/main/java/com/binbin/androidowner/dpm/ApplicationManage.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt
index 56c0eb3..7481b3b 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/ApplicationManage.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.annotation.SuppressLint
import android.app.PendingIntent
@@ -49,11 +49,10 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.R
-import com.binbin.androidowner.toText
-import com.binbin.androidowner.ui.*
-import com.binbin.androidowner.ui.theme.bgColor
-import com.binbin.androidowner.uriToStream
+import com.bintianqi.owndroid.*
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.ui.*
+import com.bintianqi.owndroid.ui.theme.bgColor
import kotlinx.coroutines.delay
import java.io.IOException
import java.io.InputStream
@@ -153,7 +152,7 @@ private fun Home(navCtrl:NavHostController, pkgName: String){
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext, Receiver::class.java)
Spacer(Modifier.padding(vertical = 5.dp))
if(VERSION.SDK_INT>=24&&isProfileOwner(myDpm)&&myDpm.isManagedProfile(myComponent)){
Text(text = stringResource(R.string.scope_is_work_profile), textAlign = TextAlign.Center,modifier = Modifier.fillMaxWidth())
@@ -186,7 +185,7 @@ private fun Home(navCtrl:NavHostController, pkgName: String){
{
try {
myDpm.setAlwaysOnVpnPackage(myComponent, pkgName, it)
- } catch(e: java.lang.UnsupportedOperationException) {
+ } catch(e: UnsupportedOperationException) {
Toast.makeText(myContext, myContext.getString(R.string.unsupported), Toast.LENGTH_SHORT).show()
} catch(e: NameNotFoundException) {
Toast.makeText(myContext, myContext.getString(R.string.not_installed), Toast.LENGTH_SHORT).show()
@@ -238,7 +237,7 @@ private fun Home(navCtrl:NavHostController, pkgName: String){
private fun UserCtrlDisabledPkg(pkgName:String){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
var pkgList = myDpm.getUserControlDisabledPackages(myComponent)
var listText by remember{mutableStateOf("")}
@@ -302,7 +301,7 @@ private fun UserCtrlDisabledPkg(pkgName:String){
private fun BlockUninstall(pkgName: String){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
var state by remember{mutableStateOf(myDpm.isUninstallBlocked(myComponent,pkgName))}
@@ -346,7 +345,7 @@ private fun BlockUninstall(pkgName: String){
private fun PermissionManage(pkgName: String, navCtrl: NavHostController){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var inputPermission by remember{mutableStateOf(selectedPermission)}
var currentState by remember{mutableStateOf(myContext.getString(R.string.unknown))}
@@ -427,7 +426,7 @@ private fun PermissionManage(pkgName: String, navCtrl: NavHostController){
private fun CrossProfilePkg(pkgName: String){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.cross_profile_package), style = typography.headlineLarge)
@@ -444,7 +443,8 @@ private fun CrossProfilePkg(pkgName: String){
Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween){
Button(
onClick = {
- if(pkgName!=""){crossProfilePkg.add(pkgName)}
+ if(pkgName!=""){
+ crossProfilePkg.add(pkgName)}
myDpm.setCrossProfilePackages(myComponent, crossProfilePkg)
refresh()
},
@@ -454,7 +454,8 @@ private fun CrossProfilePkg(pkgName: String){
}
Button(
onClick = {
- if(pkgName!=""){crossProfilePkg.remove(pkgName)}
+ if(pkgName!=""){
+ crossProfilePkg.remove(pkgName)}
myDpm.setCrossProfilePackages(myComponent, crossProfilePkg)
refresh()
},
@@ -471,7 +472,7 @@ private fun CrossProfilePkg(pkgName: String){
private fun CrossProfileWidget(pkgName: String){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
var pkgList: MutableList
var list by remember{mutableStateOf("")}
@@ -547,7 +548,8 @@ private fun CredentialManagePolicy(pkgName: String){
Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween){
Button(
onClick = {
- if(pkgName!=""){credentialList.add(pkgName)}
+ if(pkgName!=""){
+ credentialList.add(pkgName)}
credentialListText = credentialList.toText()
},
modifier = Modifier.fillMaxWidth(0.49F)
@@ -556,7 +558,8 @@ private fun CredentialManagePolicy(pkgName: String){
}
Button(
onClick = {
- if(pkgName!=""){credentialList.remove(pkgName)}
+ if(pkgName!=""){
+ credentialList.remove(pkgName)}
credentialListText = credentialList.toText()
},
modifier = Modifier.fillMaxWidth(0.96F)
@@ -571,7 +574,7 @@ private fun CredentialManagePolicy(pkgName: String){
focusMgr.clearFocus()
try{
if(policyType!=-1&&credentialList.isNotEmpty()){
- myDpm.credentialManagerPolicy = PackagePolicy(policyType,credentialList)
+ myDpm.credentialManagerPolicy = PackagePolicy(policyType, credentialList)
}else{
myDpm.credentialManagerPolicy = null
}
@@ -595,7 +598,7 @@ private fun CredentialManagePolicy(pkgName: String){
private fun PermittedAccessibility(pkgName: String){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -646,7 +649,7 @@ private fun PermittedAccessibility(pkgName: String){
private fun PermittedIME(pkgName: String){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -698,7 +701,7 @@ private fun PermittedIME(pkgName: String){
private fun KeepUninstalledApp(pkgName: String){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -762,7 +765,7 @@ private fun UninstallApp(pkgName: String){
Column(modifier = Modifier.fillMaxWidth()){
Button(
onClick = {
- val intent = Intent(myContext,PackageInstallerReceiver::class.java)
+ val intent = Intent(myContext, PackageInstallerReceiver::class.java)
val intentSender = PendingIntent.getBroadcast(myContext, 8, intent, PendingIntent.FLAG_IMMUTABLE).intentSender
val pkgInstaller = myContext.packageManager.packageInstaller
pkgInstaller.uninstall(pkgName, intentSender)
@@ -837,7 +840,7 @@ private fun InstallApp(){
private fun ClearAppData(pkgName: String){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -898,6 +901,6 @@ private fun installPackage(context: Context, inputStream: InputStream){
session.fsync(out)
inputStream.close()
out.close()
- val pendingIntent = PendingIntent.getBroadcast(context, sessionId, Intent(context,PackageInstallerReceiver::class.java), PendingIntent.FLAG_IMMUTABLE).intentSender
+ val pendingIntent = PendingIntent.getBroadcast(context, sessionId, Intent(context, PackageInstallerReceiver::class.java), PendingIntent.FLAG_IMMUTABLE).intentSender
session.commit(pendingIntent)
}
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/DPM.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/DPM.kt
similarity index 81%
rename from app/src/main/java/com/binbin/androidowner/dpm/DPM.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/DPM.kt
index fa3df3a..7b7a69a 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/DPM.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/DPM.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.app.admin.DevicePolicyManager
import android.content.Intent
@@ -19,10 +19,10 @@ var apkUri: Uri? = null
var caCert = byteArrayOf()
fun isDeviceOwner(dpm: DevicePolicyManager): Boolean {
- return dpm.isDeviceOwnerApp("com.binbin.androidowner")
+ return dpm.isDeviceOwnerApp("com.bintianqi.owndroid")
}
fun isProfileOwner(dpm: DevicePolicyManager): Boolean {
- return dpm.isProfileOwnerApp("com.binbin.androidowner")
+ return dpm.isProfileOwnerApp("com.bintianqi.owndroid")
}
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/ManagedProfile.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt
similarity index 95%
rename from app/src/main/java/com/binbin/androidowner/dpm/ManagedProfile.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt
index 63da861..6138fb1 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/ManagedProfile.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.annotation.SuppressLint
import android.app.admin.DevicePolicyManager
@@ -33,9 +33,10 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.R
-import com.binbin.androidowner.ui.*
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.Receiver
+import com.bintianqi.owndroid.ui.*
+import com.bintianqi.owndroid.ui.theme.bgColor
@Composable
fun ManagedProfile(navCtrl: NavHostController) {
@@ -80,7 +81,7 @@ fun ManagedProfile(navCtrl: NavHostController) {
private fun Home(navCtrl: NavHostController){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext, Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
Text(text = stringResource(R.string.work_profile), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
if(VERSION.SDK_INT>=30&&isProfileOwner(myDpm)&&myDpm.isManagedProfile(myComponent)){
@@ -105,13 +106,15 @@ private fun Home(navCtrl: NavHostController){
@Composable
private fun CreateWorkProfile(){
val myContext = LocalContext.current
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.create_work_profile), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp))
var skipEncrypt by remember{mutableStateOf(false)}
- if(VERSION.SDK_INT>=24){CheckBoxItem(stringResource(R.string.skip_encryption),{skipEncrypt},{skipEncrypt=!skipEncrypt})}
+ if(VERSION.SDK_INT>=24){
+ CheckBoxItem(stringResource(R.string.skip_encryption),{skipEncrypt},{skipEncrypt=!skipEncrypt})
+ }
Spacer(Modifier.padding(vertical = 5.dp))
Button(
onClick = {
@@ -202,7 +205,7 @@ private fun OrgID(){
private fun SuspendPersonalApp(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -239,7 +242,7 @@ private fun SuspendPersonalApp(){
private fun IntentFilter(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
var action by remember{mutableStateOf("")}
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/Network.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt
similarity index 98%
rename from app/src/main/java/com/binbin/androidowner/dpm/Network.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt
index 57f512f..476f437 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/Network.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.annotation.SuppressLint
import android.app.admin.DevicePolicyManager
@@ -41,10 +41,12 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.R
-import com.binbin.androidowner.toText
-import com.binbin.androidowner.ui.*
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.dpm.scrollAnim
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.Receiver
+import com.bintianqi.owndroid.toText
+import com.bintianqi.owndroid.ui.*
+import com.bintianqi.owndroid.ui.theme.bgColor
var ssidSet = mutableSetOf()
@Composable
@@ -102,7 +104,7 @@ fun Network(navCtrl: NavHostController){
private fun Home(navCtrl:NavHostController,scrollState: ScrollState){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext, Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().verticalScroll(scrollState)){
Text(text = stringResource(R.string.network), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
if(VERSION.SDK_INT>=24&&isDeviceOwner(myDpm)){
@@ -139,7 +141,7 @@ private fun Home(navCtrl:NavHostController,scrollState: ScrollState){
private fun Switches(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize()){
Spacer(Modifier.padding(vertical = 5.dp))
if(VERSION.SDK_INT>=33&&isDeviceOwner(myDpm)){
@@ -200,7 +202,7 @@ private fun WifiSsidPolicy(){
selectedPolicyType = policy?.policyType ?: -1
ssidSet = policy?.ssids ?: mutableSetOf()
}
- LaunchedEffect(Unit){refreshPolicy(); ssidList=ssidSet.toText()}
+ LaunchedEffect(Unit){refreshPolicy(); ssidList= ssidSet.toText()}
Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.wifi_ssid_policy), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp))
@@ -290,7 +292,7 @@ private fun WifiSsidPolicy(){
private fun PrivateDNS(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -360,7 +362,7 @@ private fun PrivateDNS(){
private fun NetLog(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.retrieve_net_logs), style = typography.headlineLarge)
@@ -438,7 +440,7 @@ private fun WifiKeypair(){
private fun APN(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
val setting = myDpm.getOverrideApns(myComponent)
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/Password.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt
similarity index 97%
rename from app/src/main/java/com/binbin/androidowner/dpm/Password.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt
index 962ec04..59aeeae 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/Password.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.annotation.SuppressLint
import android.app.KeyguardManager
@@ -33,9 +33,10 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.R
-import com.binbin.androidowner.ui.*
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.Receiver
+import com.bintianqi.owndroid.ui.*
+import com.bintianqi.owndroid.ui.theme.bgColor
@Composable
fun Password(navCtrl: NavHostController){
@@ -120,7 +121,7 @@ private fun Home(navCtrl:NavHostController,scrollState: ScrollState){
private fun PasswordInfo(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext, Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.password_info), style = typography.headlineLarge)
@@ -152,7 +153,7 @@ private fun PasswordInfo(){
private fun ResetPasswordToken(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val myByteArray by remember{ mutableStateOf(byteArrayOf(1,1,4,5,1,4,1,9,1,9,8,1,0,1,1,4,5,1,4,1,9,1,9,8,1,0,1,1,4,5,1,4,1,9,1,9,8,1,0)) }
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -206,7 +207,7 @@ private fun ResetPasswordToken(){
private fun ResetPassword(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var newPwd by remember{ mutableStateOf("") }
val myByteArray by remember{ mutableStateOf(byteArrayOf(1,1,4,5,1,4,1,9,1,9,8,1,0,1,1,4,5,1,4,1,9,1,9,8,1,0,1,1,4,5,1,4,1,9,1,9,8,1,0)) }
@@ -334,7 +335,7 @@ private fun PasswordComplexity(){
private fun ScreenTimeout(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var inputContent by remember{ mutableStateOf(if(isDeviceOwner(myDpm)){myDpm.getMaximumTimeToLock(myComponent).toString()}else{""}) }
var ableToApply by remember{ mutableStateOf(inputContent!="") }
@@ -370,7 +371,7 @@ private fun ScreenTimeout(){
private fun MaxFailedPasswordForWipe(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var inputContent by remember{ mutableStateOf(if(isDeviceOwner(myDpm)){myDpm.getMaximumFailedPasswordsForWipe(myComponent).toString()}else{""}) }
var ableToApply by remember{ mutableStateOf(inputContent!=""&&inputContent!="0") }
@@ -406,7 +407,7 @@ private fun MaxFailedPasswordForWipe(){
private fun PasswordExpiration(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var inputContent by remember{ mutableStateOf(if(isDeviceOwner(myDpm)){myDpm.getPasswordExpirationTimeout(myComponent).toString()}else{""}) }
var ableToApply by remember{ mutableStateOf(inputContent!="") }
@@ -442,7 +443,7 @@ private fun PasswordExpiration(){
private fun PasswordHistoryLength(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var inputContent by remember{ mutableStateOf(if(isDeviceOwner(myDpm)){myDpm.getPasswordHistoryLength(myComponent).toString()}else{""}) }
var ableToApply by remember{ mutableStateOf(inputContent!="") }
@@ -478,7 +479,7 @@ private fun PasswordHistoryLength(){
private fun KeyguardDisabledFeatures(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
var state by remember{mutableIntStateOf(-1)}
var shortcuts by remember{mutableStateOf(false)}
var biometrics by remember{mutableStateOf(false)}
@@ -576,7 +577,7 @@ private fun KeyguardDisabledFeatures(){
private fun PasswordQuality(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val passwordQuality = mapOf(
PASSWORD_QUALITY_UNSPECIFIED to stringResource(R.string.password_quality_unspecified),
PASSWORD_QUALITY_SOMETHING to stringResource(R.string.password_quality_something),
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/Permissions.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt
similarity index 97%
rename from app/src/main/java/com/binbin/androidowner/dpm/Permissions.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt
index 388a8e6..96c379c 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/Permissions.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.annotation.SuppressLint
import android.app.admin.DevicePolicyManager
@@ -33,9 +33,10 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.R
-import com.binbin.androidowner.ui.*
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.Receiver
+import com.bintianqi.owndroid.ui.*
+import com.bintianqi.owndroid.ui.theme.bgColor
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
@@ -103,7 +104,7 @@ fun DpmPermissions(navCtrl:NavHostController){
private fun Home(localNavCtrl:NavHostController,listScrollState:ScrollState){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext, Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().verticalScroll(listScrollState)) {
Text(text = stringResource(R.string.permission), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
SubPageItem(
@@ -147,7 +148,7 @@ private fun Home(localNavCtrl:NavHostController,listScrollState:ScrollState){
private fun LockScreenInfo(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var infoText by remember{mutableStateOf(myDpm.deviceOwnerLockScreenInfo?.toString() ?: "")}
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).padding(horizontal = 8.dp)){
@@ -185,7 +186,7 @@ private fun LockScreenInfo(){
private fun DeviceAdmin(navCtrl: NavHostController){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val co = rememberCoroutineScope()
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).padding(horizontal = 8.dp)){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -223,7 +224,7 @@ private fun DeviceAdmin(navCtrl: NavHostController){
private fun ProfileOwner(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).padding(horizontal = 8.dp)){
Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.profile_owner), style = typography.headlineLarge)
@@ -349,7 +350,7 @@ private fun SpecificID(){
private fun OrgName(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).padding(horizontal = 8.dp)){
var orgName by remember{mutableStateOf(try{myDpm.getOrganizationName(myComponent).toString()}catch(e:SecurityException){""})}
@@ -381,7 +382,7 @@ private fun OrgName(){
private fun SupportMsg(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var shortMsg by remember{mutableStateOf(myDpm.getShortSupportMessage(myComponent)?.toString() ?: "")}
var longMsg by remember{mutableStateOf(myDpm.getLongSupportMessage(myComponent)?.toString() ?: "")}
@@ -436,7 +437,7 @@ private fun SupportMsg(){
private fun NoManageAccount(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).padding(horizontal = 8.dp)){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -490,7 +491,7 @@ private fun NoManageAccount(){
private fun TransformOwnership(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
val focusRequester = FocusRequester()
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).padding(horizontal = 8.dp)){
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/ShizukuActivate.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/ShizukuActivate.kt
similarity index 97%
rename from app/src/main/java/com/binbin/androidowner/dpm/ShizukuActivate.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/ShizukuActivate.kt
index 962ba8f..677bbe2 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/ShizukuActivate.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/ShizukuActivate.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.app.admin.DevicePolicyManager
import android.content.ComponentName
@@ -35,7 +35,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.dp
-import com.binbin.androidowner.R
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.Receiver
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@@ -46,7 +47,7 @@ import java.io.*
fun ShizukuActivate(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext, Receiver::class.java)
val focusMgr = LocalFocusManager.current
val filesDir = myContext.filesDir
LaunchedEffect(Unit){ extractRish(myContext) }
@@ -88,7 +89,7 @@ fun ShizukuActivate(){
Button(
onClick = {
coScope.launch{
- outputText=executeCommand(myContext, "sh rish.sh","dpm list-owners",null,filesDir)
+ outputText= executeCommand(myContext, "sh rish.sh","dpm list-owners",null,filesDir)
scrollState.animateScrollTo(scrollState.maxValue, scrollAnim())
outputTextScrollState.animateScrollTo(0, scrollAnim())
}
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/SystemManage.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt
similarity index 97%
rename from app/src/main/java/com/binbin/androidowner/dpm/SystemManage.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt
index e30360b..94f3073 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/SystemManage.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.annotation.SuppressLint
import android.app.admin.DevicePolicyManager
@@ -41,10 +41,11 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.R
-import com.binbin.androidowner.toText
-import com.binbin.androidowner.ui.*
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.Receiver
+import com.bintianqi.owndroid.toText
+import com.bintianqi.owndroid.ui.*
+import com.bintianqi.owndroid.ui.theme.bgColor
import kotlinx.coroutines.delay
import java.util.Date
@@ -151,7 +152,7 @@ private fun Home(navCtrl: NavHostController,scrollState: ScrollState){
}
SubPageItem(R.string.wipe_data,"",R.drawable.warning_fill0){navCtrl.navigate("WipeData")}
Spacer(Modifier.padding(vertical = 30.dp))
- LaunchedEffect(Unit){caCert=byteArrayOf()}
+ LaunchedEffect(Unit){caCert =byteArrayOf()}
}
}
@@ -159,7 +160,7 @@ private fun Home(navCtrl: NavHostController,scrollState: ScrollState){
private fun Switches(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext, Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
if(isDeviceOwner(myDpm)||isProfileOwner(myDpm)){
@@ -229,7 +230,7 @@ private fun Switches(){
private fun Keyguard(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.keyguard), style = typography.headlineLarge)
@@ -277,7 +278,7 @@ private fun Keyguard(){
private fun BugReport(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp)){
Spacer(Modifier.padding(vertical = 10.dp))
Button(
@@ -298,7 +299,7 @@ private fun BugReport(){
private fun Reboot(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp)){
Spacer(Modifier.padding(vertical = 10.dp))
Button(
@@ -316,7 +317,7 @@ private fun Reboot(){
private fun EditTime(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -356,7 +357,7 @@ private fun EditTime(){
private fun PermissionPolicy(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
var selectedPolicy by remember{mutableIntStateOf(myDpm.getPermissionPolicy(myComponent))}
Spacer(Modifier.padding(vertical = 10.dp))
@@ -462,7 +463,7 @@ private fun NearbyStreamingPolicy(){
private fun LockTaskFeatures(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
val lockTaskPolicyList = mutableListOf(
@@ -595,7 +596,7 @@ private fun LockTaskFeatures(){
private fun CaCert(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
var exist by remember{mutableStateOf(false)}
var isEmpty by remember{mutableStateOf(true)}
val refresh = {
@@ -663,7 +664,7 @@ private fun CaCert(){
private fun SecurityLogs(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.security_logs), style = typography.headlineLarge)
@@ -708,7 +709,7 @@ private fun WipeData(){
val myContext = LocalContext.current
val userManager = myContext.getSystemService(Context.USER_SERVICE) as UserManager
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
var flag by remember{ mutableIntStateOf(0) }
@@ -794,7 +795,7 @@ private fun WipeData(){
private fun SysUpdatePolicy(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
val sharedPref = myContext.getSharedPreferences("data", Context.MODE_PRIVATE)
val isWear = sharedPref.getBoolean("isWear",false)
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/UserManage.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt
similarity index 96%
rename from app/src/main/java/com/binbin/androidowner/dpm/UserManage.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt
index bab8d5c..9a52ffc 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/UserManage.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.annotation.SuppressLint
import android.app.admin.DevicePolicyManager
@@ -20,8 +20,11 @@ import androidx.compose.foundation.layout.*
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.foundation.text.selection.SelectionContainer
-import androidx.compose.material3.*
+import androidx.compose.material3.Button
import androidx.compose.material3.MaterialTheme.typography
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Scaffold
+import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
@@ -37,11 +40,12 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.R
-import com.binbin.androidowner.toText
-import com.binbin.androidowner.ui.*
-import com.binbin.androidowner.ui.theme.bgColor
-import com.binbin.androidowner.uriToStream
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.Receiver
+import com.bintianqi.owndroid.toText
+import com.bintianqi.owndroid.ui.*
+import com.bintianqi.owndroid.ui.theme.bgColor
+import com.bintianqi.owndroid.uriToStream
import kotlinx.coroutines.delay
var affiliationID = mutableSetOf()
@@ -125,7 +129,7 @@ private fun Home(navCtrl: NavHostController,scrollState: ScrollState){
private fun CurrentUserInfo(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext, Receiver::class.java)
val userManager = myContext.getSystemService(Context.USER_SERVICE) as UserManager
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -157,7 +161,7 @@ private fun UserOperation(){
val myContext = LocalContext.current
val userManager = myContext.getSystemService(Context.USER_SERVICE) as UserManager
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
Spacer(Modifier.padding(vertical = 10.dp))
@@ -272,7 +276,7 @@ private fun CreateUser(){
val myContext = LocalContext.current
val userManager = myContext.getSystemService(Context.USER_SERVICE) as UserManager
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var userName by remember{ mutableStateOf("") }
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
@@ -319,7 +323,7 @@ private fun CreateUser(){
private fun AffiliationID(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var input by remember{mutableStateOf("")}
var list by remember{mutableStateOf("")}
@@ -387,7 +391,7 @@ private fun AffiliationID(){
private fun Username(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
var inputUsername by remember{mutableStateOf("")}
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
@@ -431,7 +435,7 @@ private fun Username(){
private fun UserSessionMessage(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
val focusMgr = LocalFocusManager.current
val getStart = myDpm.getStartUserSessionMessage(myComponent)?:""
val getEnd = myDpm.getEndUserSessionMessage(myComponent)?:""
@@ -492,7 +496,7 @@ private fun UserSessionMessage(){
private fun UserIcon(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
var getContent by remember{mutableStateOf(false)}
var canApply by remember{mutableStateOf(false)}
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())){
diff --git a/app/src/main/java/com/binbin/androidowner/dpm/UserRestriction.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/UserRestriction.kt
similarity index 97%
rename from app/src/main/java/com/binbin/androidowner/dpm/UserRestriction.kt
rename to app/src/main/java/com/bintianqi/owndroid/dpm/UserRestriction.kt
index d4bca34..7d65311 100644
--- a/app/src/main/java/com/binbin/androidowner/dpm/UserRestriction.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/dpm/UserRestriction.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.dpm
+package com.bintianqi.owndroid.dpm
import android.annotation.SuppressLint
import android.app.admin.DevicePolicyManager
@@ -33,12 +33,13 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
-import com.binbin.androidowner.R
-import com.binbin.androidowner.ui.Animations
-import com.binbin.androidowner.ui.SubPageItem
-import com.binbin.androidowner.ui.SwitchItem
-import com.binbin.androidowner.ui.TopBar
-import com.binbin.androidowner.ui.theme.bgColor
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.Receiver
+import com.bintianqi.owndroid.ui.Animations
+import com.bintianqi.owndroid.ui.SubPageItem
+import com.bintianqi.owndroid.ui.SwitchItem
+import com.bintianqi.owndroid.ui.TopBar
+import com.bintianqi.owndroid.ui.theme.bgColor
private data class Restriction(
val restriction:String,
@@ -100,7 +101,7 @@ fun UserRestriction(navCtrl: NavHostController){
private fun Home(navCtrl:NavHostController,scrollState: ScrollState){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext, Receiver::class.java)
Column(modifier = Modifier.fillMaxSize().verticalScroll(scrollState)){
Text(text = stringResource(R.string.user_restrict), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 7.dp, start = 15.dp))
Text(text = stringResource(R.string.switch_to_disable_feature), modifier = Modifier.padding(start = 15.dp))
@@ -192,7 +193,7 @@ private fun UserRestrictionItem(
){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
+ val myComponent = ComponentName(myContext,Receiver::class.java)
SwitchItem(
itemName,restrictionDescription,leadIcon,
{ if(isDeviceOwner(myDpm)||isProfileOwner(myDpm)){ myDpm.getUserRestrictions(myComponent).getBoolean(restriction) }else{ false } },
diff --git a/app/src/main/java/com/binbin/androidowner/ui/Animations.kt b/app/src/main/java/com/bintianqi/owndroid/ui/Animations.kt
similarity index 96%
rename from app/src/main/java/com/binbin/androidowner/ui/Animations.kt
rename to app/src/main/java/com/bintianqi/owndroid/ui/Animations.kt
index 033b14f..4ba6ea4 100644
--- a/app/src/main/java/com/binbin/androidowner/ui/Animations.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/ui/Animations.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.ui
+package com.bintianqi.owndroid.ui
import androidx.compose.animation.*
import androidx.compose.animation.core.FiniteAnimationSpec
@@ -8,7 +8,7 @@ import androidx.compose.animation.core.spring
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.IntSize
import androidx.navigation.NavBackStackEntry
-import com.binbin.androidowner.displayMetrics
+import com.bintianqi.owndroid.displayMetrics
class Animations{
private val fade: FiniteAnimationSpec = spring(stiffness = Spring.StiffnessMediumLow)
diff --git a/app/src/main/java/com/binbin/androidowner/ui/Components.kt b/app/src/main/java/com/bintianqi/owndroid/ui/Components.kt
similarity index 97%
rename from app/src/main/java/com/binbin/androidowner/ui/Components.kt
rename to app/src/main/java/com/bintianqi/owndroid/ui/Components.kt
index 867a44a..b0d9e0f 100644
--- a/app/src/main/java/com/binbin/androidowner/ui/Components.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/ui/Components.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.ui
+package com.bintianqi.owndroid.ui
import android.content.Context
import android.widget.Toast
@@ -22,9 +22,9 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.navigation.NavBackStackEntry
import androidx.navigation.NavHostController
-import com.binbin.androidowner.R
-import com.binbin.androidowner.ui.theme.bgColor
-import com.binbin.androidowner.writeClipBoard
+import com.bintianqi.owndroid.R
+import com.bintianqi.owndroid.ui.theme.bgColor
+import com.bintianqi.owndroid.writeClipBoard
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
diff --git a/app/src/main/java/com/binbin/androidowner/ui/theme/Color.kt b/app/src/main/java/com/bintianqi/owndroid/ui/theme/Color.kt
similarity index 98%
rename from app/src/main/java/com/binbin/androidowner/ui/theme/Color.kt
rename to app/src/main/java/com/bintianqi/owndroid/ui/theme/Color.kt
index 6f8dc50..d45aadb 100644
--- a/app/src/main/java/com/binbin/androidowner/ui/theme/Color.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/ui/theme/Color.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.ui.theme
+package com.bintianqi.owndroid.ui.theme
import androidx.compose.ui.graphics.Color
diff --git a/app/src/main/java/com/binbin/androidowner/ui/theme/Theme.kt b/app/src/main/java/com/bintianqi/owndroid/ui/theme/Theme.kt
similarity index 99%
rename from app/src/main/java/com/binbin/androidowner/ui/theme/Theme.kt
rename to app/src/main/java/com/bintianqi/owndroid/ui/theme/Theme.kt
index b3b7dcd..0001630 100644
--- a/app/src/main/java/com/binbin/androidowner/ui/theme/Theme.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/ui/theme/Theme.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.ui.theme
+package com.bintianqi.owndroid.ui.theme
import android.app.Activity
import android.content.Context
diff --git a/app/src/main/java/com/binbin/androidowner/ui/theme/Type.kt b/app/src/main/java/com/bintianqi/owndroid/ui/theme/Type.kt
similarity index 95%
rename from app/src/main/java/com/binbin/androidowner/ui/theme/Type.kt
rename to app/src/main/java/com/bintianqi/owndroid/ui/theme/Type.kt
index 506beb0..ac461cc 100644
--- a/app/src/main/java/com/binbin/androidowner/ui/theme/Type.kt
+++ b/app/src/main/java/com/bintianqi/owndroid/ui/theme/Type.kt
@@ -1,4 +1,4 @@
-package com.binbin.androidowner.ui.theme
+package com.bintianqi.owndroid.ui.theme
import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
diff --git a/app/src/main/res/resources.properties b/app/src/main/res/resources.properties
index 63b46f9..d5a3ddc 100644
--- a/app/src/main/res/resources.properties
+++ b/app/src/main/res/resources.properties
@@ -1 +1 @@
-unqualifiedResLocale=en
\ No newline at end of file
+unqualifiedResLocale=en-US
\ No newline at end of file
diff --git a/app/src/main/res/values-night-v31/themes.xml b/app/src/main/res/values-night-v31/themes.xml
index a96fece..fd958cb 100644
--- a/app/src/main/res/values-night-v31/themes.xml
+++ b/app/src/main/res/values-night-v31/themes.xml
@@ -1,6 +1,6 @@
-
diff --git a/app/src/main/res/values-v31/themes.xml b/app/src/main/res/values-v31/themes.xml
index 8002224..bdb69ef 100644
--- a/app/src/main/res/values-v31/themes.xml
+++ b/app/src/main/res/values-v31/themes.xml
@@ -1,6 +1,6 @@
-
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
similarity index 98%
rename from app/src/main/res/values-zh/strings.xml
rename to app/src/main/res/values-zh-rCN/strings.xml
index dff3284..cfa98ee 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -47,9 +47,6 @@
Profile owner
Device owner
激活Device admin
- adb shell dpm set-active-admin com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
- adb shell dpm set-profile-owner com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
- adb shell dpm set-device-owner com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
设备信息
Financed device: %1$s
设备策略管理器角色(DPMRH):%1$s
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2c29dbd..8d7d770 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -50,9 +50,9 @@
Profile owner
Device owner
Activate Device admin
- adb shell dpm set-active-admin com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
- adb shell dpm set-profile-owner com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
- adb shell dpm set-device-owner com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
+ adb shell dpm set-active-admin com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
+ adb shell dpm set-profile-owner com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
+ adb shell dpm set-device-owner com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
Device info
Financed device: %1$s
Device policy manager role holder:%1$s
@@ -88,11 +88,11 @@
List owners
Shizuku not started.
- dpm mark-profile-owner-on-organization-owned-device --user %1$s com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
+ dpm mark-profile-owner-on-organization-owned-device --user %1$s com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
- dpm set-device-owner com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
- dpm set-profile-owner com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
- dpm set-active-admin com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver
+ dpm set-device-owner com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
+ dpm set-profile-owner com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
+ dpm set-active-admin com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
Permission granted (Shell)
Permission granted (Root)
Activate profile owner
@@ -222,7 +222,7 @@
Organization owned work profile: %1$s
Organization work profile
- adb shell \"dpm mark-profile-owner-on-organization-owned-device --user %1$s com.binbin.androidowner/com.binbin.androidowner.dpm.MyDeviceAdminReceiver\"
+ adb shell \"dpm mark-profile-owner-on-organization-owned-device --user %1$s com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver\"
Skip encryption
Create
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 41eed7c..c9379a0 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,6 +1,6 @@
-