我的手机已经root了,怎么给hamibot保活
教我详细的做法
这些命令都是在手机连接电脑后的adb中执行吗,还是已root的手机端就能执行
回答
Hamibot在root设备上的保活方法
在已root的手机上,你可以通过以下几种方法增强Hamibot的保活能力,确保自动化任务持续运行:
方法一:使用root权限设置系统白名单
// 文档地址 https://docs.hamibot.com/
if (device.isRoot()) {
// 将Hamibot加入系统Doze模式白名单
$shell('dumpsys deviceidle whitelist +com.hamibot.hamibot', true);
// 禁止电池优化
$shell('cmd appops set com.hamibot.hamibot IGNORE_BATTERY_OPTIMIZATIONS allow', true);
// 模拟充电状态防止休眠
$shell('dumpsys battery set status 2', true);
}
方法二:创建永久前台服务
// 文档地址 https://docs.hamibot.com/
// 启动前台服务保持活跃
hamibot.keepRunning({
notification: {
title: "Hamibot 运行中",
text: "自动化任务正在执行",
smallIcon: "ic_notification"
},
interval: 60 * 1000 // 每分钟更新通知
});
方法三:系统级进程保护
// 文档地址 https://docs.hamibot.com/
if (device.isRoot()) {
// 将Hamibot设置为系统关键进程
$shell('setprop service.hamibot.keepalive 1', true);
// 重启Hamibot服务确保生效
$shell('setprop ctl.restart hamibot', true);
// 禁用Doze模式
$shell('dumpsys deviceidle disable', true);
}
方法四:定期自我唤醒
// 文档地址 https://docs.hamibot.com/
// 每30分钟自动唤醒一次
setInterval(() => {
app.launchPackage("com.hamibot.hamibot");
// 可添加其他保活操作
}, 30 * 60 * 1000);
补充建议
- 进入Hamibot设置界面进行手动配置:
app.startActivity({
packageName: 'com.hamibot.hamibot',
className: 'com.hamibot.hamibot.ui.log.LogActivity_',
root: true
});
在设置中开启"保持运行"、"忽略电池优化"等选项。
-
确保在手机厂商的电池管理设置中将Hamibot设为"不受限制"或"允许后台活动"。
-
对于某些ROM,可能需要使用XPosed模块进一步增强保活能力。
请注意,不同Android版本和手机厂商的ROM实现可能有所差异,某些命令可能需要根据实际情况调整。过度保活可能会增加电池消耗,请根据实际需求合理设置。
补充回答 1
Hamibot在Root设备上的详细保活指南
一、系统级白名单设置(必须操作)
1. 禁用Doze模式限制
Doze模式是Android 6.0+引入的省电机制,会限制后台应用活动。你需要将Hamibot加入白名单:
// 文档地址 https://docs.hamibot.com/
if (device.isRoot()) {
// 查看当前Doze白名单
log("当前Doze白名单: " + $shell('dumpsys deviceidle whitelist', true).result);
// 将Hamibot加入Doze白名单(关键步骤)
var result = $shell('dumpsys deviceidle whitelist +com.hamibot.hamibot', true);
// 验证是否添加成功
if ($shell('dumpsys deviceidle whitelist | grep com.hamibot.hamibot', true).result) {
toastLog("✅ Hamibot已成功加入Doze白名单");
} else {
toastLog("❌ 加入Doze白名单失败,请手动检查");
}
}
执行步骤:
- 创建新脚本并粘贴上述代码
- 运行脚本(需要root权限)
- 查看日志确认是否成功
2. 禁用电池优化
// 文档地址 https://docs.hamibot.com/
if (device.isRoot()) {
// 禁用电池优化(关键步骤)
$shell('cmd appops set com.hamibot.hamibot IGNORE_BATTERY_OPTIMIZATIONS allow', true);
$shell('am broadcast -a android.intent.action.POWER_SAVE_WHITELIST_CHANGED', true);
// 验证电池优化状态
var batteryOpt = $shell('dumpsys batteryproperties | grep com.hamibot.hamibot', true).result;
if (batteryOpt.includes("com.hamibot.hamibot")) {
toastLog("✅ 电池优化已禁用");
} else {
toastLog("❌ 电池优化禁用可能失败");
}
}
二、前台服务保活(推荐设置)
1. 创建永久前台通知
// 文档地址 https://docs.hamibot.com/
// 创建保活脚本(建议命名为"保活守护.js")
events.on("exit", function() {
// 脚本退出时自动重启
engines.execScriptFile(engines.myEngine().getSource().toString());
});
// 启动前台服务
hamibot.keepRunning({
notification: {
title: "Hamibot自动化服务",
text: "后台任务持续运行中...",
smallIcon: "ic_popup_reminder", // 可使用系统图标
priority: 1 // 通知优先级
},
interval: 30 * 1000, // 每30秒更新通知
onKeep: function() {
// 定期执行轻量操作防止被杀
log("保活服务正常运行中...");
},
onStop: function() {
// 如果服务停止,尝试重启
hamibot.requestScreenCapture();
}
});
// 保持脚本持续运行
setInterval(() => {}, 60 * 60 * 1000); // 长时间空循环
设置步骤:
- 创建新脚本,命名为"保活守护.js"
- 粘贴上述代码
- 设置脚本为"无障碍服务启动时运行"
- 重启无障碍服务使设置生效
三、系统级进程保护(高级设置)
1. 持久化系统属性设置
// 文档地址 https://docs.hamibot.com/
// 文档地址 https://docs.hamibot.com/
if (device.isRoot()) {
// 创建系统级保活配置
var rcFile = "/system/etc/init/hamibot.rc";
// 检查并创建init配置(需要系统分区可写)
$shell('mount -o remount,rw /system', true);
if (!$shell('ls ' + rcFile, true).code) {
$shell('echo "service hamibot-keepalive /system/bin/sh" > ' + rcFile, true);
$shell('echo " class main" >> ' + rcFile, true);
$shell('echo " user root" >> ' + rcFile, true);
$shell('echo " group root" >> ' + rcFile, true);
$shell('echo " oneshot" >> ' + rcFile, true);
$shell('echo " exec /system/bin/sh -c \\"while true; do pgrep -f com.hamibot.hamibot || am start -n com.hamibot.hamibot/.ui.MainActivity; sleep 30; done\\"" >> ' + rcFile, true);
}
// 设置开机启动
$shell('chmod 755 ' + rcFile, true);
$shell('restorecon ' + rcFile, true);
$shell('mount -o remount,ro /system', true);
toastLog("✅ 系统级保活配置已设置");
}
注意事项:
- 需要System分区可写(部分设备需要解锁Bootloader)
- 执行前建议备份原系统
- 此配置会在每次系统启动时自动运行
四、厂商定制ROM特殊设置
1. 主流厂商设置指南
华为/荣耀:
- 进入手机设置 → 应用 → 应用启动管理
- 搜索"Hamibot"
- 关闭"自动管理",手动开启:
- 允许自启动
- 允许后台活动
- 允许关联启动
小米/Redmi:
- 进入手机设置 → 应用设置 → 授权管理 → 自启动管理
- 打开Hamibot的自启动
- 进入"省电策略" → 选择"无限制"
OPPO/Realme:
- 进入手机设置 → 应用管理 → 权限管理 → 自启动
- 开启Hamibot自启动
- 进入"电池" → 应用耗电管理 → 选择Hamibot → 允许后台高耗电
vivo/iQOO:
- 进入手机设置 → 电池 → 后台高耗电 → 手动管理
- 开启Hamibot
- 进入"应用后台运行管理" → 选择Hamibot → 允许后台运行
五、验证保活是否成功
1. 测试方法
// 文档地址 https://docs.hamibot.com/
// 创建测试脚本"保活测试.js"
var startTime = new Date().getTime();
var logCount = 0;
// 记录运行日志
function logRun() {
logCount++;
var now = new Date();
files.append("/sdcard/hamibot_alive.log",
"[" + now.toLocaleString() + "] 运行正常 #" + logCount + "\n");
toastLog("保活测试: 运行 #" + logCount);
}
// 每5分钟记录一次
setInterval(logRun, 5 * 60 * 1000);
logRun(); // 立即执行一次
// 定期检查无障碍服务状态
setInterval(function() {
if (!auto.service) {
toastLog("⚠️ 检测到无障碍服务断开,尝试重启...");
auto.service = true;
}
}, 30 * 1000);
// 脚本退出处理
events.on("exit", function() {
var duration = Math.floor((new Date().getTime() - startTime) / 1000);
toastLog("保活测试结束,持续运行 " + duration + " 秒");
});
测试流程:
- 运行"保活测试.js"
- 锁屏并保持手机静置2小时
- 检查/sdcard/hamibot_alive.log文件
- 如果日志持续增加且时间间隔正常,则保活成功
六、高级技巧
1. 双进程守护(更高级保活)
// 文档地址 https://docs.hamibot.com/
// 主进程脚本"主服务.js"
if (engines.myEngine().getSource().toString().endsWith("主服务.js")) {
// 主进程逻辑
setInterval(() => {
log("主服务运行中...");
}, 10 * 1000);
// 检查守护进程是否存在
setInterval(() => {
if (!engines.all().some(e => e.getSource().toString().endsWith("守护进程.js"))) {
engines.execScriptFile("守护进程.js");
}
}, 30 * 1000);
}
// 守护进程脚本"守护进程.js"
if (engines.myEngine().getSource().toString().endsWith("守护进程.js")) {
// 守护进程逻辑
setInterval(() => {
if (!engines.all().some(e => e.getSource().toString().endsWith("主服务.js"))) {
engines.execScriptFile("主服务.js");
}
}, 20 * 1000);
}
2. 使用AlarmManager定期唤醒
// 文档地址 https://docs.hamibot.com/
if (device.sdkInt >= 23) {
// Android 6.0+使用AlarmManager设置精确唤醒
var alarm = context.getSystemService(android.app.AlarmManager);
var intent = new android.content.Intent("com.hamibot.hamibot.KEEP_ALIVE");
var pi = android.app.PendingIntent.getBroadcast(context, 0, intent, 0);
// 每15分钟唤醒一次
alarm.setRepeating(
android.app.AlarmManager.ELAPSED_REALTIME_WAKEUP,
15 * 60 * 1000,
15 * 60 * 1000,
pi
);
// 注册广播接收器
events.onBroadcastReceiver("com.hamibot.hamibot.KEEP_ALIVE", function() {
log("收到保活广播,执行轻量操作");
app.launchPackage("com.hamibot.hamibot");
});
}
重要提示
- 保活程度与系统版本和厂商定制有关,Android 10+限制更为严格
- 过度保活会增加电量消耗,建议根据实际需求平衡保活强度
- 部分厂商ROM即使root后仍有限制,可能需要额外XPosed模块
- 重启手机后,部分设置可能需要重新应用
- Hamibot 3.0+版本内置了增强保活功能,建议保持最新版本
通过以上步骤综合设置,你的Hamibot应该能在大多数root设备上保持稳定运行,即使在锁屏和低电量情况下也能持续执行自动化任务。
补充回答 2
Hamibot保活命令执行方式说明
这些命令不需要连接电脑使用adb,而是直接在已root的手机上通过Hamibot应用执行。这是Hamibot的核心设计特点之一:它是一个完全在Android设备本地运行的自动化工具。
正确执行方式
1. 直接在Hamibot应用内执行(无需电脑)
对于已经root的手机:
- 安装最新版Hamibot应用
- 确保Hamibot已获取root权限(首次运行会提示授权)
- 在Hamibot应用内创建新脚本
- 将我提供的代码粘贴到脚本中
- 直接运行脚本(Hamibot会自动使用手机的root权限执行命令)
关键点:
- Hamibot内置了
shell()函数,可以直接执行需要root权限的命令 shell(cmd, true)中的第二个参数true表示以root权限执行- 所有操作都在手机本地完成,不需要连接电脑
2. 验证Hamibot是否已获取root权限
// 文档地址 https://docs.hamibot.com/
log("设备是否root: " + device.isRoot());
log("Hamibot是否获取了root权限: " + shell("id", true).code === 0);
如果输出中显示Hamibot是否获取了root权限: true,则表示Hamibot已成功获取root权限,可以直接执行需要root权限的命令。
3. 详细操作步骤(手机端操作)
-
确认root状态:
- 安装root检测工具(如Root Checker)
- 确认手机已成功root
-
授予Hamibot root权限:
- 打开Hamibot应用
- 首次使用需要root权限时,会弹出Superuser授权请求
- 选择"永久允许"并授予root权限
-
创建保活脚本:
- 在Hamibot主界面点击"+"创建新脚本
- 粘贴我提供的保活代码
- 保存为"系统保活.js"
-
运行脚本:
- 点击脚本名称
- 选择"运行"
- 观察日志输出确认是否成功
与ADB的区别
| 执行方式 | Hamibot本地执行 | 电脑ADB执行 |
|---|---|---|
| 是否需要电脑 | ❌ 不需要 | ✅ 需要 |
| 操作便利性 | ✅ 随时随地操作 | ❌ 需要连接电脑 |
| 自动化程度 | ✅ 可设置自动运行 | ❌ 需手动操作 |
| root权限使用 | ✅ 内置处理 | ✅ 需要adb root |
| 适用场景 | ✅ 日常保活需求 | ⚠️ 仅限开发调试 |
常见问题解答
问:为什么Hamibot能直接执行root命令而不需要adb?
答:Hamibot是一个Android应用,它通过调用Android的Runtime API执行shell命令。当应用获取了root权限后,它可以像终端模拟器一样执行需要root权限的命令。
问:执行后没有反应怎么办?
答:检查以下几点:
- 确认手机已root(使用Root Checker验证)
- 确认Hamibot已获取root权限(首次运行脚本时授权)
- 查看Hamibot的日志输出(点击"日志"按钮)
- 尝试重启手机后重新运行脚本
问:需要每次都运行保活脚本吗?
答:不需要。你可以:
- 将保活脚本设置为"无障碍服务启动时运行"
- 或创建一个"开机启动"脚本
- 或将保活功能集成到你的主自动化脚本中
通过这种方式设置的保活会在后台持续工作,不需要每次手动运行。
记住:所有操作都在手机上完成,你只需要一部已经root的手机和Hamibot应用,无需连接电脑或使用adb命令。