O Xposed Framework dispensa apresentações aos leitores do XDA. Quando questionados sobre as coisas que nossa comunidade odeia mais sobre Lollipop, o comentário mais votado na discussão foi que quebrou o apoio ao Xposed. Na verdade, muitos membros do fórum até se recusaram a atualizar para o Lollipop especificamente por esse motivo. Mas tudo isso muda agora, quando o tão aguardado Xposed Framework finalmente chegou para Android Lollipop.
Se você ainda não está familiarizado com o Xposed, simplesmente é uma dádiva de Deus para a comunidade modding. O Xposed não requer atualização de nenhuma ROM, mas traz toneladas de personalização e ajustes que os usuários podem instalar como aplicativos em dispositivos com acesso root. É incrivelmente simples de usar e com risco limitado. E agora, todos os entusiastas do Android no Lollipop podem aproveitar os benefícios deste fantástico projeto em seus dispositivos. Faça o download e comece a modificar!
rovo89 também teve a gentileza de nos fornecer perguntas e respostas sobre o projeto mais recente. Você pode encontrar respostas para todas as suas perguntas sobre o projeto abaixo.
Por que demorou tanto? ART foi publicado há mais de um ano!
Em primeiro lugar – muitas pessoas continuam a pedir apoio ao 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 de arquitetura que você esperaria de um lançamento principal. E é claro que a própria ART está em constante aperfeiçoamento; existem grandes diferenças entre ART for KitKat e ART for Lollipop.
Portanto, um dos motivos é a grande complexidade, que exigiu muitas e muitas horas de trabalho para pesquisa, desenvolvimento e testes.
Outra razão é que há outras coisas na minha vida além do Xposed, então houve semanas ou até meses em que quase não olhei o código.
Precisamos reescrever todos os módulos?
Não, a API Xposed permanece praticamente inalterada. O Xposed abstrai todos os detalhes, então os módulos não precisam se preocupar se estão rodando em Dalvik ou ART. Muitos módulos funcionarão 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 Android, que não é causado pelo ART, mas simplesmente pelas mudanças de arquitetura e código que acontecem entre quaisquer dois Android lançamentos. 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 uma pequena refatoração (mover 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 pelo XDA – obrigado!). O telefone está estável como sempre 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 lançar algo.
Mas então por que é uma versão alfa?
Porque houve grandes mudanças desde a última versão estável que precisam ser testadas por pessoas que sabem como usar uma recuperação, escapar de loops de inicialização e reportar bugs adequadamente. Aconselho fortemente os novatos a esperar até que o Xposed seja testado por pessoas experientes o suficiente.
Existem também 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 de conectá-los.
Eu quero instalá-lo. Agora! O que eu tenho que fazer?
Certifique-se de ler minhas palavras acima e de estar familiarizado com o interior do seu telefone. Obviamente, você precisa estar em uma ROM Lollipop e ter um bom backup de seus dados. Por enquanto, publicarei apenas a versão 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. Atualizar o arquivo zip instalará:
- app_process32_xposed e alguns links simbólicos
- libexposed_art.so
- libart.so e alguns binários + bibliotecas relacionados (baseados em 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 atualizar a partição do sistema. Um arquivo zip para desinstalação ainda não foi criado.
Por que você substitui arquivos ART no meu dispositivo? Isso é mais invasivo do que no Dalvik, causará problemas significativos de desempenho e será instável!
Eu escrevi algumas razões em GitHub. Sim, é mais invasivo, por isso há muito tempo tento evitá-lo, mas do ponto de vista técnico e de suporte, acho que é a melhor opção.
Menos desempenho que o ART original? Provavelmente porque tive que desabilitar algumas otimizações para tornar possíveis certos tipos de ganchos. No entanto, isto afecta apenas uma fracção de todos os métodos e mesmo para estes, a perda de desempenho certamente não é significativa ou perceptível, se é que é mensurável. Ainda existem milhares de outras otimizações realizadas pelo ART, e tentei desabilitar o mínimo possível, proporcionando o máximo de flexibilidade possível.
A estabilidade é boa, conforme mencionado acima. Comparado com a abordagem que usei para Dalvik (modificando as estruturas de dados internas do tempo de execução de app_process), tenho certeza de que substituir completamente as bibliotecas é uma maneira muito mais confiável caminho. Eu poderia integrar minhas alterações no código existente de forma limpa e reutilizar funções relacionadas, enquanto muitos hacks e suposições seriam necessários de outras maneiras.
Você finalmente tornará o código-fonte público?
Claro, você o encontrará no GitHub logo após o lançamento da versão alfa, em um branch separado por enquanto.
Isso significa que as versões mais antigas do Android não são mais suportadas 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 ART poderia ser transferido para o KitKat, mas isso é menos prioritário.
Como posso agradecer pelo seu trabalho?
Muitas pessoas pediram maneiras de doar algum dinheiro, então criei um doação página agora.
Quanto preciso doar para você adicionar o recurso X ou um módulo que faça Y?
Isso não é doar, é pagar alguém na expectativa de trabalho futuro. Não estou interessado em trabalhos freelancers.