Esto es en relación con este Hilo de XDA y mi hilo conductor en xda. Este es un puesto cruzado de XDA, probando suerte aquí. También hice esta pregunta en Stackoverflow pero estoy cubriendo todas mis bases y probando suerte aquí también.
Especificaciones del dispositivo, por si alguien pregunta
Especificaciones del dispositivo:
- Versión actual de Android: Android Lollipop 5.1.1
- Chipset: Marvell Armada PXA1908 (Nota: Debido a que este es un chip poco utilizado, el CF-Auto Root no funcionará)
- Estado de recuperación personalizado: TWRP 3.0.2-0 (No funciona con lollipop)
- Estado de root (Esto es técnicamente por lo que estoy aquí): Android KitKat 4.4.4 (Root), Android Lollipop 5.1.1 (NO Root todavía)
- ARMv8 64 bits
Ahora vamos a entrar en mis pasos hasta el punto y luego mi problema.
Nota: En el readme del kernel dice que hay que usar el toolchain 4.8 pero cuando lo uso, se queja de no poder encontrar gcc. También en el readme dice "Obtenga la descarga de Toolchain e instale arm-eabi-4.8 toolchain para ARM EABI.(64bit)" y cuando leer arriba en él, dice que hay que usar aarch64 para dispositivos ARM de 64 bits.
El código fuente del dispositivo puede encontrarse en Aquí
cd ~/android
export CROSS_COMPILE=~/android/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-
cd ~/android/kernel
make ARCH=arm64 pxa1908_xcover3lte_eur_defconfig
make ARCH=arm64
Esto produce: Imagen, Imagen.gz, archivos .dts y .dtb.
Donde está el readme del kernel (creo que no se ha actualizado desde kitkat) dice que la salida será, - Kernel : Kernel/arch/arm/boot/zImage - módulo : Kernel/drivers/ / .ko Nota: al intentar compilar con la cadena de herramientas ARM de 32 bits falla, ya que la configuración se encuentra en arm64, mientras que otras configuraciones se encuentran en arm.
Así que sé que tengo un kernel (Imagen o Image.gz), y algunos archivos .dts y .dtb. Ahora a desempaquetar boot.img, aquí es donde se producen los problemas . Al intentar utilizar herramientas como abootimg o las diferentes versiones de unmkbootimg, se quejan de que el boot.img no es estándar.
o
Mientras que también tratan de guardarlo como un zImage cuando se supone que es un Image.gz, o lo extraen sin lanzar ningún error, pero al mirar los archivos extraídos con un editor hexadecimal, es todo 00 a través de los archivos, por lo tanto un archivo inútil.
Así que probé a desempaquetar manualmente con un editor hexadecimal y conseguí obtener el kernel. A la izquierda está mi compilado y a la derecha la versión hexadecimal.
¿Notas la diferencia de tamaño, es porque el kernel en boot.img está despojado de sus elementos de depuración mientras que el mío no lo está? Si es así debería buscar como arreglar eso.
Pero yo soy teniendo problemas al intentar extraer el ramdisk vía hexadecimal. Así que, ¿alguien puede enseñarme/ayudarme a extraer el boot.img correctamente (con herramientas como unmkbootimg o con un editor hexadecimal)
He adjuntado los archivos necesarios por si quieres echarle un vistazo tú mismo. Archivos: Archivos Samsung xCover3
Se agradece cualquier ayuda.