текущий вопрос: Как я могу декомпилировать файл прошивки руки, чтобы получить файл дерева устройств?

Tal vez un poco más simple, especialmente porque dice que su versión de grep no es compatible con perl regex:

$ echo $string | tr ' ' '\n' | grep 'Icecream' Icecream123

El trdivide la cadena en líneas reemplazando todos los espacios con líneas nuevas. Entonces puedes usar grepfácilmente.

También puedes escribir lo siguiente para obtener solo lo que sigue a la palabra que buscas:

$ echo $string | tr ' ' '\n' | sed -n 's/Icecream//p' 123

5
28.02.2017, 13:36
1 ответ

Сначала получите стандартный раздел восстановления.

На ПК загрузите и разархивируйте стоковое изображение. Затем распакуйте файл firmware.img с помощью amlogic unpacker и найдите файлrecovery.PARTITION

или

В терминале устройства Android, twrp или adb и т. д. введите

dd if=/dev/block/recovery of=recovery.PARTITION

Теперь перенесите файл recovery.PARTITION в домашнюю папку termux или домашнюю папку linux. Файл DTB встроен в этот файл, поэтому теперь просто извлеките его. Предположим, вы уже установили git, python, perl, wget и т. д. в termux.

#Install binwalk
git clone https://github.com/ReFirmLabs/binwalk.git
cd binwalk
python setup.py install
cd..; rm -Rf binwalk

#Get split_bootimg.pl script
wget https://gist.githubusercontent.com/jberkel/1087743/raw/45046f87176dfacdc22af4290f89a0d2e0df1dbb/split_bootimg.pl
chmod +x split_bootimg.pl

#Split recovery.PARTITION
./split_bootimg.pl recovery.PARTITION

#Unpack recovery.PARTITION-second.gz
gunzip recovery.PARTITION-second.gz

#Get offset of embedded DTB in recovery.PARTITION-second by searching for bytes D00DFEED
DTBOFFSET=$(binwalk -R "\xD0\x0D\xFE\xED" recovery.PARTITION-second | awk 'NR > 3 { print $1}' | head -n 1)
#Get length of DTB in recovery.PARTITION-second this is next 4 bytes after D00DFEED
DTBLEN=$((16#$(dd if=recovery.PARTITION-second bs=1 skip=$(($DTBOFFSET + 4)) count=4 status=none | od -tx1 | head -n 1 | cut -d ' ' -f 2- | sed 's/ //g' )))
#Now extract and create dtb file
dd if=recovery.PARTITION-second of=mybox.dtb bs=1 skip=$DTBOFFSET count=$DTBLEN
1
21.02.2020, 20:16

Теги

Похожие вопросы