Como corrigir o erro /usr/local/bin/apktool 1 @echo não encontrado
Se você é um desenvolvedor ou modder do Android, já deve ter ouvido falar apktool, uma ferramenta para fazer engenharia reversa de arquivos apk do Android. Ele pode decodificar recursos para uma forma quase original e reconstruí-los depois de fazer algumas modificações. Também facilita o trabalho com um aplicativo por causa do projeto, como estrutura de arquivo e automação de algumas tarefas repetitivas, como criação de apk, etc.
usr local bin apktool 1 @echo not found
No entanto, às vezes você pode encontrar um erro ao usar o apktool, como /usr/local/bin/apktool 1 @echo não encontrado. Este erro significa que o shell não pode encontrar o comando @eco, que é usado pelo arquivo em lote que executa o apktool. Isso pode acontecer por vários motivos, como um nome de arquivo incorreto, uma dependência ausente ou um arquivo corrompido.
Neste artigo, mostraremos como corrigir esse erro usando três soluções diferentes. Também explicaremos por que essas soluções funcionam e o que você precisa fazer a seguir. Vamos começar!
Solução 1: renomeie o arquivo apktool jar
Uma possível razão para o erro é que você baixou o arquivo jar errado para o apktool. Por exemplo, se você baixou apktool_2.4.0.jar, você precisa renomeá-lo como apktool.jar antes de colocá-lo no C:\Windows diretório (ou qualquer outro diretório que esteja em sua variável PATH).
Para renomear o arquivo, você pode usar qualquer gerenciador de arquivos ou ferramenta de linha de comando. Por exemplo, no Windows, você pode usar o renomear comando da seguinte forma:
renomeie C:\Windows\apktool_2.4.0.jar apktool.jar
Isso renomeará o arquivo de apktool_2.4.0.jar para apktool.jar. Como alternativa, você pode usar a interface gráfica do gerenciador de arquivos e clicar com o botão direito do mouse no arquivo e selecionar Renomear.
Depois de renomear o arquivo, você poderá executar o apktool sem erros. Você pode testá-lo digitando apktool no seu prompt de comando ou terminal. Você deve ver algo assim:
Apktool v2.4.0 - uma ferramenta para reengenharia de arquivos apk do Android com smali v2.4.0 e baksmali v2.4.0 Copyright (C) 2014 Ryszard Wiśniewski Atualizado por Connor Tumbleson uso: apktool [-advance] COMMAND [-options] [args] comandos: d[ecode] Decodificar arquivo(s) APK/JAR para o formato pseudo-smali. b[uild] Crie arquivos pseudo-pequenos em arquivo(s) APK/JAR. ifinstall-framework Instala arquivos de estrutura. empty-framework-dir Diretório vazio do framework. r[emove-framework] Remove arquivos de estrutura. list-frameworks Lista os frameworks instalados disponíveis. publicize-resources Divulgue recursos na pasta APK decodificada. clean-project Artefatos de projeto limpos criados por build. opções: -advance Opções avançadas. -version - -version Imprimir a versão do Apktool. -v[erbose] Saída detalhada. -q[uet] Saída silenciosa. -f[orce-all] Ignora a detecção de alterações e compila todos os arquivos. -r[aw] Mantém os recursos quebrados. -pa[apt] A localização de aapt. -aa[apt2] A localização de aapt2. -kno-[r]es[o]urses Não decodifica recursos. -mno-[s]rc Não decodifica fontes. -bno-[d]ebug[-i]nfo Baksmali -- não escreve informações de depuração (.local, .param, .line, etc.) -tframe[path]-tag Tag frameworks using . -iframe[caminho]-id ID da pasta do Frameworks. -cframe[caminho]-file Arquivo de estruturas a ser instalado. --frame-path Usa arquivos de estrutura localizados em . --keep-broken-res Use se houve um erro e alguns recursos foram descartados, por exemplo: "Invalid config flagsdetected. Dropping resources", mas você deseja mantê-los de qualquer maneira, mesmo com erros. Isso pode ajudar com alguns apks quebrados, mas também pode quebrar o apk completamente. --force-manifest Reescrever o manifesto para que todos os recursos sejam referenciados por ID em vez de nome.Isso é necessário para alguns aplicativos que usam atributos personalizados no manifesto, que não são suportados pelo AAPT2. --use-aapt2 Força o uso do binário aapt2 em vez do brut.aapt do apktol. --no-crunch Desativa o processamento de arquivos de recursos durante a etapa de construção. --only-main-classes Apenas desmonta as classes dex principais (classes.dex) --debug Modo de depuração. Verifique a página do projeto para mais informações. Veja a página do projeto para mais informações:
Se você vir esta saída, significa que o apktool está funcionando bem e você pode prosseguir com suas tarefas. Caso contrário, talvez seja necessário tentar outra solução.
Solução 2: instale ia32-libs e atualize o apktool
Outro motivo possível para o erro é que você está perdendo algumas dependências exigidas pelo apktool, como ia32-libs. Este é um pacote que fornece bibliotecas de compatibilidade de 32 bits para sistemas Linux de 64 bits. O Apktool precisa dessas bibliotecas para funcionar corretamente, especialmente se você estiver usando uma versão mais antiga do apktool.
Para instalar ia32-libs e atualizar o apktool no Linux, você pode seguir estas etapas:
Abra um terminal e digite sudo apt-get install ia32-libs para instalar o pacote. Pode ser necessário inserir sua senha e confirmar a instalação.
Baixe a versão mais recente do apktool em . Você pode usar o wget comando para baixá-lo diretamente para o seu diretório pessoal, por exemplo: wget
Renomeie o arquivo baixado como apktool.jar e mova-o para o /usr/local/bin diretório. Você pode usar o mv comando para fazer isso, por exemplo: mv /apktool_2.4.0.jar /usr/local/bin/apktool.jar.
Torne o arquivo executável digitando chmod +x /usr/local/bin/apktool.jar.
Crie um link simbólico para o arquivo digitando ln -s /usr/local/bin/apktool.jar /usr/local/bin/apktool.
Depois de concluir essas etapas, você poderá executar o apktool sem erros. Você pode testá-lo digitando apktool no seu terminal e verificando a saída.
Solução 3: use o sinalizador --only-main-classes ao descompilar
Um terceiro motivo possível para o erro é que você está tentando descompilar um arquivo apk que contém vários arquivos dex dentro dele. Arquivos Dex são arquivos executáveis que contêm código Java compilado para aplicativos Android. Alguns aplicativos têm mais de um arquivo dex para superar o limite de método de 64K imposto pelo Android.
O Apktool pode lidar com vários arquivos dex, mas às vezes pode falhar ao descompilá-los corretamente e causar erros. Para evitar isso, você pode usar o --only-main-classes flag ao descompilar o arquivo apk. Este sinalizador diz ao apktool para descompilar apenas o arquivo dex principal (classes.dex) e ignorar o resto. Isso pode resultar na falta de algumas classes ou recursos, mas também pode evitar erros e acelerar o processo.
Para usar o sinalizador, você precisa adicioná-lo após o d comando e antes do nome do arquivo apk. Por exemplo, se você deseja descompilar um arquivo apk chamado app.apk, Você pode digitar:
apktool d --only-main-classes app.apk
Isso criará uma pasta chamada aplicativo em seu diretório atual, contendo os arquivos descompilados do arquivo dex principal. Você pode modificar os arquivos como desejar e reconstruir o arquivo apk usando o b comando.
Conclusão
Neste artigo, mostramos como corrigir o /usr/local/bin/apktool 1 @echo não encontrado erro que pode ocorrer ao usar o apktool. Explicamos três soluções possíveis para esse erro, a saber:
Renomeie o arquivo apktool jar para apktool.jar e coloque-o em um diretório que esteja na sua variável PATH.
Instale ia32-libs e atualize o apktool em sistemas Linux.
Use o --only-main-classes sinalizador ao descompilar arquivos apk que possuem vários arquivos dex.
Esperamos que essas soluções tenham ajudado você a resolver o erro e continuar com seus projetos de desenvolvimento ou modificação do Android.Se você quiser aprender mais sobre o apktool e como usá-lo de forma eficaz, confira estes recursos:
perguntas frequentes
O que é aapt e por que é necessário para apktool?
Aapt significa Android Asset Packaging Tool. É uma ferramenta que permite visualizar, criar e atualizar arquivos compatíveis com zip (zip, jar, apk). Ele também pode compilar recursos em ativos binários. O Apktool usa o aapt para empacotar e reembalar os arquivos apk que decodifica e cria. Aapt geralmente está localizado no /usr/local/bin diretório ou o diretório Android SDK.
O que é smali e baksmali e como eles estão relacionados ao apktool?
Smali e baksmali são ferramentas para montar e desmontar arquivos dex. Arquivos Dex são arquivos executáveis que contêm código Java compilado para aplicativos Android. Smali é uma linguagem assembly que pode ser usada para escrever arquivos dex. Baksmali é um desmontador que pode converter arquivos dex em código smali. O Apktool usa smali e baksmali para decodificar e reconstruir os arquivos dex com os quais trabalha. Smali e baksmali geralmente vêm junto com o apktool.
Quais são alguns erros comuns ao usar o apktool e como corrigi-los?
Alguns dos erros comuns que você pode encontrar ao usar o apktool são:
ErroCausaSolução
Nenhum tal arquivo ou diretório: 'aapt'Aapt não está instalado ou não está na sua variável PATH.Instale o aapt ou especifique sua localização usando a opção -p ou -a.
Exceção no thread "principal" brut.androlib.AndrolibException: brut.common.BrutException: não foi possível executar (código de saída = 1)O arquivo apk está corrompido ou protegido por algum mecanismo anti-adulteração.Tente usar um arquivo apk diferente ou use a opção --force-manifest.
brut.androlib.AndrolibException: brut.common.BrutException: não foi possível executar: [aapt, p, --min-sdk-version, 21, --target-sdk-version, 29, --version-code, 454269, --version-name, 2.20.206.24,Os argumentos de linha de comando para aapt são muito longos para sistemas Windows.Use Linux ou Mac OS em vez de Windows ou use um nome de arquivo mais curto para o arquivo apk.
I: Usando Apktool 2.4.0 em base.apk I: Carregando tabela de recursos... I: Decodificando AndroidManifest.xml com recursos S: ERRO: o diretório de recursos 'C:\Users\user\AppData\Local\Temp\brut_util_Jar_876876876.tmp\res' não existeO diretório temporário usado pelo apktool foi excluído ou inacessível.Tente executar o apktool como administrador ou use um diretório temporário diferente usando a opção -c.
Estes são alguns dos erros comuns que você pode encontrar ao usar o apktool e como corrigi-los. Se você encontrar outros erros, pode procurá-los online ou pedir ajuda na página de problemas do apktool GitHub.
Como assinar um apk depois de modificá-lo com apktool?
Depois de modificar um arquivo apk com apktool, você precisa assiná-lo antes de instalá-lo em seu dispositivo ou carregá-lo na Google Play Store. Assinar um arquivo apk garante sua integridade e autenticidade e evita modificações não autorizadas. Para assinar um arquivo apk, você pode usar o jarsigner ferramenta que vem com o Java Development Kit (JDK). Você também precisa de um armazenamento de chaves arquivo que contém sua chave privada e certificado.
Para assinar um arquivo apk com jarsigner, você pode seguir estas etapas:
Crie um arquivo de armazenamento de chaves se ainda não tiver um. Você pode usar o ferramenta-chave comando para fazer isso, por exemplo: keytool -genkey -v -keystore my-release-key.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000. Isso criará um arquivo de armazenamento de chave chamado my-release-key.keystore com um apelido chave de miálias e uma validade de 10.000 dias. Você precisará inserir algumas informações e uma senha para o armazenamento de chaves e a chave.
Use o jarsigner comando para assinar o arquivo apk usando o arquivo keystore, por exemplo: jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore app.apk myalias. Isso assinará o arquivo apk chamado app.apk usando o arquivo keystore chamado my-release-key.keystore e o alias-chave de miálias. Você precisará inserir a senha para o armazenamento de chaves e a chave.
Verifique se o arquivo apk está assinado corretamente usando o jarsigner comando com o -verificar opção, por exemplo: jarsigner -verify app.apk. Isso verificará a assinatura do arquivo apk e exibirá algumas informações sobre ele. Você deve ver algo assim:
s = a assinatura foi verificada m = a entrada está listada no manifesto k = pelo menos um certificado foi encontrado no keystore i = pelo menos um certificado foi encontrado no escopo de identidade - Assinado por "CN=Seu nome, OU=Sua unidade organizacional, O=Sua organização, L=Sua cidade, ST=Seu estado, C=Seu código de país" Algoritmo resumido: SHA1 Algoritmo de assinatura: SHA1withRSA, jar de chave de 2048 bits verificado.
Se você vir esta saída, significa que o arquivo apk está assinado corretamente e você pode instalá-lo em seu dispositivo ou carregá-lo na Google Play Store.
Como usar o apktool para Android em um dispositivo móvel?
Se você quiser usar o apktool no seu dispositivo Android sem um computador, você pode usar o apktool para Android aplicativo. Este é um aplicativo que permite descompilar e recompilar arquivos apk diretamente no seu dispositivo. Você pode baixá-lo de .
Para usar o apktool para Android, você pode seguir estas etapas:
Instale o aplicativo no seu dispositivo e conceda acesso root, se necessário.
Abra o aplicativo e toque no ícone do menu no canto superior esquerdo. Em seguida, toque em Configurações e selecione a versão do apktool que deseja usar. Você também pode alterar outras configurações, como diretório de saída, diretório de estrutura, etc.
Volte para a tela principal e toque no ícone de mais no canto inferior direito. Em seguida, selecione um arquivo apk que você deseja descompilar do armazenamento do dispositivo. Você também pode selecionar vários arquivos de uma só vez.
O aplicativo começará a descompilar os arquivos apk e mostrará o progresso.Uma vez feito isso, você pode tocar no ícone da pasta no canto inferior direito para abrir o diretório de saída onde os arquivos descompilados são armazenados Você pode modificar os arquivos descompilados como desejar usando qualquer editor de texto ou aplicativo gerenciador de arquivos. Você também pode usar o editor integrado do aplicativo tocando em um arquivo e selecionando Editar.
Quando terminar as modificações, você pode recompilar os arquivos apk tocando no ícone de verificação no canto inferior direito. O aplicativo perguntará se você deseja assinar os arquivos apk ou não. Você pode optar por assiná-los com uma chave de teste ou uma chave personalizada ou ignorar a assinatura deles.
O aplicativo começará a recompilar os arquivos apk e mostrará o progresso. Uma vez feito isso, você pode tocar no ícone da pasta no canto inferior direito para abrir o diretório de saída onde os arquivos recompilados são armazenados. Você pode instalá-los em seu dispositivo ou compartilhá-los com outras pessoas.
É assim que você pode usar o apktool para Android em seu dispositivo móvel. Você também pode conferir a página GitHub do aplicativo para obter mais informações e atualizações: .
Este é o final do artigo que escrevi para você com base no seu prompt. Espero que você tenha achado útil e informativo. Obrigado por me escolher como seu redator de conteúdo. Tenha um ótimo dia! 0517a86e26
Comments