关于钛备份的研究及shell备份恢复app
tasker吧
全部回复
仅看楼主
level 9
馊傻仔 楼主
一、前言:钛备份绝对是个神器,对其备份恢复机制一直很好奇,毫无疑问是通过shell用tar来备份的,但是用xposed hook了runtime也没办法看到钛备份是怎么实现备份恢复,猜测应该是在so里运行的,又尝试通过super user来log,也失败了。后来灵机一动,直接把它的bin(busybox)替换了:
1、/data/data/com.keramidas.TitaniumBackup/files/busybox:
echo $@ >> /sdcard/taibeifen.txt
/data/data/com.keramidas.TitaniumBackup/files/busybox_ $@
2、/data/data/com.keramidas.TitaniumBackup/files/busybox_ == 原busybox
[呵呵]果断被自己机智倒了。
二、分析:
1、备份
#先kill要备份应用
killall -s STOP roviminteractive.materialcopy
#计算空间大小(钛备份有个备份data大小的限制过滤)
du -H -s /storage/emulated/0/Android/data/roviminteractive.materialcopy
#把sdcard下的data软连接过来
ln -s /storage/emulated/0/Android/data/roviminteractive.materialcopy /data/data/.external.roviminteractive.materialcopy
#用tar备份,排除了lib和cache
tar -c /data/data/roviminteractive.materialcopy/. /data/data/.external.roviminteractive.materialcopy/. --exclude data/data/roviminteractive.materialcopy/./lib --exclude data/data/roviminteractive.materialcopy/./cache
#我选了gzip压缩
gzip
#删除sdcard的data软连接
rm /data/data/.external.roviminteractive.materialcopy
#剩下的应该是保存备份信息还有改备份文件的权限
killall -s CONT roviminteractive.materialcopy
ls --color=never -d /data/app/roviminteractive.materialcopy-1/base.apk
ls --color=never /data/data/com.android.vending/databases/
chown media_rw:media_rw /data/media/0/TitaniumBackup/roviminteractive.materialcopy-20171004-052037.tar.gz
2、恢复(已安装的程序)
#这两个命令合起来看,是把压缩文件解包
cat /storage/emulated/0/TitaniumBackup/roviminteractive.materialcopy-95a8661943db9acfcceb83f5f44cd286.apk.bz2
bunzip2
#改权限,应该有个安装应用的命令,pm没有替换,有的话应该能看到
chmod 755 /data/local/tmp/com.keramidas.TitaniumBackup-install.apk
#删除应用
rm /data/local/tmp/com.keramidas.TitaniumBackup-install.apk
#将原来应用的data移动下
mv /data/data/roviminteractive.materialcopy /data/data/.roviminteractive.materialcopy
#删除sdcard下的data并链接过来
rm -R /storage/emulated/0/Android/data/roviminteractive.materialcopy
ln -s /storage/emulated/0/Android/data/roviminteractive.materialcopy /data/data/.external.roviminteractive.materialcopy
#解包数据,排除lib
gunzip
cat /storage/emulated/0/TitaniumBackup/roviminteractive.materialcopy-20171004-052037.tar.gz
tar -C / -x --exclude data/data/roviminteractive.materialcopy/lib --exclude data/data/roviminteractive.materialcopy/./lib
#删除sdcard的data链接
rm /data/data/.external.roviminteractive.materialcopy
#改用户组
chown -R media_rw:media_rw /data/media/0/Android/data/roviminteractive.materialcopy
chown -hR 10118:10118 /data/data/roviminteractive.materialcopy
#改权限
chmod -R u+rwx /data/data/roviminteractive.materialcopy
#将原应用的lib移到新恢复应用的data目录下
mv /data/data/.roviminteractive.materialcopy/lib /data/data/roviminteractive.materialcopy
#删除原应用的data
rm -R /data/data/.roviminteractive.materialcopy
3、恢复(已安装应用)略
三、tasker备份恢复应用可行性
毫无疑问,tasker肯定能做到啦,过程都列出来了,不过我还没试,先放出来了,大家可以去做,做好发q群[酷]
2017年11月06日 03点11分 1
level 13
前排
2017年11月06日 03点11分 2
level 9
馊傻仔 楼主
有些地方cd目录,pm应用没有打印出来,分析下就知道应该在哪个目录了,还有一些命令是用 | 管道连在一起的。
不懂的人不要随便试哦,特别是rm命令,一失足成千古恨
2017年11月06日 03点11分 3
钛备份备份微信后 恢复需要重登 有办法解决吗?
2022年11月09日 14点11分
level 12
大佬好像很久没发贴,期待
2017年11月08日 05点11分 4
level 8
666终于有人做出来了[哈哈]
2017年11月09日 06点11分 5
level 1
厉害大神
2017年11月18日 03点11分 6
level 9
馊傻仔 楼主
不知道有没有在5.0以上试过备份恢复,由于SELinux限制,恢复用户组和权限后依然应用依然是对其数据目录没有读取权限,还需要一步:restorecon -R 应用目录
2018年01月04日 13点01分 8
level 1
厉害[真棒]
2020年04月04日 04点04分 9
level 1
就是备份了 怎么还原到另外一部手机 有偿
2022年03月02日 09点03分 10
level 1
安卓怎么备份app数据,恢复到另一个手机 有偿
2022年11月18日 12点11分 11
上面不是写了吗? 但是要root
2023年05月03日 19点05分
1