GTI9300PARAM » History » Version 4
Denis 'GNUtoo' Carikli, 01/31/2022 09:00 AM
Add information about USB switching
| 1 | 1 | Denis 'GNUtoo' Carikli | h1. GTI9300PARAM |
|---|---|---|---|
| 2 | |||
| 3 | You can dump the PARAM partition for the Galaxy SIII (GT-I9300) like that: |
||
| 4 | <pre> |
||
| 5 | adb pull /dev/block/platform/dw_mmc/by-name/PARAM PARAM.img |
||
| 6 | </pre> |
||
| 7 | |||
| 8 | That file at first looks like a tar archive. |
||
| 9 | <pre> |
||
| 10 | $ file PARAM.img |
||
| 11 | PARAM.img: POSIX tar archive (GNU) |
||
| 12 | </pre> |
||
| 13 | |||
| 14 | And it indeed does contain a tarball: |
||
| 15 | <pre> |
||
| 16 | $ tar tvf PARAM.img |
||
| 17 | -rw-r--r-- se.infra/se.infra 3624 2013-11-28 13:33 adv-env.img |
||
| 18 | -rw-r--r-- se.infra/se.infra 42023 2013-11-28 13:33 ani_upload_1_kernel_panic.jpg |
||
| 19 | -rw-r--r-- se.infra/se.infra 39255 2013-11-28 13:33 ani_upload_2_cp_crash.jpg |
||
| 20 | -rw-r--r-- se.infra/se.infra 47443 2013-11-28 13:33 ani_upload_3_forced_upload.jpg |
||
| 21 | -rw-r--r-- se.infra/se.infra 10810 2013-11-28 13:33 ani_upload_4_hardware_reset.jpg |
||
| 22 | -rw-r--r-- se.infra/se.infra 11586 2013-11-28 13:33 ani_upload_4_smpl.jpg |
||
| 23 | -rw-r--r-- se.infra/se.infra 54151 2013-11-28 13:33 ani_upload_4_unknown_reset.jpg |
||
| 24 | -rw-r--r-- se.infra/se.infra 11495 2013-11-28 13:33 ani_upload_4_watchdog_reset.jpg |
||
| 25 | -rw-r--r-- se.infra/se.infra 12276 2013-11-28 13:33 ani_upload_4_wtsr.jpg |
||
| 26 | -rw-r--r-- se.infra/se.infra 9703 2013-11-28 13:33 ani_upload_4_wtsr_smpl.jpg |
||
| 27 | -rw-r--r-- se.infra/se.infra 12711 2013-11-28 13:33 ani_upload_5_user_fault.jpg |
||
| 28 | -rw-r--r-- se.infra/se.infra 19098 2013-11-28 13:33 ani_upload_6_hsic_disconnected.jpg |
||
| 29 | -rw-r--r-- se.infra/se.infra 84123 2013-11-28 13:33 download_error.jpg |
||
| 30 | -rw-r--r-- se.infra/se.infra 73061 2013-11-28 13:33 download.jpg |
||
| 31 | -rw-r--r-- se.infra/se.infra 64410 2013-11-28 13:33 logo.jpg |
||
| 32 | -rw-r--r-- se.infra/se.infra 37205 2013-11-28 13:33 lpm.jpg |
||
| 33 | -rw-r--r-- se.infra/se.infra 36572 2013-11-28 13:33 lpm_wireless.jpg |
||
| 34 | -rw-r--r-- se.infra/se.infra 91511 2013-11-28 13:33 secure_error.jpg |
||
| 35 | -rwxr-xr-x se.infra/se.infra 5851 2013-11-28 13:33 sud_0.jpg |
||
| 36 | -rwxr-xr-x se.infra/se.infra 2713 2013-11-28 13:33 sud_1.jpg |
||
| 37 | -rwxr-xr-x se.infra/se.infra 5634 2013-11-28 13:33 sud_2.jpg |
||
| 38 | -rwxr-xr-x se.infra/se.infra 6292 2013-11-28 13:33 sud_3.jpg |
||
| 39 | -rwxr-xr-x se.infra/se.infra 4604 2013-11-28 13:33 sud_4.jpg |
||
| 40 | -rwxr-xr-x se.infra/se.infra 5706 2013-11-28 13:33 sud_5.jpg |
||
| 41 | -rwxr-xr-x se.infra/se.infra 6792 2013-11-28 13:33 sud_6.jpg |
||
| 42 | -rwxr-xr-x se.infra/se.infra 3885 2013-11-28 13:33 sud_7.jpg |
||
| 43 | -rwxr-xr-x se.infra/se.infra 6826 2013-11-28 13:33 sud_8.jpg |
||
| 44 | -rwxr-xr-x se.infra/se.infra 6528 2013-11-28 13:33 sud_9.jpg |
||
| 45 | -rw-r--r-- se.infra/se.infra 168616 2013-11-28 13:33 warning.jpg |
||
| 46 | </pre> |
||
| 47 | |||
| 48 | The size of the PARAM.img file is exactly 8MiB: |
||
| 49 | <pre> |
||
| 50 | $ ls -lah PARAM.img |
||
| 51 | [...] 8.0M [...] PARAM.img |
||
| 52 | $ ls -la PARAM.img |
||
| 53 | [...] 8388608 [...] PARAM.img |
||
| 54 | </pre> |
||
| 55 | |||
| 56 | And we can get the size of the tarball with --totals: |
||
| 57 | <pre> |
||
| 58 | $ man tar |
||
| 59 | [...] |
||
| 60 | --totals[=SIGNAL] |
||
| 61 | Print total bytes after processing the archive. [...] |
||
| 62 | </pre> |
||
| 63 | |||
| 64 | For example: |
||
| 65 | <pre> |
||
| 66 | $ tar --totals -tf PARAM.img |
||
| 67 | adv-env.img |
||
| 68 | [many files] |
||
| 69 | warning.jpg |
||
| 70 | Total bytes read: 911360 (890KiB, 286MiB/s) |
||
| 71 | </pre> |
||
| 72 | |||
| 73 | So here the tarball terminates way beyond the end. |
||
| 74 | |||
| 75 | 911360 is 0xde800: |
||
| 76 | <pre> |
||
| 77 | $ python |
||
| 78 | [...] |
||
| 79 | >>> hex(911360) |
||
| 80 | '0xde800' |
||
| 81 | </pre> |
||
| 82 | |||
| 83 | But we still have things after the tarball: |
||
| 84 | <pre> |
||
| 85 | $ hexdump -C PARAM.img |
||
| 86 | 000dd4a0 05 00 14 00 50 07 ff d9 00 00 00 00 00 00 00 00 |....P...........| |
||
| 87 | 000dd4b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 88 | * |
||
| 89 | 00700000 03 00 fe ca 00 01 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 90 | 00700010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 91 | * |
||
| 92 | 00700200 00 00 00 00 03 00 00 00 4c 4f 00 00 00 00 00 00 |........LO......| |
||
| 93 | 00700210 00 00 00 00 03 00 00 00 01 00 00 00 00 00 00 00 |................| |
||
| 94 | 00700220 00 00 00 00 00 00 00 00 63 6f 6e 73 6f 6c 65 3d |........console=| |
||
| 95 | 00700230 72 61 6d 20 6c 6f 67 6c 65 76 65 6c 3d 34 00 00 |ram loglevel=4..| |
||
| 96 | 00700240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 97 | * |
||
| 98 | 00700e20 00 00 00 00 00 00 00 00 ff ff ff ff ff ef 7f ff |................| |
||
| 99 | 00700e30 ff ff f7 ff ff ff f7 ff ff fe ff ff ff ff 7f ff |................| |
||
| 100 | 00700e40 fb ef ff ff ff fb ff df ff ff ff ff ff ff ff ff |................| |
||
| 101 | 00700e50 df bf ff ff 7f ef f7 ff f7 ff ff ff ff fe ff ff |................| |
||
| 102 | 00700e60 ff ff ff ff ef fb ff ef ff fb ff ff fd ff f7 ef |................| |
||
| 103 | 00700e70 ff ff ff ff f5 ff ff ff ff ff ff ff ff ff ff ff |................| |
||
| 104 | 00700e80 ff ff ff fe ff ef ff ff ff bf fd ff ff ff ff ff |................| |
||
| 105 | 00700e90 ff ff ff ff ff ff f7 fb ff ff ff eb ff ff ff eb |................| |
||
| 106 | 00700ea0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff fb |................| |
||
| 107 | 00700eb0 ff ff ff ff ff ff ff ff ff ff ff df ff ff ff ff |................| |
||
| 108 | 00700ec0 ff ff ff ff ff ff f7 ff ff ff ff ff ff ff ff ff |................| |
||
| 109 | 00700ed0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff fb |................| |
||
| 110 | 00700ee0 df ff ff ff ff ff ff ff ff ff ff ff ff ff d7 ff |................| |
||
| 111 | 00700ef0 ff ff ff af ff ff ff fe ff ff ff ff ff ff ff ff |................| |
||
| 112 | 00700f00 ff ef ff ff ff 7f ff ff ff df ff ff f7 ff ff ff |................| |
||
| 113 | 00700f10 ff ff ff ff ff ff ff ff ff ff ff ef ff ff f7 ff |................| |
||
| 114 | 00700f20 ff ff ff ff ff ff ff ff ff fe ef ff ff ef fb df |................| |
||
| 115 | 00700f30 ff ff ff ff ff fb ff ff ff ff ff ff ff ff ff ff |................| |
||
| 116 | 00700f40 ff ff f5 ff ff ff ff fb ff ff ff ff ff ff ff ff |................| |
||
| 117 | 00700f50 fb ff ff fb fd ff ff ff ff ff ff ff ff ff ff ff |................| |
||
| 118 | 00700f60 f7 ff ff ef f7 ff ff ef ff ff ff ff ff 9e ff fd |................| |
||
| 119 | 00700f70 ff ff ff ff fb ff ff de f3 fb ff ff ff ef df ff |................| |
||
| 120 | 00700f80 ff ff ff ff ff fb ff bf ff ff ff ff ff ff ff fd |................| |
||
| 121 | 00700f90 ff fe f7 fe ff eb ff ff ff fb ff ff df ff ff ff |................| |
||
| 122 | 00700fa0 df ff ff ff ff ff ff ff ff ff fb ff ff ff ff fb |................| |
||
| 123 | 00700fb0 ff ff ff df ff ff ff ff fe fe fe ff ff f7 ff ff |................| |
||
| 124 | 00700fc0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff fb |................| |
||
| 125 | 00700fd0 fd ff ff ff ff fd ff ff ff ff ff ff fe ff ff ff |................| |
||
| 126 | 00700fe0 ff ff df ff ff ff ff fb ff ff ff ff ff ff ff ff |................| |
||
| 127 | 00700ff0 ff f7 df ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
||
| 128 | 00701000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 129 | * |
||
| 130 | 007ffc00 d4 ad 55 ff 52 e9 ed 4c f8 d1 9c 08 79 b6 e9 6c |..U.R..L....y..l| |
||
| 131 | 007ffc10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 132 | * |
||
| 133 | 00800000 |
||
| 134 | </pre> |
||
| 135 | |||
| 136 | Questions: |
||
| 137 | * Can we ignore what is after the tarball and grow it to 8MiB? |
||
| 138 | * Does what's after contains encrypted data for the bootloader? |
||
| 139 | 2 | Denis 'GNUtoo' Carikli | |
| 140 | h2. adv_env.img |
||
| 141 | |||
| 142 | Here's the content of the adv-env.img file: |
||
| 143 | <pre> |
||
| 144 | $ hexdump -C adv-env.img |
||
| 145 | 00000000 03 00 fe ca 00 01 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 146 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 147 | * |
||
| 148 | 00000200 04 00 00 00 01 00 00 00 4c 4f 00 00 00 00 00 00 |........LO......| |
||
| 149 | 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 150 | 00000220 00 00 00 00 00 00 00 00 63 6f 6e 73 6f 6c 65 3d |........console=| |
||
| 151 | 00000230 72 61 6d 20 6c 6f 67 6c 65 76 65 6c 3d 34 00 00 |ram loglevel=4..| |
||
| 152 | 00000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 153 | * |
||
| 154 | 00000e20 00 00 00 00 00 00 00 00 |........| |
||
| 155 | 00000e28 |
||
| 156 | </pre> |
||
| 157 | |||
| 158 | Questions: |
||
| 159 | * Why are the kernel parameters repeated again after the end of the tarball? |
||
| 160 | * Where are the updated kernel parameters stored? |
||
| 161 | * Are the default and in-use kernel parameters stored at different location? |
||
| 162 | 3 | Denis 'GNUtoo' Carikli | |
| 163 | h2. kenrel command line |
||
| 164 | |||
| 165 | *Default kernel command line*: @console=ram loglevel=4@ |
||
| 166 | |||
| 167 | Test: |
||
| 168 | * change to @console=ram loglevel=8@ through the bootloader setenv command |
||
| 169 | * run saveenv |
||
| 170 | * reboot and validate that it's really changed with printenv |
||
| 171 | * observe the results on the filesystem |
||
| 172 | |||
| 173 | See [[MidasBootloader]] for more details on how to change the command line parameters. |
||
| 174 | |||
| 175 | After changing the environment variable, we still have loglevel=4 in the adv-env.img file that is in the tarball: |
||
| 176 | adv-env.img |
||
| 177 | <pre> |
||
| 178 | $ hexdump -C adv-env.img |
||
| 179 | 00000000 03 00 fe ca 00 01 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 180 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 181 | * |
||
| 182 | 00000200 04 00 00 00 01 00 00 00 4c 4f 00 00 00 00 00 00 |........LO......| |
||
| 183 | 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 184 | 00000220 00 00 00 00 00 00 00 00 63 6f 6e 73 6f 6c 65 3d |........console=| |
||
| 185 | 00000230 72 61 6d 20 6c 6f 67 6c 65 76 65 6c 3d 34 00 00 |ram loglevel=4..| |
||
| 186 | 00000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 187 | * |
||
| 188 | 00000e20 00 00 00 00 00 00 00 00 |........| |
||
| 189 | 00000e28 |
||
| 190 | </pre> |
||
| 191 | So these must be the default parameters. |
||
| 192 | |||
| 193 | And the actual kernel parameters were instead saved after the tarball: |
||
| 194 | <pre> |
||
| 195 | $ hexdump PARAM.img |
||
| 196 | * |
||
| 197 | 00700200 00 00 00 00 03 00 00 00 4c 4f 00 00 00 00 00 00 |........LO......| |
||
| 198 | 00700210 00 00 00 00 03 00 00 00 01 00 00 00 00 00 00 00 |................| |
||
| 199 | 00700220 00 00 00 00 00 00 00 00 63 6f 6e 73 6f 6c 65 3d |........console=| |
||
| 200 | 00700230 72 61 6d 20 6c 6f 67 6c 65 76 65 6c 3d 38 00 00 |ram loglevel=8..| |
||
| 201 | 00700240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
||
| 202 | * |
||
| 203 | </pre> |
||
| 204 | |||
| 205 | |||
| 206 | *Results:* |
||
| 207 | * 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. |
||
| 208 | * There is valuable info after the tarball => don't make the tarball grow too much. |
||
| 209 | 4 | Denis 'GNUtoo' Carikli | |
| 210 | |||
| 211 | |||
| 212 | h2. USB switch |
||
| 213 | |||
| 214 | 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. |
||
| 215 | |||
| 216 | When I set it back to @01@, I can have ADB again. |
||
| 217 | |||
| 218 | Here's the diff: |
||
| 219 | <pre> |
||
| 220 | 0070 0204: 00 00 00 00 4C 4F 00 00 00 00 00 00 00 00 00 00 ....LO.. ........ |
||
| 221 | 0070 0214: 03 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 222 | 0070 0224: 00 00 00 00 63 6F 6E 73 6F 6C 65 3D 72 61 6D 20 ....cons ole=ram |
||
| 223 | 0070 0234: 6C 6F 67 6C 65 76 65 6C 3D 38 00 00 00 00 00 00 loglevel =8...... |
||
| 224 | 0070 0244: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 225 | 0070 0254: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 226 | 0070 0264: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 227 | 0070 0274: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 228 | 0070 0284: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 229 | 0070 0294: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 230 | 0070 02A4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 231 | 0070 02B4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 232 | 0070 02C4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 233 | 0070 02D4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 234 | 0070 02E4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 235 | 0070 02F4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 236 | PARAM.img.new |
||
| 237 | 0070 0204: 01 00 00 00 4C 4F 00 00 00 00 00 00 00 00 00 00 ....LO.. ........ |
||
| 238 | 0070 0214: 03 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 239 | 0070 0224: 00 00 00 00 63 6F 6E 73 6F 6C 65 3D 72 61 6D 20 ....cons ole=ram |
||
| 240 | 0070 0234: 6C 6F 67 6C 65 76 65 6C 3D 38 00 00 00 00 00 00 loglevel =8...... |
||
| 241 | 0070 0244: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 242 | 0070 0254: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 243 | 0070 0264: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 244 | 0070 0274: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 245 | 0070 0284: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 246 | 0070 0294: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 247 | 0070 02A4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 248 | 0070 02B4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 249 | 0070 02C4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 250 | 0070 02D4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 251 | 0070 02E4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 252 | 0070 02F4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
||
| 253 | ┌──────────────────────────────────────────────────────────────────────────────┐ |
||
| 254 | │Arrow keys move F find RET next difference ESC quit T move top │ |
||
| 255 | │C ASCII/EBCDIC E edit file G goto position Q quit B move bottom │ |
||
| 256 | └──────────────────────────────────────────────────────────────────────────────┘ |
||
| 257 | </pre> |
||
| 258 | |||
| 259 | You can also get that behavior with the stock OS if you go to the phone application and enter *#7284# and set "USB" to |
||
| 260 | "MODEM" and tap "SAVE and RESET". After that phone will reboot and you'll see the modem when connecting the GT-I9300 to a computer through USB. |