我还需要在插入充电器时使设备(alcatel9002x)自动启动,并提出替换 ipod 文件的解决方案。它运行原始的 ipod 二进制文件,同时模拟按下电源按钮。我看到充电动画,但之后,它会“正常”加电。
您可能可以使用脚本执行此操作,但我使用的是 .c 二进制文件。解决方案:
move /sbin/ipod to /sbin/ipod.backup
并将此代码用作新的二进制 /sbin/ipod
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dlfcn.h>
#include <unistd.h>
void run_cmd(char *s)
{
FILE *handle;
char buf[64];
size_t readn;
handle = popen(s, "r");
if (handle == NULL) {
return;
}
while ((readn = fread(buf, 1, sizeof(buf), handle)) > 0) {
fwrite(buf, 1, readn, stdout);
}
pclose(handle);
}
int main(void)
{
FILE *handle;
char buf[64];
size_t readn;
pid_t pid = fork();
if (pid == 0)
{
for(int i=0;i<10;i++)
{
run_cmd("/system/bin/sendevent /dev/input/event0 0001 116 1");
run_cmd("/system/bin/sendevent /dev/input/event0 0000 0000 00000000");
run_cmd("/system/bin/sleep 2");
run_cmd("/system/bin/sendevent /dev/input/event0 0001 116 00000000");
run_cmd("/system/bin/sendevent /dev/input/event0 0000 0000 00000000");
sleep(1);
}
}
else
{
run_cmd("/system/bin/sleep 2");
run_cmd("/system/bin/ipod.backup");
}
return 0;
}
我已经用 arm-linux-androideabi-gcc 编译了它。正如我所说,您可能可以在 bash 脚本中执行此操作,但这就是它对我的工作方式。
不要忘记chmod 667和chown root:shell二进制文件。