一、先决条件
必须root,root才能在system目录配置文件
安装busybox包,busybox是一个linux命令的工具包
二、激活init.d
init.d在linux系统里面是负责管理系统启动以后自动执行的一些脚本的,必须把启动cron服务的脚本写在里面,这样每次系统启动的时候,cron服务才会起来,功能才能使用
版本一:使用apk包安装
版本二:执行term-init脚本
mount -o rw,remount /system
adb push ~/Desktop/term-init.sh /mnt/sdcard
adb shell
su
sh /mnt/sdcard/term-init.sh
三、配置系统crontab
SP8-CRON文件
sdb push ~/Desktop/SP8-CRON /mnt/sdcard
adb shell
su
cd /mnt/sdcard/SP8-CRON
sh Install.sh
四、检查crontab执行
检查进程
ps -A | grep crond
crontab -l
可是每次执行crontab -l,系统都会报一个错误unknown uid 0. 通过id命令检查,uid为0就是root用户,为什么不能执行?
pgrep crond
如果查询不成功执行脚本
cd /system/etc/init.d/
sh S99CRON-SP8
查看crontab定时任务文件/system/etc/cron.d/root,从配置文件可以看到每五分钟输出date到/data/cron-sp8.log文件,查看这个文件,检查是否输出,如有输出说明有定时执行
*/5 * * * * date > /data/cron-sp8.log
0 */1 * * * /system/xbin/flush
0 1 * * 1 /system/xbin/sclean
五、修改定时任务
kill掉进程
whyred:/system/etc/init.d # pgrep crond
pgrep crond
14442
whyred:/system/etc/init.d # kill -9 14442
kill -9 14442
修改配置文件,增加每十分钟启动系统闹钟
mount -o rw,remount /system
echo ‘
*/5 * * * * date > /data/cron-sp8.log
0 */1 * * * /system/xbin/flush
0 1 * * 1 /system/xbin/sclean
*/10 * * * * am start -n com.android.alarmclock/com.android.alarmclock.AlarmClock’ > /system/etc/cron.d/root
启动服务
sh /system/etc/init.d/S99CRON-SP8
六、参考
Enable Init.d for Any Phones w/o Need of Custom Kernels!!! by Ryuinferno
Android系统中利用crond功能的实现手机的定时重启或关机
android系统安装init和crontab支持
android上 crond!
How to use crontab in Android?