1 votos

¿Qué hace un Android de 64 bits, excepto el núcleo?

Tengo un teléfono (Samsung Galaxy A320F (AKA "A3 (2017)") con la ROM de stock que contiene un kernel armv8l de 64 bits (Linux 3.18.14) y un espacio de usuario de 32 bits con la plataforma Android 8.0.0 de 32 bits. Algunas aplicaciones de Android sólo proporcionan bibliotecas basadas en el NDK de 64 bits, lo que las hace incompatibles con esta configuración.

He intentado transferir algunos binarios ELF64 al teléfono, como gdb , strace , gphoto2 junto con libc.so.6 , ld-linux-aarch64.so.1 y otras partes de glibc. Funcionan bien, así que confío en la capacidad del kernel para manejar esos binarios.

Ahora me gustaría tratar de hacer que la plataforma Android sea capaz de 64 bits. En particular, estoy interesado en hacer que el APK de 64 bits sea capaz de comunicarse con la pantalla, la pantalla táctil y un dispositivo USB conectado al teléfono. Tengo acceso Root (a través de Magisk), así que en principio, puedo hackear el sistema como quiera.

Mi pregunta es ahora: ¿qué componentes hacen que la plataforma Android sea de 32 o 64 bits? ¿Es sólo la VM, o tal vez algunas bibliotecas adicionales? ¿O tiene que haber también una parte de 64 bits de la HAL? ¿Cuántos de estos componentes podrían tomarse de, por ejemplo, Lineage OS sin tener que instalar el Lineage OS completo? ¿Alguien ha intentado hacer un mod similar?

1 votos

En mi opinión, puede ser más fácil unirse al desarrollo de una ROM personalizada basada en 64 bits para tu dispositivo en xda-developers.com. Yo asumiría que esto es mucho más fácil que tratar solo de modificar una versión existente de Android no tiene las fuentes para un gran número de componentes / binarios.

1 votos

0 votos

@IrfanLatif aunque interesante, no aborda en absoluto esta cuestión. De esa respuesta he aprendido principalmente que un verdadero sistema operativo Android de 64 bits puede tener un montón de procesos de 32 bits (siempre que haya soporte de CPU y kernel para el modo de compatibilidad), pero nada acerca de qué componentes permiten la compatibilidad de la plataforma con APKs de 64 bits-NDK.

0voto

ebelisle Puntos 639

Para un Android de 64 bits, todas las particiones deben ser de 64 bits. En tu caso, la partición del sistema es de 32 bits. Samsung ha hecho esta estafa con el Galaxy J8 también, puedo entender su dolor.

0 votos

¿Qué significa que una partición sea de 32 o 64 bits? El sistema de archivos debe ser el mismo, independientemente del bit del núcleo o del espacio de usuario.

-1voto

MichaSchumann Puntos 106

Registro hacer un sistema de 32 bits o 64 bits . 8 bit = 1 Bytes y 32 bit = 4 Bytes y 64 bit = 8 Bytes . Así que significa que los registros de 32 bits pueden almacenar 4 Bytes de información por Registro y los registros de 64 bits pueden almacenar 8 Bytes de información por Registro. No sé más. Lo siento pero mi inglés es malo.

0 votos

Ningún registro lo consigue. El sistema descrito en el OP tiene un kernel de 64 bits en una CPU de 64 bits, pero sigue siendo Android de 32 bits.

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