Lollipop İçin Xposed Artık Resmi Olarak Satışta

Xposed Framework'ün XDA okuyucularıyla tanışmasına gerek yok. Topluluğumuzla ilgili şeyler sorulduğunda Lollipop'tan en çok nefret ediyorumTartışmada en yüksek oyu alan tek yorum, Xposed'a verilen desteğin kırılmasıydı. Aslında birçok forum üyesi özellikle bu nedenle Lollipop'a güncelleme yapmayı bile reddetti. Ancak merakla beklenen Xposed Framework'ün sonunda Android Lollipop'a ulaşmasıyla birlikte artık her şey değişti.

Henüz Xposed'a aşina değilseniz, basitçe söylemek gerekirse, bu, modlama topluluğu için bir lütuftur. Xposed, herhangi bir ROM'un yanıp sönmesini gerektirmez, ancak kullanıcıların köklü cihazlara benzer uygulamalar yükleyebilecekleri tonlarca özelleştirme ve ince ayar sunar. Kullanımı inanılmaz derecede basittir ve riski sınırlıdır. Ve artık Lollipop'taki tüm Android tutkunları, bu harika projenin avantajlarından cihazlarında yararlanabilir. İndirdiğiniz dosyayı alın ve modlamaya başlayın!

rovo89 ayrıca son projemiz için bize soru-cevap sunma nezaketinde bulundu. Projeyle ilgili tüm sorularınızın cevabını aşağıda bulabilirsiniz.

Neden bu kadar uzun sürdü? ART bir yıldan fazla bir süre önce yayınlandı!

Öncelikle birçok kişi ART desteği istemeye devam ediyor. Lollipop'ta bundan çok daha fazla değişiklik var; örneğin daha katı SELinux politikaları, 64-bit ROM'lar ve büyük bir sürümden bekleyeceğiniz mimari değişiklikler. Ve tabii ki ART'ın kendisi de sürekli geliştiriliyor; KitKat için ART ile Lollipop için ART arasında büyük farklar var.

Bunun bir nedeni, araştırma, geliştirme ve test için saatlerce çalışma gerektiren büyük karmaşıklıktır.

Diğer bir sebep ise hayatımda Xposed dışında başka şeylerin de olması, dolayısıyla koda neredeyse hiç bakmadığım haftalar, hatta aylar oldu.

Tüm modülleri yeniden yazmamız gerekiyor mu?

Hayır, Xposed API neredeyse hiç değişmedi. Xposed tüm detayları özetliyor, bu nedenle modüllerin Dalvik'te mi yoksa ART'ta mı çalıştığını umursamalarına gerek yok. Pek çok modül, özellikle de kullanıcı uygulamalarının davranışını değiştirenler, aslında hiçbir değişiklik yapmadan çalışacaktır. Sistem davranışını hedefleyen modüllerin yeni Android çerçeve koduna ayarlanması gerekebilir. ART'tan değil, herhangi iki Android arasında meydana gelen mimari ve kod değişikliklerinden kaynaklanmaktadır Salıverme. Bunlardan en önemlisi sistem hizmetlerine ait kodun ayrı bir dosyaya taşınmasıdır. Etkilenen modüllerin çoğu için bu durum, küçük bir yeniden düzenleme (kodu farklı bir yere taşıma) ile çözülebilir.

Gerçekten çalışıyor mu?

Evet! En azından benim için günlük cihazımda (CM12'de Nexus 5) ve ayrıca Nexus 9'umda (XDA tarafından ödendi - teşekkürler!) gayet iyi çalışıyor. Telefon her zamanki gibi stabil ve uygulamalar iyi çalışıyor. Ve açıkçası, modüller ve bunların kancaları/kaynak değişimleri de iyi çalışıyor, aksi takdirde bir şeyi yayınlamanın hiçbir anlamı olmazdı.

Peki o zaman neden alfa versiyonu?

Çünkü son kararlı sürümden bu yana, kurtarmayı nasıl kullanacağını, önyükleme döngülerinden kaçmayı ve hataları doğru şekilde bildirmeyi bilen kişiler tarafından test edilmesi gereken çok büyük değişiklikler oldu. Yeni başlayanlara, Xposed yeterince deneyimli kişi tarafından test edilene kadar beklemelerini şiddetle tavsiye ediyorum.

Ayrıca, JNI (yerel) yöntemlerin kancalanması ve bunların takılması sırasında yürütülen yöntemler gibi henüz test edilmemiş bazı uç durumlar da vardır.

Yüklemek istiyorum. Şimdi! Ne yapmam gerek?

Yukarıdaki sözlerimi okuduğunuzdan ve telefonunuzun dahili özelliklerine aşina olduğunuzdan emin olun. Açıkçası, bir Lollipop ROM'da olmanız ve verilerinizin iyi bir yedeğini almanız gerekir. Şimdilik sadece ARMv7 versiyonunu yayınlayacağım. 64-bit daha karmaşıktır, o yüzden önce "kolay" versiyonu deneyelim.

Şimdilik kurulumun özel bir kurtarma işleminde manuel olarak gerçekleştirilmesi gerekiyor. Zip dosyasının yanıp sönmesi aşağıdakileri yükleyecektir:

  • app_process32_xposed ve bazı sembolik bağlantılar
  • libexposed_art.so
  • libart.so ve bazı ilgili ikili dosyalar + kütüphaneler (5.0.2'ye dayalı, kancalama vb. desteğiyle geliştirilmiş)
  • XposedBridge.jar (şimdi /system/framework'te saklanıyor)

Mevcut dosyaların yedekleri otomatik olarak oluşturulacak ve daha sonra geri yüklenebilecektir.

Çalışmıyor/Hoşuma gitmedi! Bunu nasıl kaldırabilirim?

En kolay yol, bir yedeği geri yüklemek veya sistem bölümünü flaş etmektir. Kaldırma için bir zip dosyası henüz oluşturulmadı.

Cihazımdaki ART dosyalarını neden değiştiriyorsunuz? Bu, Dalvik'tekinden daha istilacıdır, önemli performans sorunlarına neden olur ve istikrarsız olur!

Bazı nedenleri yazdım GitHub. Evet, daha invaziv olduğundan uzun süre bundan kaçınmaya çalıştım, ancak teknik ve destek odaklı bir bakış açısından bunun daha iyi bir seçenek olduğunu düşünüyorum.

Orijinal ART'tan daha mı az performans? Muhtemelen, belirli türdeki kancaları mümkün kılmak için bazı optimizasyonları devre dışı bırakmak zorunda kaldığım için. Ancak bu, tüm yöntemlerin yalnızca bir kısmını etkiler ve bunlar için bile performans kaybı, ölçülebilir olsa bile kesinlikle önemli veya fark edilebilir değildir. ART tarafından gerçekleştirilen binlerce başka optimizasyon daha var ve mümkün olduğunca fazla esneklik sağlarken mümkün olduğunca azını devre dışı bırakmaya çalıştım.

Stabilite yukarıda belirtildiği gibi iyidir. Dalvik için kullandığım yaklaşımla (çalışma zamanının dahili veri yapılarını değiştirmek) karşılaştırıldığında app_process), kütüphaneleri tamamen değiştirmenin çok daha güvenilir olduğundan bile eminim. yol. Değişikliklerimi mevcut koda temiz bir şekilde entegre edebilir ve ilgili işlevleri yeniden kullanabilirdim; oysa diğer yollar için birçok hack ve varsayıma ihtiyaç duyulacaktı.

Sonunda kaynak kodunu herkese açık hale getirecek misiniz?

Elbette, alfa sürümünün yayınlanmasının hemen ardından GitHub'da, şimdilik ayrı bir dalda bulacaksınız.

Bu, eski Android sürümünün artık desteklenmediği anlamına mı geliyor?

HAYIR! Yeni kod, Android'in tüm 4.x sürümlerinde derleniyor ve yalnızca birleşik bir sürümden önce test edilmesi gerekiyor. Ama önce Lollipop'ta iyi çalıştığından emin olmam gerekiyor. Muhtemelen ART desteği KitKat'a aktarılabilir ancak bu daha az önceliklidir.

Çalışmanız için size nasıl teşekkür edebilirim?

Birçok kişi birkaç kuruş bağışlamanın yollarını istedi, bu yüzden ben de bir bağış şimdi sayfa.

X özelliğini veya Y işlevini yapan bir modülü eklemeniz için ne kadar bağış yapmam gerekiyor?

Bu bağış yapmak değil, bu gelecekteki iş beklentisiyle birine ödeme yapmaktır. Freelancer işleriyle ilgilenmiyorum.