Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Script originally from : https://github.com/baohaojun/system-config/blob/9493e1d78cd5bf7fbfc9a9bf16880c18f1bb2471/bin/sparse-unsparse.xml
- set -e
- if test $# = 0; then
- set -- -p system -o ~/tmp/system.img.$$
- echo "$@"
- fi
- ## start code-generator "^\\s *#\\s *"
- # generate-getopt p:part o:out x:xml
- ## end code-generator
- ## start generated code
- TEMP=$(getopt -o p:o:x: --long "part:,out:,xml:" -n $(basename $0) -- "$@")
- part=
- out=
- xml=
- eval set -- "$TEMP"
- while true; do
- case "$1" in
- -p|--part)
- part=$2
- shift 2
- ;;
- -o|--out)
- out=$2
- shift 2
- ;;
- -x|--xml)
- xml=$2
- shift 2
- ;;
- --)
- shift
- break
- ;;
- *)
- die "internal error"
- ;;
- esac
- done
- ## end generated code
- if test -z "$part"; then
- part=system
- fi
- if test -z "$xml"; then
- xml=rawprogram_unsparse.xml
- fi
- if test -z "$out"; then
- out=~${part}.img
- fi
- function die() {
- echo Error: "$@"
- exit -1
- }
- if test ! "$part"; then
- die "part not set, should use -p to set system/userdata/cache etc"
- fi
- if test -d sparse_images -a ! -e userdata_1.img; then
- cd sparse_images
- fi
- xmlstarlet sel -t -m //program -v @filename -o " " -v @start_sector -n $xml | grep ${part} |
- {
- while read img start; do
- if test $img = ${part}_1.img; then
- the_start=$start
- fi
- start=$((start - the_start)) || true
- dd if=$img of=${out} seek=$start
- done
- size="$(stat -c %s ${out})"
- dd if=/dev/zero of=${out} seek=$(((1000000+size)/512)) count=1
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement