Scoped Storage-ის წყალობით, Android 11 გარკვეულ მოწყობილობებზე ცოტა მოუხერხებელს ხდის სურათების წაშლას Google Photos-ში, მაგრამ შესაძლოა გამოსწორება იყოს.
ჩვენ არ გვაქვს საშუალება ვიცოდეთ, რამდენი მოწყობილობა მუშაობს ბაზარზე Android 11-ით Google-ის შემდეგ აღარ აქვეყნებს განაწილების სტატისტიკას, მაგრამ ახლა, ალბათ, ათობით მილიონია, როდესაც კომპანიებს, როგორიცაა Xiaomi და Samsung, ჰქონდათ დრო, განაახლონ განახლება. მათი ბევრი მოდელი. თუ თქვენი მოწყობილობა მუშაობს Android 11-ზე და იყენებთ Google Photos-ს, არსებობს შანსი, რომ შეგხვდეთ საკმაოდ შემაშფოთებელი ცვლილება აპის მიერ გამოსახულების წაშლისა და აღდგენაში. იმის ნაცვლად, რომ უბრალოდ აირჩიოთ სურათები და ვიდეოები, რომელთა წაშლა გსურთ, დააჭიროთ სანაგვე ურნის ხატულას და შემდეგ დააჭირეთ ღილაკს „გადაადგილება წაშლილებში" ღილაკზე, ახლა თქვენ მოგიწევთ შეეხეთ დამატებით მოთხოვნას, რათა Google Photos-ს მისცეთ ნებართვა წაშალოს ან აღადგინოს თქვენი ფაილები.
მათთვის, ვინც უამრავ ფოტოს და ვიდეოს იღებს, შეიძლება შემაშფოთებელი იყოს Google Photos-ს ფაილის წაშლის ან აღდგენის ნებართვის მინიჭება. და როგორც აღნიშნა
AndroidPolice, დამატებითი ღილაკის დაჭერა არ არის ერთადერთი პრობლემა, რომელთანაც შეიძლება გაუმკლავდეთ. თუ იყენებთ Google Photos-ს სხვა მოწყობილობაზე და გსურთ დაარედაქტიროთ ან წაშალოთ ფაილი, რომელიც ატვირთეთ თქვენი ტელეფონიდან Android 11-ით, აპმა შეიძლება მოგთხოვოთ გადახედოთ „სინქრონიზაციის გარეშე ცვლილებები“. ეს შეიძლება სწრაფად იყოს გამაღიზიანებელი, თუ Google Photos კვლავ გთხოვთ გადახედოთ თქვენ მიერ ახლახან განხორციელებულ ცვლილებებს სხვა პლატფორმაზე.ფაილის წაშლის ან აღდგენის დამატებითი ნაბიჯი არ იყო საჭირო Android 10-ში, მაგრამ ახლა საჭიროა Android 11-ში Scoped Storage-ის აღსრულების გამო. Scoped Storage-მდე წვდომა მთელ გარე მეხსიერების დირექტორიაზე იმართებოდა ერთის მიერ ნებართვა, რაც გაგიჭირდებათ შეზღუდოთ რა აპებს შეუძლიათ წვდომა თქვენს პირად დოკუმენტებზე, სურათებზე ან ვიდეოები. Scoped Storage-ით, Android ზღუდავს წვდომას აპს მგრძნობიარე ფაილებზე მომხმარებლის აშკარა თანხმობის გარეშე. დამატებითი დეტალების ნახვა შეგიძლიათ Scoped Storage-ზე ამ სტატიაში ან გადახედეთ Google-ის ქვემოთ მოცემულ გრაფიკს ცვლილებების შეჯამებისთვის.
სანამ ისინი Android 11-ში მეხსიერებაზე წვდომის შეზღუდვით იყვნენ დაკავებული, Google ასევე აუმჯობესებდა არსებულ API-ებს მომხმარებლის გამოცდილების გასაუმჯობესებლად. მაგალითად, აპებს, რომლებიც მიზნად ისახავს Android 11-ს, შეუძლიათ გამოიყენონ MediaStore API წაშალეთ ფაილი, ვიდრე წაშალოთ იგი. იმისათვის, რომ ფაილი ნაგავში გადაიტანოთ, აპს უნდა სთხოვეთ მომხმარებელს, მისცეს მას ჩაწერის წვდომა. ვინაიდან თქვენი ტელეფონიდან Google Photos-ში დამატებული სურათებისა და ვიდეოების უმეტესობა სხვა აპიდან მოვიდა — როგორიცაა საფონდო კამერის აპი — Photos-მა უნდა მოითხოვოს ნებართვა, სანამ მას შეუძლია ფაილის გადატანა მასში ან იქიდან ნაგავი. თუმცა, Google Photos არ ითხოვს ფაილების წაშლის ნებართვას, თუ იყენებთ Pixel ტელეფონს დაინსტალირებული Android 11-ით. თუმცა, ის ითხოვს ნებართვას ძირითადად ყველა სხვა მოწყობილობაზე, რომელიც მუშაობს Android 11-ზე, მათ შორის Samsung, Xiaomi, OnePlus და ASUS მოწყობილობების უმეტესობაზე. რას იძლევა?
მიზეზი არის ის, რომ სისტემის გალერეის აპლიკაცია არ ექვემდებარება Scoped Storage შეზღუდვებს. ეს ნიშნავს, რომ საფონდო გალერეის აპს შეუძლია სურათების და ვიდეოების გახსნა, რედაქტირება ან წაშლა აშკარა ნებართვის გარეშე. Google Photos წინასწარ არის დაყენებული, როგორც სისტემის გალერეის აპი Pixel ტელეფონებზე, მაგრამ OEM-ების უმეტესობა წინასწარ განსაზღვრავს საკუთარ გალერეის აპს. გარდა ამისა, არ არსებობს მომხმარებლის წინაშე არსებული პარამეტრი სისტემის გალერეის აპის შესაცვლელად, არც Android-ის „ნაგულისხმევი აპების“ ეკრანზე. თუმცა იქ არის სისტემური გალერეის აპლიკაციის შესაცვლელად ფარული გზა, მაგრამ არის ერთი დიდი გაფრთხილება: მხოლოდ სისტემური აპლიკაციის დაყენება შესაძლებელია სისტემის გალერეის აპად. ეს ნიშნავს მხოლოდ ტელეფონებს უკვე გაქვთ Google Photos წინასწარ დაინსტალირებული, როგორც სისტემის აპი შეუძლია ისარგებლოს ამ ხრიკით.
ბევრი ტელეფონი არ აკმაყოფილებს ამ კრიტერიუმს, მაგრამ ჩვენი ტესტირების საფუძველზე, ჩვენ შეგვიძლია დავადასტუროთ ეს მუშაობს უმეტეს OnePlus-ზე და ზოგიერთ ASUS ტელეფონზე. ეს მეთოდი არ მუშაობდა Samsung-ის არცერთ ტელეფონზე, რომლებზეც ჩვენ გამოვცადეთ და ასევე არ მუშაობდა Xiaomi Mi 10 Pro-ზე. თუ თქვენ გაქვთ root წვდომა ან გაქვთ მორგებული ROM, ეს მეთოდი შეიძლება იმუშაოს თქვენს მოწყობილობაზე Google Photos აპის სისტემატიზაციის შემდეგ, მაგრამ ჩვენ ეს მეთოდი გამოვცადეთ მხოლოდ საფონდო მოწყობილობებზე.
როგორ (შეიძლება) გახდეს Google Photos სისტემის გალერეის აპი
კრედიტი მიდის კიერონ ქუინს (Quinny899 XDA ფორუმებზე) ამ ხრიკის გაზიარებისთვის!
პირველი რაც თქვენ უნდა გააკეთოთ არის ADB-ის ინსტალაცია თქვენს კომპიუტერზე. ჩვენ გვაქვს განახლებული სახელმძღვანელო, თუ როგორ უნდა გავაკეთოთ ეს აქ. ADB დაყენების შემდეგ, შეიყვანეთ შემდეგი ბრძანება:
adbshellcmdroleadd-role-holderandroid.app.role.SYSTEM_GALLERYcom.google.android.apps.photos
თუ შეცდომას ვერ ხედავთ, მაშინ ის ალბათ მუშაობდა! შეგიძლიათ სწრაფად დაადასტუროთ, რომ ის მუშაობდა ფოტოს გადაღებით და შემდეგ წაშლის მცდელობით Google Photos-ში. გარდა ამისა, შეგიძლიათ გაუშვათ შემდეგი ბრძანება:
adb shell dumpsys role
...და შეამოწმეთ არის თუ არა "android.app.role"-ის "მფლობელი". SYSTEM_GALLERY" არის "com.google.android.apps.photos" (Google Photos-ის პაკეტის სახელი).
რას აკეთებს ეს ბრძანება?
Android 10-მა დაამატა ა ახალი API სახელწოდებით "როლები". როდესაც აპს აქვს გარკვეული როლი, მას ავტომატურად ეძლევა წვდომა გარკვეულ ნებართვებზე. მაგალითად, SYSTEM_GALLERY როლი ავტომატურად ანიჭებს აპს "სრულ წაკითხვისა და ჩაწერის წვდომას გარე მეხსიერების ყველა სურათისა და ვიდეო ფაილზე, მდებარეობაზე წვდომის ჩათვლით მეტამონაცემები." SYSTEM_GALLERY როლი შეიძლება მიენიჭოს მხოლოდ სისტემის აპლიკაციებს და მისი ნაგულისხმევი მფლობელი განისაზღვრება Android-ის მიერ კონფიგურაციის მნიშვნელობა "config_systemGallery." როგორც ადრე ავხსენით, OEM-ების უმეტესობა წინასწარ განსაზღვრავს ამ მნიშვნელობას მათი შესაბამისი პაკეტის სახელზე საკუთარი გალერეის აპლიკაცია. ეს მნიშვნელობა არ შეიძლება შეიცვალოს ჩარჩოს შეცვლის ან გადაფარვის დაყენების გარეშე, ორივე საჭიროებს root წვდომას.
თუმცა, ის არის შესაძლებელია სხვა აპლიკაციის დამატება, როგორც SYSTEM_GALLERY როლის მფლობელი, მაგრამ მხოლოდ თუ ეს აპლიკაცია ასევე სისტემური აპია. ეს შესაძლებელია ბევრ OnePlus-ზე და ზოგიერთ ASUS ტელეფონზე, რადგან ამ OEM-ებმა, როგორც ჩანს, წინასწარ დააინსტალირეს Google Photos სისტემის დონეზე და არა მომხმარებლის დონეზე. ამის გამო, Google Photos აპი უფლებამოსილია დაიკავოს SYSTEM_GALLERY როლი და ჩვენ ვსარგებლობთ ანდროიდის დამალული RoleManager გარსის ინტერფეისი, რათა მას მიენიჭოს წვდომა ნებართვებზე, რაც ჩვეულებრივ არ შეიძლება იყოს მინიჭებული. თუ ცდილობთ SYSTEM_GALLERY როლის მინიჭებას არასისტემური აპისთვის, დაინახავთ შემდეგ შეცდომას logcat-ში:
ERoleControllerServiceImpl: Packagedoesnotqualifyfortherole, package: com.google.android.apps.photos, role: android.app.role.SYSTEM_GALLERY
სამწუხაროდ, ჩვენ ვერ ვიპოვეთ გზა ამ შეზღუდვის გადასაჭრელად, მაგრამ თუ ვიპოვით, ჩვენს მეთოდს გავუზიარებთ საზოგადოებას. რა თქმა უნდა, ჩვენ გვირჩევნია, რომ Google-მა უბრალოდ გახადოს SYSTEM_GALLERY როლი მომხმარებლის მიერ განსაზღვრული, ვიდრე შემოიფარგლოს OEM-ის არჩევანით.