Android Nougat için Resmi Xposed Çerçevesi Burada

Uzun bir bekleyişin ardından Xposed Framework'ün geliştiricisi, projenin artık Android Nougat'ı desteklediğini resmi olarak duyurdu. Xposed Modüllerini şimdi yükleyin!

Android ekosistemi yıllar geçtikçe olgunlaştıkça, giderek daha az sayıda kullanıcı, cihazlarını neden rootlamaları gerektiğine dair nedenler buluyor. Deneyimi tatmin edici buldukları veya başka bir oyun oynamak istemedikleri için stok üretici yazılımında kalmayı tercih eden kullanıcılar arasında giderek artan bir eğilim var. Google'ın SafetyNet API'sini içeren kedi-fare oyunu. Ancak 2016'nın başlarında bir kullanıcıya neden telefonunu rootladığını sorarsanız, belki de size verilen bir numaralı neden, bu işlemi yapabilmeleriydi. Xposed Çerçevesini yükleyin. Oldu Android 7.0 Nougat'ın üzerinden bir yıldan fazla süre geçti ilk kez yayınlandı ama uzun bekleyiş sonunda sona erdi: Android Nougat için resmi Xposed Çerçevesi nihayet kullanıma sunuldu.

Geçtiğimiz yıl boyunca XDA Kıdemli Tanınmış Geliştiricisi rovo89Xposed Framework'ün lider geliştiricisi, şunları sağladı:

birçokgüncellemeler Android Nougat için Xposed Framework'ün ilerlemesi hakkında. Bazıları için, beklemek tolere edilebilirdi çoğunlukla Xposed Framework'ün sunduğu çok sayıda ek işlevsellik nedeniyle Android Hatmi. Ancak pek çok kişi cihazlarında Xposed'sız bir hayata geçti.

Geliştirici Abforce bir proje yayınladığında projede yenilenen heyecana bir göz attık. AOSP 7.1.2 için ART alt modülü, ancak bizim GermainZ'in de işaret ettiği gibi resmi Xposed Çerçevesini beklemek daha iyi olurdu Abforce'un uygulaması, çerçevenin özel ROM'lara entegre edilmesini gerektirdiğinden sürüm. Üstelik, Bu resmi olmayan uygulama eksikti ve belirli Xposed uygulamalarında tutarsız veya hatalı davranışlara yol açıyordu Modüller.

Abforce, resmi olmayan Xposed'ın Android 7.1 Nougat'ta çalışmasını sağlamakta harika bir iş çıkarsa da, uygulaması ters gitti. rovo89'un Xposed için vizyonu; kullanıcılar ve geliştiriciler için güvenilir ve kullanımı kolay bir sözleşme sağlayan istikrarlı bir çözüm olması gerektiğidir benzer. Bununla kastettiğimiz, yalnızca modüllerin kullanıcılar için sorunsuz çalışması değil, aynı zamanda modüllerin ayarlanma şeklidir. up'ın kullanıcılar arasında tutarlı olması gerekir, böylece geliştiriciler bir uygulamanın sorumlusunun Xposed Modülü olup olmadığını bilecek kaza.

Artık rovo89 gibi sorunlar hakkında endişelenmemize gerek yok (XDA Tanınan Geliştiricinin biraz yardımından sonra) kadın) artık Xposed Framework ve Installer için resmi bir güncelleme yayınlamaya hazır. Android 7.0/7.1 Nougat'la uyumluluk. Bu, özel bir ROM kurmanıza veya kararsız sürümlerin yanıp sönmesiyle uğraşmanıza gerek kalmayacağı anlamına gelir. Xposed'ın keyfini çıkarın; telefonunuzu rootlayın ve en yeni Xposed Installer uygulamasını yükleyin (aşağıda bağlantısı verilmiştir) ve the Xposed Installer sizin için Xposed yükleme büyüsünü yapacak.

Xposed Yükleyicisi Modül Deposuna Göz Atıyor

Bu, bazı zihinlere biraz geç görünebilir, özellikle de bu sürüm geldiğinden beri. Android 8.0 Oreo'nun piyasaya sürülmesinden bir aydan fazla bir süre sonra. Önümüzdeki aylarda çok az cihazın Android Oreo'nun kararlı bir sürümüne erişebileceğini unutmayın. Android Oreo sadece 0.2% tüm Android cihazların Google'ın en son istatistiklerine göre (Nougat'ta ~%18 ile karşılaştırıldığında) ancak kullanıcılarımızın çoğu, son teknolojide kalmak için özel ROM'lar yüklemeyi seven türdendir.

Ekim 2017 itibarıyla Android Sürüm Dağıtımı. Kaynak: Google

Gerçi bir kurulum yapsanız bile Android 8.0'ın resmi olmayan bağlantı noktası Forumlarımızda çok sayıda cihazda bulunan bu bağlantı noktalarının birçoğu günlük sürücü durumu değildir. Yepyeni bir ürün için yüzlerce dolar harcamaya istekli olmadığınız sürece Google Piksel 2/2 XL, Sony Xperia XZ1/XZ1 Kompaktveya yakında çıkacak bir cihaz gibi Huawei Mate 10, o zaman muhtemelen Android Nougat'taki Xposed Framework'ün birkaç aylık kullanımını sıkıştırabileceksiniz.

Bu size benziyorsa Xposed Installer ve çerçeve ziplerini Android Nougat cihazınızda kurup çalıştırmak için resmi forum başlığına gidin.

Xposed Installer v3.1.2'yi İndirin (Ek)

Nougat 7.0 (SDK24) İndirme için Xposed Yükleyici

Nougat 7.1 (SDK25) İndirme için Xposed Yükleyici

Xposed Framework'ün ne için kullanılabileceğini veya nasıl çalıştığını bilmeyen birçok yeni kullanıcı için, Aşağıda Xposed Framework'ü kısaca anlatacağım, neden heyecanlanmanız gerektiğini ve bu konudaki geliştirmelerin neden bu kadar uzun sürdüğünü anlatacağım. yaptı.


Xposed Framework'ü neden yüklemelisiniz?

Özel bir ROM'u yüklemeden özel ROM özelliklerini almak ister misiniz? ROM'unuzu ayarlamak için kullanılan tüm Xposed Modüllerinin anası, Yerçekimi Kutusu, ilgilendin mi? Uygulama bazında ekran ayarlarını özelleştirmek mi istiyorsunuz? Denemek Uygulama ayarları. Gibi belirli uygulamaları özelleştirmeye ne dersiniz? Hangout'lar mı? Veya Instagram'ı değiştirerek bunu yapabilirsiniz beğendiğiniz gönderileri indirin?

Xposed, geliştiricilere şunları yapma olanağı sağlar: hemen hemen istediklerini değiştiriyorlar—çoğunlukla bireysel uygulamalara yöneliktir ancak sistem genelindeki özellikler bile değiştirilebilir. Listelediğimiz örnekler buzdağının sadece görünen kısmıdır. Ekleyebileceğiniz ek özelliklerin veya değiştirebileceğiniz uygulamaların sayısı inanılmazdır; yalnızca resmi Xposed Modül deposu kendi gözünüzle görmek için. Bu yeni sürüm ve Nougat desteği için bazı modüllerin güncellenmesi gerekebileceğini unutmayın; bu nedenle bunları Nougat ROM'unuza yüklemeden önce kontrol ettiğinizden emin olun!

Xposed Modülleri nasıl çalışır?

Bunun özü, Xposed Framework'ün modüllere izin vermesidir. Herhangi bir uygulamanın Java yöntemlerine "bağlanmak"— ister kullanıcı tarafından yüklenmiş olsun ister bir sistem uygulaması olsun. Xposed, modüllerin kendi yöntemlerini yürütmesine izin verir öncesinde, sırasında veya yerine Hedef uygulamanın orijinal yöntemleri.

Örneğin, Gmail uygulamasında kullanılan ve yeni e-postalar için bildirim gönderen bir yöntem düşünün. Varsayılan olarak yöntem, e-postayı arşivlemek/silmek veya yanıtlamak için düğmeler içeren yeni bir bildirim oluşturur. Bu yönteme bağlanmak ve "okundu olarak işaretle" gibi yeni bir düğme eklemek için bir Xposed Modülü yapılabilir. (Evet var zaten bunun için bir Modül.)

Yukarıdakiler, Xposed Framework'ün modüllerinin yapmasına izin verdiği şeyin nihai sonucunun aşırı basitleştirilmesidir. Çerçevenin kendisi inanılmaz derecede karmaşıktır ve özel bir ROM'a ihtiyaç duymadan köklü cihazlarda neredeyse evrensel olarak çalışmasını sağlamak, Android Nougat için Xposed'ın tamamlanmasının bu kadar uzun sürmesinin nedenidir.

Xposed'ın geliştirilmesi neden bu kadar uzun sürüyor?

Xposed'ın ardındaki sihir (Modüllerin diğer uygulamaların yöntemlerine bağlanmasını sağlayan şey), Zygote ve Android Çalışma Zamanı (Sanat Eserleri. Bu gereksinimler zaten çok sayıda insanın projeye katkıda bulunmasını engellemektedir, ancak sorun, rovo89, son 5 yıldır Xposed'a ana katkıda bulunan kişi oldu.

Bu nedenle, Xposed'un halka açık son sürümünden bu yana Xposed'da yapılan değişikliklerin açık kaynak olarak kullanılması yönündeki çağrılar reddedildi. Bu onun buluşu ve onu anlama ve değiştirme konusunda en iyisi o, bu yüzden bu kadar geç bir aşamada projeye daha fazla insan gücü katmak projeyi daha da geciktirebilir.

Ayrıca rovo89 kaynağını sürekli olarak güncelliyorsa, endişeliydi Birisinin, ona eşlik edecek evrensel Xposed Installer olmadan, yarı işlevsel bir Xposed Çerçevesi oluşturmak için bitmemiş kodu alacağı. (Bu tam olarak abforce uygulamasında gerçekleşti ve bunun sonucunda ortaya çıkan çeşitli kurulum yöntemlerinin karmaşası rovo89'un tereddütünü haklı çıkardı.)

Bu nedenle yapabileceğimiz en iyi şey rovo89'a gözde projesi üzerinde çalışması için zaman vermekti. Xposed onun tam, hatta yarı zamanlı işi değil. Bu sadece bir hobi, 5 yıldır toplumun yararına yaptığı bir şey. Xposed kadar karmaşık bir proje, çalışmak ve ardından test etmek için zaman gerektirir; diğer yükümlülükleri nedeniyle çoğu zaman sahip olmadığı bir zaman. İlerlemek öyleydi rovo89'un konuyla ilgili birkaç halka açık güncellemesinde belgelediği gibi, geçen yıl yapıldı, ta ki sonunda hem Xposed Framework'ün kendisi hem de Xposed Installer yayınlanmaya hazır olana kadar.

Rovo89, Xposed'ın Nougat'ta çalışmasını sağlamak için ne yaptı?

Android'in yeni sürümleri bazen ART'ın çalışma biçiminde değişiklikler getirebilir ve bu da Xposed'ın bazı bölümlerinin yeniden işlenmesini gerektirebilir. Android 7.0 Nougat, örneğin uygulamaların çalışma zamanı performansını artırmaya yardımcı olmak amacıyla ART için Tam Zamanında derleyiciyi tanıttı. Ancak abforce'un resmi olmayan Xposed Çerçevesi, yöntem kancasının doğru çalışabilmesi için birçok ART optimizasyonunu devre dışı bırakır.

Android Nougat'ta ART Optimizasyonları. Kaynak: Google

Buna karşılık, rovo89'un uygulanması tüm ART optimizasyonlarını Android Nougat'ta tutar JIT kullanarak bir yöntemin çağırıcısını yeniden derleyerek ve yöntem kancalarını hala yerinde tutarak. Bu, ART optimizasyonlarını zorla devre dışı bırakarak performanstan ödün vermeden Xposed Modülünün avantajlarından yararlanabileceğiniz anlamına gelir.

Rovo89'un nihayet Android Nougat için Xposed'da güvenilir bir kancalama yöntemi elde etmek için neler yaptığına dair daha fazla ayrıntı için bize sağladığı aşağıdaki açıklamayı okumanızı öneririz.

rovo89'dan tam açıklama

Xposed'ın özü açıkça Java yöntemlerini bağlama yeteneğidir, yani modüllerin bu yöntemlerden önce, sonra veya bunların yerine kod çalıştırmasına izin verir. Hemen hemen tüm diğer işlevler buna dayanmaktadır, bu nedenle her zaman beklendiği gibi çalışması kritik öneme sahiptir. Beş yıl önce Xposed'u icat ettiğimden beri genel konsept aynı, yöntemin giriş noktasının değiştirilmesini gerektiriyor. Bu, yürütme sırasında giriş noktası kontrol edilmediğinde başarısız olmaya başlar; bu aslında ART'taki bazı optimizasyonlarda da geçerlidir.

Bunun bir örneği, derleme zamanında giriş noktasının zaten bilindiği durumlarda, arayanların bu adrese bakmadan doğrudan bu adrese atlayabilmeleridir. Başka bir örnek ise satır içidir. Bu örneği düşünün:

ART, times() yönteminin çok basit olduğunu fark edecek kadar akıllıdır ve bu nedenle mantığı doğrudan doSomething() yönteminin içine yerleştirir:

Hala times() yöntemini bağlayabilirsiniz, ancak çalışma zamanında artık doSomething() yönteminden çağrılmayacak ve geri aramanız da aynı şekilde yapılmayacaktır. ART daha da akıllıdır: Büyünün her zaman 42 olduğunu ve bu nedenle bu koşulun hiçbir zaman yerine getirilemeyeceğini anlar. Yani doSomething() yönteminin tamamı aslında işlemsizdir:

Önceki sürümlerde Xposed, bu optimizasyonları tamamen devre dışı bırakıyor ve her şeyin yeniden derlenmesini zorunlu kılıyordu. Bu birçok olumsuzluğu da beraberinde getirdi. Her şeyden önce, ART geliştiricileri performansı en üst düzeye çıkarma konusunda harika bir iş çıkarıyorlar. optimizasyonları vardır ve bunları kısmen devre dışı bırakmak zorunlu olarak daha az performansa yol açar (ne kadar olduğunu hiç ölçmedim) Yine de). Daha sonra yeniden derlemenin kendisi her zaman kolay olmuyor ve özellikle başlangıçta çok fazla baş ağrısına neden oluyor. Son olarak, yeniden derlenen dosyalar /system üzerinde önceden derlenmiş dosyalara ek olarak yer kaplar.

Nougat'ın resmi olmayan sürümleri de bu optimizasyonları devre dışı bırakır, ancak yeniden derlemeyi zorlamazlar (çünkü bağlantı noktası başlangıçta ROM'a entegre edilecek şekilde yapılmıştır). Bu nedenle kancalar bazen çalıştırılamayabilir.

Resmi sürümde, optimize edilmiş kodu saklayacak ve yine de güvenilir kancalara sahip olacaksınız. Bu nasıl çalışıyor? Xposed yapılan tüm aramaları kaydediyor. Bu, APK'lar derlenirken veya önceden optimize edilmiş kod için ayrı bir geçişte gerçekleşir. Bu ek veriler fazla yer kaplamaz ancak Xposed'ın belirli bir yöntemin nerede satır içi olabileceğini bulmasına olanak tanır. Yani bir yöntem bağlandığında, tüm çağıranların optimizasyonu bozulur, yani kodları artık kullanılmaz. Bu, kanca geri aramasının kesinlikle çağrılmasını sağlar. Ve eğer arayan yoğun bir şekilde kullanılıyorsa, bu sefer yöntemin bağımlı olduğu ve bu nedenle bazı optimizasyonların geçerli olmadığı bilgisiyle JIT ile yeniden derlenecektir. Bu, kancalama yöntemlerinin etkilerinin minimuma indirildiği anlamına gelir. Yay!

Şimdi devam edin ve deneyin. Dosya Tabanlı Şifrelemeyi desteklemek için yapılandırma yolunun değiştirilmesi gerektiğinden Xposed Installer 3.1.2 kullandığınızdan emin olun.

devamını oku

Çözüm

Android 7.X Nougat için Xposed'ın piyasaya sürülmesi konusunda bizim kadar heyecanlı olduğunuzu umuyoruz. Bekleme uzun sürdü, ancak Xposed'ın karmaşıklığı göz önüne alındığında kaçınılmaz. Xposed'un ne olduğu veya nasıl çalıştığı konusunda hala kafanız karışıksa endişelenmeyin. Çok az kişi (biz dahil) bunun nasıl çalıştığını gerçekten anlıyor. Rovo89 gibi geliştiriciler işlerini paketlemek için ellerinden geleni yapıyorlar, böylece kaputun altında neler olup bittiğini gerçekten anlamanıza gerek kalmıyor.

Xposed Çerçevesini beğendiniz mi? Yaptığı muhteşem iş için rovo89'a bağış yapmayı düşünün. Projeye katkıda bulunmak için gerekenlere sahip olduğunuzu düşünüyorsanız rovo89'un aşağıdaki GitHub sayfasına göz atın.

rovo89'a bağış yapın

Xposed'a katkıda bulunun

Xposed Modüllerini mi arıyorsunuz? Xposed Çerçeve Modülü alt forumumuza göz atın veya XDA Labs uygulamasını indirin ve Xposed Modülleri koleksiyonumuza göz atın.

Xposed Modülleri Forumu

XDA Labs'ı indirin

Android Oreo İlerlemesi

Merak ediyorsanız, Android Oreo için Xposed'ı edinme konusunda şu ilerlemeyi görebilirsiniz:

Zaten Android 8.0 üzerinde çalışmaya başladım. Birkaç tane var yeni dil özellikleri buna bakmam gerekecek, ancak genel konsept yine de işe yaramalı. Bu, Nougat üzerinde çalışırken açık ara en fazla zamanımı alan, bir yöntem bağlandığında arayanların derlenmiş kodunun geçersiz kılınmasına ilişkin tüm çalışmaları içerir. Bu sefer çok daha hızlı olacağıma gerçekten inanıyorum. Android8.1çok farklı olmamalı, bu yüzden bunun için fazla bir ek çalışma beklemiyorum.