Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


Sidebar

scripts:oowow-dump2xz

This is an old revision of the document!


oowow-dump2xz

Online usage examples

  1. write android image via burn tool
  2. reboot device to oowow

mkdir Android-14-vim4 && cd Android-14-vim4
export OSVER=14
export VER=v240822-beta
curl http://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0 | sh -s -
ls -l1 *.img.xz

oowow-dump2xz
#!/bin/sh
 
## hyphop ##
 
#= oowow-dump2xz
 
#: USAGE mkdir FOO && cd FOO && [OSVER=] [VER=] [LABEL=] [OUT=] owow-dump2xz
 
lowcase(){ echo "$@" | tr '[:upper:]' '[:lower:]' ; }
upcase(){ echo "$@" | tr '[:lower:]' '[:upper:]' ; }
CMD(){ echo "# $@" >&2 ; "$@" ;}
DIE(){ echo "! $@" >&2 ; exit 1;}
 
REMOTE=${REMOTE:-172.22.1.1}
XZE=https://raw.githubusercontent.com/hyphop/khadas-rescue-tools/master/scripts/xze
XZE=http://docs.khadas.com/_export/code/scripts/xze?codeblock=0
 
for D in *-dump.img; do
    [ -s "$D" ] && break
    D=
done
 
[ "$D" ] || { # DUMP begin
echo DUMP data ...
ping -q -c1 $REMOTE || DIE "cant reach $REMOTE host"
BOARD=$(ssh root@$REMOTE /opt/board_name 2>/dev/null )
echo "BOARD: $BOARD"
[ "BOARD" ] || DIE "BOARD undetected"
T=$BOARD.sfdisk
ssh root@$REMOTE sfdisk --dump \$\(/opt/mmc_disk\)>$T # | tee $T
echo --
USER_DATA=userdata
grep $USER_DATA $T | while read a b c d e; do
[ "$d" ] || DIE "partition $USER_DATA not found"
echo $d - $e
echo ${d%,*} > $T.userdata
done
read USER_START < $T.userdata
BS=512
BYTES=${BYTES:-$((USER_START*BS))}
board=${board-$(lowcase $BOARD)}
DUMP=$BOARD-emmc-dump.img
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 zstd -d $DUMP.zst
D=$DUMP
} # DUMP end
 
BOARD=${D%%-*}
board=${board-$(lowcase $BOARD)}
LABEL=${LABEL:-Android}
label=${label:-$(lowcase $LABEL)}
OSVER=${OSVER:-14}
VER=${VER:-v240725-beta}
OUT=${OUT:-$board-$label-$OSVER-$VER.img}
 
echo "CONVERT $D to $OUT ..."
 
[ -e "$OUT" ] && DIE "image $OUT already exist"
 
CMD truncate -s+50M "$D"
CMD mv "$D" "$OUT"
 
CMD sh ./xze "$OUT" \
    --meta \
    label="$LABEL" \
    builder="Khadas" \
    date="$(TZ=GMT+0 date)" \
    match=BOARD=$BOARD \
    duration=90 \
    desc="$BOARD $LABEL $OSVER $VER"
logs
mkdir Android-14-vim4 && cd Android-14-vim4
export OSVER=14
export VER=v240822-beta
 
 
curl http://docs.khadas.com/_export/code/scripts/oowow-dump2xz?codeblock=0 | sh -s -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1837    0  1837    0     0   2209      0 --:--:-- --:--:-- --:--:--  2210
DUMP data ...
PING 172.22.1.1 (172.22.1.1) 56(84) bytes of data.
 
--- 172.22.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.343/0.343/0.343/0.000 ms
BOARD: VIM4
Warning: Permanently added '172.22.1.1' (ED25519) to the list of known hosts.
The backup GPT table is corrupt, but the primary appears OK, so that will be used.
--
8124416, - size= 52946936, type=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, uuid=1FE84740-97C9-8C42-98E2-C47015AECEC7, name="userdata", attrs="GUID:50,60"
Dump image from VIM4 > VIM4-emmc-dump.img 4159700992 bytes ...wait...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  8485    0  8485    0     0   8496      0 --:--:-- --:--:-- --:--:--  8493
# curl -L 172.22.1.1/api/disk/rdz/mmc.zst:4159700992 -oVIM4-emmc-dump.img.zst
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1032M    0 1032M    0     0   9.8M      0 --:--:--  0:01:44 --:--:--  4000
# zstd -d VIM4-emmc-dump.img.zst
VIM4-emmc-dump.img.zst: 4159700992 bytes                                       
CONVERT VIM4-emmc-dump.img to vim4-android-14-v240822-beta.img ...
# truncate -s+50M VIM4-emmc-dump.img
# mv VIM4-emmc-dump.img vim4-android-14-v240822-beta.img
# sh ./xze vim4-android-14-v240822-beta.img --meta label=Android builder=Khadas date=Thu Aug 22 02:58:40 AM GMT 2024 match=BOARD=VIM4 duration=90 desc=VIM4 Android 14 v240822-beta
[i] xze compress vim4-android-14-v240822-beta.img (4212129792 bytes) > vim4-android-14-v240822-beta.img.xz
# /usr/bin/xz -T8 --block-size 90M -k -c -F xz --verbose 
vim4-android-14-v240822-beta.img (1/1)
  100 %     883.8 MiB / 4,017.0 MiB = 0.220    46 MiB/s       1:27             
[i] padded to 926724096 from 926722204 + 1892
[i] XZ info
Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
    1      45    883.8 MiB  4,017.0 MiB  0.220  CRC64   vim4-android-14-v240822-beta.img.xz
 
[i] add meta block
 
##META_FILE##
FILE: vim4-android-14-v240822-beta.img.xz
UNPACKED_SIZE: 4212129792
PACKED_SIZE: 926724096
FILE_SIZE: 926728192
##META-FILE##
 
##KRESCUE_META##
type:xz
label: Android
builder: Khadas
date: Thu Aug 22 02:58:40 AM GMT 2024
match: BOARD=VIM4
duration: 90
desc: VIM4 Android 14 v240822-beta
image: vim4-android-14-v240822-beta.img
##KRESCUE-META##
##KRESCUE##END
[i] padded to 4096 from 308 + 3788
Last modified: 2024/08/21 23:06 by hyphop