O Xposed Framework para Android Lollipop está aqui!

O Xposed Framework não precisa de introdução aos leitores. Quando perguntado sobre o que nossa comunidade mais odeia no Lollipop, o único comentário mais votado na discussão foi que ele quebrou o apoio ao Xposed. De fato, muitos membros do fórum se recusaram a atualizar para o Lollipop especificamente por esse motivo. Mas tudo isso muda agora, já que o altamente esperado Xposed Framework finalmente chegou para o Android Lollipop.

Se você ainda não conhece o Xposed, basta dizer que é uma dádiva de Deus para a comunidade de modding. O Xposed não requer nenhuma ROM de flash, mas traz toneladas de personalização e ajustes que os usuários podem instalar como aplicativos em dispositivos raiz. É incrivelmente simples de usar e com risco limitado. E agora, todos os entusiastas do Android no Lollipop podem aproveitar os benefícios deste projeto fantástico em seus dispositivos. Pegue o seu download e comece a modificar!

Faça o download do Xposed Framwork para Android Lollipop aqui.

rovo89 também teve a gentileza de nos fornecer perguntas e respostas para o projeto mais recente. Você pode encontrar respostas para todas as suas perguntas sobre o projeto abaixo.

Por que demorou tanto tempo? A ART foi publicada há mais de um ano!

Primeiro de tudo - muitas pessoas continuam pedindo apoio à TARV. O Lollipop tem muito mais mudanças do que isso, como políticas SELinux ainda mais rígidas, ROMs de 64 bits e mudanças na arquitetura que você esperaria de um lançamento principal. E é claro que a própria arte está sendo constantemente aprimorada; existem grandes diferenças entre o ART for KitKat e o ART for Lollipop.

Portanto, um dos motivos é a grande complexidade, que exigiu muitas e muitas horas de trabalho para pesquisa, desenvolvimento e teste.

Outra razão é que há outras coisas na minha vida além do Xposed, então houve semanas ou até meses nos quais eu quase nem olhei o código.

Precisamos reescrever todos os módulos?

Não, a API do Xposed é praticamente inalterada. O Xposed abstrai todos os detalhes, para que os módulos não precisem se importar se estão em execução no Dalvik ou ART. Muitos módulos realmente funcionam sem nenhuma alteração, especialmente aqueles que modificam o comportamento dos aplicativos do usuário. Os módulos direcionados ao comportamento do sistema podem precisar ser ajustados ao novo código da estrutura do Android, que não é causado pelo ART, mas simplesmente pelas alterações de arquitetura e código que ocorrem entre duas versões do Android. O mais significativo é que o código dos serviços do sistema foi movido para um arquivo separado. Para a maioria dos módulos afetados, isso pode ser resolvido com um pouco de refatoração (movendo o código para um local diferente).

Está realmente funcionando?

Sim! Pelo menos para mim, está funcionando bem no meu dispositivo diário (Nexus 5 no CM12) e também no meu Nexus 9 (pago por - obrigado!). O telefone está estável como de costume e os aplicativos estão funcionando bem. E, obviamente, os módulos e seus ganchos / substituições de recursos também estão funcionando bem; caso contrário, não faria sentido liberar algo.

Mas então por que é uma versão alfa?

Como ocorreram grandes mudanças desde a última versão estável que precisam ser testadas por pessoas que sabem como usar uma recuperação, escape dos loops de inicialização e relate os erros corretamente. Eu recomendo fortemente aos novatos que esperem até que o Xposed seja testado por pessoas experientes o suficiente.

Também existem alguns casos extremos que ainda não foram testados, como conectar métodos JNI (nativos) e métodos que estão sendo executados no momento em que os conectamos.

Eu quero instalá-lo. Agora! O que eu tenho que fazer?

Certifique-se de ler as minhas palavras acima e familiarizar-se com os internos do seu telefone. Obviamente, você precisa estar em uma ROM do Lollipop e ter um bom backup dos seus dados. Por enquanto, publicarei apenas a versão do ARMv7. 64 bits é mais complexo, então vamos tentar primeiro a variante "fácil".

Por enquanto, a instalação deve ser realizada manualmente em uma recuperação personalizada. Se você piscar o arquivo zip, será instalado:

  • app_process32_xposed e alguns links simbólicos
  • libexposed_art.so
  • libart.so e alguns binários + bibliotecas relacionados (com base no 5.0.2, aprimorados com suporte para hooking etc.)
  • XposedBridge.jar (agora armazenado em / system / framework)

Os backups dos arquivos existentes serão criados automaticamente e poderão ser restaurados posteriormente.

Não funciona / não gosto! Como posso desinstalá-lo?

A maneira mais fácil é restaurar um backup ou fazer o flash da partição do sistema. Um arquivo zip para desinstalação ainda não foi criado.

Por que você substitui os arquivos ART no meu dispositivo? Isso é mais invasivo do que em Dalvik, causará problemas significativos de desempenho e será instável!

Eu escrevi alguns motivos no GitHub. Sim, é mais invasivo, por isso tentei evitá-lo por um longo tempo, mas do ponto de vista técnico e de suporte, acho que é a melhor opção.

Menos desempenho do que o ART original? Provavelmente, como tive que desativar algumas otimizações para possibilitar certos tipos de ganchos. No entanto, isso afeta apenas uma fração de todos os métodos e, mesmo para aqueles, a perda de desempenho certamente não é significativa ou perceptível, mesmo que mensurável. Ainda existem milhares de outras otimizações executadas pelo ART e tentei desativar o mínimo possível, fornecendo o máximo de flexibilidade possível.

A estabilidade é boa, como mencionado acima. Comparado à abordagem que usei para o Dalvik (modificando as estruturas de dados internas do tempo de execução de app_process), tenho certeza de que substituir as bibliotecas completamente é uma maneira muito mais confiável. Eu pude integrar minhas alterações no código existente de forma limpa e reutilizar funções relacionadas, ao passo que muitos hacks e suposições seriam necessários de outras maneiras.

Você finalmente tornará público o código fonte?

Claro, você o encontrará no GitHub logo após o lançamento da versão alfa, em um ramo separado por enquanto.

Isso significa que a versão mais antiga do Android não é mais suportada agora?

Não! O novo código é compilado em todas as versões 4.x do Android e só precisa ser testado antes de um lançamento unificado. Mas primeiro, preciso ter certeza de que está funcionando bem para o Lollipop. Possivelmente, o suporte ao ART pode ser suportado para o KitKat, mas isso é menos prioritário.

Como posso agradecer pelo seu trabalho?

Muitas pessoas pediram maneiras de doar alguns dólares, então eu criei uma página de doações agora.

Quanto eu preciso doar para você adicionar o recurso X ou um módulo que faz Y?

Isso não é doação, está pagando alguém na expectativa de trabalho futuro. Não estou interessado em trabalhos freelancers.