3

我得到如下文件:

GT-I5500-CSC-SERJK1.tar.md5

这就是我要的:

GT-I5500-CSC-SERJK1.tar 

我怎么才能得到它?我可以只删除 md5 文件扩展名吗?

4

6 回答 6

17

据我了解,这是一种将校验和添加到 tar 文件的简单方法。由于 tar 标准规定 tar 文件的末尾是连续两个连续的空白“条目”,因此“tar -x”将忽略该点之后的所有数据。因此,android 开发社区显然已经将 md5 的输出简单地连接到该文件的末尾。

以下 bash 脚本可用于验证“.tar.md5”文件:

#! /bin/bash

check_tar_md5 () {
    local file="${1:?Required: file to check}"
    [[ ! -f "$file" ]] && {
            echo "File not found: $file" >&2
            return 1
    }
    local filename="$(basename "$file")"
    if [ "${filename##*.}" = md5 ]; then filename="${filename%.*}"; fi;
    local md5_line_length=$(printf "%032d *%s\n" 0 "$filename" | wc -c)
    local embedded_md5=$(tail -c $md5_line_length "$file" | ( read md5 rest; echo $md5 ) )
    local actual_md5=$(head -c -$md5_line_length "$file" | md5sum | ( read md5 rest; echo $md5 ) )
    if [ $embedded_md5 = $actual_md5 ]; then
            echo "$file: OK"
    else
            echo "$file: FAILED"
            return 1
    fi
}

[[ ! -z "$1" ]] && check_tar_md5 "$1"

如果您“获取”此脚本,您将在当前环境中拥有一个“check_tar_md5”函数;否则你可以执行它;无论哪种情况,您都将文件作为唯一参数提供。输出类似于“md5sum --check”实用程序。

使脚本更健壮(例如:如果您提供的文件不是 .tar.md5)留给读者作为练习。

于 2012-02-13T03:59:24.563 回答
8

.tar.md5 文件通常被 Odin 用来将固件刷入安卓手机。它们本质上是 tar 压缩存档,末尾附加了 md5 校验和,因此您可以验证没有数据损坏。

md5 文件通常是 md5 校验和,但在这种特殊情况下不是。

于 2013-01-07T22:34:57.633 回答
4

文件 a.tar.md5 包含文件 a.tar 的 MD5 哈希。tar 和 md5 文件是完全不同的文件。您无法从 tar.md5 文件中获取 tar 文件。

编辑:原来有两种类型的 .tar.md5 文件:

于 2011-04-13T09:39:09.113 回答
3

可以使用软件程序ODIN将 .tar.md5 文件闪存到三星手机

于 2011-10-12T23:23:15.850 回答
0

md5 # 是加密的 .tar 文件名,或者是加密的 .tar 文件。首先,您必须解密 tar 文件以查看其名称。

于 2013-05-07T19:38:50.537 回答
-2

如果您已将其下载到运行 android OS 的智能手机,那么您可以尝试转到文件管理器,然后转到您下载的文件所在的目录,然后将手指放在您下载的文件上,然后带有一些选项的窗口应该弹出并选择重命名选项,然后删除显示.md5的位置,您就完成了。

于 2013-07-19T16:41:31.297 回答