-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathsign.sh
122 lines (113 loc) · 2.98 KB
/
sign.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
mkdir work
busybox unzip -oq original.zip -d work
mkdir -p boot/zzz
mkdir -p vbmeta/keys
mkdir output
tar xzvf avbtool.tgz -C vbmeta/
mv work/boot* boot/boot.img
mv work/vbmeta* vbmeta/keys/vbmeta.img
busybox unzip -oq magisk.apk -d boot/zzz
mv main/boot_patch_9.sh boot/
mv main/boot_patch_10.sh boot/
mv main/sign_avb.sh vbmeta/
git clone https://github.com/TomKing062/vendor_sprd_proprietories-source_packimage.git
cp -a vendor_sprd_proprietories-source_packimage/sign_image/v2/prebuilt/* work/
cp -a vendor_sprd_proprietories-source_packimage/sign_image/config-unisoc work/
cp vendor_sprd_proprietories-source_packimage/sign_image/v2/sign_image_v2.sh work/
gcc -o work/get-raw-image vendor_sprd_proprietories-source_packimage/sign_image/get-raw-image.c
chmod +x work/*
cd vendor_sprd_proprietories-source_packimage/sign_vbmeta
make
chmod +x generate_sign_script_for_vbmeta
cp generate_sign_script_for_vbmeta ../../vbmeta/keys/
cd ../../vbmeta/keys/
./generate_sign_script_for_vbmeta vbmeta.img
mv sign_vbmeta.sh ../
mv padding.py ../
cd ../..
cp work/config-unisoc/rsa4096_boot.pem vbmeta/
cp -f work/config-unisoc/rsa4096_boot_pub.bin vbmeta/keys/
cp work/config-unisoc/rsa4096_vbmeta.pem vbmeta/
chmod +x vbmeta/*
sudo rm -rf /usr/bin/python
sudo ln -s /usr/bin/python2 /usr/bin/python
cd work
if [ -f "splloader.bin" ]; then
./get-raw-image "splloader.bin"
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
mv splloader.bin u-boot-spl-16k.bin
else
exit 1
fi
fi
if [ -f "uboot.bin" ]; then
./get-raw-image "uboot.bin"
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
mv uboot.bin u-boot.bin
else
exit 1
fi
fi
if [ -f "sml.bin" ]; then
./get-raw-image "sml.bin"
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
exit 1
fi
fi
if [ -f "tos.bin" ]; then
./get-raw-image "tos.bin"
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
exit 1
fi
elif [ -f "trustos.bin" ]; then
./get-raw-image "trustos.bin"
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
mv "trustos.bin" "tos.bin"
else
exit 1
fi
fi
if [ ! -f "teecfg.bin" ]; then
cd ../boot
./boot_patch_9.sh
else
./get-raw-image "teecfg.bin"
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
rm teecfg.bin
cd ../boot
./boot_patch_9.sh
else
cd ../boot
./boot_patch_10.sh
fi
fi
cd ../vbmeta
./sign_avb.sh boot ../boot/boot.img ../boot/patched.img
cp ../boot/patched.img ../output/boot.img
cd ..
mkdir recovery
mv work/recovery* recovery/recovery.img
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
cp work/config-unisoc/rsa4096_recovery.pem vbmeta/
cp -f work/config-unisoc/rsa4096_recovery_pub.bin vbmeta/keys/
cd vbmeta
./sign_avb.sh recovery ../recovery/recovery.img ../recovery/recovery.img
cp ../recovery/recovery.img ../output/recovery.img
cd ..
fi
cd vbmeta
./sign_vbmeta.sh
python padding.py
cp vbmeta-sign-custom.img ../output/vbmeta.img
cd ../work
./sign_image_v2.sh
cp *-sign.bin ../output/
cd ..
zip -r -v resigned.zip output