pkg creator by shankerzhiwu

post on behalf of him
This commit is contained in:
HappyZ 2019-02-17 15:20:30 -06:00
parent c912ff6221
commit 8e72894679
8 changed files with 121 additions and 1 deletions

4
.gitignore vendored
View File

@ -2,4 +2,6 @@ extracted_apk
secrets
.DS_Store
*.pyc
mkbootimg
mkbootimg
fw_updater_packer_unpacker/pkg_example/official_cp1_1.4.02.09061
fw_updater_packer_unpacker/pkg_example/official_rp1_1.4.01.16100

View File

@ -0,0 +1,43 @@
#!/bin/sh
LOG_FP="/root/updater_$(date +%s).log"
exec &>"$LOG_FP"
UPDATER_BASE=$(dirname ${0})
cd "$UPDATER_BASE"
YAFT_PID=0
./yaft </dev/null >/tmp/pty.txt &
YAFT_PID=$!
pty=""
for i in $(seq 1 10); do
pty="$(cat /tmp/pty.txt)"
if [ -n "$pty" ]; then
break;
fi
sleep 1
done
if [ -z "$pty" ]; then
echo "openpty failed"
kill -INT $YAFT_PID
exit 0;
fi
echo "will open pty $pty"
rm "/tmp/_fifo"
mkfifo "/tmp/_fifo"
tee "$pty" < /tmp/_fifo &
exec &>"/tmp/_fifo"
echo "success"
echo "This is a demo update package which does nothing."
echo "enjoy"
for i in $(seq 10 -1 1); do
echo "will done in ${i} seconds."
sleep 1
done
exit 0

Binary file not shown.

View File

@ -0,0 +1,20 @@
all: fw.pkg
fw.pkg: base.pkg payload.tar.gz
echo 12836160f229d466bf4f051ba26fb46697bfa748e81b279b69ad9a5bd340958e $< | openssl sha256 -c
cp $< $@
echo "55 -none -in /tmp/anim_sig.dat" | dd bs=8 count=4 seek=67 of=$@ conv=notrunc
echo "00 00 00 00" | xxd -r -p >> $@
echo "00 00 00 00" | xxd -r -p >> $@
printf '%08x' $$(wc -c < payload.tar.gz) | sed -E 's/(..)(..)(..)(..)/\4\3\2\1/' | xxd -r -p | head -c 4 >> fw.pkg
cat payload.tar.gz >> $@
payload.tar.gz: FwUpdater
[ -x $</eufwupdater.sh ]
tar -cvz --exclude=".*" --numeric-owner -f $@ $<
.PHONY: all check_sig payload.tar.gz
clean:
-rm fw.pkg payload.tar.gz

View File

@ -0,0 +1,22 @@
all: fw.pkg
fw.pkg: base.pkg payload.tar.gz
echo 12836160f229d466bf4f051ba26fb46697bfa748e81b279b69ad9a5bd340958e $< | sha256sum -c
cp $< $@
echo "55 -none -in /tmp/anim_sig.dat" | dd bs=32 count=1 seek=536 oflag=seek_bytes of=$@ conv=notrunc
echo "00 00 00 00" | xxd -r -p >> $@
echo "00 00 00 00" | xxd -r -p >> $@
printf '%08x' $$(wc -c < payload.tar.gz) | \
sed -r 's/(..)(..)(..)(..)/\4\3\2\1/' | \
xxd -r -p | head -c 4 >> fw.pkg
cat payload.tar.gz >> $@
payload.tar.gz: FwUpdater
[ -x $</eufwupdater.sh ]
tar -cvz --exclude=".*" --owner=0 --group=0 --numeric-owner --no-acls --no-xattrs -f $@ $<
.PHONY: all check_sig payload.tar.gz
clean:
-rm fw.pkg payload.tar.gz

View File

@ -0,0 +1,20 @@
all: fw.pkg
fw.pkg: base.pkg payload.tar.gz
echo 12836160f229d466bf4f051ba26fb46697bfa748e81b279b69ad9a5bd340958e $< | openssl sha256 -c
cp $< $@
echo "55 -none -in /tmp/anim_sig.dat" | dd bs=8 count=4 seek=67 of=$@ conv=notrunc
echo "00 00 00 00" | xxd -r -p >> $@
echo "00 00 00 00" | xxd -r -p >> $@
printf '%08x' $$(wc -c < payload.tar.gz) | sed -E 's/(..)(..)(..)(..)/\4\3\2\1/' | xxd -r -p | head -c 4 >> fw.pkg
cat payload.tar.gz >> $@
payload.tar.gz: FwUpdater
[ -x $</eufwupdater.sh ]
tar -cvz --exclude=".*" --numeric-owner -f $@ $<
.PHONY: all check_sig payload.tar.gz
clean:
-rm fw.pkg payload.tar.gz

View File

@ -0,0 +1,13 @@
This is a PKG packing script by shankerzhiwu. Post on behalf of him. Applause.
# Explanation
My PKG packing script requires DPT users to "hack" into their device in diagnosis mode, and change a few lines of the updater script to bypass the verification.
Therefore, the hacking process requires the user to actually log into the diagnosis mode.
`shankerzhiwu` took a step further (with the suggestion from `sekkit`) and made this script so DPT users do not need to go into the diagnosis mode at all, if users flash PKGs made by this script.
# How to create PKG
To make a PKG, just edit scripts in `FwUpdater` and then type `make`.

Binary file not shown.