| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
./DontCrack \ -path "/Volumes/老固态/Projects/FasterEdge/DontCrack4AndroidLinuxKernelSide/example/childproc/childproc" \ -args "-mode normal -interval 500ms -lifetime 5s" \ -env "EXTRA_INFO=from_manager RESTART_ENV_COUNT=0" \ -file-log -log-path ./example/logs/ -log-life-day 7 \ -auto-restart -max-retries 2 \ -start-now \ -password 123456
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| path | string | "" | 要管理的程序路径(支持可执行文件、shell脚本等) |
| args | string | "" | 传递给程序的参数(可选) |
| pre | string | "" | 启动前要执行的命令(在 sh 中执行,可用&&/;/ |
| env | string | "" | 为子进程追加环境变量,如: "PATH=/system/bin:/system/xbin FOO=bar";用空格或分号分隔 |
| auto-restart | bool | false | 是否自动重启 |
| max-retries | int | 3 | 最大重试次数(-1表示无限次,默认3次) |
| start-now | bool | false | 是否立即启动 |
| port | int | 11883 | HTTP服务端口 |
| password | string | "" | 管理进程的密码(可选,默认为空且不开启密码保护) |
| log-capacity | int | 200 | 日志缓存的最大行数(默认200) |
| log-max-line-bytes | int | 1048576 | 单行日志的最大字节数(用于bufio.Scanner,默认1MiB) |
| file-log | bool | false | 是否启用文件日志(默认false) |
| log-path | string | /data/logs/proc_manager/ | 本地日志文件目录(默认/data/logs/proc_manager/,按进程名创建子目录) |
| log-life-day | int | 7 | 本地日志文件保存天数(默认7天,新日志写入时会清理过期文件) |
cd DontCrack4AndroidLinuxKernelSide
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 \
go build -ldflags='-s -w' -o DontCrack .
# 顺带把 childproc 也编一份用于演示
cd example/childproc
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 \
go build -ldflags='-s -w' -o childproc .旧设备是 32 位的改成 GOARCH=arm。模拟器或 x86 设备改成 GOARCH=amd64。
# 推二进制到 /data/local/tmp/(普通用户可写,无需 root)
adb push DontCrack /data/local/tmp/DontCrack
adb push childproc /data/local/tmp/childproc
# 关键:adb shell 默认不会自动给你可执行权限,必须 chmod
adb shell chmod 755 /data/local/tmp/DontCrack /data/local/tmp/childproc
# 前台运行(Ctrl+C 终止会顺手 kill 子进程)
adb shell /data/local/tmp/DontCrack \
-path /data/local/tmp/childproc \
-args "-mode normal -interval 2s" \
-start-now \
-auto-restart -max-retries 3 \
-port 11883 \
-file-log -log-path /data/local/tmp/logs/ -log-life-day 7# nohup + & 让 DontCrack 不挂回 adb session
adb shell "cd /data/local/tmp && nohup ./DontCrack -path /data/local/tmp/childproc -start-now -auto-restart -port 11883 >/data/local/tmp/dontcrack.log 2>&1 &"
# 查进程
adb shell "ps -ef | grep DontCrack"
# 关掉
adb shell "pkill -f /data/local/tmp/DontCrack"# 通过 USB 反向代理 (不需要设备 IP 可达)
adb reverse tcp:11883 tcp:11883
curl http://127.0.0.1:11883/heartbeat
# 或直连设备 IP(设备和电脑在同一网段时)
curl http://<device-ip>:11883/heartbeat?password=xxx部分 ROM 默认 enforce 模式,直接 /data/local/tmp/DontCrack 可能被 SELinux 阻止 exec。两种解法:
参照 example/example_init.rc,把 service dontcrack-edgecore /system/bin/DontCrack 加进设备的 init.rc 后 setprop ctl.restart dontcrack-edgecore 即可触发。需要设备已 root 且 init.rc 可写。
/startup
password: 密钥(可选params参数)
ok
/heartbeat
password: 密钥(可选params参数)
{
"version": "1.0.20260826",
"state": "stopped",
"info": "进程管理器正常运行",
"timestamp": "2026-08-25 15:28:04",
"logs": [
"[STDERR] 2026/08/25 15:27:55.647714 env restart count -> 1",
"[STDERR] 2026/08/25 15:27:55.648316 childproc start | pid=32054 | mode=normal | interval=1s | lifetime=5s | msg=",
"[STDERR] 2026/08/25 15:27:55.648345 args: /data/childproc -mode normal -interval 1s -lifetime 5s",
"[STDERR] 2026/08/25 15:27:55.648352 env EXTRA_INFO=from_manager",
"[STDERR] 2026/08/25 15:27:55.648353 env RESTART_ENV_COUNT=0",
"[STDERR] 2026/08/25 15:27:56.668982 tick at 2026-08-25T15:27:56.64879725+08:00",
"[STDERR] 2026/08/25 15:27:56.64879725+08:00 stderr burst at 2026-08-25T15:27:56.64879725+08:00",
"[STDERR] 2026/08/25 15:28:00.686300 lifetime reached, exiting normally"
],
"process_pid": 0,
"process_path": "/data/childproc",
"restart_count": 0,
"file_type": "binary_executable",
"last_exit_time": "2026-08-25 15:28:00",
"program_args": "-mode normal -interval 1s -lifetime 5s",
"extra_env_raw": "PATH=/system/bin EXTRA_INFO=from_manager RESTART_ENV_COUNT=0"
}
/shutdown
password: 密钥(可选params参数)
ok
将 DontCrack 放进 /system/bin/,然后在 init.rc 中以 service 的形式托管目标进程:
service dontcrack-edgecore /system/bin/DontCrack
class core
user root
group root
-env PATH=/system/bin:/system/xbin
-path /system/bin/edgecore
-pre /data/pres/edgecore-pre.sh
-start-now
-auto-restart
-max-retries 3
-port 10000
-file-log
-log-path /data/logs/proc_manager/
-log-life-day 7
on boot
start dontcrack-edgecore
完整示例见 example/example_init.rc。
| Back | FazBrowse Home | New Git URL |