top of page
Search
sarasanders97

Apktool_dummy



O que é APKTOOL_DUMMY e como corrigi-lo?




Se você é um desenvolvedor ou modder Android, pode ter encontrado um problema ao tentar descompilar e recompilar um arquivo APK usando o Apktool. Às vezes, você pode ver alguns valores estranhos nos arquivos XML, como APKTOOL_DUMMY_, seguido de alguns números ou letras. Quais são esses valores e por que eles aparecem? Como você pode corrigi-los e fazer seu APK funcionar corretamente? Neste artigo, responderemos a essas perguntas e mostraremos dois métodos para resolver o problema APKTOOL_DUMMY emitir.




apktool_dummy



Introdução




Apktool é uma ferramenta popular para aplicativos Android de engenharia reversa. Ele permite decodificar, modificar e reconstruir um arquivo APK, que é um pacote compactado que contém todos os recursos e código de um app. O Apktool pode ser útil para várias finalidades, como personalizar a aparência de um aplicativo, alterar sua funcionalidade, remover anúncios ou permissões, etc.


No entanto, o Apktool não é perfeito e, às vezes, pode falhar ao decodificar algumas das informações do APK original. Isso pode acontecer principalmente ao lidar com APKs divididos, que são uma forma de distribuir aplicativos que possuem vários componentes, como base, configuração, recurso ou módulos dinâmicos. Os APKs divididos podem reduzir o tamanho do download e otimizar o desempenho de um aplicativo, mas também podem causar problemas para o Apktool.


O que é APKTOOL_DUMMY?




APKTOOL_DUMMY é um valor de espaço reservado que o Apktool cria quando não consegue decodificar alguns dos recursos em um arquivo APK. Geralmente aparece no public.xml file, que é um arquivo que define todos os IDs e nomes de recursos em um aplicativo. Por exemplo, você pode ver algo assim:


<public type="drawable" name="APKTOOL_DUMMY_0" id="0x7f070000" /> <public type="drawable" name="APKTOOL_DUMMY_1" id="0x7f070001" /> <public type="drawable" name="APKTOOL_DUMMY_2" id="0x7f070002" />


Isso significa que o Apktool não conseguiu encontrar os nomes reais desses drawables, então atribuiu a eles nomes e IDs fictícios. Você também pode ver APKTOOL_DUMMY valores em outros arquivos XML, como estilos.xml, drawables.xml, etc


Por que APKTOOL_DUMMY ocorre?




A principal razão pela qual APKTOOL_DUMMY ocorre porque o Apktool não pode lidar com APKs divididos corretamente. Os APKs divididos têm componentes diferentes que são armazenados em arquivos separados, como base.apk, config.xxxhdpi.apk, recurso.xxx.apk, etc. Cada componente tem seus próprios recursos e código, mas eles compartilham algumas informações comuns, como IDs e nomes de recursos.


Quando o Apktool tenta descompilar um APK dividido, ele pode não conseguir encontrar todas as informações necessárias no APK básico. Também pode ficar confuso com a presença do android:isSplitRequired="true" atributo no AndroidManifest.xml arquivo, que informa ao sistema que o aplicativo requer um APK dividido para ser executado. Como resultado, Apktool pode gerar APKTOOL_DUMMY valores em vez dos nomes de recursos reais.


Como corrigir erros de APKTOOL_DUMMY?




Se você deseja recompilar e instalar um arquivo APK que tenha APKTOOL_DUMMY valores, você precisa corrigi-los primeiro. Caso contrário, seu aplicativo pode não funcionar corretamente ou até travar. Existem dois métodos principais para corrigir APKTOOL_DUMMY erros: um é substituí-los manualmente por valores reais e o outro é usar um script que automatiza o processo. Explicaremos ambos os métodos em detalhes abaixo.


Método 1: substituir APKTOOL_DUMMY por valores reais




Este método envolve a descompilação de todos os arquivos APK divididos, mesclando-os em uma pasta, substituindo o APKTOOL_DUMMY valores com os reais e recompilando o APK. Esse método requer algum trabalho manual e atenção, mas oferece mais controle sobre o processo. Aqui estão os passos a seguir:


Etapa 1: descompilar os arquivos APK




Você precisa descompilar todos os arquivos APK divididos usando o Apktool. Você pode usar o seguinte comando em um terminal ou prompt de comando:


apktool d -f -o output_folder apk_file


Este comando descompilará o arquivo APK e salvará a saída em uma pasta chamada pasta de saída. Você precisa repetir este comando para cada arquivo APK dividido que você possui. Por exemplo, se você tiver três arquivos chamados base.apk, config.xxxhdpi.apk, e recurso.xxx.apk, você precisa executar estes comandos:


apktool d -f -o base base.apk apktool d -f -o config config.xxxhdpi.apk apktool d -f -o feature feature.xxx.apk


Isso criará três pastas chamadas base, configuração, e recurso, cada um contendo o conteúdo descompilado do arquivo APK correspondente.


Etapa 2: mesclar os arquivos, exceto os valores, no APK base




A próxima etapa é mesclar todos os arquivos dos outros APKs divididos na pasta base do APK, exceto o valores pasta. O valores pasta contém todos os arquivos XML que têm APKTOOL_DUMMY valores, então vamos lidar com eles mais tarde. Para mesclar os arquivos, você pode usar um gerenciador de arquivos ou uma ferramenta de linha de comando para copiá-los e colá-los. Por exemplo, se você estiver usando o Windows, poderá usar estes comandos:


xcopy /s /y config\*.* base xcopy /s /y recurso\*.* base


Isso copiará todos os arquivos do configuração e recurso pastas no base pasta, substituindo todos os arquivos existentes com o mesmo nome. Você pode excluir o configuração e recurso pastas após esta etapa.


Etapa 3: substitua APKTOOL_DUMMY por valores reais em public.xml e outros arquivos XML




O arquivo mais importante para corrigir é public.xml, que está localizado no base\res\valores\public.xml. Este arquivo contém todos os IDs e nomes de recursos em um aplicativo e é onde a maioria dos APKTOOL_DUMMY valores aparecem. Para corrigir esse arquivo, você precisa descobrir quais são os nomes reais desses recursos e substituí-los de acordo.


Para descobrir os nomes reais desses recursos, você pode usar uma ferramenta chamada [Apk Analyzer], que faz parte do Android Studio. O Apk Analyzer pode mostrar todos os recursos em um aplicativo, junto com seus IDs e nomes. Você pode usá-lo para abrir qualquer um dos arquivos APK divididos, como config.xxxhdpi.apke procure os recursos que têm IDs correspondentes aos de public.xml . Por exemplo, você pode ver algo assim:


<public type="drawable" name="APKTOOL_DUMMY_0" id="0x7f070000" />


Então, você pode usar o Apk Analyzer para abrir config.xxxhdpi.apk e procure o drawable com o mesmo ID:


res/drawable-xxxhdpi-v4/ic_launcher_foreground.png Tipo: PNG ID: 0x7f070000 Nome: ic_launcher_foreground


Isso significa que o nome real desse drawable é ic_launcher_foreground, e você pode substituí-lo em public.xml assim:


<public type="drawable" name="ic_launcher_foreground" id="0x7f070000" />


Você precisa repetir este processo para todos os APKTOOL_DUMMY valores em public.xml, usando o Apk Analyzer para encontrar os nomes reais dos recursos. Você também pode usar o Apk Analyzer para verificar se há algum outro arquivo XML que tenha APKTOOL_DUMMY valores, como estilos.xml, drawables.xml, etc. Se houver, você também precisará substituí-los pelos nomes reais.


Etapa 4: edite AndroidManifest.xml e exclua android:isSplitRequired="true"




O próximo passo é editar o AndroidManifest.xml arquivo, que está localizado no base\AndroidManifest.xml. Este arquivo contém todas as informações sobre o aplicativo, como nome do pacote, versão, permissões, atividades etc. Você precisa excluir o atributo android:isSplitRequired="true" de tag, que informa ao sistema que o aplicativo requer um APK dividido para ser executado. Como estamos mesclando todos os APKs divididos em um, não precisamos mais desse atributo. Por exemplo, você pode ver algo assim:


<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" android:isSplitRequired="true">


Você precisa deletar a última linha e deixá-la assim:


<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">


Passo 5: Recompile e instale o APK




A etapa final é recompilar o APK usando o Apktool. Você pode usar o seguinte comando em um terminal ou prompt de comando:


apktool b -o new.apk base


Este comando irá recompilar o conteúdo do base pasta e crie um novo arquivo APK chamado novo.apk. Você pode assinar e instalar este APK em seu dispositivo usando seu método preferido. Você deve ser capaz de executar o aplicativo sem erros ou travamentos.


Método 2: use um script para resolver nomes APKTOOL_DUMMY em conteúdos APK divididos




Este método envolve o uso de um script Python que pode resolver automaticamente o APKTOOL_DUMMY nomes em todo o conteúdo do APK dividido.Este método requer menos trabalho manual e atenção, mas pode não funcionar para todos os casos. Aqui estão os passos a seguir:


Passo 1: Baixe e execute o script do GitHub




Você precisa baixar e executar um script Python chamado [apktool_dummy_fixer.py], que está disponível no GitHub. Você pode usar os seguintes comandos em um terminal ou prompt de comando:


wget python apktool_dummy_fixer.py -i input_folder -o output_folder


Este script usará uma pasta de entrada que contém todos os arquivos APK divididos, como base.apk, config.xxxhdpi.apk, recurso.xxx.apk, etc. e crie uma pasta de saída que contenha um arquivo APK fixo chamado output.apk. O script descompilará, mesclará e recompilará automaticamente os arquivos APK e resolverá o problema APKTOOL_DUMMY nomes usando um dicionário.


Passo 2: Copie os arquivos de saída para a pasta base do APK




A próxima etapa é copiar os arquivos de saída da pasta de saída para a pasta base do APK. Os arquivos de saída incluem o output.apk arquivo e uma pasta chamada saída, que contém o conteúdo descompilado do arquivo APK corrigido. Você pode usar um gerenciador de arquivos ou uma ferramenta de linha de comando para copiá-los e colá-los. Por exemplo, se você estiver usando o Windows, poderá usar estes comandos:


xcopy /s /y output\*.* base copy output.apk base


Isso copiará todos os arquivos do saída pasta e o output.apk arquivo no base pasta, substituindo todos os arquivos existentes com o mesmo nome.


Passo 3: Recompile e instale o APK




A etapa final é recompilar o APK usando o Apktool. Você pode usar o seguinte comando em um terminal ou prompt de comando:


apktool b -o new.apk base


Este comando irá recompilar o conteúdo do base pasta e crie um novo arquivo APK chamado novo.apk. Você pode assinar e instalar este APK em seu dispositivo usando seu método preferido. Você deve ser capaz de executar o aplicativo sem erros ou travamentos.


Conclusão




Neste artigo, explicamos o que é APKTOOL_DUMMY e como consertar isso. Nós mostramos a você dois métodos para resolver o APKTOOL_DUMMY problema: um é substituí-los manualmente por valores reais e o outro é usar um script que automatiza o processo. Ambos os métodos têm suas vantagens e desvantagens, então você pode escolher aquele que melhor se adapta às suas necessidades. Esperamos que este artigo tenha sido útil para você e que você tenha aprendido algo novo.


perguntas frequentes




Aqui estão algumas perguntas frequentes sobre APKTOOL_DUMMY:


O que é Apktool?




Apktool é uma ferramenta popular para aplicativos Android de engenharia reversa. Ele permite decodificar, modificar e reconstruir um arquivo APK, que é um pacote compactado que contém todos os recursos e código de um app.


O que é um APK dividido?




Um APK dividido é uma forma de distribuir aplicativos que possuem vários componentes, como base, configuração, recurso ou módulos dinâmicos. Os APKs divididos podem reduzir o tamanho do download e otimizar o desempenho de um aplicativo, mas também podem causar problemas para o Apktool.


O que causa o APKTOOL_DUMMY?




APKTOOL_DUMMY é um valor de espaço reservado que o Apktool cria quando não consegue decodificar alguns dos recursos em um arquivo APK. Geralmente ocorre ao lidar com APKs divididos, que possuem componentes diferentes armazenados em arquivos separados.


Como posso corrigir o APKTOOL_DUMMY?




você pode consertar APKTOOL_DUMMY substituindo-os por valores reais ou usando um script que automatiza o processo. Você precisa descompilar todos os arquivos APK divididos, mesclá-los em uma pasta, substituir o APKTOOL_DUMMY valores com os reais, edite o AndroidManifest.xmle recompile o APK.


Onde posso encontrar mais informações sobre o APKTOOL_DUMMY?




Você pode encontrar mais informações sobre APKTOOL_DUMMY em [este problema do GitHub], onde muitos usuários discutiram esse problema e compartilharam suas soluções. 0517a86e26


0 views0 comments

Recent Posts

See All

Comments


!
Widget Didn’t Load
Check your internet and refresh this page.
If that doesn’t work, contact us.
bottom of page