Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


scripts:oowow-dump2xz

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
scripts:oowow-dump2xz [2024/08/22 22:08]
nick
scripts:oowow-dump2xz [2024/12/16 10:40] (current)
hyphop
Line 1: Line 1:
 ====== oowow-dump2xz ====== ====== oowow-dump2xz ======
  
-http://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0+  - https://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0 
 +  - https://github.com/khadas-oowow/oowow-tools/blob/main/oowow-dump2xz 
  
 ===== Online usage examples ===== ===== Online usage examples =====
Line 9: Line 11:
   - reboot device to oowow    - reboot device to oowow 
   - boot next shell commands from PC   - boot next shell commands from PC
 +
 +<WRAP tip >
 +''export BOOT=1'' - copy boot-loader from special eMMC area - this is actual for VIM4 Ardroid 14, this feature works start **from oowow version 241000 up**
 +
 +</WRAP>
  
 '' ''
Line 14: Line 21:
 export OSVER=14 \\ export OSVER=14 \\
 export VER=v240822-beta \\ export VER=v240822-beta \\
-export REMOTE=192.168.31.x \\+export BOOT=1 \\ 
 +#export REMOTE=192.168.31.x \\ 
 +#export REMOTE=edge2-12345.local \\
 curl http://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0 | sh -s - \\ curl http://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0 | sh -s - \\
 ls -l1 *.img.xz ls -l1 *.img.xz
Line 26: Line 35:
 #= oowow-dump2xz #= oowow-dump2xz
  
-#: USAGE mkdir FOO && cd FOO && [OSVER=] [VER=] [LABEL=] [OUT=] owow-dump2xz+#: USAGE mkdir FOO && cd FOO && [OSVER=] [VER=] [LABEL=] [OUT=] [BOOT=] owow-dump2xz
  
 lowcase(){ echo "$@" | tr '[:upper:]' '[:lower:]' ; } lowcase(){ echo "$@" | tr '[:upper:]' '[:lower:]' ; }
Line 36: Line 45:
 XZE=https://raw.githubusercontent.com/hyphop/khadas-rescue-tools/master/scripts/xze XZE=https://raw.githubusercontent.com/hyphop/khadas-rescue-tools/master/scripts/xze
 XZE=http://docs.khadas.com/_export/code/scripts/xze?codeblock=0 XZE=http://docs.khadas.com/_export/code/scripts/xze?codeblock=0
 +
 +for D in *-dump.img.zst; do
 +    O=${D%.*}
 +    [ -s "$D" ] || continue
 +    CMD zstd -d "$D" || CMD rm "$O"
 +done
  
 for D in *-dump.img; do for D in *-dump.img; do
Line 48: Line 63:
 echo "BOARD: $BOARD" echo "BOARD: $BOARD"
 [ "BOARD" ] || DIE "BOARD undetected" [ "BOARD" ] || DIE "BOARD undetected"
 +
 +boot=boot0
 +[ "$BOOT" ] && {
 +echo copy boot area
 +ssh root@$REMOTE cat /dev/mmcblk?boot0 > $boot
 +ls -l1 $boot
 +}
 +
 T=$BOARD.sfdisk T=$BOARD.sfdisk
 ssh root@$REMOTE sfdisk --dump \$\(/opt/mmc_disk\)>$T # | tee $T ssh root@$REMOTE sfdisk --dump \$\(/opt/mmc_disk\)>$T # | tee $T
 echo -- echo --
 USER_DATA=userdata USER_DATA=userdata
-grep $USER_DATA $T | while read a b c d e; do+grep $USER_DATA $T || ssh root@$REMOTE /opt/aml_partitions >>$T # | tee $T 
 +grep $USER_DATA $T | while read a b c d e f g h j k l m ; do
 [ "$d" ] || DIE "partition $USER_DATA not found" [ "$d" ] || DIE "partition $USER_DATA not found"
-echo $d $e +echo "${d%,*} or $l" 
-echo ${d%,*} > $T.userdata+echo ${l:-${d%,*}} > $T.userdata
 done done
 +
 read USER_START < $T.userdata read USER_START < $T.userdata
 BS=512 BS=512
Line 63: Line 88:
 DUMP=$BOARD-emmc-dump.img DUMP=$BOARD-emmc-dump.img
 echo "Dump image from $BOARD > $DUMP $BYTES bytes ...wait..." echo "Dump image from $BOARD > $DUMP $BYTES bytes ...wait..."
-[ -s ./xze ] || curl "$XZE" -O 
 CMD curl -L "$REMOTE"/api/disk/rdz/mmc.zst:$((BYTES)) -o$DUMP.zst CMD curl -L "$REMOTE"/api/disk/rdz/mmc.zst:$((BYTES)) -o$DUMP.zst
 CMD zstd -d $DUMP.zst CMD zstd -d $DUMP.zst
Line 74: Line 98:
 label=${label:-$(lowcase $LABEL)} label=${label:-$(lowcase $LABEL)}
 OSVER=${OSVER:-14} OSVER=${OSVER:-14}
-VER=${VER:-v240725-beta+VER=${VER:-v240820
-OUT=${OUT:-$board-$label-$OSVER-$VER.img}+OUT=${OUT:-$board-$label-$OSVER-$VER.raw.img}
  
 echo "CONVERT $D to $OUT ..." echo "CONVERT $D to $OUT ..."
Line 84: Line 108:
 CMD mv "$D" "$OUT" CMD mv "$D" "$OUT"
  
-CMD sh ./xze "$OUT" \+bootloader(){ 
 +    [ "$BOOT" ] || return 0 
 +    boot=${boot:-boot0} 
 +    echo "BOOT LOADER '$boot' inject to image...">&
 +    BOOT_OFFSET=$(du -b "$OUT"
 +    BOOT_SIZE=$(du -b "$boot"
 +    echo "copy boot area $boot to $OUT by $BOOT_OFFSET + $BOOT_SIZE">&
 +    gzip -c $boot >> "$OUT" 
 +    echo bootloader=$BOOT_OFFSET 
 +
 + 
 +xze=$(which xze) 
 +xze=${xze:-./xze} 
 +[ -s "$xze" ] || curl "$XZE" -o"$xze" 
 + 
 +CMD sh $xze "$OUT" \
     --meta \     --meta \
     label="$LABEL" \     label="$LABEL" \
     builder="Khadas" \     builder="Khadas" \
-    date="$(TZ=GMT+0 date)" \+    date="$(LANG=C TZ=GMT+0 date)" \
     match=BOARD=$BOARD \     match=BOARD=$BOARD \
 +    $(bootloader) \
     duration=90 \     duration=90 \
     desc="$BOARD $LABEL $OSVER $VER"     desc="$BOARD $LABEL $OSVER $VER"
 ``` ```
- 
  
 ```shell logs ```shell logs
Line 162: Line 201:
 [i] padded to 4096 from 308 + 3788 [i] padded to 4096 from 308 + 3788
 ``` ```
 +
 +==== HowTo Check meta ====
 +
 +```shell
 +khadas@localhost:/images/vim4$  xze vim4n-android-14-v240820.raw.img.xz 
 +Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
 +    2      46    839.1 MiB  4,019.3 MiB  0.209  CRC64   vim4n-android-14-v240820.raw.img.xz
 +[i] blocks: 46 // 839.1*MiB // 4,019.3*MiB
 +##META_FILE##
 +FILE: vim4n-android-14-v240820.raw.img.xz
 +UNPACKED_SIZE: 4214509060
 +PACKED_SIZE: 879849472
 +FILE_SIZE: 879853568
 +##META-FILE##
 +
 +##KRESCUE_META##
 +type:xz
 +label: Android
 +builder: Khadas
 +date: Wed Sep 18 05:43:57 AM GMT 2024
 +match: BOARD=VIM4
 +bootloader: 4212129792
 +vim4n-android-14-v240820.raw.img: vim4n-android-14-v240820.raw.img
 +duration: 90
 +desc: VIM4 Android 14 v240820
 +image: vim4n-android-14-v240820.raw.img
 +##KRESCUE-META##
 +##KRESCUE##END
 +```
 +
 +<WRAP tip >
 +**bootloader: 4212129792** - showing us this image has additional special bootloader
 +
 +</WRAP>
 +
 +
 +==== VIM4 Android 11 ====
 +
 +<WRAP important >
 +''OSVER'' and ''VER'' must be setup properly and related with installed eMMC system
 +</WRAP>
 +
 +```sh VIM4 Android 11
 +unset BOOT
 +export OSVER=11-64bit
 +export VER=v240620
 +curl http://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0 | sh -s -
 +```
 +
 +==== VIM4 Android 14 ====
 +
 +<WRAP important >
 +''OSVER'' and ''VER'' must be setup properly and related with installed eMMC system
 +</WRAP>
 +
 +```sh VIM4 Android 14
 +export OSVER=14
 +export VER=v240820
 +export BOOT=1
 +curl http://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0 | sh -s -
 +```
 +
 +==== Edge2 Anrdoid 14 ====
 +```sh
 +unset BOOT
 +export OSVER=14
 +export VER=v240820
 +curl http://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0 | sh -s -
 +```
 +
 +==== VIM1S Anrdoid 11 ====
 +```sh
 +unset BOOT
 +export OSVER=11
 +export VER=v240820
 +curl http://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0 | sh -s -
 +```
 +
Last modified: 2024/08/22 22:08 by nick