【问题标题】:Is it possible to make my application work in safe mode?是否可以让我的应用程序在安全模式下工作?
【发布时间】:2013-05-19 17:06:45
【问题描述】:

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

但是当设备重新启动到'safe mode' 时,所有逻辑都崩溃了。即,设备在安全模式下重新启动到我的应用程序,但它没有列出任何已安装的应用程序并停止工作。

  1. 是否可以让我的应用程序也可以在'Safe mode' 中运行?

  2. 在运行我的应用程序时,有什么方法可以防止设备转到 'safe mode',比如使用 RECEIVE_BOOT_COMPLETED 广播接收器?

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

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

提前致谢

【问题讨论】:

  • 在安全模式下,所有用户应用程序都应该被禁用(这就是重点),因此您可能无法对您的应用程序执行任何操作,除非您具有 root 访问权限并安装它作为系统应用程序。
  • 如果我将我的应用程序作为设备管理应用程序,你确定它不起作用吗?
  • 设备管理应用是什么意思? AFAIK,真的没有这样的东西,只有三种不同类型的应用程序:root 应用程序、系统应用程序和普通用户应用程序。
  • 我不相信 - 但是,不完全确定。如果您想查看,可以在BroadcastReceiver 中添加一些日志消息并自行查看。

标签: android device handle safe-mode


【解决方案1】:

我知道这个问题很老,但也许这会对某人有所帮助。如果您的应用程序是主要用户的设备所有者或配置文件所有者,您可以完全禁用安全模式(它可以在没有 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);

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

adb shell dpm set-device-owner com.example.deviceownerapp/.DeviceAdminReceiver

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

【讨论】:

【解决方案2】:

如果您为要在安全模式下启动的特定应用创建快捷方式,则可以在安全模式下执行此操作。但是创建快捷方式时应该处于正常模式。

【讨论】:

    【解决方案3】:

    这样做的唯一方法是使用户应用成为 /system/app 上的系统应用

    但如果您的设备已植根,则有一种简单的方法可以做到这一点

    1. 下载幸运补丁并启用root权限

    2. 使用搜索选项查找您希望能够在安全模式下使用的应用,或者直接在滚动菜单中找到它

    3. 点击应用,点击工具,然后按移动到/system/app

    4. 该过程完成后,必须重新启动设备

    5. 现在可以在安全模式下访问用户应用

    【讨论】:

      【解决方案4】:

      设备管理应用程序也无法运行。

      要在安全模式下运行您的应用,您需要将您的应用复制到 /system/app,您需要获得 root 访问权限。

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

      【讨论】:

        【解决方案5】:

        退出安全模式,将已安装的应用程序放在主屏幕上。重新启动进入安全模式,应用将在主屏幕上,应用将在安全模式下运行!

        【讨论】:

        • 有人验证过这个答案吗?
        • 它不起作用。显示一个 Toast,上面写着 - 在安全模式下禁用下载应用
        猜你喜欢
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多