Google-ის Android Oreo-ს უახლეს გამოშვებას უკვე აქვს ჩაშენებული თემის მხარდაჭერა და Substratum-ის თემის ძრავის წყალობით, ის 1 კვირაში გამოვა.
განახლება 09/13/17: ახლა გამოვიდა Andromeda-ს დამატება Substratum-ისთვის, რომელიც საშუალებას აძლევს მორგებული თემების შექმნას დაუსაბუთებელ Android Oreo მოწყობილობებზე. იხილეთ ეს სტატია დამატებითი დეტალებისთვის. ორიგინალი სტატია დარჩება ქვემოთ.
ყოველი ახალი გამოშვება Google-ის Android OS-ში, მომხმარებლების უმეტესობისთვის ნაკლები მიზეზი არსებობს დაალაგეთ მათი მოწყობილობები. თუმცა, დარჩენილ მომხმარებლებს შორის, რომლებიც კვლავ ირჩევენ თავიანთი მოწყობილობების დაშლას, ერთ-ერთი ყველაზე ხშირად მოხსენიებული მიზეზი არის სისტემის მასშტაბური თემების მხარდაჭერის ჩართვა. როგორც წესი, ეს იმართება სუბსტრატის მეშვეობით თემის ჩარჩო მას შემდეგ, რაც CyanogenMod Theme Engine-ის სამწუხარო დაღუპვა. დროთა განმავლობაში, გუნდი სუბსტრატის უკან ბევრი იმუშავა, რათა დაემატა მეტი მოწყობილობის მხარდაჭერა Substratum-ის მხარდაჭერის ჩართვით ROM დონეზე ასე რომ, ის შეიძლება იმუშაოს root წვდომის გარეშე. ახლა კი, გუნდმა პროექტი მიაღწია იმაზე მიღმა, რისი წარმოდგენაც ჩვენგანს შეეძლო
სისტემის სრული თემის მხარდაჭერა root-ის გარეშე ნებისმიერი Android Oreo მოწყობილობისთვის.სკრინშოტები ნაჩვენებია საის Android Oreo შავი თემა მუშაობს Unrooted Google Pixel-ზე Android Oreo 8.0.0-ზე
რომ წარმოდგენა მოგცეთ იმის შესახებ, თუ როგორ წარმოუდგენელი განვითარებაა ესჩათვალეთ, რომ ახლა შესაძლებელი იქნება შემდეგი ფესვის გარეშე:
- თემატიკა Android Framework და Android System UI, ისევე როგორც ნებისმიერი სხვა სისტემური აპლიკაცია. (ბევრი აპირებთ სიყვარული საბოლოოდ, ბნელი თემის არსებობა!)
- თემატიკა ნებისმიერი მესამე მხარის აპლიკაცია
- მორგებული შრიფტები მესამე მხარის აპლიკაციებისთვის
- ბევრი სხვა მოდიფიკაცია, როგორიცაა სტატუსის ზოლის ცენტრალური საათის რეჟიმი
სია გრძელდება! სუბსტრატს აქვს ხელმისაწვდომი თემების ვრცელი სია რომელიც მხარს უჭერს ჩარჩოს (ყველა მათგანი მხარდაჭერილია Substratum-ის მომავალ ახალ ვერსიაში Android 8.0-ისთვის), აქტიური საზოგადოება Google+ და ჩვენი საკუთარი ფორუმებიდა ამ განვითარების გათვალისწინებით, მხარდაჭერა მხოლოდ გაიზრდება!
Android Oreo და Overlay Manager Service
მას შემდეგ, რაც Google დაარსდა მშობლიური მხარდაჭერა Sony-ის Runtime Resource Overlay-ისთვის (RRO) თემის ძრავა Android 6.0 Marshmallow-ში, ჩვენ ველოდით Google-ისთვის უზრუნველყოს ჩაშენებული ინტერფეისი და ასევე საჯარო API-ები, რომლებიც დეველოპერებს შეუძლიათ გამოიყენონ როგორც სისტემური ჩარჩო აპლიკაციების, ასევე მესამე მხარის აპლიკაციების თემისთვის. სამწუხაროდ, Android Nougat-ის გამოშვებამ ცოტა სიახლე მოიტანა მაგიდაზე მას შემდეგ, რაც Sony-ს RRO დაემატა Android Open Source პროექტს (AOSP).
მაგრამ Sony Mobile-ის ინჟინრების გულმოდგინე მუშაობის წყალობით, RRO თემატური ძრავა საბოლოოდ გადაიქცა ისეთად, რაც ცნობილია როგორც Overlay Manager Service (OMS), რაზეც დაფუძნებულია Substratum. Sony იყო პიონერი ღია კოდის თემების გადაწყვეტაში, მაგრამ რადგან მათი OMS თემის ძრავა მიიღეს AOSP-ში. Android 7.1-ის საბოლოო გამოშვების დრო, ერთადერთი გზა, რომ არა Sony მოწყობილობების მომხმარებლები ისარგებლონ თემის ძრავით, არის მორგებული ᲠᲝᲛᲘ.
ეს შეიცვალა Android 8.0-ში. როდესაც სუბსტრატი თავდაპირველად გამოუშვეს პირველი რამდენიმე Android O დეველოპერის გადახედვაSubstratum-ის დეველოპერები მიხვდნენ ამას სრული დახმარება Sony-სთვის OMS ხელმისაწვდომი იყო. ეს ნიშნავს, რომ მომხმარებელს შეუძლია დააინსტალიროს არსებული Substratum-ის მხარდაჭერილი თემა და ის სრულად ფუნქციონირებს Android Oreo მოწყობილობებზე ROM-ის პაჩების საჭიროების გარეშე. თუმცა იყო მხოლოდ ერთი პრობლემა: დაინსტალირებული Substratum თემის ჩართვის პროცესი საჭიროებდა root წვდომას, ან ასე ფიქრობდნენ.
Rootless, სისტემის ფართო სუბსტრატის თემის მხარდაჭერა Android Oreo-სთვის
მიუხედავად იმისა, რომ დეველოპერები ჩუმად აყენებენ თავიანთ მუშაობას Android Oreo-ს მომხმარებლებისთვის სრულიად უსაფუძვლო თემის გადაწყვეტის უკანა მხარეს. დამწვარი, ჩვენ დამოუკიდებლად ვიკვლევდით ყველა Android O დეველოპერის გადახედვას და ვპოულობდით მტკიცებულებებს თამაშში არსებული თემის ძრავის შესახებ, თუმცა ჩვენ არასწორად დავადგინეთ როგორც დაფუძნებული ძველ RRO-ზე, ვიდრე Sony-ის უფრო ახალ OMS-ზე. გუგლმა თემის მხარდაჭერის შესახებ საზოგადოებაც კი აცინა დეველოპერზე ორიენტირებული AMA Reddit-ზე, სადაც ნათქვამია, რომ ჯერ კიდევ იყო გარკვეული დაბრკოლებების გადალახვა, სანამ Android-ში სრული თემის გადაწყვეტა შეიძლებოდა.
ამ პასუხით არ დაგვკმაყოფილდა, გვინდოდა გვენახა, რამდენად შორს წავიდა Google Android Oreo-სთვის თემების მხარდაჭერის მისაღებად. ამის გასაკეთებლად, ჩავუღრმავდი Android 8.0-ის საწყისი კოდი ერთხელ საბოლოო გამოშვება დაეცა და აღმოაჩინა ADB shell ბრძანებების არსებობა, რომლებსაც შეუძლიათ გადაფარვების ჩართვა ან გამორთვა, რომელიც XDA-ს მწერალმა ადამ კონვეიმ გუშინ გააშუქა.
თავდაპირველად, მე არ ვიყავი დიდი შთაბეჭდილება ამ აღმოჩენით, რადგან იმ დროისთვის ჩემი ცოდნით ის ფუნქციურად უსარგებლო იყო, რადგან მე და ჩემს კოლეგებს ისეთი შთაბეჭდილება გვქონდა, რომ ინსტალაცია თემას ჯერ კიდევ სჭირდება root წვდომა, რადგან თემის ფაილები უნდა გადაიტანოთ საქაღალდეში, რომელიც მიუწვდომელია მომხმარებლის სივრცეში (/system/vendor/overlay, ასეა RRO ფუნქციონირებდა). ნიკოლას ჩუმი თავადმა, სუბსტრატის უკან ერთ-ერთმა მთავარმა დეველოპერმა, ჩვენს პოსტზე კომენტარი გააკეთა, რომ მან საკმაოდ დიდი ხნის განმავლობაში იცოდა ამ ბრძანებების არსებობის შესახებ და უკვე იყენებდა მას Android O კონსტრუქციებისთვის.
თუმცა, ერთმა ადამიანმა დაინახა შესაძლებლობა, რომ გუშინ გამოვაქვეყნეთ ჩვენი სტატია. XDA არის ძალიან საკუთარი ჯეფ კორკორანი, დეველოპერი ჩვენი შიდა სახლის უკან XDA Labs აპლიკაცია, მიხვდა, რომ არსებობდა პოტენციური გამოსავალი, რათა მიეღო Android Oreo-ს მშობლიური ბრძანების ხაზის ინტერფეისი OMS-ისთვის Root-ის გარეშე მუშაობისთვის. იგი მოიცავდა მეთოდს, რომელიც გამოიყენა ჰელიუმი, პოპულარული არა-root სარეზერვო გადაწყვეტა და ახლახანს ღია კოდის Greenify ალტერნატივის მიერ, რომელიც ცნობილია როგორც ბრევენტი.
ამაღლებული პრივილეგიები სკრიპტის საშუალებით
ჩვეულებრივ, "cmd გადაფარვა" ბრძანებები, რომლებიც Google-მა დაამატა Oreo-ს გამოშვებაში, შეიძლება განხორციელდეს მხოლოდ მოწყობილობის მეშვეობით, რომელსაც აქვს root პრივილეგიები, ან მოწყობილობის მეშვეობით, რომელიც დაკავშირებულია კომპიუტერთან, რომელიც იყენებს Android Debug Bridge (ADB) გარსს. რამდენიმე ჭკვიანი დეველოპერი, როგორიცაა Helium და Brevent დეველოპერები, წლების განმავლობაში მიხვდნენ როგორ არსებითად გავზარდოთ ტელეფონზე გაშვებული აპლიკაციის პრივილეგიები ADB-ის პრივილეგიების შესატყვისად ჭურვი. ამით აპლიკაციას შეუძლია გამოაგზავნოს ბრძანებები, რომლებიც ჩვეულებრივ არ შეეძლო შეზღუდული ნებართვების გამო. სუბსტრატის შემთხვევაში ეს ნიშნავს აპლიკაციას შეუძლია დააინსტალიროს, შემდეგ ჩართოს ან გამორთოს Substratum თემები root-ის გარეშე.
ეს გაცნობიერება იყო ა მაიორი გარღვევა, რომელიც მხოლოდ გუშინ საღამოს აღმოაჩინეს. რამდენიმე საათის განმავლობაში ნიკოლასმა (ჯეფის დახმარებით) შეძლო შეექმნა უძირო Substratum თემების მენეჯერის სწრაფი ალფა ვერსია Android Oreo მოწყობილობებისთვის. და მუშაობს - მაგრამ რამდენიმე გაფრთხილებით.
Rootless სუბსტრატის მხარდაჭერის გაფრთხილებები
Substratum ADB shell-ის ამაღლებული პრივილეგიების მინიჭებისთვის საჭირო პროცესი მოითხოვს ძალიან მარტივი და მსუბუქი დესკტოპის აპლიკაცია (ან უბრალოდ ADB shell ბრძანება, თუ იცით რას აკეთებთ). მინიჭების შემდეგ, სუბსტრატი იფუნქციონირებს ისე, როგორც თქვენ მოელით, მას შეუძლია გაუმკლავდეს ყველა დაინსტალირებული სუბსტრატის თემის მართვას. ნებისმიერი თემა, რომელიც თქვენ დააინსტალირეთ, დაინსტალირებული დარჩება სანამ არ აირჩევთ ხელახლა დეინსტალაციას სუბსტრატის მეშვეობით.
თუმცა, პრივილეგიები, რომლებსაც სუბსტრატი ენიჭება, გარდამავალია, როგორც ისინი იკარგება, როდესაც მომხმარებელი ასრულებს სრულ გადატვირთვას (თუმცა, საბედნიეროდ, სისტემის ინტერფეისის რბილი გადატვირთვა არ კარგავს პრივილეგიას). ეს ნიშნავს, რომ თქვენ მოგიწევთ ხელახლა გაუშვათ დესკტოპის პროგრამა, თუ გადატვირთეთ ტელეფონი და გსურთ გამოიყენოთ Substratum თემის დასამატებლად, წასაშლელად ან შესაცვლელად. კიდევ ერთხელ მინდა გავიმეორო ეს თქვენ მიერ დაყენებული ნებისმიერი თემა დაინსტალირებული დარჩება, თუნდაც გადატვირთოთ, ასე რომ, თუ გსურთ მხოლოდ დროდადრო შეცვალოთ რამდენიმე თემა, ეს თქვენთვის იდეალური უნდა იყოს. თქვენ ასევე უნდა შეძლოთ თემების შეცვლა პარამეტრების მენიუდან, როგორც დეველოპერის გადახედვისას "თემა" ვარიანტი ეკრანის პარამეტრების ქვეშ ამოიცნობს დაინსტალირებულ თემებს და საშუალებას გაძლევთ გადართოთ მათ შორის
დაბოლოს, ბოლო, რაც უნდა აღვნიშნო, არის ის, რაც აშკარად ჩანს, როგორც კი დაფიქრდებით, მაგრამ ახალი ამბების მოსმენით აღელვებულმა შესაძლოა დაგავიწყდეს. თქვენი მოწყობილობა ჯერ კიდევ არ არის ამოღებული. ეს ნიშნავს, რომ თქვენ არ შეგიძლიათ შეეხოთ ან შეცვალოთ ფაილები, რომლებიც აბსოლუტურად საჭიროებენ root წვდომას რედაქტირებისთვის, მაშინაც კი, თუ თქვენ მიერ დაინსტალირებული Substratum თემა რაღაცის შეცვლას დაპირდა. უკაცრავად, მაგრამ, სამწუხაროდ, ეს ნიშნავს, რომ თქვენ არ შეგიძლიათ გამოიყენოთ სისტემის მასშტაბის შრიფტის ცვლილება დააბრუნეთ blob emojis, თუმცა, როგორც დასაწყისში აღინიშნა, ის არის შესაძლებელია სუბსტრატის თემამ შეცვალოს ინდივიდუალური აპლიკაციების შრიფტები.
სუბსტრატის აუცილებლობა
მოდი, ახლავე გამოვრიცხოთ მნიშვნელოვანი დეტალი. ეს როდის მოდის? როგორც სათაურშია აღნიშნული, უძირო სუბსტრატის პირველი საჯარო ხელმისაწვდომობა Android 8.0 მოწყობილობებისთვის, როგორიცაა Google Nexus 5X, Google Nexus 6P, Google Pixel და Google Pixel XL. 1 კვირის განმავლობაში. ესე იგი არა გარანტია ნებისმიერი გზით, რადგან განვითარების პროცესში შეიძლება შეიცვალოს რამ, რაც შეიძლება მოითხოვოს დამატებითი დროის ინვესტიცია, მაგრამ რადგან OMS უკვე არსებობს სრულად არის მხარდაჭერილი AOSP-ში, ყველა სუბსტრატის გუნდი, რომელზეც ახლა მუშაობს, არის ინტერფეისი Substratum აპსა და unrooted-ს შორის მოწყობილობები.
შემდეგი: უფასო იქნება? არა. სუბსტრატი Unrooted Android Oreo მოწყობილობებისთვის იქნება ა ფასიანი აპლიკაცია. ვერ გეტყვით რამდენი დაჯდება, რადგან ნიკოლასს ჯერ არ აქვს გადაწყვეტილი ფასი, მაგრამ დარწმუნებული იყავით, რომ ფასი იქნება სამართლიანი იმის გათვალისწინებით, თუ რას მიიღებთ. ამ დრომდე, სუბსტრატი თავისუფლად იყო ხელმისაწვდომი მრავალი მოწყობილობისთვის, ამიტომ იფიქრეთ ამ ტიპის განვითარების მხარდაჭერაზე, პირველ რიგში, გუნდის სუბსტრატის მხარდაჭერით. შეგიძლიათ ან დაელოდოთ Google-ს საბოლოოდ გამოუშვებს იმ ბნელ თემას, რომელიც ყოველთვის გინდოდათ (ჰა, კარგი ერთი), ან შეგიძლიათ ჩააგდოთ რამდენიმე პენი დამოუკიდებელი განვითარების მხარდასაჭერად, რასაც ბევრი ადამიანი იღებს მინიჭებული.
ჯერ კიდევ არ ხართ დარწმუნებული მის ღირებულებაში? Შენ შეგიძლია სცადე სუბსტრატის თემების დაინსტალირება საკუთარ 8.0 როტირებული მოწყობილობაზე. სინამდვილეში, ეს არის ზუსტად ის, რაც ჩვენ გავაკეთეთ ზემოთ. რა თქმა უნდა, ამაში ცოტა დახმარება გვქონდა ნიკოლოზისგან. თუ გსურთ დააინსტალიროთ არსებული Substratum თემა Google Play Store-დან, აქ მოცემულია ზოგადი ნაბიჯები:
- ჩამოტვირთეთ და დააინსტალირეთ APK ფაილი თქვენს მოწყობილობაზე.
- ამოიღეთ შიგთავსი და შეადგინეთ თითოეული გადაფარვა ინდივიდუალურ APK ფაილად თითოეული აპისთვის, რომლის თემატიკა გსურთ
- დააინსტალირეთ თითოეული ინდივიდუალური გადაფარვის APK ფაილი, რომელიც თქვენ ხელით შეადგინეთ ნაბიჯი #2-ში
- თითოეული გადაფარვის APK-სთვის, რომელიც თქვენ დააინსტალირეთ, გაუშვით შემდეგი ბრძანება მის გასააქტიურებლად:
cmd overlay enable
- თუ გსურთ შეცვალოთ გადაფარვის პრიორიტეტი, გამოიყენეთ:
cmd overlay set-priority
PARENT|lowest|highest - ჩამოთვალეთ ყველა თქვენი დაინსტალირებული გადაფარვა:
cmd overlay list
- წაშალეთ ნებისმიერი გადაფარვა, რომლითაც არ გსურთ:
cmd overlay disable
თუ ნამდვილად გსურთ გამოიყენოთ ბრძანების ხაზი თემების სამართავად, იყავით ჩვენი სტუმარი! პირადად მე გავჩერდი #2 საფეხურის გადალახვაში. სუბსტრატი არ იყენებს რაიმე ფარულ მეთოდს, რომელსაც დამოუკიდებლად ვერ გამოიმუშავებ, მაგრამ აკეთებს შორს თქვენთვის ადვილია მართვა. როდესაც შესაძლებელია რაღაცის ხელით გაკეთება, მაგრამ აპლიკაციას შეუძლია ამის გაკეთება ჩემთვის ბევრად უფრო მარტივად, მე მიდრეკილი ვარ, რომ აპს ვაკეთებ თავისი საქმის გაკეთებას. მაგრამ ეს შენზეა დამოკიდებული.
პირადად მე ვარ მართლაც, ნამდვილად აღფრთოვანებული რომ ნახოთ სად მიდის ეს. ნებისმიერი მოწყობილობისთვის, რომელსაც უკვე არ აქვს ჩაშენებული თემების მართვის სისტემის მხარდაჭერა (როგორიცაა Motorola ან OnePlus მოწყობილობები), ახლა თქვენ გაქვთ კიდევ ერთი მიზეზი, რომ მოუთმენლად ელოდოთ Android 8.0 განახლებას. მათ გაგიმართლათ, რომ უკვე დააგემოვნოთ ეს ტკბილი ორეო, 1 კვირაში რაღაცას უნდა ელოდოთ.
P.S. Samsung-ის მომხმარებლებო, იცით თუ არა თქვენი მოწყობილობები უკვე მხარს უჭერს სუბსტრატის თემებს root საჭიროების გარეშე?
P.P.S ხართ დეველოპერი, დაინტერესებული ხართ შეიტყოთ მეტი Substratum-ის შესახებ? ნახეთ ნიკოლოზის გასაოცარი სლაიდშოუს პრეზენტაცია აქ!