forked from defnotegor/OriginGSITool
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLinkToGSI.sh
More file actions
executable file
·96 lines (85 loc) · 3.16 KB
/
LinkToGSI.sh
File metadata and controls
executable file
·96 lines (85 loc) · 3.16 KB
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
#!/bin/bash
ROM_LINK=$1
ROM_TYPE=$2
partitions="vendor system system_ext product optics prism mi_ext my_bigball my_engineering my_manifest my_region my_carrier my_heytap my_product my_stock"
if [[ -d "Tools/Firmware_extractor" ]]; then
git -C "Tools"/Firmware_extractor fetch origin
git -C "Tools"/Firmware_extractor reset --hard origin/master
else
echo "Cloning Firmware_extractor..."
git clone -q --recurse-submodules https://github.com/FoxetGSI/Firmware_extractor.git "Tools"/Firmware_extractor
fi
usage() {
echo "Usage: $0 [rom_link] [rom_type]"
echo ""
echo "Parameters:"
echo " rom_link - Link to the base ROM"
echo " rom_type - Type of rom"
echo ""
echo "Example:"
echo " sudo bash $0 https://dl.google.com/dl/android/aosp/redfin-tq3a.230901.001.c2-factory-ca20bd02.zip Pixel"
echo ""
}
supported_roms() {
echo "Available ROMs:"
echo ""
declare -a versions=(12 12.1 13 14 15)
for version in "${versions[@]}"; do
rom_dir="ROMsPatches/$version"
if [ -d "$rom_dir" ]; then
names=$(find "$rom_dir" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' 2>/dev/null)
filtered=$(echo "$names" | grep -vxF -f <(printf '%s\n' "${versions[@]}"))
if [ -n "$filtered" ]; then
echo "Android $version:"
echo "$filtered" | sed 's|^| - |' | tr '\n' '\n'
echo ""
fi
fi
done
}
if [ -z "$2" ]; then
usage
supported_roms
exit 0
fi
rm -rf DownloadedROMs
rm -rf UnpackedROMs
mkdir -p DownloadedROMs
mkdir -p UnpackedROMs
if [ -f "$ROM_LINK" ]; then
Tools/Firmware_extractor/extractor.sh "$ROM_LINK" "UnpackedROMs/"
else
wget -P "DownloadedROMs/" "$ROM_LINK"
Tools/Firmware_extractor/extractor.sh "DownloadedROMs/"* "UnpackedROMs/"
fi
for partition in $partitions; do
if [[ -f "UnpackedROMs/$partition.img" ]]; then
echo "Unpacking file: UnpackedROMs/$partition.img"
mkdir -p "UnpackedROMs/temp_mount"
mkdir -p "UnpackedROMs/$partition"
fs_type=$(blkid -o value -s TYPE "UnpackedROMs/$partition.img" 2>/dev/null)
if [[ "$fs_type" == "ext2" || "$fs_type" == "ext4" ]]; then
sudo mount -o loop,ro -t ext4 "UnpackedROMs/$partition.img" "UnpackedROMs/temp_mount"
else
sudo mount "UnpackedROMs/$partition.img" "UnpackedROMs/temp_mount"
fi
cp -r "UnpackedROMs/temp_mount/." "UnpackedROMs/$partition/"
sudo umount -R "UnpackedROMs/temp_mount"
fi
done
for partition in $partitions; do
if [ "$partition" != "system" ]; then
if [ -d "UnpackedROMs/system/$partition" ] && [ ! -L "UnpackedROMs/system/$partition" ]; then
source_dir="UnpackedROMs/system/$partition"
elif [ -d "UnpackedROMs/system/system/$partition" ] && [ ! -L "UnpackedROMs/system/system/$partition" ]; then
source_dir="UnpackedROMs/system/system/$partition"
else
continue
fi
if [ -d "UnpackedROMs/$partition" ]; then
echo "Moving $partition into root"
mv "UnpackedROMs/$partition" "$source_dir/.."
fi
fi
done
sudo bash FoxetGSITool.sh "UnpackedROMs/system" "$ROM_TYPE"