Substratum Esnek Olmayan TouchWiz'e Nasıl Daha Fazla Seçenek Getirdi?

click fraud protection

[projekt.] ekibinden Sungstratum, RRO-OMS'nin tüm tema özelliklerini Substratum aracılığıyla Samsung Nougat cihazlarına getiriyor! Daha fazlasını öğrenmek için okumaya devam edin!

Android teması, hileli düzenlemelerden Substratum'a kadar uzun bir yol kat etti ve şimdi, Sungstratum. Yıllar önce, Android tartışmalarında "tema" kelimesinin yerini sık sık "seçici" kelimesi alırdı. CyanogenMod'da bulunan ve Android'i bir tema üreticisi haline getiren temelleri atan T-Mobile Tema Seçici cennet. İşletim sisteminin görünümünü değiştirme yeteneği, kullanıcılara başka bir özelleştirme boyutu kazandırarak, cihazlarını çok daha kişisel hale getirecek değişiklikler yapmalarına olanak tanıdı.

İyi çalışma iki farklı yönde devam etti. Tema Seçici, CyanogenMod Tema Motoruna dönüştü, ancak tema kaynaklarına yönelik yıllar süren çabalara rağmen CMTE'nin geçerliliğini yitirdi. diğer alternatifler ortaya çıktığında.


RRO ve Katmanlar

Alternatiflerden birinin temeli, Sony'nin yeni çerçeve biçimindeki kod katkısının çağrılmasıyla atıldı.

Çalışma Zamanı Kaynak Yerleşimi (RRO) AOSP'ye kabul edildi. Bu çerçeve, çalışma zamanı sırasında uygulama kaynaklarını değiştirme yeteneği sağlar (dolayısıyla adı). "Katmanlar" Gingerbread'den bu yana Android'de mevcut ve destekleniyor (ve belki daha önce de), öncelikli olarak uygulamaların söz konusu spesifik üzerinde çalışmasını sağlamak amacıyla kaynakları değiştirmek için kullanılır cihaz. Sony'nin RRO'ya yaklaşımı, varlık yöneticisinin, cihazda mevcut diğer karşılık gelen kaynaklarla eşlenen kaynakları kullanan apk'leri kabul edecek şekilde değiştirilmesini içeriyordu. Apk'den gelen bu yeni kaynaklar daha sonra yalnızca çalışma zamanında temel kaynakların üzerine yerleştirildi ve sistemin sanki bu yeni kaynaklar her zaman onun bir parçasıymış gibi birlikte çalışmasına izin verildi.

RRO çerçevesi, Lollipop 5.0 halka açıklanmadan önce AOSP ile birleştirildi, ancak 5.0'ın ilk birkaç yapısında, diğer değişiklikler nedeniyle çerçevenin bazı kısımları bozuldu. Android 6.0 Marshmallow'un Geliştirici Önizlemeleri, sınırlı da olsa işlevsel bir RRO çerçevesine eklenen ilk öğelerdi, doğrudan Android seviyesinde kişiselleştirilebilirliğin kapılarını açıyor. Dolayısıyla, bir OEM kasıtlı olarak stok Android tema seçeneklerinden ayrılmaya çalışmadığı sürece, belirli bir 'Temaların' nasıl uygulanacağına ilişkin yaklaşımda tutarlılık düzeyi korunabilir. Android.

AOSP, RRO ile oynuyor ve hepsini birleştirmenin en iyi yolunu ararken, bir geliştirici ekibi aradı BitSyko " adlı kolektif bir çaba üzerinde birlikte çalıştıKatmanlar". Katmanlar, Android 5.1 Lollipop'taki stok RRO işlevselliğini genişleterek daha karmaşık kaynak değiştirmeyi mümkün kıldı ve stok RRO ile mümkün olandan daha fazla tema kontrolüne izin verdi. Katmanlar RRO üzerinde yukarıya doğru oluşturulduğundan, ROM üreticilerinin ROM'larında Katmanlar işlevselliğini etkinleştirmek için ekstra kod eklemeleri gerekiyordu, çünkü tüm Katman temaları Marshmallow'daki stok RRO'da çalışmayacaktı.

Bu arada Sony, Android temasına yönelik kendi çabalarına devam etti. Üzerinde çalışmaya başladı OMS (Yer Paylaşımı Yöneticisi Hizmeti), sağlayıcıların öncelikleri dinamik olarak kontrol etmesine ve katmanları etkinleştirip devre dışı bırakmasına olanak tanıyan, katmanları yönetmeye yönelik bir istemci. OMS, AOSP ile birleşiyor ve Android O'ya girecek. XDA Tanınmış Geliştirici nicholaschum Android O'nun, OMS'ye referans olduğuna inanılan "dinamik katmanlara" sahip olacağını kaynakları aracılığıyla doğrulayabildi.

OMS, geleneksel olarak bu tür işlevlerin temanın kontrolü altında olması nedeniyle Katmanlarla çatışmalara neden oldu. OMS'nin ortaya çıkardığı sorunların üstesinden gelmek ve Katmanların işlevselliğini genişletmek için BitSyko yeniden bir ekip oluşturdu (ve kendisini şu şekilde yeniden adlandırdı: [proje.]) yaratmak Substrat. Substratum, OMS işlevselliğine sahip bir istemcidir Katmanların işlevselliğini OMS ile uzlaştırmaya çalışan ve aynı zamanda diğer geçmiş tema çözümlerinden diğer öğeleri de ödünç alan. Kaplamalar artık tek tek öğelerin teması için üst üste bindirilmiyordu; artık ihtiyaç duyulan tüm öğeler tek bir katmana enjekte ediliyordu. Cihazda derleme gibi özellikler, temaların değişiklikler arasında yeniden başlatmaya gerek kalmadan uygulanmasına olanak tanıdı. önemli ölçüde son kullanıcıların temaları denemesi ve deneyler yapması daha kolay. Substratum, başlangıcından bu yana aktif olarak geliştirilmektedir ve tüm özellikleri ve özellikleri listelenmektedir. eklenen işlevsellik bu makalenin kapsamı dışında olacağından bu konunun asıl konusuna geçeceğiz. parça.


Sungstratum'a Substratum

Önceki bölümde açıklandığı gibi Substratum, stok OMS işlevselliğinin yanı sıra stok RRO işlevselliğini (Katmanlar aracılığıyla) genişletmenin bir yolu olarak başladı. Diğer OEM'lerin çoğu çelişkili değişiklikler yapacağından Substratum'un AOSP tabanlı ROM'larla birlikte kullanılması amaçlanmıştı. Bu, Substratum'un, Samsung'unki gibi düzenlenmiş bir UX dış görünümünde kendi değişiklikleriyle birlikte var olmasına izin vermez. örnek.

Samsung da Nougat'ta kendi cihazlarında kullanılacak bir tema çözümü üzerinde çalışıyordu. Sony'nin aksine Samsung, AOSP'ye tema kodunun geri verilmesi konusunda herhangi bir ilgi göstermedi. Ancak Samsung'un çözümü oldukça basit olduğundan, AOSP pek bir şey kaybetmiyordu. Samsung'un Touchwiz'de yer alan tema çözümü, gerçek görünümünü Samsung Galaxy S6'da yaptı ancak daha önce de belirtildiği gibi, başarmaya çalışabileceği şeyler oldukça sınırlıydı. Bundan önce Galaxy Alpha ile başlayan sınırlı deneyler vardı, ancak çoğu sistem kullanıcı arayüzü öğesi kapsamı dışındaydı. Temalar, duvar kağıtlarının ve simgelerin yanı sıra çevirici, kişiler, mesajlar ve bildirim alanı gibi birkaç Samsung stok uygulamasını da değiştirebilir.

Görünüşe göre Samsung'un tema motoru uzanır AOSP'de bulunan RRO. Samsung, RRO'yu genişlettikten sonra kendi dahili OMS sürümünü de yeniden oluşturdu; dolayısıyla hem RRO hem de OMS uygulamaları AOSP'den farklıdır. Ancak şaşırtıcı bir şekilde, çok büyük bir miktar değil - Touchwiz'in farklılığı ve karmaşıklığı göz önüne alındığında anormal bir davranış. Daha yeni Samsung amiral gemilerini kullanan Themer'lar, RRO katmanlarını yükleyebileceklerini ve üçüncü taraf uygulamaları tema haline getirebileceklerini bildirdi.

Bu, ekibin [projekt.] Substratum'da Samsung cihazlarını resmi olarak desteklemeyi araştırması gereken ipucuydu. Ekip, uygulamalarının RRO/Eski bölümünden az miktarda kodu dönüştürdü, ancak bunun yerine Kök talep ederek ve yeniden başlatmayı isteyerek, kaplamaların kurulması için belirli niyetleri harekete geçirdiler. Ekip daha sonra, bir sonraki başlatmada tam varlık yenilemesini sağlamak amacıyla temalardan etkilenen uygulamaların arka planda zorla kapatılmasını sağlamak için çalıştı.

XDA Tanınan Geliştiriciye sorduk nicholaschum bize Samsung'un kapalı kaynak RRO-OMS uygulamasına karşı çalışırken ekibin karşılaştığı zorluklara ilişkin bazı bilgiler sağlamak için:

Karşılaştığımız zorluklar oldukça belirsizdi ve fazla bilgisi olmayan birçok kişi tarafından bilinmiyordu İster açık kaynaklı ister kapalı kaynaklı olsun, tema sistemlerini anlamak - her şeyin kendi denemesi vardır ve hata aşaması. Bu durumda, Samsung ile çalışırken birçok sorunla karşılaştım ancak asıl sorun, sistemin amacının Kurulum tamamlandıktan sonra katmanlar için tetiklenir (örneğin, yayın alıcılarının kullanılması gibi) “android.intent.action. PACKAGE_ADDED” - Tema Hizmeti, belirli bir Samsung'un sistem imzasının parçası olmayan her şeyi reddeder bunu almak için tema hizmeti izni aldık, bu yüzden en zor kısım, bir yol bulmamız gereken geçici çözümlerdi etrafında.

Substratum'u Samsung'un Tema Motoru ile birlikte kullanma şeklimiz, onlarla aynı sistemi kullanmaktır. RRO olarak kısaltılan veya Substratum kullanıcıları arasında eski olarak bilinen, Sony'nin Resource Runtime Overlay sisteminin oldukça değiştirilmiş bir sürümünü kullanıyorlar. Ancak farklı olan, Samsung temalarının bu katmanları Ayarlar'dan gizleyen ekstra bir izne sahip olmasıdır, dolayısıyla bunları tek tek manuel olarak kaldıramazsınız. Aynı sistemi kullanıyoruz ancak AOSP'nin/Sony'nin uygulamasını kullanıyoruz, bu nedenle Samsung Temaları tam olarak tema çerçevesini oluşturabilirken, Substratum katmanları "fwk" olmayan bir aracı hedefe dokunamaz - hepimizin bildiği gibi çerçeve yalnızca "android" paketidir isim.

[Projenin] Samsung'un RRO uygulamasıyla birlikte nispeten kolaylıkla çalışabilmesi garip görünüyordu. Samsung cihazları üzerinde çalışmış olan herkes, Samsung'un çoğu zaman işleri ne kadar zorlaştırdığını doğrulayabilir. Ekibin taşıma sırasında karşılaştığı herhangi bir blok hakkında bilgi aldık:

Aslında birkaç kullanıcıyı etkileyen bir tür güvenlik mekanizması mevcut; burada katmanlar başlangıçta geri dönüyor. Bunun nedeni Samsung'un cihazlarını başlatma şeklidir. TouchWiz/Samsung Experience'ta çoğunlukla hepimiz 7.0'da olduğumuzdan, yeni bir "Uygulamaları optimize etme" yöntemini kullanıyoruz (bunu telefonunuzu güncellediğinizde görebilirsiniz, Android Nougat simgesiyle arka planda yükseltme yapıldığını belirten bir bildirim gösterecektir), dolayısıyla uygulamaları optimize etmenin bu yolu aynı zamanda hedefin yükünü de kaldırır paketler, sonuçta önyükleme sırasında kimlik eşleme sürecini kesintiye uğratır (hedef paketin mevcut olmaması nedeniyle) ve bu nedenle, birkaç kişi, bir süre sonra yer paylaşımının kaldırılmasıyla karşılaşır. yeniden başlatın.

Bunun birkaç Samsung Teması'nda da olduğunu görebilirsiniz, özellikle de @envy~'in Koyu/Siyah temasında. Ekran -> Gezinme çubuğundaki varsayılan gezinme çubuğu rengini siyaha dönüştürür; burada gerçek varsayılan renk şu şekildedir: beyaz. Siyah olarak ayarladıktan sonra klavyeyi açabilirsiniz ve gezinme çubuğu siyah kalır. Bu, birçok cihazda olduğu gibi yeniden başlatma sırasında rastgele geri alınacaktır.

Temanın yeniden ön plana çıkmasıyla birlikte Substratum'un Sungstratum gibi yan dallarda ileriye dönük planları neler?

İleride, mevcut kullanıcılarımıza yönelik küçük bir uygulamayı eklentimize dahil edeceğiz, böylece onlar da Cihazlarına yüklenen tüm temalar şu adresten yüklenmişse Samsung Tema Hizmetini durdurabilirler: XDA. Yani XDA'nın Samsung tema formatlı temalarını kullanacak kişiler, eklentiyi kullanarak bunları engelleyebileceksiniz. Samsung'un hizmeti, her yeniden başlatmanın ardından stok temasına geri dönmesini engelliyor (çünkü Samsung mağazasından yüklenmedi) resmi olarak). Sitelerinden edinilebilecek ücretsiz bir Samsung geliştirici anahtarı gerektirecektir, ancak bu, sungstratum addon indirmesiyle önceden paketlenecektir.


AOSP ve Android O'daki son ve yakında yapılacak değişikliklerle, Google'ın bir zamanlar yeni gelişen işletim sistemi kullanıcıya daha da fazla kişiselleştirme aktaracak gibi görünüyor. Hatta bazı OEM'ler özel kullanıcı arayüzlerinden ve UX eklentilerinden kurtulmayı planlıyor AOSP lehine ve Samsung gibi diğerleri kendi tema çözümleriyle yeterince yakın duruyorlar. Temaların daha da fazla insanın kullanıcı deneyiminde önemli bir rol oynayacağı bir gelecek öngörüyoruz: bir işletim sistemi Cihazınızın nasıl göründüğünü gerçekten kontrol ettiğiniz, kullanıcı arayüzü estetiğinin sizin tarafınızdan özel olarak tasarlandığı yer Sen. Ve bu muhteşem topluluğun kolektif gücü ve Substratum gibi projeler olmasaydı böyle bir geleceğe ulaşamazdık.


Substratum forumlarımızda Samsung Nougat için Substratum Entegrasyonu'na göz atın!GitHub'daki Substratum