替换单个文件后损坏的TAR归档:跳到下一个标题
问题描述:
我已经使用TWRP对Android系统分区进行了备份。它由我想要替换的启动视频组成。替换单个文件后损坏的TAR归档:跳到下一个标题
主要想法是从存档中删除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/
> ...
你可以看到它的大小为原start.mp4〜 950千字节。
删除旧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/
> ...
提取/系统/ media目录
$ tar -xvf system.ext4.tar /system/media
> tar: Removing leading `/' from member names
> /system/media/
> /system/media/audio/
> ...
复制新start.mp4到/系统/媒体
$ cp start.mp4 system/media/
更新/系统/ 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 KByte),并且显然发生了错误。
你有什么想法如何替换start.mp4?
答
我有一个类似的问题,并通过指定的块大小(如-b 64)截至http://www.digitesters.com/add-file-to-existing-tar-archive/
在我的情况进行了说明,我是创造了Mac OSX上一个tar文件,然后添加新文件到解决它tar在Centos Linux上。第一个文件添加正常,但第二个文件给出了Skipping to next header
错误。在OSX的tar创建中加入-b 64
似乎解决了这个问题。
什么版本的'tar'? –
tar(GNU tar)1.27.1 – Vertex
如果有人想更改系统分区的文件,我已经找到了一种在Android运行时(根访问需要)的方法:1)'adb shell',2 )以root用户身份登录'su' 3)将系统分区重新挂载为可写'mount -o remount,rw/system' 4)复制你的文件e。 G。 'cp/sdcard start.mp4/system/media'。它基于这个SO anwser:https://stackoverflow.com/questions/10864907/android-adb-copy-file-to-system-permission-denied#answer-13339661 – Vertex