Project

General

Profile

GTI9300PARAM » History » Version 11

Denis 'GNUtoo' Carikli, 01/31/2022 08:20 PM
Move tarball content below its own title

1 6 Denis 'GNUtoo' Carikli
{{toc}}
2
3 1 Denis 'GNUtoo' Carikli
h1. GTI9300PARAM
4
5 11 Denis 'GNUtoo' Carikli
h2. Tarball
6
7 1 Denis 'GNUtoo' Carikli
You can dump the PARAM partition for the Galaxy SIII (GT-I9300) like that:
8
<pre>
9
adb pull /dev/block/platform/dw_mmc/by-name/PARAM PARAM.img
10
</pre>
11
12
That file at first looks like a tar archive.
13
<pre>
14
$ file PARAM.img
15
PARAM.img: POSIX tar archive (GNU)
16
</pre>
17
18
And it indeed does contain a tarball:
19
<pre>
20
$ tar tvf PARAM.img
21
-rw-r--r-- se.infra/se.infra 3624 2013-11-28 13:33 adv-env.img
22
-rw-r--r-- se.infra/se.infra 42023 2013-11-28 13:33 ani_upload_1_kernel_panic.jpg
23
-rw-r--r-- se.infra/se.infra 39255 2013-11-28 13:33 ani_upload_2_cp_crash.jpg
24
-rw-r--r-- se.infra/se.infra 47443 2013-11-28 13:33 ani_upload_3_forced_upload.jpg
25
-rw-r--r-- se.infra/se.infra 10810 2013-11-28 13:33 ani_upload_4_hardware_reset.jpg
26
-rw-r--r-- se.infra/se.infra 11586 2013-11-28 13:33 ani_upload_4_smpl.jpg
27
-rw-r--r-- se.infra/se.infra 54151 2013-11-28 13:33 ani_upload_4_unknown_reset.jpg
28
-rw-r--r-- se.infra/se.infra 11495 2013-11-28 13:33 ani_upload_4_watchdog_reset.jpg
29
-rw-r--r-- se.infra/se.infra 12276 2013-11-28 13:33 ani_upload_4_wtsr.jpg
30
-rw-r--r-- se.infra/se.infra  9703 2013-11-28 13:33 ani_upload_4_wtsr_smpl.jpg
31
-rw-r--r-- se.infra/se.infra 12711 2013-11-28 13:33 ani_upload_5_user_fault.jpg
32
-rw-r--r-- se.infra/se.infra 19098 2013-11-28 13:33 ani_upload_6_hsic_disconnected.jpg
33
-rw-r--r-- se.infra/se.infra 84123 2013-11-28 13:33 download_error.jpg
34
-rw-r--r-- se.infra/se.infra 73061 2013-11-28 13:33 download.jpg
35
-rw-r--r-- se.infra/se.infra 64410 2013-11-28 13:33 logo.jpg
36
-rw-r--r-- se.infra/se.infra 37205 2013-11-28 13:33 lpm.jpg
37
-rw-r--r-- se.infra/se.infra 36572 2013-11-28 13:33 lpm_wireless.jpg
38
-rw-r--r-- se.infra/se.infra 91511 2013-11-28 13:33 secure_error.jpg
39
-rwxr-xr-x se.infra/se.infra  5851 2013-11-28 13:33 sud_0.jpg
40
-rwxr-xr-x se.infra/se.infra  2713 2013-11-28 13:33 sud_1.jpg
41
-rwxr-xr-x se.infra/se.infra  5634 2013-11-28 13:33 sud_2.jpg
42
-rwxr-xr-x se.infra/se.infra  6292 2013-11-28 13:33 sud_3.jpg
43
-rwxr-xr-x se.infra/se.infra  4604 2013-11-28 13:33 sud_4.jpg
44
-rwxr-xr-x se.infra/se.infra  5706 2013-11-28 13:33 sud_5.jpg
45
-rwxr-xr-x se.infra/se.infra  6792 2013-11-28 13:33 sud_6.jpg
46
-rwxr-xr-x se.infra/se.infra  3885 2013-11-28 13:33 sud_7.jpg
47
-rwxr-xr-x se.infra/se.infra  6826 2013-11-28 13:33 sud_8.jpg
48
-rwxr-xr-x se.infra/se.infra  6528 2013-11-28 13:33 sud_9.jpg
49
-rw-r--r-- se.infra/se.infra 168616 2013-11-28 13:33 warning.jpg
50
</pre>
51
52
The size of the PARAM.img file is exactly 8MiB:
53
<pre>
54 8 Denis 'GNUtoo' Carikli
$ ls -lah PARAM.img
55 1 Denis 'GNUtoo' Carikli
[...] 8.0M [...] PARAM.img
56 8 Denis 'GNUtoo' Carikli
$ ls -la PARAM.img
57 1 Denis 'GNUtoo' Carikli
[...] 8388608 [...] PARAM.img
58
</pre>
59
60
And we can get the size of the tarball with --totals:
61
<pre>
62
$ man tar
63
  [...]
64
  --totals[=SIGNAL]
65
         Print  total bytes after processing the archive. [...]
66
</pre>
67
68
For example:
69
<pre>
70 8 Denis 'GNUtoo' Carikli
$ tar --totals -tf PARAM.img
71 1 Denis 'GNUtoo' Carikli
adv-env.img
72
[many files]
73
warning.jpg
74
Total bytes read: 911360 (890KiB, 286MiB/s)
75
</pre>
76
77 7 Denis 'GNUtoo' Carikli
So here the tarball terminates way before the end of the PARAM.img file.
78 1 Denis 'GNUtoo' Carikli
79
911360 is 0xde800:
80
<pre>
81
$ python
82
[...]
83
>>> hex(911360)
84
'0xde800'
85
</pre>
86
87
But we still have things after the tarball:
88
<pre>
89
$ hexdump -C PARAM.img
90
000dd4a0  05 00 14 00 50 07 ff d9  00 00 00 00 00 00 00 00  |....P...........|
91
000dd4b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
92
*
93
00700000  03 00 fe ca 00 01 00 00  00 00 00 00 00 00 00 00  |................|
94
00700010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
95
*
96
00700200  00 00 00 00 03 00 00 00  4c 4f 00 00 00 00 00 00  |........LO......|
97
00700210  00 00 00 00 03 00 00 00  01 00 00 00 00 00 00 00  |................|
98
00700220  00 00 00 00 00 00 00 00  63 6f 6e 73 6f 6c 65 3d  |........console=|
99
00700230  72 61 6d 20 6c 6f 67 6c  65 76 65 6c 3d 34 00 00  |ram loglevel=4..|
100
00700240  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
101
*
102
00700e20  00 00 00 00 00 00 00 00  ff ff ff ff ff ef 7f ff  |................|
103
00700e30  ff ff f7 ff ff ff f7 ff  ff fe ff ff ff ff 7f ff  |................|
104
00700e40  fb ef ff ff ff fb ff df  ff ff ff ff ff ff ff ff  |................|
105
00700e50  df bf ff ff 7f ef f7 ff  f7 ff ff ff ff fe ff ff  |................|
106
00700e60  ff ff ff ff ef fb ff ef  ff fb ff ff fd ff f7 ef  |................|
107
00700e70  ff ff ff ff f5 ff ff ff  ff ff ff ff ff ff ff ff  |................|
108
00700e80  ff ff ff fe ff ef ff ff  ff bf fd ff ff ff ff ff  |................|
109
00700e90  ff ff ff ff ff ff f7 fb  ff ff ff eb ff ff ff eb  |................|
110
00700ea0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff fb  |................|
111
00700eb0  ff ff ff ff ff ff ff ff  ff ff ff df ff ff ff ff  |................|
112
00700ec0  ff ff ff ff ff ff f7 ff  ff ff ff ff ff ff ff ff  |................|
113
00700ed0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff fb  |................|
114
00700ee0  df ff ff ff ff ff ff ff  ff ff ff ff ff ff d7 ff  |................|
115
00700ef0  ff ff ff af ff ff ff fe  ff ff ff ff ff ff ff ff  |................|
116
00700f00  ff ef ff ff ff 7f ff ff  ff df ff ff f7 ff ff ff  |................|
117
00700f10  ff ff ff ff ff ff ff ff  ff ff ff ef ff ff f7 ff  |................|
118
00700f20  ff ff ff ff ff ff ff ff  ff fe ef ff ff ef fb df  |................|
119
00700f30  ff ff ff ff ff fb ff ff  ff ff ff ff ff ff ff ff  |................|
120
00700f40  ff ff f5 ff ff ff ff fb  ff ff ff ff ff ff ff ff  |................|
121
00700f50  fb ff ff fb fd ff ff ff  ff ff ff ff ff ff ff ff  |................|
122
00700f60  f7 ff ff ef f7 ff ff ef  ff ff ff ff ff 9e ff fd  |................|
123
00700f70  ff ff ff ff fb ff ff de  f3 fb ff ff ff ef df ff  |................|
124
00700f80  ff ff ff ff ff fb ff bf  ff ff ff ff ff ff ff fd  |................|
125
00700f90  ff fe f7 fe ff eb ff ff  ff fb ff ff df ff ff ff  |................|
126
00700fa0  df ff ff ff ff ff ff ff  ff ff fb ff ff ff ff fb  |................|
127
00700fb0  ff ff ff df ff ff ff ff  fe fe fe ff ff f7 ff ff  |................|
128
00700fc0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff fb  |................|
129
00700fd0  fd ff ff ff ff fd ff ff  ff ff ff ff fe ff ff ff  |................|
130
00700fe0  ff ff df ff ff ff ff fb  ff ff ff ff ff ff ff ff  |................|
131
00700ff0  ff f7 df ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
132
00701000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
133
*
134
007ffc00  d4 ad 55 ff 52 e9 ed 4c  f8 d1 9c 08 79 b6 e9 6c  |..U.R..L....y..l|
135
007ffc10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
136
*
137
00800000
138
</pre>
139
140
Questions:
141
* Can we ignore what is after the tarball and grow it to 8MiB?
142 2 Denis 'GNUtoo' Carikli
* Does what's after contains encrypted data for the bootloader?
143 1 Denis 'GNUtoo' Carikli
144 11 Denis 'GNUtoo' Carikli
h3. adv_env.img
145 2 Denis 'GNUtoo' Carikli
146
Here's the content of the adv-env.img file:
147
<pre>
148 8 Denis 'GNUtoo' Carikli
$ hexdump -C adv-env.img
149 2 Denis 'GNUtoo' Carikli
00000000  03 00 fe ca 00 01 00 00  00 00 00 00 00 00 00 00  |................|
150
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
151
*
152
00000200  04 00 00 00 01 00 00 00  4c 4f 00 00 00 00 00 00  |........LO......|
153
00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
154
00000220  00 00 00 00 00 00 00 00  63 6f 6e 73 6f 6c 65 3d  |........console=|
155
00000230  72 61 6d 20 6c 6f 67 6c  65 76 65 6c 3d 34 00 00  |ram loglevel=4..|
156
00000240  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
157
*
158
00000e20  00 00 00 00 00 00 00 00                           |........|
159
00000e28
160
</pre>
161
162
Questions:
163
* Why are the kernel parameters repeated again after the end of the tarball?
164
* Where are the updated kernel parameters stored?
165
* Are the default and in-use kernel parameters stored at different location?
166 3 Denis 'GNUtoo' Carikli
167
h2. kenrel command line
168
169
*Default kernel command line*: @console=ram loglevel=4@
170
171 8 Denis 'GNUtoo' Carikli
Test:
172 3 Denis 'GNUtoo' Carikli
* change to @console=ram loglevel=8@ through the bootloader setenv command
173 8 Denis 'GNUtoo' Carikli
* run saveenv
174 3 Denis 'GNUtoo' Carikli
* reboot and validate that it's really changed with printenv
175
* observe the results on the filesystem
176
177
See [[MidasBootloader]] for more details on how to change the command line parameters.
178
179
After changing the environment variable, we still have loglevel=4 in the adv-env.img file that is in the tarball:
180
adv-env.img
181
<pre>
182 8 Denis 'GNUtoo' Carikli
$ hexdump -C adv-env.img
183 3 Denis 'GNUtoo' Carikli
00000000  03 00 fe ca 00 01 00 00  00 00 00 00 00 00 00 00  |................|
184
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
185
*
186
00000200  04 00 00 00 01 00 00 00  4c 4f 00 00 00 00 00 00  |........LO......|
187
00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
188
00000220  00 00 00 00 00 00 00 00  63 6f 6e 73 6f 6c 65 3d  |........console=|
189
00000230  72 61 6d 20 6c 6f 67 6c  65 76 65 6c 3d 34 00 00  |ram loglevel=4..|
190
00000240  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
191
*
192
00000e20  00 00 00 00 00 00 00 00                           |........|
193
00000e28
194
</pre>
195
So these must be the default parameters.
196
197
And the actual kernel parameters were instead saved after the tarball:
198
<pre>
199
$ hexdump PARAM.img
200
*
201
00700200  00 00 00 00 03 00 00 00  4c 4f 00 00 00 00 00 00  |........LO......|
202
00700210  00 00 00 00 03 00 00 00  01 00 00 00 00 00 00 00  |................|
203
00700220  00 00 00 00 00 00 00 00  63 6f 6e 73 6f 6c 65 3d  |........console=|
204
00700230  72 61 6d 20 6c 6f 67 6c  65 76 65 6c 3d 38 00 00  |ram loglevel=8..|
205
00700240  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
206
*
207
</pre>
208
209
210 8 Denis 'GNUtoo' Carikli
*Results:*
211 3 Denis 'GNUtoo' Carikli
* Since the s-boot 4.0 bootloader on several Exynos 4412 devices (GT-I9300, GT-I9305, GT-N7100, GT-N7105) doesn't take into account the boot.img kenrel parameters, we can then try to change them by editing the PARAM.img after the tarball.
212
* There is valuable info after the tarball => don't make the tarball grow too much.
213 4 Denis 'GNUtoo' Carikli
214
h2. USB switch
215
216
On a GT-I9300, if I set the address @0x00700204@ to @00@, it switch to the USB to the modem's USB, and @Bus 002 Device 095: ID 1519:0020 Comneon HSIC Device@ appears when connecting the GT-I9300 to a computer.
217
218
When I set it back to @01@, I can have ADB again.
219
220 1 Denis 'GNUtoo' Carikli
Here's the diff:
221
<pre>
222 5 Denis 'GNUtoo' Carikli
$ vbindiff PARAM.img PARAM.img.new
223
PARAM.img
224 4 Denis 'GNUtoo' Carikli
0070 0204: 00 00 00 00 4C 4F 00 00  00 00 00 00 00 00 00 00  ....LO.. ........  
225
0070 0214: 03 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
226
0070 0224: 00 00 00 00 63 6F 6E 73  6F 6C 65 3D 72 61 6D 20  ....cons ole=ram   
227
0070 0234: 6C 6F 67 6C 65 76 65 6C  3D 38 00 00 00 00 00 00  loglevel =8......  
228
0070 0244: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
229
0070 0254: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
230
0070 0264: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
231
0070 0274: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
232
0070 0284: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
233
0070 0294: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
234
0070 02A4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
235
0070 02B4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
236
0070 02C4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
237
0070 02D4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
238
0070 02E4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
239
0070 02F4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
240
PARAM.img.new                                                                   
241
0070 0204: 01 00 00 00 4C 4F 00 00  00 00 00 00 00 00 00 00  ....LO.. ........  
242
0070 0214: 03 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
243
0070 0224: 00 00 00 00 63 6F 6E 73  6F 6C 65 3D 72 61 6D 20  ....cons ole=ram   
244
0070 0234: 6C 6F 67 6C 65 76 65 6C  3D 38 00 00 00 00 00 00  loglevel =8......  
245
0070 0244: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
246
0070 0254: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
247
0070 0264: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
248
0070 0274: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
249
0070 0284: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
250
0070 0294: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
251
0070 02A4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
252
0070 02B4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
253
0070 02C4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
254
0070 02D4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
255
0070 02E4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
256
0070 02F4: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
257
┌──────────────────────────────────────────────────────────────────────────────┐
258
│Arrow keys move  F find      RET next difference  ESC quit  T move top        │
259
│C ASCII/EBCDIC   E edit file   G goto position      Q quit  B move bottom     │
260
└──────────────────────────────────────────────────────────────────────────────┘
261
</pre>
262
263 9 Denis 'GNUtoo' Carikli
At the next boot the s-boot bootloader will then configure the USB switch to connect to the modem USB.
264
265
You can also get that behavior with the stock OS if you go to the phone application and enter @*#7284#@ and set @USB@ to
266
@MODEM@ and then click on the @SAVE and RESET@ button. It will then reboot the phone automatically.
267
268
Note that in both case (when doing it manually with Replicant or through the stock OS):
269
* ADB will not work anymore in Replicant, the recovery and the stock OS
270
* Heimdall may not work anymore
271
so you need a plan to be able to recovery from it.
272
273
If you run the stock OS, you can't count on recoveries as it tend to replace them the recoveries with its own recovery, but you can still use @*#7284#@ to change @USB@ back to @PDA@ instead of @MODEM@.
274
275
With Replicant, you can enable the terminal, adb and root for adb and applications in the developers settings, and once that is done, through the terminal application you can get root with @su@ and then type the following command to enable adb again: 
276
<pre>
277
echo PDA > /sys/devices/virtual/sec/switch/usb_sel
278
</pre>
279
as this command is temporary (until the next reboot), you'll have to edit again the @PARAM@ partition and copy the modified @PARAM@ image to the @PARAM@ partition with @dd@.
280 10 Denis 'GNUtoo' Carikli
281
h2. Modem debug level
282
283
In the stock OS, if we go to the phone application and dial @*#9900#@ and change the @Debug Level Enabled@ (@LOW@ @MEDIUM@ and @HIGH@ are available), the PARAM partition will be modified (and then the phone will be rebooted):
284
285
Here we switched the setting from @LOW@ to @MEDIUM@, and it produces a difference at @0x700208@:
286
<pre>
287
$ vbindiff low-2/PARAM.img medium-2/PARAM.img
288
low-2/PARAM.img                                                                 
289
0070 0208: 4C 4F 00 00 00 00 00 00  00 00 00 00 03 00 00 00  LO...... ........  
290
0070 0218: 01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
291
0070 0228: 63 6F 6E 73 6F 6C 65 3D  72 61 6D 20 6C 6F 67 6C  console= ram logl  
292
0070 0238: 65 76 65 6C 3D 38 00 00  00 00 00 00 00 00 00 00  evel=8.. ........  
293
0070 0248: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
294
0070 0258: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
295
0070 0268: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
296
0070 0278: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
297
0070 0288: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
298
0070 0298: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
299
0070 02A8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
300
0070 02B8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
301
0070 02C8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
302
0070 02D8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
303
0070 02E8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
304
0070 02F8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
305
medium-2/PARAM.img                                                              
306
0070 0208: 4D 49 00 00 00 00 00 00  00 00 00 00 03 00 00 00  MI...... ........  
307
0070 0218: 01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
308
0070 0228: 63 6F 6E 73 6F 6C 65 3D  72 61 6D 20 6C 6F 67 6C  console= ram logl  
309
0070 0238: 65 76 65 6C 3D 38 00 00  00 00 00 00 00 00 00 00  evel=8.. ........  
310
0070 0248: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
311
0070 0258: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
312
0070 0268: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
313
0070 0278: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
314
0070 0288: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
315
0070 0298: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
316
0070 02A8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
317
0070 02B8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
318
0070 02C8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
319
0070 02D8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
320
0070 02E8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
321
0070 02F8: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
322
┌──────────────────────────────────────────────────────────────────────────────┐
323
│Arrow keys move  F find      RET next difference  ESC quit  T move top        │
324
│C ASCII/EBCDIC   E edit file   G goto position      Q quit  B move bottom     │
325
└──────────────────────────────────────────────────────────────────────────────┘
326
</pre>
327
328
And here's what happens when switching from @MEDIUM@ to @HIGH@:
329
<pre>
330
$ vbindiff medium-2/PARAM.img high-1/PARAM.img
331
medium-2/PARAM.img                                                              
332
0070 0200: 00 00 00 00 01 00 00 00  4D 49 00 00 00 00 00 00  ........ MI......  
333
0070 0210: 00 00 00 00 03 00 00 00  01 00 00 00 00 00 00 00  ........ ........  
334
0070 0220: 00 00 00 00 00 00 00 00  63 6F 6E 73 6F 6C 65 3D  ........ console=  
335
0070 0230: 72 61 6D 20 6C 6F 67 6C  65 76 65 6C 3D 38 00 00  ram logl evel=8..  
336
0070 0240: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
337
0070 0250: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
338
0070 0260: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
339
0070 0270: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
340
0070 0280: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
341
0070 0290: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
342
0070 02A0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
343
0070 02B0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
344
0070 02C0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
345
0070 02D0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
346
0070 02E0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
347
0070 02F0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
348
high-1/PARAM.img                                                                
349
0070 0200: 00 00 00 00 01 00 00 00  48 49 00 00 00 00 00 00  ........ HI......  
350
0070 0210: 00 00 00 00 03 00 00 00  01 00 00 00 00 00 00 00  ........ ........  
351
0070 0220: 00 00 00 00 00 00 00 00  63 6F 6E 73 6F 6C 65 3D  ........ console=  
352
0070 0230: 72 61 6D 20 6C 6F 67 6C  65 76 65 6C 3D 38 00 00  ram logl evel=8..  
353
0070 0240: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
354
0070 0250: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
355
0070 0260: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
356
0070 0270: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
357
0070 0280: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
358
0070 0290: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
359
0070 02A0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
360
0070 02B0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
361
0070 02C0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
362
0070 02D0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
363
0070 02E0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
364
0070 02F0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
365
┌──────────────────────────────────────────────────────────────────────────────┐
366
│Arrow keys move  F find      RET next difference  ESC quit  T move top        │
367
│C ASCII/EBCDIC   E edit file   G goto position      Q quit  B move bottom     │
368
└──────────────────────────────────────────────────────────────────────────────┘
369
</pre>
370
371
Unfortunately in both cases, it also changes what appears to be a checksum:
372
<pre>
373
$ vbindiff medium-2/PARAM.img high-1/PARAM.img
374
medium-2/PARAM.img                                                              
375
007F FC00: 0D 4D 03 C0 FD 5C A8 D1  2B 14 25 76 03 51 C5 27  .M...\.. +.%v.Q.'  
376
007F FC10: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
377
007F FC20: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
378
007F FC30: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
379
007F FC40: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
380
007F FC50: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
381
007F FC60: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
382
007F FC70: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
383
007F FC80: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
384
007F FC90: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
385
007F FCA0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
386
007F FCB0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
387
007F FCC0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
388
007F FCD0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
389
007F FCE0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
390
007F FCF0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
391
high-1/PARAM.img                                                                
392
007F FC00: 67 39 08 85 9C 4A FE B8  65 47 9C C8 BB 95 DF B7  g9...J.. eG......  
393
007F FC10: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
394
007F FC20: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
395
007F FC30: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
396
007F FC40: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
397
007F FC50: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
398
007F FC60: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
399
007F FC70: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
400
007F FC80: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
401
007F FC90: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
402
007F FCA0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
403
007F FCB0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
404
007F FCC0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
405
007F FCD0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
406
007F FCE0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
407
007F FCF0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........  
408
┌──────────────────────────────────────────────────────────────────────────────┐
409
│Arrow keys move  F find      RET next difference  ESC quit  T move top        │
410
│C ASCII/EBCDIC   E edit file   G goto position      Q quit  B move bottom     │
411
└──────────────────────────────────────────────────────────────────────────────┘
412
</pre>
413
414
To capture that I had to :
415
* Set the desired setting (through the phone application after dialing @$*#9900#@ and let it reboot
416
* then shut down the phone
417
* Then boot into the download mode
418
* then flash a Replicant recovery with root to @BOOT@ (do not flash it to RECOVERY)
419
* Then to dump the PARAM partition
420
* Then to reboot to the bootloader
421
* Then to flash back the stock OS BOOT
422
423
If for some reason I rebooted to the RECOVERY partition, the setting would be changed back to @LOW@ (this was verified by dialing @*#9900#@ and then looking at the setting value without changing it).