diff --git a/Guide.md b/Guide.md index 54be244..abc3af0 100644 --- a/Guide.md +++ b/Guide.md @@ -1,11 +1,13 @@ # 使用指南 -欢迎来到Android owner使用教程 +欢迎来到OwnDroid使用教程 在这里了解各个功能所需的权限、兼容的安卓版本和注意事项 ## 目录 +0. [使用前须知](#使用前须知) + 1. [权限](#权限) @@ -25,6 +27,11 @@ 9. [其他功能](#其他功能) +## 使用前须知 + +1. device admin, profile owner和device owner有极高的特权,包括但不限于让你的设备丢失所有数据。所以,请谨慎使用 +2. 以下的所有命令都需要在`adb shell`中执行。请进入`adb shell`后执行,不要直接`adb shell xxx`,容易出问题。 + ## 权限 ### Device admin @@ -41,7 +48,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 +79,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 +104,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,13 +112,13 @@ ADB激活有一定局限性 激活前必须删除所有用户(user),否则会报错。你可以使用下面这条ADB命令查看已有的用户 ```shell -adb shell pm list users +pm list users ``` 激活前也要删除所有账号(account),否则会报错。你可以使用下面这条ADB命令查看已有的账号 ```shell -adb shell dumpsys account +dumpsys account ``` 上面两个是安卓系统的限制,此外,还有设备生产商的限制 @@ -137,7 +144,7 @@ ADB命令停用十分麻烦,你需要修改AndroidManifest.xml并自己编译 然后,使用这条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 +155,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 +169,7 @@ Shizuku的本质是ADB。在安卓10或以下,你还是要连接电脑激活Sh 不能在非主用户中使用 -因为作者懒得研究Shizuku-API,所以Android owner没有添加任何Shizuku相关依赖。以上功能均是通过rish实现。因为是套壳的rish,所以不支持Sui +因为作者懒得研究Shizuku-API,所以OwnDroid没有添加任何Shizuku相关依赖。以上功能均是通过rish实现。因为是套壳的rish,所以不支持Sui ### 设备唯一标识码 @@ -534,7 +541,7 @@ API34或以上将不能在系统用户中使用WipeData,如果要恢复出厂 ## 工作资料 -工作资料是一种特殊的用户,使用`adb shell pm list user`命令可以看到工作资料,工作资料的默认用户名是“工作资料”或“Work Profile” +工作资料是一种特殊的用户,使用`pm list user`命令可以看到工作资料,工作资料的默认用户名是“工作资料”或“Work Profile” 工作资料创建后默认禁用[安装未知来源应用](#应用) @@ -548,9 +555,9 @@ API34或以上将不能在系统用户中使用WipeData,如果要恢复出厂 - 跳过加密(需要API24或以上,没有实际作用) -创建后会跳转到工作资料中的Android owner,请立即按照指引激活工作资料 +创建后会跳转到工作资料中的OwnDroid,请立即按照指引激活工作资料 -创建后工作资料中的Android owner会成为Profile owner +创建后工作资料中的OwnDroid会成为Profile owner 在WearOS上可以创建工作资料,但是会导致SystemUI停止运行一次。WearOS原生的启动器不会显示工作资料中的应用,你需要使用支持工作资料的启动器。你可以通过[ADB命令移除工作资料](#删除工作资料)。此外,不要尝试给工作资料重置密码,因为WearOS不能输入工作资料的密码。(测试环境:WearOS4(AVD)) @@ -560,15 +567,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 +585,7 @@ dpm mark-profile-owner-on-organization-owned-device --user USER_ID com.binbin.an 需要的权限:由组织拥有的工作资料的Profile owner -只会挂起个人的用户应用,系统应用和Android owner仍然可以打开 +只会挂起个人的用户应用,系统应用和OwnDroid仍然可以打开 ### 资料最长关闭时间 @@ -611,12 +617,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 +634,7 @@ adb shell pm remove-user USER_ID 除了安装应用,所有的操作都需要应用的包名,你可以通过ADB命令查看所有已安装应用的包名 ```shell -adb shell pm list packages +pm list packages ``` ### 应用详情 @@ -680,7 +686,7 @@ adb shell pm list packages 使用这个ADB命令查看系统支持的所有权限 ```shell -adb shell pm list permissions +pm list permissions ``` 权限有三种状态: @@ -859,7 +865,7 @@ Profile owner无法禁用部分功能,工作资料中部分功能无效,wear 使用ADB查看所有用户: ```shell -adb shell pm list users +pm list users ``` 上面这条命令返回的结果中,用户名前面的数字就是UserID @@ -913,12 +919,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 +1015,7 @@ Device owner无论在何时都是附属于设备的用户 需要Device owner -输入密码错误次数达到限制后会恢复出厂设置(前提是Android owner有权限恢复出厂设置) +输入密码错误次数达到限制后会恢复出厂设置(前提是OwnDroid有权限恢复出厂设置) ### 密码失效超时时间 @@ -1060,7 +1066,7 @@ Device owner无论在何时都是附属于设备的用户 自定义的项目: -- 禁用小工具(API21或以上弃用,Android owner的最小兼容API版本21,所以这个功能没用) +- 禁用小工具(API21或以上弃用,OwnDroid的最小兼容API版本21,所以这个功能没用) - 禁用相机 - 禁用通知(不知道是否包含音乐播放器) - 禁用未经编辑的通知(作用未知) @@ -1095,7 +1101,7 @@ API31及以上弃用,请使用[密码复杂度要求](#密码复杂度要求) 正在修改,预计在5.0版本重新加入。 -在Android owner的设置中打开 +在OwnDroid的设置中打开 适配手表的屏幕大小,添加一些WearOS/AndroidWear相关的提示,比如[密码与锁屏](#密码与锁屏) @@ -1105,8 +1111,8 @@ API31及以上弃用,请使用[密码复杂度要求](#密码复杂度要求) 在安卓12或以上此功能默认打开 -打开后Android owner中的颜色方案将会跟随系统 +打开后OwnDroid中的颜色方案将会跟随系统 建议打开,因为自带的颜色方案不好看 -打开或关闭此功能都要重启Android owner +打开或关闭此功能都要重启OwnDroid 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..2abc560 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,29 +25,28 @@ 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" + android:testOnly="true" tools:targetApi="34"> + 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 @@ -