Ok, primero me di cuenta de que una de mis aplicaciones de captura de pantalla en una tablet Android 7, no funcionaba (me daba una captura de pantalla en negro), y luego me di cuenta de que esta aplicación no tiene el permiso de "Captura de pantalla"; luego busqué este permiso en Ajustes, pero no pude encontrarlo; luego me di cuenta, que la aplicación bloquea Android causando el reinicio a veces cuando le pides que capture.
(EDIT: extrañamente, - en el contexto de los problemas en este post que se enumeran más adelante, - cuando traté de tomar una captura de pantalla con la prensa de "botón de encendido y el botón de bajar el volumen", funcionó bien).
Así que me las arreglé para entrar en el dispositivo, donde puedo conseguir Root, y quería emitir un comando de captura de pantalla, y terminó así:
# screencap -p out.png
stack corruption detected
Aborted
Intenté lo mismo que un usuario normal, ahí se reportó:
$ screencap -p out.png
Segmentation fault
Una mierda, ¿eh? Además lo he intentado:
# screenrecord out.mp4
... y esto colapsó a Android, y lo reinició.
Por lo tanto, llegar a por qué screencap
no funciona, no parece un problema trivial - pero el dispositivo por lo demás funciona, la pantalla se muestra, etc.
Así que me preguntaba - ¿hay alguna manera alternativa para capturar una pantalla en este contexto (tienen Root en la cáscara en Android 7, la pantalla se representa y se muestra bien, todo lo que aparentemente funciona, aparte de screencap
mismo)?
( Tal vez algunos /dev/...
archivo del nodo del dispositivo, que cuando cat
El programa de la pantalla, te da el contenido actual de la pantalla píxel por píxel (que me imagino que requerirá algo de decodificación antes de que se pueda ver, pero no es un problema, puedo usar tftp para transferir los archivos fuera del dispositivo) )
EDIT: Aquí está el fragmento relacionado de logcat
cuando se produce la caída de la pantalla:
02-12 17:05:01.285 22745 22745 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
02-12 17:05:01.322 22745 22745 D AndroidRuntime: CheckJNI is OFF
02-12 17:05:01.551 22745 22745 D ICU : No timezone override file found: /data/misc/zoneinfo/current/icu/icu_tzdata.dat
02-12 17:05:01.718 22745 22745 W System : ClassLoader referenced unknown path: /vendor/lib64
02-12 17:05:01.719 22745 22745 W System : ClassLoader referenced unknown path: /system/lib64
02-12 17:05:01.930 22745 22745 E memtrack: Couldn't load memtrack module (No such file or directory)
02-12 17:05:01.930 22745 22745 E android.os.Debug: failed to load memtrack module: -2
02-12 17:05:01.951 22745 22745 I Radio-JNI: register_android_hardware_Radio DONE
02-12 17:05:02.092 22745 22745 D AndroidRuntime: Calling main entry com.android.commands.am.Am
02-12 17:05:02.228 22745 22745 D AndroidRuntime: Shutting down VM
02-12 17:05:02.358 18887 22754 I OpenGLRenderer: Initialized EGL, version 1.4
02-12 17:05:02.358 18887 22754 D OpenGLRenderer: Properties::enablePartialUpdates 1
02-12 17:05:02.359 18887 22754 D OpenGLRenderer: Properties::useBufferAge 1
02-12 17:05:02.359 18887 22754 D OpenGLRenderer: Default swap behavior 0
02-12 17:05:02.359 18887 22754 D OpenGLRenderer: Swap behavior 0
02-12 17:05:04.259 16803 16803 W WindowManager: Attempted to remove non-existing token: android.os.Binder@73bede4
02-12 17:05:10.741 22761 22761 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
02-12 17:05:10.756 22761 22761 D AndroidRuntime: CheckJNI is OFF
02-12 17:05:10.890 22761 22761 D ICU : No timezone override file found: /data/misc/zoneinfo/current/icu/icu_tzdata.dat
02-12 17:05:11.019 22761 22761 E memtrack: Couldn't load memtrack module (No such file or directory)
02-12 17:05:11.019 22761 22761 E android.os.Debug: failed to load memtrack module: -2
02-12 17:05:11.024 22761 22761 I Radio-JNI: register_android_hardware_Radio DONE
02-12 17:05:11.080 16562 16562 I main : type=1400 audit(0.0:613): avc: denied { read } for path="/dev/socket/zygote" scontext=u:r:zygote:s0 tcontext=u:r:init:s0 tclass=unix_stream_socket permissive=1
02-12 17:05:11.080 16562 16562 I main : type=1400 audit(0.0:614): avc: denied { getattr } for path="socket:[201098]" dev=sockfs ino=201098 scontext=u:r:zygote:s0 tcontext=u:r:init:s0 tclass=unix_stream_socket permissive=1
02-12 17:05:11.081 22761 22761 D AndroidRuntime: Calling main entry com.android.commands.am.Am
02-12 17:05:11.100 16562 16562 I main : type=1400 audit(0.0:615): avc: denied { write } for path="/dev/socket/zygote" scontext=u:r:zygote:s0 tcontext=u:r:init:s0 tclass=unix_stream_socket permissive=1
02-12 17:05:11.118 16803 16855 I ActivityManager: Start proc 22770:android.process.media/u0a10 for broadcast com.android.providers.media/.MediaScannerReceiver
02-12 17:05:11.189 22770 22770 W System : ClassLoader referenced unknown path: /system/priv-app/MediaProvider/lib/arm
02-12 17:05:11.293 22770 22783 D libEGL : loaded /vendor/lib/egl/libEGL_tegra.so
02-12 17:05:11.306 22770 22783 D libEGL : loaded /vendor/lib/egl/libGLESv1_CM_tegra.so
02-12 17:05:11.310 22770 22770 W System : ClassLoader referenced unknown path: /system/priv-app/DownloadProvider/lib/arm
02-12 17:05:11.312 22770 22770 D ApplicationLoaders: ignored Vulkan layer search path /system/priv-app/DownloadProvider/lib/arm:/system/priv-app/DownloadProvider/DownloadProvider.apk!/lib/armeabi-v7a:/system/lib:/vendor/lib for namespace 0xa8751090
02-12 17:05:11.479 22770 22783 D libEGL : loaded /vendor/lib/egl/libGLESv2_tegra.so
02-12 17:05:11.560 22770 22770 D MediaScannerReceiver: action: android.intent.action.MEDIA_SCANNER_SCAN_FILE path: /
02-12 17:05:11.562 16803 16852 I ActivityManager: Killing 19204:com.android.packageinstaller/u0a17 (adj 906): empty #17
02-12 17:05:11.564 22761 22761 D AndroidRuntime: Shutting down VM
02-12 17:05:11.579 16803 17333 D GraphicsStats: Buffer count: 7
02-12 17:05:11.580 16803 17283 D ActivityManager: cleanUpApplicationRecord -- 19204
02-12 17:05:11.603 22757 22757 F libc : stack corruption detected
02-12 17:05:11.603 22757 22757 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 22757 (screencap)
02-12 17:05:11.604 127 127 W : debuggerd: handling request: pid=22757 uid=0 gid=0 tid=22757
02-12 17:05:11.662 22787 22787 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
02-12 17:05:11.663 22787 22787 F DEBUG : Build fingerprint: 'samsung/GT-P7500/GT-P7500:4.0.4/IMM76D/XXLQ8:user/release-keys'
02-12 17:05:11.663 22787 22787 F DEBUG : Revision: '14'
02-12 17:05:11.663 22787 22787 F DEBUG : ABI: 'arm'
02-12 17:05:11.664 22787 22787 F DEBUG : pid: 22757, tid: 22757, name: screencap >>> screencap <<<
02-12 17:05:11.664 22787 22787 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
02-12 17:05:11.683 22787 22787 F DEBUG : Abort message: 'stack corruption detected'
02-12 17:05:11.683 22787 22787 F DEBUG : r0 00000000 r1 000058e5 r2 00000006 r3 00000008
02-12 17:05:11.683 22787 22787 F DEBUG : r4 a9bb957c r5 00000006 r6 a9bb9524 r7 0000010c
02-12 17:05:11.683 22787 22787 F DEBUG : r8 beb7ba33 r9 00000001 sl 00000500 fp 00000005
02-12 17:05:11.683 22787 22787 F DEBUG : ip 00000016 sp beb7b760 lr a8f2b477 pc a8f2dccc cpsr 000f0010
02-12 17:05:11.705 22787 22787 F DEBUG :
02-12 17:05:11.705 22787 22787 F DEBUG : backtrace:
02-12 17:05:11.705 22787 22787 F DEBUG : #00 pc 0004cccc /system/lib/libc.so (tgkill+12)
02-12 17:05:11.705 22787 22787 F DEBUG : #01 pc 0004a473 /system/lib/libc.so (pthread_kill+34)
02-12 17:05:11.705 22787 22787 F DEBUG : #02 pc 0001c649 /system/lib/libc.so (raise+10)
02-12 17:05:11.705 22787 22787 F DEBUG : #03 pc 00018169 /system/lib/libc.so (__libc_android_abort+34)
02-12 17:05:11.705 22787 22787 F DEBUG : #04 pc 00016910 /system/lib/libc.so (abort+4)
02-12 17:05:11.705 22787 22787 F DEBUG : #05 pc 0001a627 /system/lib/libc.so (__libc_fatal+22)
02-12 17:05:11.705 22787 22787 F DEBUG : #06 pc 0004b183 /system/lib/libc.so (__stack_chk_fail+6)
02-12 17:05:11.705 22787 22787 F DEBUG : #07 pc 00001765 /system/bin/screencap
02-12 17:05:11.705 22787 22787 F DEBUG : #08 pc 00016061 /system/lib/libc.so (__libc_init+48)
02-12 17:05:11.705 22787 22787 F DEBUG : #09 pc 00001344 /system/bin/screencap
02-12 17:05:11.767 16803 16921 W NativeCrashListener: Couldn't find ProcessRecord for pid 22757
02-12 17:05:11.767 22787 22787 E : AM data write failed: Broken pipe
02-12 17:05:11.769 127 127 W : debuggerd: resuming target 22757
02-12 17:05:11.771 16803 16859 I BootReceiver: Copying /data/tombstones/tombstone_05 to DropBox (SYSTEM_TOMBSTONE)
1 votos
No estoy seguro de si está relacionado, pero hay Xposed módulo DisableFlagSecure que me permite tomar capturas de pantalla de cualquier pantalla (incluso aplicaciones prohibidas como la banca)