前置条件
-
基础准备
- 开启开发者选项:进入
设置 > 关于手机 > 连续点击版本号7次
激活。 - 启用USB调试:
开发者选项 > USB调试
(用于ADB连接)。 - 文件权限:脚本需保存为
.sh
后缀(如myscript.sh
),并用文本编辑器(如QuickEdit)添加执行权限:chmod +x /sdcard/myscript.sh
- 开启开发者选项:进入
-
工具选择
| 场景 | 推荐工具 | 是否需要Root |
|——————-|———————————–|————-|
| 电脑连接设备 | ADB(Android Debug Bridge) | 可选 |
| 设备本地运行 | Termux(终端模拟器) | 可选 |
| 自动化触发 | Tasker + Termux插件 | 可选 |
| 高级系统操作 | Magisk(Root权限管理) | 必需 |
三种主流方法详解
方法1:通过ADB从电脑执行(免Root)
适用场景:批量处理、调试开发。
步骤:
- 电脑安装ADB工具:
- Windows:下载Android SDK Platform-Tools并配置环境变量。
- Linux/macOS:终端运行
sudo apt install adb
或brew install android-platform-tools
。
- 连接设备:
adb devices # 确认设备已授权 adb shell # 进入设备Shell环境
- 执行脚本:
- 直接运行:
adb shell sh /sdcard/myscript.sh
- 传递参数:
adb shell sh /sdcard/myscript.sh arg1 arg2
- 直接运行:
方法2:设备本地运行(Termux)
适用场景:日常自动化(如备份、定时任务)。
步骤:
- 安装Termux(F-Droid版本更完整)。
- 编写脚本:
#!/data/data/com.termux/files/usr/bin/bash echo "Hello Android!" > /sdcard/output.txt
- 运行脚本:
./myscript.sh # 若报错权限不足,执行`termux-setup-storage`授权存储
方法3:自动化运行(Tasker + Termux插件)
适用场景:事件触发(如连接WiFi时启动脚本)。
步骤:
- 安装Tasker和Termux Tasker插件。
- 创建Tasker任务:
- 操作选择:
Plugin > Termux:Execute
- 脚本路径:
/sdcard/myscript.sh
- 操作选择:
- 设置触发条件:如时间、位置、事件等。
Root用户的进阶操作
- Magisk环境下的系统脚本
- 将脚本放入
/data/adb/service.d/
目录,开机自动执行。 - 示例(禁用Google服务):
#!/system/bin/sh pm disable com.google.android.gms
- 将脚本放入
- SuperSU兼容性:
使用su -c "sh /path/to/script.sh"
命令以Root身份运行。
安全与排错指南
- 安全警告:
- Root后错误脚本可能导致系统崩溃!避免直接操作
/system
分区。 - 仅从可信来源下载脚本(如GitHub已验证项目)。
- Root后错误脚本可能导致系统崩溃!避免直接操作
- 常见错误:
| 错误提示 | 解决方案 |
|————————–|———————————–|
|Permission denied
| 执行chmod +x 脚本路径
|
|No such file or directory
| 检查路径大小写和空格(建议用/sdcard/
替代) |
|Syntax error
| 用在线工具(如ShellCheck)验证语法 | - 调试技巧:
sh -x /sdcard/myscript.sh # 显示执行过程
典型应用场景
- 自动化清理:定时删除缓存文件。
- 网络优化:切换DNS或屏蔽广告(需Root)。
- 备份数据:压缩指定目录并上传云端。
- 性能监控:记录CPU温度到日志文件。
引用说明:本文参考Android开发者文档对ADB的规范描述,结合Termux官方Wiki的权限管理建议,并遵循Google安全准则,Magisk模块开发指南详见GitHub Magisk文档。
重要提醒:非Root用户优先选择ADB或Termux,避免设备风险,首次运行脚本前,建议在模拟环境(如Anbox)测试,掌握Shell基础命令(cd
/ls
/cat
)可极大提升效率,推荐学习Bash编程教程。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6030.html