1.在init.rc中,首先定义shell文件权限和用户组
chmod 0755 /system/bin/check_musicdb.sh
chown root shell /system/bin/check_musicdb.sh
2.在init.rc定义一个service 首次开机不启动,并且启动一次之后不自动重启
service check_musicdb /system/bin/check_musicdb.sh
class late_start
disabled
oneshot
3.在上层有system权限的代码中采用
SystemProperties.set("ctl.start", "check_musicdb");
#! /system/bin/sh
launcher_dir=/data/data/com.google.android.music/databases
if [ -f ${launcher_dir}/music.db ]
then
chmod 755 $launcher_dir/music.db
cp -f $launcher_dir/music.db $launcher_dir/music2.db
fi
chmod 755 $launcher_dir/music2.db
sqlite3 /data/data/com.google.android.music/databases/music.db << EOF
ATTACH DATABASE music2.db as music2;
drop table LISTS
EOFcreate table LISTS as select * from music.LISTS;
.q
system/bin/am force-stop com.google.android.music