问题描述
拥有安装了Magisk和Termux的应用的手机,并且这些应用使手机成为家庭小型服务器。每次重启设备都必须手动解锁屏幕,才能从Termux启动并执行必要的操作,但当不在家时就无法实现自动重启。
那么,是否可以通过编写一个脚本,让Magisk在引导时根据配置文件中的密码自动解锁手机呢?
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1:使用启动器脚本
通过创建一个shell脚本,在设备开机后自动输入密码,以绕过手动解锁步骤。这需要在Magisk设置中添加执行该脚本的服务。
实施步骤:
- 准备脚本 – 创建并编辑一个名为
99unlock.sh
的sh文件。 - 在其中插入如下代码(注意将
<SIM PIN>
和<PASSWORD>
替换为实际的pin或密码):
bash
#!/system/bin/sh
sleep 30
input keyevent KEYCODE_WAKEUP
sleep 5
input keyevent KEYCODE_SPACE
input text <SIM PIN>
input keyevent KEYCODE_SPACE
sleep 5
input keyevent KEYCODE_SPACE
input text <PASSWORD>
设定执行权限 – 确保脚本可以被执行。
bash
chmod 0700 /data/adb/service.d/99unlock.sh添加服务到Magisk – 在
/data/adb/service.d/
目录下创建一个新的文件夹,并设置启动顺序。确保新创建的脚本在这个文件夹内被Magisk正确处理。一般情况下,只需在
adb
目录中建立一个以数字命名的服务文件夹(如99unlock
),并在其中放置刚刚编写的脚本。设备重启 – 完成上述配置后尝试重启手机,此时系统应自动通过该shell脚本完成解锁过程而无需用户手动干预。
方案2:禁用加密
另一种选择是直接移除密码保护。如果设备已经使用文件加密(FBE),可以通过修改fstab.conf
禁止FBE。
实施步骤:
- 获取root权限 – 确保能够通过Magisk编辑系统配置。
- 打开
fstab.conf
文件 – 进入文件系统相关设置或使用文本编辑工具打开此文件(通常路径为/etc/fstab.conf.default
的软链接)。 - 禁用FBE选项 – 添加或修改对应
cryptfs
项,取消注释并设置相应参数以禁用加密功能。例如:
/dev/block/by-name/crypt fs ext4 noauto noswap
- 重新启动设备 – 重启后系统将不再要求输入密码进行解密。
- 数据格式化 – 实施此方案前,请先格式化存储分区,以免数据丢失。
请注意:禁用加密功能可能导致数据容易被未经授权访问。务必谨慎操作并考虑备份重要数据后再执行上述步骤。如果是在非官方环境下进行的系统改动,使用后应恢复原状以保证系统的安全与稳定性。