FreeCalypso > hg > fc-am-toolkit
annotate doc/C1xx-flashing @ 23:2df287f4722c
doc/C1xx-flashing: article written
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 11 Jun 2023 09:55:27 +0000 |
parents | |
children | b71216a5f3c3 |
rev | line source |
---|---|
23
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Whether you are interested in FreeCalypso VPM firmware (the main use case for |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 FC aftermarket fw that has actual utility value for GSM network testing etc) or |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 the UI-enabled FC firmware for Mot C139 that is currently just a preview (and |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 is not expected to advance to actual usability any time soon), either way these |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 firmwares need to be flashed. All FC firmware offerings for Mot C1xx have |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 always required flashing, and various instructions have been published in the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 past. However, old FC-on-C1xx flashing instructions should not be used with |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 current firmware versions, because of these new developments: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 * Our current fw relies even more than it did before on having certain files in |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 FFS, hence populating the flash with not only the fw image, but also the FFS |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 content it needs has become more important than ever before. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 * For FC-on-C1xx configurations with 4 MiB flash, including the most important |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 case of C139, the FFS location changed from the old one in Magnetite and |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 Selenite to a new one in Tourmaline. Therefore, old FFS instructions have to |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 be invalidated. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 The present fc-am-toolkit package provides a new way to flash FC firmware images |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 and initialize their associated FFS in one go, and this document provides |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 instructions. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 Step 1: install software on your host machine |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 ============================================= |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 The host machine (PC or laptop) which you are going to use to drive the phone |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 flashing process will need to have the following FreeCalypso software packages |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 installed on it: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 1) FC host tools base package: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/fc-host-tools-latest.tar.bz2 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 2) FFS data bundle add-on: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/ffs-data-bundle-latest.tar.bz2 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 3) The present fc-am-toolkit package. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 All 3 packages install all of their files under the /opt/freecalypso directory |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 tree defined by the Mother, and you only need to do this host software |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 installation once (or when updates come out), irrespective of how many phones |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 of various kinds you are going to flash or otherwise work with. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 Step 2: read and save your phone's current flash |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 ================================================ |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 You will need to create a dedicated project directory for each individual phone |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 you are going to reflash to FreeCalypso, or on which you may contemplate the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 possibility of such reflashing. This per-phone project directory will contain |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 a record of the phone's IMEI, a dump (backup) of the original flash content, |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 bits of data extracted from that flash dump with tools in the present package, |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 generated command scripts for flashing FC firmware and for restoring the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 original flash, and some other script-generated files - read the shell script |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 code if you want to know the full details. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 In previous instructions I advised users to name this per-phone project |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 directory after the IMEI, i.e., to use the IMEI as the directory name. I no |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 longer recommend that approach, and it no longer makes sense with the current |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 fc-am-toolkit design as the IMEI will be stored in a text file inside the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 per-phone project directory, rather than in the directory name. So please name |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 your project directories in whatever way makes sense for your situation. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 Once you have created your per-phone project directory, please cd into it, and |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 with that directory as current, run fc-loadtool as appropriate for your C1xx |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 phone model: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 fc-loadtool -h compal /dev/ttyXXX -- for C11x/12x |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 fc-loadtool -h compal -c 1004 /dev/ttyXXX -- for C139/140 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 fc-loadtool -h c155 /dev/ttyXXX -- for C155/156 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 These simple instructions are valid for C1xx phones with unlocked bootloaders. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 If your bootloader is locked, you will need to break in with tfc139 instead. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 There are other documentation articles in FreeCalypso that describe tfc139 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 break-in method. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 These instructions also assume that you already know how to operate fc-loadtool |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 on a basic level. If not, here is a basic summary: to make an entry with |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 fc-loadtool, you need to start with the phone turned off - but the battery |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 needs to be inserted, and preferably have a full charge. You need to run the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 fc-loadtool command shown above (change /dev/ttyXXX to the correct serial or |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 USB-serial device in your setup) with the cable connected between your PC/laptop |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 and your phone's headset jack _and with the phone turned off_. When you run |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 fc-loadtool in this state, it will sit there, waiting for PROMPT1 from the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 phone's bootloader. Once fc-loadtool is running in that state and the cable is |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 correctly inserted on the phone end, press the red power button on the phone - |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 a momentary press is sufficient and recommended. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 Once you have landed at the loadtool> prompt, make a dump of your flash as |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 follows: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 loadtool> flash dump2bin flashdump.bin |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 The dump file needs to be named flashdump.bin - at least in the case of C11x/12x |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 subfamily, there is one script in the fc-am-toolkit shell script hierarchy that |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 looks for this original flash image under this specific name. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 Once the flash dump operation finishes, issue this additional command: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 loadtool> flash compal-imei IMEI |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 This command tells fc-loadtool to retrieve the phone's factory IMEI from OTP |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 cells (the flash chip's OTP protection register) and save it into a text file |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 named "IMEI". The file name is important - scripts that follow will look for |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 the IMEI in the file with this name. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 IMEI retrieval needs to be done with this extra command because of the location |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 where this factory datum is stored. On Compal phones the factory IMEI is not |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 stored anywhere at all in the flash image (in the main byte array held by the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 flash memory chip), instead it is stored in an out-of-band location (OTP cells, |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 meaning physically immutable once written) in the flash chip's protection |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 register. Therefore, this factory IMEI cannot be extracted from a captured |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 flash image - instead it needs to be read in a separate explicit step and saved |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 alongside the flash image. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 Once you have captured both flashdump.bin and IMEI, close your fc-loadtool |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 session by issuing an "exit" command at the loadtool> prompt. The phone will |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 return to its powered-off state. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 Step 3: analyze the flash image you just captured |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 ================================================= |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 Run this command: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 c1xx-analyze-image flashdump.bin |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 This command runs a shell script, which then invokes several different programs |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 that analyze various aspects of the flash image. Your current directory when |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 running the above script command needs to be the per-phone project directory, |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 and the script will create the following items: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 * A subdirectory named rfasc will contain extracted RF calibration values in |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 FreeCalypso RF table ASCII format, which is both human- and machine-readable. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 This directory is not used by any subsequent fc-am-toolkit scripts, but if |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 you have the mind of an engineer, you may find its content interesting. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 * Another subdirectory named rfbin will contain the same data as rfasc, but in |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 the firmware's internal binary format. This subdir will be used by subsequent |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 scripts. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 * A text file named restore-flash will contain a generated command script for |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 fc-loadtool - executing this script will restore the flash image in |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 flashdump.bin back into your phone's flash, i.e., restore your phone back to |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 its original state after playing with FreeCalypso. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 Step 4: prepare FC firmware flashing command script |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 =================================================== |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 This step is the first one where you need the FC firmware image you seek to |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 flash - previous steps didn't need one. You can flash a firmware image which |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 you compiled yourself from source, or an official build you downloaded as part |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 of a tarball release - either way, you need the fwimage.bin file that |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 corresponds to your hardware model (c11x, c139 or c155) and your desired |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 functional configuration as in VPM or UI preview firmware. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 VERY IMPORTANT: You need to be very certain of which C1xx subfamily your phone |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 belongs to; the 3 subfamilies known to us are C11x/12x, C139/140 and C155/156. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 Firmware images are NOT interchangeable between these 3 hw subfamilies! C11x |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 and C139 are distinguished by their LCD type (monochrome on C11x, color on |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 C139); C155/156 have a distinct visual appearance, but they also have 8 MiB |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 flash which no other subfamily in this set uses, and our c1xx-analyze-image |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 script looks at the image size. Verbose notes printed by that script should |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 agree with your own knowledge of which phone subfamily you are working with - |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 if there is a discrepancy, STOP RIGHT HERE and ask for expert help. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 Once you have confirmed your phone model/subfamily and selected the firmware |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 image you are going to flash, execute one of the following shell scripts: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 c11x-gen-fc-script path/to/fwimage.bin |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 c139-gen-fc-script path/to/fwimage.bin |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 c155-gen-fc-script path/to/fwimage.bin |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 Each script variant works the same way for its respective C1xx subfamily, and |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 all have the same invokation rules: the current directory needs to be your |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 per-phone project directory containing flashdump.bin and IMEI files and the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 rfbin subdirectory produced in steps 2 and 3, and the script adds to this |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 project directory. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 The main result of executing the script command above will be a text file named |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 fc-flash-script; this text file is a command script for fc-loadtool that |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 reflashes your phone to the FreeCalypso fw image you have selected. The fw |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 image pathname you gave to {c11x,c139,c155}-gen-fc-script will be contained |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 inside the generated fc-flash-script - but in addition to referencing that fw |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 image, the generated loadtool command script also contains instructions for |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 programming fc-ffs.bin into the phone along with the firmware. This fc-ffs.bin |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 image is also generated by the shell script you just ran, and it is specific to |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 your individual phone: your IMEI and extracted RF calibration values go into it. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 Step 5: actually flash your phone |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 ================================= |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 This step is the actual surgery - all previous steps merely manipulated data in |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 files in your project directory on your host machine. To perform the flashing |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 surgery, do the following: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 * Using the phone's original firmware as the charging agent (the thing you plug |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 in is not the charger, it is the charging power source; the charger circuit |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 is inside the phone, and the firmware is the entity that controls the flow of |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 current from the charging power source into the battery), make sure that your |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 battery is fully charged. The flashing process does not require a ton of |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 battery power, but the last thing you want is to have your battery run out |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 while you are in the middle of the flashing operation. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 * Make entry with fc-loadtool just like you did in step 2, when you made a dump |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 of the original flash content. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 * Once you are at the loadtool> prompt, issue this command: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 exec fc-flash-script |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 In this step you are basically telling fc-loadtool to execute the command script |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 that was prepared in step 4. This script performs all necessary flash erasure |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 and programming operations - having a previously prepared script do everything |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 in one go greatly reduced the chances of leaving your phone in an invalid |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 partially flashed state due to operator distraction or other human errors. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 Once the flashing script finishes executing, exit loadtool and your phone will |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 power off. Next time this reflashed phone executes hardware switch-on (power |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 button press or charging power plug-in while off), your firmware will boot! |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 Restoring the original firmware and full flash content |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 ====================================================== |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 To restore the flash to its original state, do the same procedure as above, but |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 run 'exec restore-flash' instead of 'exec fc-flash-script' - just execute a |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 different flashing command script. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 IMPORTANT NOTE: Do NOT attempt to transplant complete flash images (not just |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 the firmware portion, but the whole thing) from one phone to another! For |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 maximal restorative power, the loadtool command script generated by |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 c1xx-analyze-image (named restore-flash) restores the entire flash image, every |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 bit without exceptions - but this quality also makes the {flashdump.bin + |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 restore-flash script} package non-transplantable, i.e., it should NOT be |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 programmed into a different phone. Each individual phone has its own unique RF |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 calibration values and other factory tunings, stored in small sectors at the end |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 of the flash (after the firmware), and these bits should never be mindlessly |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 transplanted from one phone to another. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 The firmware portion (part of the flash up to a certain model-dependent offset) |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 CAN be transplanted from one phone to another, and such copying of certain |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 "good" official Motorola fw versions is often quite useful - but such procedures |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 are a different topic from what the present document is addressing, which is |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 providing less expert users with a fool-proof way to play with FreeCalypso fw |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 and then restore their phones to the original state. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 Flash process interruptions and recovery |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 ======================================== |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 All C1xx phones are brickable: if you give wrong flash write commands to |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 fc-loadtool, it is quite easy to brick the phone's boot sector beyond recovery. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 As a departure from previous FreeCalypso flashing instructions, in the present |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 flow you never enter any flash commands manually in loadtool - instead you |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 execute a loadtool command script that was generated by official shell scripts |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 in the present package. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 Because the boot sector still needs to be rewritten (the command that does so |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 is part of the generated fc-flash-script and restore-flash scripts), a very |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 small bricking vulnerability window still exists - but this window is on the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 order of a few tens of milliseconds. Furthermore, in order for the phone to |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 get bricked, the unfortunate event happening in that short vulnerability window |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 would have to be someone physically yanking the battery out of the phone at |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 that exact moment, or the battery running out or falling out, again at that |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 exact moment in a time window that spans maybe 100 ms at the most. There is |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 absolutely NO bricking vulnerability window in terms of the serial cable |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 disconnecting or the host machine crashing - those events can happen at any |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 moment in time and do NOT create bricking danger. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 However, if the flashing process as a whole (on the order of a few minutes if |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 you are using "slow" 115200 baud rate) gets interrupted for whatever reason, |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 you will get a partially flashed phone, which may at first glance appear to be |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 bricked. But as long as the boot sector is good - and it will be good if you |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 haven't hit the worst-case scenario as above - you can still recover. To |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 recover from a flashing process that got interrupted in the middle, follow this |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 sequence: |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 * Return the phone to its powered-off state by removing and reinserting the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 battery. Very important: do NOT press the power button or plug in charging |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 power after reinserting battery until instructed to do so below; if you mess |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 up, remove the battery again, reinsert it, and be careful this time to NOT |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 press the power button prematurely. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 * With the phone off and the battery freshly removed and reinserted, connect |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 the headset jack serial cable and run fc-loadtool with the right arguments. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 * Momentarily press the power button. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 fc-loadtool should now make its entry and land you at the loadtool> prompt. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 At this point you re-issue the 'exec fc-flash-script' or 'exec restore-flash' |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 command as per the direction of desired transition, and hopefully complete this |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 time. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 Battery charging |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 ================ |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 If your phone happens to be in the messed-up state caused by interrupted |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 flashing, charging will not work in this state: you can only use whatever power |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 is left in the battery, or swap in another battery, perhaps charged in another |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 phone. This consideration is the main reason why you should fully charge your |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 battery before starting a firmware flashing operation. Don't ever plug the |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 charging power source into a phone with (temporarily) messed-up firmware: it |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 won't do any actual charging (which requires charging control managed by fw), |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 but it will mess up your ability to make fc-loadtool entry for recovery. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 One of the benefits of the current flashing procedure, with the firmware and a |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 fully prepared FFS image flashed in one go, is that once converted to |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 FreeCalypso, the phone regains its charging ability right away. With previous |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 instructions that called for flashing just the firmware and then formatting and |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 initializing FFS with fc-fsio, there was a longer window in which the phone is |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 not capable of charging its battery. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 When the phone is in flashed FC firmware state, flashed correctly by following |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 the present instructions, it _is_ capable of charging: simply plug in charging |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 power, and charging will proceed much like it does in standard phones. This |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 aspect holds for VPM firmwares too, not just the UI-enabled version - although |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 the only way to see the progress state of the charging process is by watching |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 the debug trace output or querying the firmware with AT%CBC (a private AT |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 command) and knowing how to interpret the cryptic result it returns. |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 A warning is needed, however: FC-fw-driven battery charging on C1xx phones is |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 not carefully tuned, and what our fw aims for as "full charge" may actually be |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 either an undercharge or an overcharge. Significant overcharge appears to be |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 unlikely - the available evidence suggests that undercharge is a little more |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 likely - but the possibility of overcharge (which is very bad for battery |
2df287f4722c
doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 health) cannot be ruled out. You've been warned! |