|
||
|
![]() |
![]() |
ROMs y desarrollo LG G4 ROMs y desarrollo LG G4 |
![]() |
|
Herramientas |
#1
|
||||
|
||||
![]()
Si alguno se ha preguntado a qué viene el comando DD y el por qué de sus argumentos, que se emplea para extraer la partición system del LG G4, para luego por ejemplo inyectarle el root, y luego es introducida de nuevo al LG G4... pues ahora voy a tratar de explicároslo.
Partimos de una visión clara de la estructura de particiones de la memoria interna (mmcblk0) del LG G4 - H815: [PHP]Number Start End Size File system Name 1 16777216B 106954751B 90177536B fat16 modem 2 117440512B 117964799B 524288B pmic 3 117964800B 119013375B 1048576B sbl1 4 119013376B 120061951B 1048576B tz 5 120061952B 120586239B 524288B sdi 6 120586240B 121110527B 524288B hyp 7 121110528B 121634815B 524288B rpm 8 121634816B 123731967B 2097152B aboot 9 123731968B 124780543B 1048576B sbl1bak 10 124780544B 125304831B 524288B pmicbak 11 125304832B 126353407B 1048576B tzbak 12 126353408B 126877695B 524288B hypbak 13 126877696B 127401983B 524288B rpmbak 14 127401984B 129499135B 2097152B abootbak 15 129499136B 130023423B 524288B sdibak 16 130023424B 130547711B 524288B limits 17 130547712B 131071999B 524288B devinfo 18 131072000B 131596287B 524288B apdp 19 131596288B 132120575B 524288B msadp 20 132120576B 132644863B 524288B dpo 21 132644864B 134217727B 1572864B spare1 22 134217728B 150994943B 16777216B misc 23 150994944B 184549375B 33554432B ext4 persist 24 184549376B 186122239B 1572864B modemst1 25 186122240B 187695103B 1572864B modemst2 26 187695104B 189267967B 1572864B fsg 27 189267968B 189792255B 524288B fsc 28 189792256B 190316543B 524288B ssd 29 190316544B 190840831B 524288B keystore 30 190840832B 192937983B 2097152B DDR 31 192937984B 193462271B 524288B sec 32 193462272B 193986559B 524288B encrypt 33 193986560B 194510847B 524288B eksst 34 194510848B 195035135B 524288B rct 35 195035136B 197132287B 2097152B persistent 36 197132288B 201326591B 4194304B spare2 37 201326592B 251658239B 50331648B laf 38 251658240B 293601279B 41943040B boot 39 293601280B 335544319B 41943040B recovery 40 335544320B 343932927B 8388608B ext4 drm 41 343932928B 352321535B 8388608B ext4 sns 42 352321536B 385875967B 33554432B ext4 mpt 43 385875968B 434110463B 48234496B factory 44 434110464B 444596223B 10485760B fota 45 444596224B 448790527B 4194304B raw_resources 46 448790528B 452984831B 4194304B raw_resourcesbak 47 452984832B 4794089471B 4341104640B ext4 system 48 4794089472B 5062524927B 268435456B ext4 cust 49 5066719232B 6358564863B 1291845632B ext4 cache 50 6358564864B 31255953407B 24897388544B ext4 userdata 51 31255953408B 31268519423B 12566016B grow[/PHP] En ese listado vemos los Bytes de inicio y fin (ambos inclusive) de cada partición en que se divide la memoria interna, así como la capacidad en Bytes de cada una, e incluso su nombre 'amigable'. Tomando como ejemplo la partición del sistema (system), por aquello de que es en el LG G4 la que 'tocan' algunos para litear, rootear y demás cosillas sin tener que desbloquear el bootloader, pero las conclusiones son extrapolables a cualquier otra partición, como pudiera ser el recovery. La partición system, corresponde con esta línea: [PHP]Number Start End Size File system Name 47 452984832B 4794089471B 4341104640B ext4 system [/PHP] De ahí se puede obtener la siguiente información:
Ya con estos datos, tenemos todo lo que necesitamos para emplear el comando de UNIX/linux DD. Y lo vamos a emplear para 2 operaciones, una de extracción y otra de añadido. ## EXTRAER MI SYSTEM ## Código:
dd if=/dev/block/mmcblk0 bs=8192 skip=55296 count=529920 of=/data/media/0/system.img Ahora con ese fichero IMG, lo podremos toquitear, por ejemplo para inyectarle el root. ## VOLVER A INTRODUCIR MI SYSTEM YA ROOTEADO ## Código:
dd if=/data/media/0/system.rooted.img bs=8192 seek=55296 count=529920 of=/dev/block/mmcblk0
Ahora podréis comprender mejor el peligro que pudiera conllevar el no elegir correctamente los números en el BS, SEEK/SKIP, COUNT, ya que podríamos accidentalmente sobreescribir datos que no corresponden en una partición o pedazo de partición diferente a la que debiera. Ocasionando una corrupción de la información en las particiones de la memoria interna del LG G4. Última edición por LEPT Día 27/11/15 a las 13:21:57. Razón: Cambio todo pues ya tengo lo que quería, ahora explico para qué era |
Los siguientes 14 usuarios han agradecido a LEPT su comentario: | ||
|
#3
|
||||
|
||||
![]() Que tal @heros_45. Es para comprobar/aprender lo que hacen para con estos métodos de flashear el system completo e inyectar previamente el root ![]() Trato de verificar que en la info que saque PARTX, en la línea del system, que en el ejemplo sería esta: [PHP]NR START END SECTORS SIZE NAME UUID 34 1605632 3604479 1998848 976M system 75aa95d0-90e6-f00e-7f99-ebca5e2bae26[/PHP] El bloque de inicio deberá ser '55296', y luego tener en cuenta su final para calcular el número total de bloques, y luego con eso, y teniendo en cuenta que leerá/escribirá de 8192 bytes en 8192 bytes, habrá de tener un total de 529920 bloques. Y así verificar el porqué del comando: Código:
dd if=/data/media/0/system.rooted.img bs=8192 seek=55296 count=529920 of=/dev/block/mmcblk0 ![]() |
#4
|
||||
|
||||
Ya he obtenido lo que quería, y lo he dejado explicado para el que quiera aprender alguna cosilla nueva
![]() |
Los siguientes 3 usuarios han agradecido a LEPT su comentario: | ||
#7
|
||||
|
||||
Nuevamente, me has dejado impresionado @LEPT si o si debes de tener este terminal, si no es que lo tiene es ya..
Enviado desde mi LG-H815 mediante Tapatalk ![]() ![]() Última edición por LEPT Día 24/10/15 a las 09:32:56. |
Gracias de parte de: | ||
#8
|
||||
|
||||
Muy útil, debería de tener chincheta esto...
|
#9
|
||||
|
||||
## EXTRAER MI STOCK RECOVERY ##
Código: Código:
dd if=/dev/block/mmcblk0 bs=8192 skip=35840 count=5120 of=/data/media/0/recovery.img Código: Código:
dd if=/data/media/0/recovery.img bs=8192 seek=35840 count=5120 of=/dev/block/mmcblk0 |
#10
|
||||
|
||||
ahora me pregunto, o mas bien... te pregunto. De donde has sacado la tabla de particiones?
Podrias sacarla de la v20a española de vodafone y v20b internacional de 6.0 para extraer el system y..... inyectar root?? y tendriamos root en stock 6.0 sin abrir bootlader. La parte de inyectar root, creo haber visto como hacerlo en linux tambien... y tengo instalado windows10 pero con la manera de extraer y inyectar el system tendriamos medio root listo!!! |
#11
|
||||
|
||||
La tabla de particiones que puse arriba, la saqué de algún oscuro sitio de internet
![]() No obstante, una vez que lo tuve, puse en práctica todo lo expuesto, confirmando mis hipótesis. La tabla de particiones del primer Post, da los valores en 'bytes'. Aquí dejo otra que los da en 'bloques' [PHP]NR START END SECTORS SIZE NAME UUID 1 32768 208895 176128 86M modem c86e6e40-e0d0-4211-8761-bb9be5b6a1c1 2 229376 230399 1024 512K pmic 158bd015-f293-4211-1836-a49fe54c9508 3 230400 232447 2048 1M sbl1 0fe30a98-4667-b33b-71d2-51847cea5710 4 232448 234495 2048 1M tz f06da823-9012-79dc-c1c3-54ecb0a999e3 5 234496 235519 1024 512K sdi f9a40019-aa51-0ad0-0707-f2b247f12416 6 235520 236543 1024 512K hyp fe35504f-de53-3617-b275-a7b296835532 7 236544 237567 1024 512K rpm 4b3a21f7-3383-c6ec-342d-888741734fb0 8 237568 241663 4096 2M aboot aac198af-f340-a50e-586f-99e19f179ac0 9 241664 243711 2048 1M sbl1bak d4a789e0-f74f-489e-96b2-7f2157aa4aac 10 243712 244735 1024 512K pmicbak e1387499-64e5-6775-8ed3-41fcdf37280a 11 244736 246783 2048 1M tzbak 8954dcdc-f202-2722-9583-b96e6b35537f 12 246784 247807 1024 512K hypbak 862e7987-0a59-6bfd-944f-3cf11cad0e26 13 247808 248831 1024 512K rpmbak 8af05314-aac9-43b6-c0b0-b5a1c0329213 14 248832 252927 4096 2M abootbak a61359a0-71bb-b32a-673f-2c99ad90b6ea 15 252928 253951 1024 512K sdibak 2d153eb7-e709-0285-3c1e-c7226e139623 16 253952 254975 1024 512K limits 7c50a9a2-6a4f-643e-8251-4af5fddb7ec8 17 254976 255999 1024 512K devinfo 8825a344-606d-c055-550c-a83b1f057e54 18 256000 257023 1024 512K apdp 078fe5b1-46e2-d00a-2850-da8e8e6168d6 19 257024 258047 1024 512K msadp 09414736-4528-7c1a-ffa0-a2fc0a7b7758 20 258048 259071 1024 512K dpo 6338bc9b-6fe4-5bf3-bd42-680bb4cc136a 21 259072 262143 3072 1.5M spare1 57d7bddc-a7c6-2164-e685-c463e5b749b9 22 262144 294911 32768 16M misc 579b8bf6-2d5e-3db7-64dc-ed92d53133e4 23 294912 360447 65536 32M persist c311dac1-8d74-4fa0-53be-c1159b33e627 24 360448 363519 3072 1.5M modemst1 53537d9d-f6ce-4641-a2d5-3146ac25a82a 25 363520 366591 3072 1.5M modemst2 88256fe7-d53a-2fdc-9dea-9e60884e7c57 26 366592 369663 3072 1.5M fsg 6ca9a531-0f99-7c65-050d-30193f66ca5f 27 369664 370687 1024 512K fsc cf157339-6cc0-4331-a3fb-770ee31455aa 28 370688 371711 1024 512K ssd 52e55a65-49bd-0dfe-37d4-d9873543ea8f 29 371712 372735 1024 512K keystore 91d29803-ba8b-5513-e821-78eb5a456ed8 30 372736 376831 4096 2M DDR 5e0840fa-f2ac-7fa1-2132-0e384eb2a371 31 376832 377855 1024 512K sec e8e2a31b-0e6b-6026-c33b-2ce390ee1319 32 377856 378879 1024 512K encrypt 0498abb7-41f7-486c-e914-f0e8413237ab 33 378880 379903 1024 512K eksst 8fb25811-91fd-441e-1d7a-1b07cc83fc64 34 379904 380927 1024 512K rct 86882fd5-6875-7d0b-5287-4aee3d34db1f 35 380928 385023 4096 2M persistent 606c9abc-2858-31b9-112d-c46aa6324ff0 36 385024 393215 8192 4M spare2 a357e017-67bd-4023-3bc6-3acab85a06b1 37 393216 491519 98304 48M laf 03560a70-d53e-8b5b-1002-b0d5a26604f7 38 491520 573439 81920 40M boot feb4b5c5-986a-a625-a1fc-fe19f6dbbf14 39 573440 655359 81920 40M recovery ab4044da-05d7-c84b-7554-dd6f34f9bb62 40 655360 671743 16384 8M drm a93b60df-60d4-f469-424a-abd8afef0c8e 41 671744 688127 16384 8M sns 5340b312-3e47-552c-20ee-a4c58e889dbc 42 688128 753663 65536 32M mpt ff06d33c-df04-526e-c062-1ca860fa5524 43 753664 847871 94208 46M factory 9078305c-754d-8832-0e02-0f08dec0a424 44 847872 868351 20480 10M fota 499a10a9-16bb-312c-6e91-e570ee176e9d 45 868352 876543 8192 4M raw_resources 85164247-9b9c-03a7-12e1-12d4f69864ef 46 876544 884735 8192 4M raw_resourcesbak 2f03a51c-c263-ff56-b682-a4e601ff485f 47 884736 9363455 8478720 4G system 44cba1d3-bf03-dc7e-398c-c8203ec90428 48 9363456 9887743 524288 256M cust 21de0b4e-de8a-dcf6-31ad-7ddb199e3c3a 49 9895936 12419071 2523136 1.2G cache e374c35a-c179-b1e8-5d71-4b1d57e892d1 50 12419072 61046783 48627712 23.2G userdata 65e910c6-3c0b-4753-f889-db058037201b 51 61046784 61071326 24543 12M grow 784ba429-b385-2f7b-02f6-73879b0fcaff[/PHP] Hay que tener en cuenta que cada 'bloque' ocupa 512 bytes. Lo averiguamos de siguiente modo, desde una ventana de comandos del PC, con el smartphone conectado a él: [PHP]adb shell su dd if=/dev/block/mmcblk0 count=1 of=/dev/null[/PHP] Dando como resultado: Código:
root@p1:/ # dd if=/dev/block/mmcblk0 count=1 of=/dev/null 1+0 records in 1+0 records out 512 bytes transferred in 0.006 secs (85333 bytes/sec) La tabla de particiones, no varia de un firmware a otro. Es la propia de cada dispositivo (en este caso un LG G4 H815). Luego para la v20a es la misma que para la v10d. Dudo que les dé a LG por modificarla. De modo que puedes siguiendo los mismos pasos, extraer el system.img. Luego inyectarle el root y volverlo a poner. PERO, el problema con MM no radica ahí. Ya lo he comentado en otos Post. El problema está en que en MM en el boot activa/modifica unos parámetros del Android del dispositivo (algo así por entendernos) que impide el funcionamiento del root que hasta ahora conocíamos. De ahí que sea necesario flashear previamente un boot.img 'modificado' (quitando esas restricciones) y luego posteriormente rootearlo sin problema. El tema es que para flashear el boot, debes tener sí o sí, el bootloader desbloqueado. Fin de la Historia. Última edición por LEPT Día 20/04/16 a las 22:47:47. |
#12
|
||||
|
||||
![]() Al G4 también se le puede hacer copia del EFS? Está dentro del system.img? O cuales serían las particiones indispensables de las que debería tener backup antes de meterle mano? EDITADO: Encontré éste link por si a alguien le interesa: http://www.htcmania.com/showthread.php?t=1078513 Última edición por ManuXto Día 29/11/15 a las 06:29:39. |
#13
|
||||
|
||||
Hola, como se cual es comando del LGH815P
__________________
![]() ![]() |
#15
|
||||
|
||||
__________________
![]() ![]() |
#16
|
||||
|
||||
cómo obtengo la tabla de particiones en Bytes? Con qué comando?... sólo la logro obtener en MB.
|
#17
|
||||
|
||||
Y la tabla en bloques, la obtienes empleando el comando/utilidad 'PARTX': [PHP]partx -s /dev/block/mmcblk0[/PHP] En su día, puse algo más de info al respecto aquí: [Tutorial] Sacar partido a las Particiones del dispositivo |
Gracias de parte de: | ||
#18
|
||||
|
||||
Desconozco cual fue el comando/utilidad que empleó el usuario del que copié la tabla del Primer Post. No obstante, partiendo de la tabla posterior (de bloques) que puse, puedes obtener la tabla incial (de Bytes) tan sólo con multiplicar sus valores de bloques por el valor en bytes de un bloque (512 bytes/bloque).
Y la tabla en bloques, la obtienes empleando el comando/utilidad 'PARTX': [PHP]partx -s /dev/block/mmcblk0[/PHP] En su día, puse algo más de info al respecto aquí: [Tutorial] Sacar partido a las Particiones del dispositivo ![]() ![]() |
#19
|
||||
|
||||
Hola las aplicaciones que instalamos en que particion se guardan?
|
|
![]() |
![]() |
||||||
|