Skip to content

凯美瑞车机刷机请教 #4

@LF369

Description

@LF369

你好,我的汽车是21款凯美瑞,车机型号NVF-9108ZT,我参照您的代码修改了我的校验加密算法,我修改过的刷机包可以成功通过车机的校验,重启进入recovery模式,但是在刷机进度到76%时,会提示错误,“Update error code: 000314”,请教下是什么原因呢
IMG_20240727_195820

下面是我修改后的代码,
`#! /bin/bash

originalPRGFile="PJ190PLT.PRG"
imgToMakePRG="PJ190PLT.IMG"

sudo umount sysmain
sudo img2simg "${imgToMakePRG}.ext4" "${imgToMakePRG}"

dd if="${originalPRGFile}" of="${originalPRGFile}.1" bs=4 skip=3 count=9
dd if="${originalPRGFile}" of="${originalPRGFile}.2" bs=4 skip=14 count=114

SIZE="$(stat -c%s ${imgToMakePRG})"
file_size="$(printf '%x\n' $SIZE)"
vsize="$file_size"
swap_size="${vsize:6:2}${vsize:4:2}${vsize:2:2}${vsize:0:2}"
LEN=$(echo ${#swap_size})
if [ $LEN -eq 6 ]; then
swap_size=${swap_size}00
fi

file_crc="$(crc32 ${imgToMakePRG}.ext4)"
vCRC="$file_crc"
swap_crc="${vCRC:6:2}${vCRC:4:2}${vCRC:2:2}${vCRC:0:2}"

echo "${imgToMakePRG} Swapped size hex is: $swap_size"
echo "${imgToMakePRG}.ext4 Swapped crc hex is: $swap_crc"

perl -e "print pack 'H*', 'A55A5AA5${swap_size}${swap_crc}'" > new_head.1

#create new header
SIZE="$(stat -c%s ${imgToMakePRG}.ext4)"
file_size="$(printf '%x\n' $SIZE)"
vsize="$file_size"
swap_size="${vsize:6:2}${vsize:4:2}${vsize:2:2}${vsize:0:2}"
LEN=$(echo ${#swap_size})
if [ $LEN -eq 6 ]; then
swap_size=${swap_size}00
fi

file_crc="$(crc32 ${imgToMakePRG})"
vCRC="$file_crc"
swap_crc="${vCRC:6:2}${vCRC:4:2}${vCRC:2:2}${vCRC:0:2}"
echo "${imgToMakePRG}.ext4 Swapped size hex is: $swap_size"
echo "${imgToMakePRG} Swapped crc hex is: $swap_crc"

perl -e "print pack 'H*', '${swap_crc}${swap_size}'" > new_head.2
cat new_head.1 ${originalPRGFile}.1 new_head.2 ${originalPRGFile}.2 "$imgToMakePRG" > "$originalPRGFile.new"
rm -rf new_head.1
rm -rf new_head.2
rm -rf ${originalPRGFile}.1
rm -rf ${originalPRGFile}.2
rm -rf ${originalPRGFile}
mv ${originalPRGFile}.new ${originalPRGFile}`

`#! /bin/bash

originalVerFile="PJ190PLT.VER"
prgFile="PJ190PLT.PRG"

dd if="$originalVerFile" of="$originalVerFile.part1" bs=172 skip=0 count=1

SIZE="$(stat -c%s $prgFile)"
echo "$prgFile size is: $SIZE"
UNSWAPPEDHEXSIZE="$(printf '%x\n' $SIZE)"
vSIZE="$UNSWAPPEDHEXSIZE"
SWAPPEDHEXSIZE="${vSIZE:6:2}${vSIZE:4:2}${vSIZE:2:2}${vSIZE:0:2}"
LEN=$(echo ${#SWAPPEDHEXSIZE})
if [ $LEN -eq 6 ]; then
SWAPPEDHEXSIZE=${SWAPPEDHEXSIZE}00
fi
UNSWAPPEDHEXCRC="$(crc32 $prgFile)"
vCRC="$UNSWAPPEDHEXCRC"
SWAPPEDHEXCRC="${vCRC:6:2}${vCRC:4:2}${vCRC:2:2}${vCRC:0:2}"

echo "$prgFile Unswapped prg size hex is: $UNSWAPPEDHEXSIZE"
echo "$prgFile Swapped prg size hex is: $SWAPPEDHEXSIZE"
echo "$prgFile Unswapped prg crc hex is: $UNSWAPPEDHEXCRC"
echo "$prgFile Swapped prg crc hex is: $SWAPPEDHEXCRC"
perl -e "print pack 'H*', '${SWAPPEDHEXSIZE}${SWAPPEDHEXCRC}A55A5AA5'" > "$originalVerFile.part2"

cat "$originalVerFile.part1" "$originalVerFile.part2" > "$originalVerFile.combined"

rm -rf "$originalVerFile.part1"
rm -rf "$originalVerFile.part2"

UNSWAPPEDHEXCRC="$(crc32 $originalVerFile.combined)"
vCRC="$UNSWAPPEDHEXCRC"
SWAPPEDHEXCRC="${vCRC:6:2}${vCRC:4:2}${vCRC:2:2}${vCRC:0:2}"
echo "$originalVerFile.combined Unswapped verstart crc hex is: $UNSWAPPEDHEXCRC"
echo "$originalVerFile.combined Swapped verstart crc hex is: $SWAPPEDHEXCRC"

perl -e "print pack 'H*', '${SWAPPEDHEXCRC}'" > "$originalVerFile.combined1"

cat "$originalVerFile.combined" "$originalVerFile.combined1" > "$originalVerFile.new"
rm -rf "$originalVerFile.combined"
rm -rf "$originalVerFile.combined1"
rm -rf "$originalVerFile"
mv "$originalVerFile.new" "$originalVerFile"
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions