是否可以使我的应用程序在安全模式下工作?

Dev*_*man 20 android device handle safe-mode

我有一个Android应用程序,它单独列出已安装和系统应用程序.当用户尝试从我的应用程序重启设备时,它将打开我的应用程序而不是默认的主启动器.

但是当设备重新启动到'safe mode'所有逻辑崩溃时,设备会以安全模式重新启动到我的应用程序,但它不会列出任何已安装的应用程序并停止其工作.

  1. 是否有可能使我的应用程序'Safe mode'也在工作?

  2. 有没有办法阻止设备'safe mode'在运行我的应用程序时使用RECEIVE_BOOT_COMPLETED广播接收器?

  3. 什么是设备管理应用程序?在这种情况下它有用吗?

  4. 是否可以通过编程方式检测安全模式?

提前致谢

Rob*_*yer 6

我知道这个问题很老了,但这也许会对某人有所帮助。如果您的应用程序是主要用户的设备所有者或配置文件所有者,您可以完全禁用安全模式(无需 root 即可工作):

DevicePolicyManager manager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName admin = new ComponentName(getApplicationContext(), DeviceAdminReceiver.class);
// To disable safe boot
manager.addUserRestriction(admin, UserManager.DISALLOW_SAFE_BOOT);
// To enable safe boot again
// manager.clearUserRestriction(admin, UserManager.DISALLOW_SAFE_BOOT);
Run Code Online (Sandbox Code Playgroud)

编辑:您可以简单地通过 ADB 设置设备所有者或配置文件所有者:https://developer.android.com/studio/command-line/adb#dpm

adb shell dpm set-device-owner com.example.deviceownerapp/.DeviceAdminReceiver
Run Code Online (Sandbox Code Playgroud)

请注意,激活设备所有者时您不得添加任何帐户(但您不必执行系统重置,只需从设置中删除所有帐户即可)。设置设备所有者后,您可以再次添加任何帐户。


Kar*_*hik 0

设备管理应用程序也不会运行。

要在安全模式下运行应用程序,您需要将应用程序复制到 /system/app,为此您需要 root 访问权限。

所以只有在 root 设备上才有可能。