Resumen para el paciente hospitalizado: Quiero ejecutar una nueva versión de Android en un viejo smarphone (s3mini).
(Perdón por el mal inglés, soy alemán. Siéntete libre de corregir mi gramática en los comentarios)
Hola programadores y fans de Android,
Como sabrás, la mayoría de los teléfonos inteligentes Android sólo reciben actualizaciones durante un corto período de tiempo hasta que el fabricante de hardware deja de dar soporte a ese teléfono inteligente. Por ejemplo, mi smartphone (s3mini GT-I8200N) todavía tiene Android 4.2.2, que obviamente no es el ideal.
Por favor, corrígeme si entiendo algo mal aquí, pero AFAIK todos los datos del teléfono, incluyendo los drivers se borran si flasheo una ROM personalizada (por ejemplo, Stock Android 7.0 o LineageOS). Debido a que el fabricante (en este caso Samsung) no publica sus drivers, la comunidad tiene que escribir sus propios drivers para cada smartphone (que obviamente no son tan buenos como los drivers escritos por el fabricante porque conocen mejor el hardware).
Es posible obtener una concha de root en el smartphone / ejecutar mi propio programa como root en el smartphone. Debido a que un proceso Root puede leer/escribir todos los archivos del dispositivo excepto el kernel, y Android 7.0/LineageOS está disponible públicamente, debería ser posible escribir un programa que actualice cada uno de los archivos del sistema Android. Actualizar el kernel con privilegios de root tampoco debería ser un problema ya que el kernel de linux está firmado. Así que ese es el plan:
Paso 1: Descargar y compilar Android 7.0/LineageOS
Paso 2: Copiar CompiledAndroid7.0.tar y el programa en el smartphone
Paso 3: Iniciar el programa con Derechos de root
Paso 4: El programa termina cualquier otro proceso
Paso 5: El programa elimina todos los archivos del smartphone excepto los controladores, el kernel, los módulos del kernel, los archivos relacionados con el cargador de arranque, el propio programa y CompiledAndroid7.0.tar
Paso 6: El programa desempaqueta CompiledAndroid7.0.tar en el directorio root (/) (El programa tiene que ser capaz de desempaquetar un archivo .tar sin ningún otro software excepto el kernel. Pero esto no debería ser difícil de hacer, sólo Copiar+Pegar desde el software de código abierto de desempaquetado).
Paso 7: Instalar el nuevo kernel firmado (vía llamada al sistema) y reiniciar.
Ahora tienes un viejo smartphone con Stock Android 7.0/LineageOS y los drivers originales!
¿Podría funcionar en principio o entendí algo mal en la forma en que funcionan los Smartphones Android?
Un comentario decía que el paso 4 podría hacer que mi teléfono se estropeara. Una buena solución sería que el programa reemplace a init con una copia de sí mismo y luego ejecute "reinicio de sudo"
¿Funcionan los viejos módulos/controladores del núcleo con las nuevas versiones de Linux? Si no, ¿por qué?
ACTUALIZACIÓN
Quiero agradecerles a todos ustedes por su ayuda. La idea de arriba no funcionará, así que tengo que enfadarme con Google por no tener buenos servidores de actualización para Android y no asegurarme de que los viejos módulos del núcleo funcionen y enfadarme con Samsung porque no publican la fuente de los controladores o los controladores actualizados. Si encuentro el tiempo para hacerlo, comprobaré si LineageOS es compatible con mi dispositivo y si no, escribiré los drivers.
0 votos
Cualquier ROM que no sea del fabricante es una ROM personalizada. Las ROM del fabricante son de stock.
0 votos
Sé que cualquier ROM que no sea del fabricante es una ROM personalizada.