私は以下のようなファイルを取得します:
GT-I5500-CSC-SERJK1.tar.md5
これが私が欲しいものです:
GT-I5500-CSC-SERJK1.tar
どうすれば入手できますか?md5ファイル拡張子を削除できますか?
私が理解していることから、これはtarファイルにチェックサムを追加する簡単な方法です。tar標準では、tarファイルの終わりは2つの連続する空白の「エントリ」であると規定されているため、そのポイントを超えるすべてのデータは「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以外のファイルを提供する場合)ことは、読者の練習問題として残されています。
.tar.md5ファイルは、通常、ファームウェアをAndroidフォンにフラッシュするためにOdinによって使用されます。これらは基本的にtar圧縮されたアーカイブであり、最後にmd5チェックサムが追加されているため、データが破損していないことを確認できます。
md5ファイルは通常md5チェックサムですが、この特別な場合ではありません。
ファイルa.tar.md5には、ファイルa.tarのMD5ハッシュが含まれています。tarファイルとmd5ファイルはまったく異なるファイルです。tar.md5ファイルからtarファイルを取得することはできません。
編集:.tar.md5ファイルには2つのタイプがあることがわかりました。
.tar.md5ファイルは、ソフトウェアプログラムODINを使用してサムスンの電話にフラッシュできます。
md5#は、暗号化された.tarファイル名であるか、暗号化された.tarファイルです。まず、tarファイルを復号化してその名前を確認する必要があります。
android OSを実行しているスマートフォンにダウンロードした場合は、これを試してファイルマネージャーに移動し、ダウンロードしたファイルが配置されているディレクトリに移動して、ダウンロードしたファイルを指で押さえると、いくつかのオプションが表示されます。ポップアップして名前の変更オプションを選択し、.md5と表示されている場所を削除して完了です。