Sono stato coinvolto nello smontaggio di app Android utilizzando baksmali e dexpler. Ogni volta che smonta un'app, trovo intatti i pacchetti e la gerarchia dei pacchetti (che sarebbe stata disponibile nello scenario di sviluppo). Ad esempio, quando disassembro un'app task manager (MD5: 3377f8527479ab4e72bf9fa5eec62abe), ottengo la gerarchia dei pacchetti come mostrato nella figura seguente. .
In questo contesto, ho le seguenti domande,
- Questa gerarchia di pacchetti Java verrà preservata e conservata durante la creazione di app. Quando sviluppiamo app, ovviamente, utilizziamo molti pacchetti e li inseriamo in una gerarchia mentre costruiamo l'app. Ma tutto il codice scritto dagli sviluppatori verrà convertito in un singolo file classes.dex. Le informazioni sulla gerarchia dei pacchetti e dei pacchetti verranno conservate in questo file classes.dex o in qualsiasi altra parte del file apk (come META-INF)?
- Se questa informazione non è disponibile da .dex, da dove proviene? In che modo ogni strumento di disassemblaggio / decompilazione riesce a estrarre questa gerarchia di pacchetti?
- Dove trovare documentazione / documentazione relativa ai pacchetti e alla gerarchia dei pacchetti nel processo di creazione di app? Ho provato a sfogliare la documentazione di Android invano.