Cosa è esattamente framework-res.apk


9

A quanto ho capito, è un grande file di sistema che apparentemente controlla gran parte del telefono. Sono interessato perché volevo fare alcuni temi e finora avevo modificato SystemUI.apk, ma se mai avessi incontrato problemi (ed essendo un principiante che doveva succedere) nulla sembrava accadere se non il fatto che ho perso la mia barra di notifica.

Il problema è che ho sentito parlare di alcune persone che hanno toccato framework-res.apk e hanno finito per non riuscire nemmeno ad avviare il telefono. Ho deciso prima di frugare distrattamente in giro con qualcosa che potrebbe potenzialmente danneggiare il mio telefono, vorrei saperne di più.

Quindi cos'è esattamente framework-res.apk? A cosa serve? Che cosa controlla? Dove possiamo vederlo visivamente? Cosa potrebbe succedere potenzialmente al mio telefono se qualcosa dovesse andare storto con la risoluzione del framework? Qualcos'altro che dovrei sapere prima di infilare il naso dove non dovrebbe essere?

Risposte:


8

Framework-res.apkcontiene fondamentalmente gli elementi dell'interfaccia utente grafica per il telefono. Questo file è disponibile all'indirizzo /system/framework/framework-res.apk.

Colpire in questo file significherebbe cambiare l'aspetto completo del tuo dispositivo. Dal momento che è l'elemento principale del tuo schermo, sostituirlo direttamente spingendolo attraverso ADB porterebbe a soft-brick. Pertanto, questo apk deve essere accuratamente modificato e sostituito utilizzando il modulo di ripristino del telefono.

Controlla questo link per i dettagli sullo stesso: modifica di framework-res.apk (Theming the UI)


3

Dalla mia esperienza di programmazione, posso dire quanto segue come mia comprensione:

Se hai familiarità con le terminologie di sviluppo delle applicazioni, questo framework-res.apk è solo una libreria di risorse. Continuando con tale presupposto, altri moduli e librerie dipendono da questo file per ottenere immagini, suoni, ecc. Ad esempio, il suono dell'animazione di avvio è incorporato in questo file. Ad ogni risorsa verrà generalmente assegnato un identificatore con il caricamento degli altri moduli e si limiteranno ad assumere o dare per scontato che tale risorsa sarà disponibile in questo file.

Generalmente ci sarà un file manifest che indicizzerà tutte le risorse (immagini, suoni, ecc.) Rispetto al suo identificatore. I segmenti di codice che mappano le risorse rispetto al suo identificatore e che recuperano la risorsa richiesta saranno compilati su una piattaforma / versione / libreria e quindi modificare e ricompilare se non fatto con cura renderà framework-res.apk incompatibile con i suoi moduli di consumo. A seconda di come vengono implementate le cose, potresti cavartela con un errore, ma gli sviluppatori non possono aspettarsi di verificare tutto e devono dare certe cose per scontate (come la presenza di una risorsa in quanto sono loro che l'hanno piantata). Quindi di solito il modulo di consumo si blocca e quindi l'intero telefono sembra essere congelato come moduli di sistema e dipende da questo apk.


0

Se si desidera modificare il file AndroidManifest.xml di framework-res.apk penso che sia necessario firmare tutti gli apk di sistema con la propria chiave per evitare il bootloop. Se vuoi cambiare altre cose in framework-res.apk: "trascina la cartella meta-inf e androidmanifest.xml dall'apk originale all'apk modificato usando 7zip o winrar"

Nel framework-res.apk puoi cambiare alcune idee come il livello di protezione ecc. È interessante: https://www.reddit.com/r/LineageOS/comments/9z728h/how_to_change_frameworkresapk_without_bootloop/

I miei errori quando firmo tutte le app di sistema con la mia chiave: non riesco a firmare nuovamente l'app di sistema Android senza l'arresto anomalo delle app (usando LineageOS)

Impossibile firmare nuovamente l'app di sistema Android senza crash dell'app (utilizzando LineageOS)

Ha problemi simili e ha creato un update.zip: /programming/9475576/resigning-system-img-on-a-device

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.