1 votos

Analizando el bucle de arranque Causa root de console-ramoops-0 ( & logcat)

Boot-looped y se quedó atascado en el logo de "powered by Android". Logcat no ha sido muy útil. Quiero saber qué es lo que causa el atasco. Todo lo que tengo es esto de /sys/fs/pstore/console-ramoops-0

'android.frameworks.sensorservice@1.0::ISensorManager/default': No such file or directory

Adjunto Entero /sys/fs/pstore/console-ramoops-0

¿Cuál parece ser el problema?
Tengo copias de seguridad de TWRP de vendor system boot con el que he jugado a restaurar. No hubo suerte. Esta es la acción MIUI ROM con TWRP as recovery base así que después de flashear dm-verify-no encrypt.zip ( no recuerdo el nombre exacto ) + certification.zi & permssiver consigo pasar MIUI pero ahora en bucle en powered by android logo

fsck resultados

    olivelite:/ # e2fsck /dev/block/mmcblk0p60
e2fsck 1.43.3 (04-Sep-2016)
/dev/block/mmcblk0p60: clean, 4614/65536 files, 184349/262144 blocks
olivelite:/ # fsck /dev/block/mmcblk0p60
/sbin/sh: fsck: not found
127|olivelite:/ # e2fsck -v /dev/block/mmcblk0p60
e2fsck 1.43.3 (04-Sep-2016)
/dev/block/mmcblk0p60: clean, 4614/65536 files, 184349/262144 blocks
olivelite:/ # e2fsck -v /dev/block/mmcblk0p59
e2fsck 1.43.3 (04-Sep-2016)
/dev/block/mmcblk0p59: clean, 4547/262144 files, 680379/1048576 blocks
olivelite:/ # e2fsck -v /dev/block/mmcblk0p62
e2fsck 1.43.3 (04-Sep-2016)
data: clean, 62826/1389536 files, 3383723/5667584 blocks
olivelite:/ # e2fsck -v /dev/block/mmcblk0p57
e2fsck 1.43.3 (04-Sep-2016)
/dev/block/mmcblk0p57: clean, 33/98304 files, 22707/98304 blocksenter 

fsck sonidos limpios para todos partitions
Aquí está el **logcat** & aquí está **dmesg** de logcat podría ser un decryption de la cuestión. Pero eso es sólo para boot twrp pide el patrón y descifra sin problemas. ¿Por qué no puede ocurrir durante boot - esa es mi corazonada sobre el prob. No trato de atraer en esa dirección. Como Mikko dijo que casi todo grita por lo que es difícil atrapar al culpable
Voy a intentar /data copia de seguridad wipe y restore Veamos...
. Actualización
como sospechaba parece ser encryption relacionado. la anterior instalación con éxito tenía un pattern lock ( en el momento en que se construyó esa instalación, yo flashed - permissiver.zip, certificate.zip & dm-verity-force-encryption w default ops to disable verity & disable forced encryption ) - pero TWRP nandroid backup nunca es encrypted . Cuando intentaba restaurarlo - siempre terminaba con TWRP createTarFork() error 255 que es un error muy genérico - con múltiples RC. En mi caso ocurre inmediatamente ( los datos anteriores eran wiped & formatted all relevant partitions . La única forma en la que pude restaurar con éxito fue usando flashtool ( que se ejecuta fastboot comandos debajo ) para instalar stock -> fastboot twrp & patched magisk boot install y luego restaurar /data ( después de ejecutar magisk & dm verity intente twrp restaurar ) - en ese caso la restauración fue exitosa. Así que con los pasos anteriores pude restaurar con éxito /data pero que restauró /data se atascará en bootloop ( si twrp las copias de seguridad no son encrypted ¿Por qué entonces un simple wipe & format no permitir TWRP restore ? sólo flashtool de-novo stock instalar permitirá restaurar He leído un error en twrp no dejará que la copia de seguridad de encrypted partition ser restaurado en un-encrypted ..ok así que yo también encrypted de-novo stock instalar con el mismo patrón y después de restaurar con éxito /data se quedó atascado en el mismo bootloop de nuevo ) .
mientras estoy usando este de-novo stock instalar ahora mismo con aplicaciones de "kit de supervivencia mínimo". Podría sacar registros de lo que un successful boot parecía para comparar con boot loop after /data restored He subido antes ( como sugirió Mikko - necesito registros de arranque malo y normal para comparar ) .
Así que la gran pregunta
es cómo en el mundo puedo volver /data para restaurar desde mi Nandroid backup sin boot looping
Subido estos :
Arranque normal pmsg-ramoops , dmesg , ramoops ( los 2 últimos son más o menos lo mismo - si lees ramoops- suficientemente bueno ), logcat No hace falta decir que la restauración se intenta en la misma ROM de stock

2voto

JonTheNiceGuy Puntos 376

Si ejecutas el firmware de serie y se produce un bootloop, no hay mucho que puedas hacer porque no tienes el código fuente del firmware que estás ejecutando.

Su registro de arranque parece tener un par de partes interesantes. Creo que esto podría sugerir algún tipo de problema de permisos. ¿Has tocado cosas de SELinux (por ejemplo, has cambiado las ACL)?

[    0.629174] ------------[ cut here ]------------
[    0.629189] WARNING: CPU: 0 PID: 1 at /home/work/olivelite-p-stable-build/kernel/msm-4.9/drivers/base/core.c:600 device_create_file+0x7c/0xac
[    0.629193] Attribute otg_status: write permission without 'store'
[    0.629197] Modules linked in:
[    0.629205] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.112-perf-gd9f74a7 #1
[    0.629209] Hardware name: Qualcomm Technologies, Inc. SDM439 (Flattened Device Tree)
[    0.629226] [<c0113194>] (unwind_backtrace) from [<c010dbc0>] (show_stack+0x20/0x24)
[    0.629235] [<c010dbc0>] (show_stack) from [<c04e791c>] (dump_stack+0x94/0xa8)
[    0.629245] [<c04e791c>] (dump_stack) from [<c012f760>] (__warn+0xf8/0x110)
[    0.629253] [<c012f760>] (__warn) from [<c012f7d0>] (warn_slowpath_fmt+0x58/0x74)
[    0.629260] [<c012f7d0>] (warn_slowpath_fmt) from [<c0761e24>] (device_create_file+0x7c/0xac)
[    0.629271] [<c0761e24>] (device_create_file) from [<c087ebc8>] (msm_otg_probe+0x1668/0x1c28)
[    0.629281] [<c087ebc8>] (msm_otg_probe) from [<c0769a10>] (platform_drv_probe+0x48/0xac)
[    0.629289] [<c0769a10>] (platform_drv_probe) from [<c0767860>] (driver_probe_device+0x244/0x2f0)
[    0.629297] [<c0767860>] (driver_probe_device) from [<c07679d4>] (__driver_attach+0xc8/0xcc)
[    0.629303] [<c07679d4>] (__driver_attach) from [<c07652dc>] (bus_for_each_dev+0x8c/0xd0)
[    0.629311] [<c07652dc>] (bus_for_each_dev) from [<c07670e0>] (driver_attach+0x2c/0x30)
[    0.629317] [<c07670e0>] (driver_attach) from [<c0766c70>] (bus_add_driver+0x1ac/0x224)
[    0.629324] [<c0766c70>] (bus_add_driver) from [<c0768768>] (driver_register+0x9c/0x120)
[    0.629331] [<c0768768>] (driver_register) from [<c0769974>] (__platform_driver_register+0x50/0x58)
[    0.629341] [<c0769974>] (__platform_driver_register) from [<c16473dc>] (msm_otg_driver_init+0x1c/0x20)
[    0.629350] [<c16473dc>] (msm_otg_driver_init) from [<c0101ccc>] (do_one_initcall+0x60/0x1a4)
[    0.629359] [<c0101ccc>] (do_one_initcall) from [<c1601070>] (kernel_init_freeable+0x1f4/0x2b0)
[    0.629369] [<c1601070>] (kernel_init_freeable) from [<c0f7fd4c>] (kernel_init+0x18/0x158)
[    0.629378] [<c0f7fd4c>] (kernel_init) from [<c0108a10>] (ret_from_fork+0x14/0x24)
[    0.629384] ---[ end trace 09e0ec112fb2ab2d ]---
...
[    3.606115] init: Couldn't load property file '/odm/default.prop': open() failed: Nk such file or directory: No such file or directory
[    3.606592] selinux: avc:  denied  { set } for  scontext=u:r:vendor_init:s0 tcontext=u:object_r:exported_secure_prop:s0 tclass=property_service permissive=1
...
[    5.976174] e2fsck: e2fsck 1.43.3 (04-Sep-2016)
[    5.976174] 
[    5.976210] e2fsck: /dev/block/bootdevice/by-name/persist is mounted.
[    5.976210] 
[    5.976222] e2fsck: e2fsck: Cannot continue, aborting.
...
[    7.388219] type=1400 audit(54437781.749:20): avc: denied { setattr } for pid=404 comm="init" name="shared" dev="mmcblk0p62" ino=1157358 scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1
[    7.399091] type=1400 audit(54437781.749:20): avc: denied { setattr } for pid=404 comm="init" name="shared" dev="mmcblk0p62" ino=1157358 scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1
[    7.399114] type=1400 audit(54437781.759:21): avc: denied { setattr } for pid=404 comm="init" name="tombstones" dev="mmcblk0p62" ino=514055 scontext=u:r:vendor_init:s0 tcontext=u:object_r:tombstone_data_file:s0 tclass=dir permissive=1
[    7.402174] type=1400 audit(54437781.759:21): avc: denied { setattr } for pid=404 comm="init" name="tombstones" dev="mmcblk0p62" ino=514055 scontext=u:r:vendor_init:s0 tcontext=u:object_r:tombstone_data_file8s0 tclass=dir permissive=1
[    7.402193] type=1400 audit(54437781.769:22): avc: denied { write } for pid=404 comm="init" name="misc" dev="mmcblk0p62" ino=385537 scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1
[    7.402323] type=1400 audit(54437781.769:22): avc: denied { write } for pid=404 comm="init" name="misc" dev="mmcblk0p62" ino=385537 scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1
[    7.402339] type=1400 audit(54437781.769:23): avc: denied { add_name } for pid=404 comm="init" name="dts" scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1

También hay que tener en cuenta el e2fsck abortar en medio del proceso.

Supongo que la configuración de SELinux se ha estropeado o una corrupción del sistema de archivos.

Realmente necesitarías un registro de arrancar correctamente teléfono con el versión de firmware idéntica para comparar para saberlo con seguridad. En muchos casos el firmware oficial del proveedor es una porquería que puede emitir todos los errores anteriores en cada arranque por lo que realmente no puedes saber si estás ante una pista falsa.

Por lo general, la única manera de depurar este tipo de problemas es tomar el registro de arranque completo de un teléfono que funciona y compararlo con el registro de arranque completo de un teléfono que no arranca. (Obviamente necesitas una herramienta de comparación que pueda ignorar las marcas de tiempo al comienzo de las líneas. Yo usaría meld con filtros).

Por lo general, el problema es causado por el primer error en el registro. Sin embargo, como he mencionado, el firmware del proveedor suele tener muchos errores en cada arranque por lo que no se puede saber cuáles son fatales si no se conoce un buen registro de arranque para comparar. La línea que mencionas en la pregunta ( ISensorManager/default ) es muy posterior a todos los errores mencionados. Yo asumiría que el ISensorManager El fracaso es sólo el resultado de que las otras cosas vayan mal.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X