როგორ ჩართოთ სისტემის მასშტაბური იმერსიული რეჟიმი Root-ის გარეშე

გაკვეთილი იმის შესახებ, თუ როგორ უნდა ჩართოთ იმერსიული რეჟიმი სისტემის მასშტაბით (ან თითო აპის საფუძველზე) root წვდომის საჭიროების გარეშე. მუშაობს ყველა Android 4.4+ მოწყობილობაზე.

იმის გამო, რომ ტელეფონის ეკრანები უფრო და უფრო დიდი ხდება, ზოგჯერ გვსურს დავმალოთ სტატუსი და ნავიგაციის ზოლი, რათა შევძლოთ ჩვენი შინაარსის ხილვა სუფთა, ლამაზი HD ეკრანის გამოყენებით.

Android 4.4-ით დაწყებული, აპლიკაციებს შეეძლოთ დანერგვა იმერსიული რეჟიმი სრულეკრანიანი გამოცდილების ჭეშმარიტად მიტანა საბოლოო მომხმარებლისთვის. სამწუხაროდ, Google-სა და OEM-ებს არასოდეს გამოუჩენიათ შესაძლებლობა, რომ ხელით აკონტროლონ იმერსიული რეჟიმის ჩართვა. მესამე მხარის აპლიკაცია ე.წ GMD სრული ეკრანის იმერსიული რეჟიმი უკვე რამდენიმე წელია რაც გამოსავალს იძლევა, მაგრამ ამ აპლიკაციის გამოყენების ყველაზე დიდი პრობლემა ის არის, რომ ის არღვევს რბილ კლავიატურას.

მომხმარებლები მოძრაობდნენ ADB ბრძანების გარშემო, რომელიც ააქტიურებს სისტემის მასშტაბით იმერსიულ რეჟიმს საკმაოდ დიდი ხნის განმავლობაში, მაგრამ წლების განმავლობაში ითვლებოდა, რომ ამ ბრძანების გამოყენება ADB ტერმინალიდან გამორთვისას საჭიროებდა root-ს წვდომა. თუმცა, გასული წლის ბოლოს მომხმარებლებმა აღმოაჩინეს, რომ ADB-ის გარკვეული ბრძანებები რეალურად შეიძლება ამოქმედდეს მოწყობილობაზე 

root წვდომის გარეშე, იმ პირობით, რომ აპლიკაციას აქვს გარკვეული ნებართვა. ეს ნიშნავს, რომ თქვენ შეგიძლიათ სისტემის მასშტაბური იმერსიული რეჟიმის ჩართვა მოთხოვნა, საჭიროება. თქვენ შეგიძლიათ, მაგალითად, შექმნათ Nougat ფილა იმერსიული რეჟიმის გადასართავად, ან თუნდაც დააყენოთ იმერსიული რეჟიმი თითო აპის საფუძველზე.


გადართეთ იმერსიული რეჟიმი Root-ის გარეშე

როგორც ზემოთ მოცემულ ვიდეოში ხედავთ, მე შევქმენი Nougat ფილა, რომელიც გადართავს იმერსიულ რეჟიმს, როცა მასზე ვაჭერ. ეს არის ჩემს unrooted Huawei Mate 9-ზე, მაგრამ უნდა იმუშაოს თითქმის ყველა Android 4.4+ მოწყობილობა. ამ სამუშაოსთვის საჭიროა მხოლოდ ორი აპლიკაცია: ტასკერი და AutoTools Beta. თქვენ ასევე დაგჭირდებათ ინსტალაცია ავტომატური შეტყობინება თუ გსურთ გააკეთოთ ნუგას ფილა აქედან, მაგრამ ეს არ არის საჭირო.

როგორც კი დააინსტალირებთ ორივე აპლიკაციას, მოგიწევთ მიანიჭოთ WRITE_SECURE_SETTINGS AutoTools-ის ნებართვა, რათა შეძლოთ იმერსიული რეჟიმის გადართვა (სხვა გასაოცარ პარამეტრებს შორის, რომლებსაც მოგვიანებით განვიხილავთ). ეს იმიტომ ხდება, რომ იმერსიული რეჟიმის ბრძანება განსაზღვრულია ქვეშ პარამეტრები. გლობალური კლასი, თუმცა ბრძანების ზუსტი სინტაქსი დამალულია AOSP-ში. ჩვენ ჯერ განვიხილავთ, თუ როგორ უნდა მივცეთ საჭირო ნებართვა AutoTools-ს, შემდეგ როგორ გამოვიყენოთ ბრძანება Tasker-ში.


Android-ის ნებართვების მართვის სისტემის მიხედვით, აპლიკაციები განსაზღვრავენ ნებართვებს, რომელთა მინიჭებაც სურთ Manifest ფაილში. შემდეგ მომხმარებლებს შეუძლიათ მიანიჭონ ან უარყონ ნებართვები ინსტალაციაზე (წინასწარ Marshmallow) ან მოთხოვნით (Marshmallow+). თუმცა, არსებობს გარკვეული ნებართვები, რომ განაცხადების მინიჭება შეუძლებელია მაშინაც კი, თუ ისინი ამას მოითხოვენ მანიფესტში, როგორიცაა WRITE_SECURE_SETTINGS. ეს იმიტომ ხდება, რომ ნებისმიერი აპლიკაციის ასეთი ძლიერი ნებართვის მინიჭება ამ აპს თქვენს მოწყობილობაზე უამრავ კონტროლს მისცემს.

მაგრამ არის ერთი გამოსავალი, რომელიც ჩვენ შეგვიძლია გამოვიყენოთ WRITE_SECURE_SETTINGS ნებართვის მისაცემად ნებისმიერ ჩვენთვის საჭირო აპისთვის. ADB-ის გამოყენებით პაკეტის მენეჯერი (pm) ინსტრუმენტი, ჩვენ შეგვიძლია მივცეთ ნებისმიერი ნებართვა ნებისმიერ აპლიკაციას, რომელიც ჩვენ გვინდა (იმ პირობით, რომ აპლიკაცია ითხოვს ამ ნებართვას Manifest ფაილში).

პირველი რაც თქვენ უნდა გააკეთოთ არის დააინსტალირეთ ADB ორობითი თქვენს კომპიუტერზე, რასაც მოჰყვება სწორი დრაივერი თქვენი მოწყობილობისთვის. შემდეგ, ჩართეთ USB Debugging დეველოპერის ოფციებში (გადადით პარამეტრებში --> ტელეფონის შესახებ და შეეხეთ Build ნომერს 7-ჯერ, თუ ჯერ არ გაგიკეთებიათ) და დაუკავშირეთ თქვენი ტელეფონი თქვენს კომპიუტერს. და ბოლოს, გაგზავნეთ შემდეგი ბრძანება ტერმინალის გახსნის შემდეგ:

adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS

ახლა AutoTools-ს ექნება შესაძლებლობა შეცვალოს ნებისმიერი გლობალური, უსაფრთხო ან სისტემის პარამეტრი თქვენს მოწყობილობაზე. არსებობს სხვადასხვა გზა, რომლითაც შეგიძლიათ ითამაშოთ ამ პარამეტრებით და ხელმისაწვდომი პარამეტრების სიაში თითოეული კატეგორია მთლიანად დამოკიდებულია თქვენს მოწყობილობასა და პროგრამული უზრუნველყოფის კონსტრუქციაზე, მაგრამ ეს განხილვა სხვაზეა დრო. ნებისმიერ შემთხვევაში, ჩვენ გავაგრძელებთ გაჩვენებთ, თუ როგორ გამოიყენოთ AutoTools იმერსიული რეჟიმის გადასართავად.


Tasker-ის გამოყენება იმერსიული რეჟიმის გადასართავად Nougat Tile-ის საშუალებით

იმერსიული რეჟიმის გადართვა კრამიტის საშუალებით, ცხადია, მოითხოვს Android Nougat-ს, ასე რომ, თუ არ გაქვთ Nougat, გამოტოვეთ ეს განყოფილება, რომ ისწავლოთ მისი გადართვა თითო აპის საფუძველზე. თუ ჯერ არ გაქვთ, გადმოწერეთ AutoNotification Google Play Store-დან და მიეცით მას შეტყობინებების წვდომა. ეს Tasker დანამატი არის ის, რასაც ჩვენ გამოვიყენებთ, რათა შევქმნათ ჩვენი პირადი შეტყობინების ფილა.

აქ არის პროფილის აღწერა მათთვის, ვინც იცნობს Tasker-ს. თუ თქვენ არ იცნობთ Tasker-ს, წაიკითხეთ ნაბიჯ-ნაბიჯ ინსტრუქციები.

Nougat Tile Immersive რეჟიმის გადართვა

Profile: Toggle Immersive Mode (30)
Event: AutoNotification [ Configuration: Event Behaviour
Filter: immersivemode ]
Enter: Immersive Mode (33)
A1: AutoNotification Tiles [ Configuration: Tile: 1
Command: immersivemode
Label: Immersive mode
Icon: /storage/emulated/0/Tasker/immersive.png
State: 999 Timeout (Seconds):60 ]
A2: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

წაიკითხე მეტი

გახსენით Tasker და დააჭირეთ + ღილაკი ქვედა მარჯვენა კუთხეში. შექმენით ა ღონისძიება კონტექსტი და აირჩიეთ დანამატი --> AutoNotification. დააწკაპუნეთ ფანქრის ხატულაზე, რათა გახსნათ კონფიგურაციის გვერდი AutoNotification-ისთვის. Ქვეშ ბრძანების ფილტრი შედი ჩაძირვის რეჟიმი. ეს არის ზუსტი ბრძანება, რომელიც გაიგზავნება Nougat ფილაზე შეხებისას.

ახლა შექმენით ახალი ამოცანა (ნებისმიერი სახელით) მიმაგრებული ამ პროფილზე და პირველი მოქმედებისთვის გადადით მოდული --> AutoNotification --> Tiles. კრამიტის ნომრისთვის აირჩიეთ 1 ფილა. Სთვის ბრძანება შედი ჩაძირვის რეჟიმი ზუსტად ისე, როგორც წერია. The ეტიკეტი არის ის, რაც ნაჩვენები იქნება კრამიტის ქვეშ, ასე რომ დაარქვით მას "იმერსიული რეჟიმი". Სთვის Ხატი, შეინახეთ ხატულა, რომელიც დავურთე ამ განყოფილების დასაწყისში თქვენს შიდა მეხსიერებაში და გამოიყენეთ იგი. ბოლოს იმისთვის სახელმწიფო აირჩიეთ ჩართეთ აქტიური/არააქტიური.

როგორც კი დაასრულებთ, გაუშვით Task ერთხელ (დააჭირეთ დაკვრის ღილაკს Task შექმნის ეკრანის ქვედა მარცხენა მხარეს), ასე რომ ფილა იქნება შევსებული. ახლა, როგორც კი გააფართოვებთ ხელმისაწვდომი შეტყობინებების ფილების სიას, უნდა ნახოთ თქვენი ახალი იმერსიული რეჟიმის გადართვა.


Tasker-ის გამოყენება იმერსიული რეჟიმის გადასართავად თითო აპის საფუძველზე

იმერსიული რეჟიმის გადართვა თითო აპის საფუძველზე საკმაოდ მარტივია, რაც ჩვენ უნდა გავაკეთოთ არის აპლიკაციის კონტექსტის შექმნა Tasker, რომელიც გააქტიურდება აპლიკაციის გაშვების ან დახურვისას და როდესაც ის ამას აკეთებს, არის იმერსიული რეჟიმი გადართული. იმისათვის, რომ Tasker-მა განახორციელოს აპლიკაციების მონიტორინგი, თქვენ უნდა ჩართოთ იგი ხელმისაწვდომობის სერვისი.

აქ არის პროფილის აღწერა მათთვის, ვინც იცნობს Tasker-ს. თუ თქვენ არ იცნობთ Tasker-ს, წაიკითხეთ ნაბიჯ-ნაბიჯ ინსტრუქციები.

თითო აპის იმერსიული რეჟიმი

Profile: Per-App Immersive Mode (192)
Application: Chrome or XDA Labs
Enter: Anon (199)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

Exit: Anon (204)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

წაიკითხე მეტი

თქვენ ჯერ გსურთ გახსნათ Tasker, რადგან ჩვენ შევქმნით პროფილს იმერსიული რეჟიმის დასაწყებად, როდესაც გარკვეული აპლიკაციები ღიაა. გახსენით Tasker და დააჭირეთ + ღილაკი ქვედა მარჯვენა კუთხეში ახალი პროფილის შესაქმნელად. კონტექსტის ტიპისთვის აირჩიეთ განაცხადი და აირჩიეთ ყველა აპლიკაცია, რომელშიც გსურთ აქტიური იყოს იმერსიული რეჟიმი.

როდესაც დაასრულებთ, დააჭირეთ უკან და Tasker მოგთხოვთ Task-ის შექმნას. არ არის საჭირო დავალების სახელის დარქმევა, ამიტომ უბრალოდ დააჭირე ნიშანს, რათა დაიწყოს დავალების შექმნა. როგორც კი შეხვალთ ამოცანის შექმნის ეკრანზე, თქვენ უნდა დაამატოთ მხოლოდ ერთი მოქმედება. დააჭირეთ + დააჭირეთ ბოლოში და გადადით დანამატი --> ავტომატური ხელსაწყოები --> უსაფრთხო პარამეტრი. დააჭირეთ ფანქრის ხატულას AutoTools-ის კონფიგურაციისთვის. აი, გადადით ჩვენება შემდეგ შეეხეთ იმერსიული რეჟიმი და აირჩიე "გადართვა."

არის კიდევ ერთი რამ, რაც უნდა გავაკეთოთ, და ეს არის იმერსიული რეჟიმის გამორთვა აპლიკაციიდან გასვლისას. დაუბრუნდით Tasker-ის მთავარ ეკრანს და ხანგრძლივი დაჭერით დავალებაზე, რომელიც ახლახან შექმენით, ასე რომ თქვენ შეგიძლიათ შექმნათ ამოცანის გასვლა. როდესაც შექმნით გასასვლელ ამოცანას, უბრალოდ დაამატეთ იგივე ქმედება, რაც დაამატეთ პირველ ამოცანაში - ეს გადართავს იმერსიულ რეჟიმს.


დახვეწილი რეგულირების იმერსიული რეჟიმი

როგორც უკვე აღვნიშნე, ზუსტი ბრძანებები, რომლებიც ხელმისაწვდომია იმერსიული რეჟიმის იძულებით, შეიძლება იყოს შეგროვებული AOSP-დან. თქვენ შეგიძლიათ დააყენოთ იმერსიული რეჟიმი მხოლოდ შეტყობინებების ზოლის დამალვაზე ან მხოლოდ ნავიგაციის ზოლის დამალვაზე, რომელიმე შემდეგი ბრძანების გაცემით:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

რა თქმა უნდა, AutoTools რეალურად არ გაძლევთ საშუალებას პირდაპირ გააგზავნოთ shell-ის მსგავსი ბრძანებები, მაგრამ ამის ნაცვლად თქვენ გაგზავნით ბრძანებას მისი ინტერფეისის გამოყენებით. უბრალოდ აირჩიეთ „მორგებული პარამეტრი“ AutoTools Secure Settings-ში, დააყენეთ პარამეტრის ტიპი „გლობალურად“, დააყენეთ „შეყვანის ტიპი“ "სტრიქონი" და სახელისთვის უნდა შეიყვანოთ "policy_control immersive.status=*" ან "policy_control" immersive.navigation=*". თქვენ შეგიძლიათ გამოიყენოთ ეს ბრძანება იმ ბრძანების ნაცვლად, რომელიც ჩვენ ვიყენებდით Nougat Tile-ისთვის ან თითო აპის კონტროლისთვის, თუ გირჩევნიათ იმერსიული რეჟიმის დამალვა სტატუსის ზოლიდან ან ნავიგაციის ზოლიდან.


ჩამოტვირთეთ და იმპორტი Tasker-ში

როგორც ყოველთვის, ჩვენ გთავაზობთ სკრიპტის XML ფაილს, რომლის ჩამოტვირთვა და იმპორტი შეგიძლიათ. უბრალოდ ჩამოტვირთეთ ფაილი ქვემოთ მოცემული ბმულიდან და შეინახეთ სადმე თქვენს შიდა მეხსიერებაში. გახსენით Tasker და გამორთეთ დამწყებ რეჟიმი პრეფერენციებში. შემდეგ, დაბრუნდით მთავარ ეკრანზე და დიდხანს დააჭირეთ "პროფილის" ჩანართს ზემოთ. თქვენ უნდა ნახოთ ამომხტარი ფანჯარა, სადაც ერთ-ერთი ვარიანტია "იმპორტი". შეეხეთ მასზე და დაათვალიერეთ სად შეინახეთ .prf.xml ფაილი და აირჩიეთ ეს ფაილი იმპორტისთვის.

თუ თქვენ აირჩევთ შეტყობინებების ფილა ერთის იმპორტს, დარწმუნდით, რომ შეინახეთ იმერსიული რეჟიმის ხატულა როგორც immersive.png და შეინახეთ /sdcard/Tasker-ში. თუ აირჩევთ თითო აპის პროფილის იმპორტს, მაშინ დარწმუნდით, რომ შედით და დააკონფიგურირეთ ის აპლიკაციები, რომლებზეც ის ამოქმედდება, რადგან ჩემი ნიმუში დაყენებულია მხოლოდ Chrome-ის ან XDA Labs-ის გამოყენებისას.

ჩამოტვირთეთ Notification Tile Immersive Mode Toggle

ჩამოტვირთეთ თითო აპის იმერსიული რეჟიმის გადართვის პროფილი

ვიმედოვნებთ, რომ ეს რჩევა თქვენთვის სასარგებლო იქნება. შეგვატყობინეთ ქვემოთ მოცემულ კომენტარებში, თუ ეს თქვენთვის მუშაობს!