【发布时间】:2017-09-08 12:47:14
【问题描述】:
我已经用 TWRP 备份了 Android 系统分区。它包含一个我想自己替换的启动视频。
主要思想是从存档中删除 start.mp4,解压缩文件夹,将新的 start.mp4 复制到该文件夹中,然后更新存档的目录。但在那之后,存档似乎已损坏。
这是我所做的更详细的描述:
列出原始文件的内容
$ tar -tvf system.ext4.tar
> ...
> -rw-r--r-- root/root 1822 2014-08-22 11:22 /system/media/silence.wav
> -rw-r--r-- root/root 970069 2016-11-29 12:19 /system/media/start.mp4
> drwxr-xr-x root/root 0 2016-11-29 13:58 /system/preload/
> ...
您可以看到大小约为 950 KB 的原始 start.mp4。
删除存档中的旧 start.mp4
$ tar --delete --file=system.ext4.tar /system/media/start.mp4
确保文件已删除
$ tar -tvf system.ext4.tar
> ...
> -rw-r--r-- root/root 619252 2008-08-01 14:00 /system/media/poweroff_land.mp4
> -rw-r--r-- root/root 1822 2014-08-22 11:22 /system/media/silence.wav
> drwxr-xr-x root/root 0 2016-11-29 13:58 /system/preload/
> ...
解压 /system/media 目录
$ tar -xvf system.ext4.tar /system/media
> tar: Removing leading `/' from member names
> /system/media/
> /system/media/audio/
> ...
将新的 start.mp4 复制到 /system/media
$ cp start.mp4 system/media/
更新 /system/media 目录
$ tar --update --verbose --file=system.ext4.tar system/media
> tar: Removing leading `/' from member names
> system/media/start.mp4
列出更新存档的文件
$ tar -tvf system.ext4.tar
> ...
> -rw-r--r-- root/root 1822 2014-08-22 11:22 /system/media/silence.wav
> -rw-r--r-- root/root 970069 2016-11-29 12:19 /system/media/start.mp4
> drwxr-xr-x root/root 0 2016-11-29 13:58 /system/preload/
> ...
> tar: Skipping to next header
> tar: Exiting with failure status due to previous errors
如您所见,有一个 start.mp4,但与原始存档中的大小相同(新存档的大小约为 50 KB),显然发生了错误。
你知道如何替换 start.mp4 吗?
【问题讨论】:
-
tar是什么版本? -
tar (GNU tar) 1.27.1
-
如果其他人想要更改系统分区的文件,我已经找到了一种在 Android 运行时执行此操作的方法(需要 root 访问权限):1)
adb shell,2)登录为rootsu3) 重新挂载系统分区可写mount -o remount,rw /system4) 复制你的文件 e. G。cp /sdcard start.mp4 /system/media。它基于这个 SO anwser:stackoverflow.com/questions/10864907/…