迫害妄想症患者福音 - 给 Android 手机加入数据自毁快捷开关!

有些人似乎提出了一些奇怪的要求 - 他们希望能够在出门的时候为了避免查手机,能够一键毁掉手机内储存的一切数据。

开始之前,首先介绍系统级触发恢复出厂设置的原理。
Android 触发正常恢复出厂设置的原理是,系统级高权限发送 intent 广播,然后手机会自动重启开始恢复出厂设置。对于 Android 7.1 和以下版本而言,事件为 android.intent.action.MASTER_CLEAR 。Android 8 和以上版本则为 android.intent.action.FACTORY_RESET 。
而手动发送 intent 广播并发挥作用需要 root 权限,相关 Shell 命令为:
Android 7 或以下版本:am broadcast -a android.intent.action.MASTER_CLEAR
Android 8 或以上版本:am broadcast -p "android" --receiver-foreground -a android.intent.action.FACTORY_RESET

其中核心命令就是 am broadcast,因此我们需要一个能够快速执行 Shell 命令的应用。这里介绍 Terminal Shortcuts Pro 应用,该应用可在 Play Store 下载: https://play.google.com/store/apps/details?id=de.hp.terminalshortcut

由于相关命令需要 Root 权限才可运行,手机也必须要获取 Root 权限才行。获取 Root 权限的方法这里不再赘述,一般都是使用 Magisk。
打开 Terminal Shortcut Pro,点击右上角的 New 后选择 Local Android/Linux Shell。

名字可以随意填写,相关命令先不改。你必须勾上里面的 Run with root previleges。如果担心点错,可以勾上 Confirm execution。

确定之后,点击你创建的命令名字(例如 KillSwitch),然后允许 Root 权限。执行成功后点击确定。

按住创建的命令,点击 Edit,然后根据你手机运行的版本,将 Command 改成上面两者命令之一。

至此,自毁开关就已经制作完成。你可以选择创建快捷方式 - 按住创建的命令后选择 Launcher Shortcut,然后选择 Foreground,接着就可以把自毁开关放在桌面上。

只需要点开自毁开关应用并确认(如果你前面勾上了 Confirm execution),手机就会立即启动恢复出厂设置的操作。

如果你希望用快捷键调用自毁开关,那么你还可以安装 Button Mapper 应用,给予 Root 权限后按照指导开启辅助功能。

以配置长按音量上键触发自毁开关为例,需要选择音量上键,打开自定义后,将长按的设置从 Default 改成快捷方式 - Terminal Shortcut Pro,在里面选择你设置的自毁开关后,选择 Foreground 就配置完成了。
6

如果你需要锁屏的时候执行,就需要在前面的主界面开启息屏操作,但你可能需要相应的去掉确认提示。
为了不影响音量调节功能,默认设置为按一下音量键后再长按可以直接调节音量而不会调用自毁开关,直接长按的话就会调用自毁开关。

以下是用长按音量加键调用自毁开关的效果。
7

常见问题##

  1. 会不会被别人用数据恢复功能把恢复出厂设置后被清空的数据恢复回来?
    不可能!从 Android 5.0 开始强制实装的全盘加密和 Android 7.X 开始的文件级加密就是为了防止这种情况而诞生的。某些国产品牌厂商会出于对用户提供便利的原因,魔改 Android 的内核实现,使这一保护被大幅削弱。很多人喜欢直接用给内核打补丁的方式禁用全盘加密——这是我们极不提倡的。
    相关实现文档: 全盘加密  |  Android Open Source Project

  2. 会不会触发重置保护?
    不会,这会被系统判定为正常恢复出厂设置,会一并清除 Google 登录凭证。

  3. iOS 设备有吗?
    除非越狱了而且有人开发出了类似的插件,否则不可能。

  4. 如何利用 Google 语音助手键来实现此功能?
    有些机型支持直接修改语音助手按键为你想要的应用快捷方式。你可能需要 Magisk 模块将 Google 语音助手键映射成其它按键,例如:
    [Magisk] Google Assistant Button Remapper | XDA Forums