comparison sh/c1xx-analyze-image @ 17:632d62e5efb4

c1xx-analyze-image: add bootloader analysis
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 10 Jun 2023 06:24:15 +0000
parents 12810ff4aa92
children
comparison
equal deleted inserted replaced
16:6b0d533046e5 17:632d62e5efb4
13 fi 13 fi
14 14
15 length=`wc -c $1 | cut -d ' ' -f 1` 15 length=`wc -c $1 | cut -d ' ' -f 1`
16 16
17 case "$length" in 17 case "$length" in
18 2097152) 18 2097152)
19 echo 'Flash dump file size is 2 MiB' 19 echo 'Flash dump file size is 2 MiB'
20 echo 'Is it a small-flash C11x/12x phone?' 20 echo 'Is it a small-flash C11x/12x phone?'
21 flash=2m 21 flash=2m
22 cal_offset=0x1FC000 22 cal_offset=0x1FC000
23 ;; 23 ;;
24 4194304) 24 4194304)
25 echo 'Flash dump file size is 4 MiB' 25 echo 'Flash dump file size is 4 MiB'
26 echo 'Possible Compal phones: C11x/12x, C139/140, SE J100' 26 echo 'Possible Compal phones: C11x/12x, C139/140, SE J100'
27 flash=4m 27 flash=4m
28 cal_offset=0x3FC000 28 cal_offset=0x3FC000
29 ;; 29 ;;
30 8388608) 30 8388608)
31 echo 'Flash dump file size is 8 MiB' 31 echo 'Flash dump file size is 8 MiB'
32 echo 'Is it a Motorola C155/156 phone?' 32 echo 'Is it a Motorola C155/156 phone?'
33 flash=8m 33 flash=8m
34 cal_offset=0x7E0000 34 cal_offset=0x7E0000
35 ;; 35 ;;
36 *) 36 *)
37 echo "Error: file length of $1 is not understood" 1>&2 37 echo "Error: file length of $1 is not understood" 1>&2
38 exit 1 38 exit 1
39 esac 39 esac
40 40
41 set -e 41 set -e
42 42
43 echo 'Parsing for RF calibration records' 43 echo 'Parsing for RF calibration records'
46 if [ ! -d rfbin/rx -o ! -d rfbin/tx ] 46 if [ ! -d rfbin/rx -o ! -d rfbin/tx ]
47 then 47 then
48 echo "Error: no RF calibration records found" 1>&2 48 echo "Error: no RF calibration records found" 1>&2
49 exit 1 49 exit 1
50 fi 50 fi
51
52 case $flash in
53 2m|4m)
54 echo 'Analyzing bootloader'
55 boot=`c139-analyze-boot "$1"`
56 case "$boot" in
57 unlocked)
58 echo 'Found original Compal bootloader, unlocked'
59 echo 'Generating restore-flash script'
60 echo "flash erase-program-boot $1 0x10000" > restore-flash
61 echo "flash e-program-bin 0x10000 $1 0x10000" >> restore-flash
62 ;;
63 locked)
64 echo 'Found original Compal bootloader, LOCKED!'
65 u=unlocked-orig-fw.bin
66 echo "Generating unlocked version in $u"
67 cp "$1" $u
68 c139-patch-dmagic $u
69 echo 'Generating restore-flash script using this image'
70 echo "flash erase-program-boot $u 0x10000" > restore-flash
71 echo "flash e-program-bin 0x10000 $u 0x10000" >> restore-flash
72 ;;
73 fc)
74 echo 'Found FreeCalypso C11x/12x/139/140 bootloader'
75 echo 'It is a FreeCalypso C1xx flash image, not original,'
76 echo 'hence not generating restore-flash script.'
77 ;;
78 *)
79 echo 'Not found a good bootloader version - this flash image'
80 echo 'is UNSAFE! If you proceed with flashing FreeCalypso,'
81 echo 'you will not be able to restore the original fw without'
82 echo 'bricking the phone! Recommendation: please reflash your'
83 echo 'phone to a different, known-good official Motorola fw'
84 echo 'version before venturing into FreeCalypso fw.'
85 ;;
86 esac
87 ;;
88 8m)
89 echo 'Analyzing bootloader'
90 boot=`c155-analyze-boot "$1"`
91 case "$boot" in
92 ok)
93 echo 'Found classic C155/156 bootloader, all good'
94 echo 'Generating restore-flash script'
95 echo "flash e-program-bin 0x20000 $1 0x20000" > restore-flash
96 ;;
97 *)
98 echo 'Not found a good bootloader version - this flash image'
99 echo 'is UNSAFE! Please contact FreeCalypso and share your'
100 echo 'flash image before taking any further action.'
101 ;;
102 esac
103 ;;
104 esac