Android 11 ახორციელებს ცვლილებას, რომელიც ხელს შეუშლის მესამე მხარის კამერის აპების გამოჩენას გამოსახულების/ვიდეოს არჩევის განზრახვის ქმედებებში.
განახლება 1 (08/20/2020 @ 06:15 PM ET): Google-მა განაახლა თავისი დეველოპერის დოკუმენტაცია, რათა ახსნას, თუ რატომ ვერ უპასუხებენ მესამე მხარის კამერის აპებს Android 11-ზე გამოსახულების/ვიდეოს განზრახვის იმპლიციტურ ქმედებებზე. დამატებითი ინფორმაციისთვის გადაახვიეთ ბოლოში. სტატია, როგორც გამოქვეყნებულია 2020 წლის 19 აგვისტოს, დაცულია ქვემოთ.
Android 11 ცვლის აპების ურთიერთქმედების გზას მესამე მხარის კამერის აპლიკაციები თქვენს მოწყობილობაზე, რაც ხელს შეუშლის მათ გამოსახულების/ვიდეოს არჩევის მიზნებში გამოჩენას. Android-ის ძველ ვერსიებში, თუ აპს სურს მომხმარებლებს დაუშვას სურათის გადაღება, მას შეუძლია განახორციელოს სურათების გადაღება აპში (Android-ის კამერის სხვადასხვა API-ების გამოყენებით) ან მას შეუძლია გაგზავნოს განზრახვა, რომელიც შეიძლება დამუშავდეს სპეციალური კამერის აპლიკაციის მიერ სურათის გადასაღებად სამაგიეროდ. თუ აპი გადაწყვეტს ამ უკანასკნელ ვარიანტზე გადასვლას, Android-ის ძველ გამოშვებებში მომხმარებლებს ეძლევათ გაურკვეველი დიალოგი, რათა აირჩიონ მათ მიერ არჩეული კამერის აპლიკაცია სურათის გადასაღებად. დიალოგში, როგორც წესი, ნაჩვენებია მომხმარებლის მოწყობილობაზე დაინსტალირებული კამერის ყველა აპი, მესამე მხარის კამერის აპების ჩათვლით, თუ ისინი დაწერილია გარკვეულ მიზნებზე რეაგირებისთვის. თუმცა, Android 11-ში, დიალოგი მოიცავს მხოლოდ წინასწარ დაინსტალირებულ საფონდო კამერის აპებს, თუ დეველოპერები კონკრეტულად არ უმიზნებენ მესამე მხარის კამერის აპებს.
ცვლილება ფაქტობრივად ნიშნავს, რომ უმეტეს შემთხვევაში მომხმარებლებს მოუწევთ ხელით გაუშვან მესამე მხარის კამერის აპები, როდესაც მათ სურთ ფოტოს გადაღება, რაც მესამე მხარის კამერის აპებს ნაკლებად მოსახერხებელს გახდის გამოსაყენებლად. ის ასევე აიძულებს მომხმარებლებს დაადანაშაულონ მესამე მხარის კამერის აპების დეველოპერები, როდესაც მომხმარებელი აღმოაჩენს, რომ მათი საყვარელი კამერის აპის გაშვება სხვა აპებიდან აღარ შეიძლება. Google ახორციელებს ამ ცვლილებას Android 11-ში მესამე მხარის კამერის აპების მიერ შემდეგ მიზანმიმართულ ქმედებებზე რეაგირების თავიდან ასაცილებლად:
android.media.action.VIDEO_CAPTURE
android.media.action.IMAGE_CAPTURE
android.media.action.IMAGE_CAPTURE_SECURE
Google ამბობს რომ ეს ცვლილება დაყენებულია Android 11-ში მისი მომხმარებლების კონფიდენციალურობისა და უსაფრთხოების დასაცავად. კომპანია არ აკონკრეტებს, თუ როგორ, მაგრამ სავარაუდოა, რომ ზოგიერთი მავნე აპი გადაკეთდა კამერის აპებად, რათა მიიღონ წვდომა მომხმარებლის ფოტოებზე. თუმცა, კომპანია აღნიშნავს გამოსავალს დეველოპერებისთვის, რომელიც საშუალებას მისცემს აპებს კვლავ გაუშვან მესამე მხარის კამერის აპლიკაციები. გამოსავალი არსებითად მოითხოვს, რომ დეველოპერებმა დაამიზნონ კონკრეტული მესამე მხარის აპი მათი არჩეული განზრახვის გაგზავნისას. მაგალითად, დოკუმენტების სკანერის აპის შემქმნელს შეუძლია გააგზავნოს აშკარა განზრახვა გაშვებისთვის Adobe Photoshop კამერა ვიდრე კამერის ამომრჩევის გახსნის იმპლიციტური განზრახვის გაგზავნა. Android 11 ხდის ისე, რომ დეველოპერები ვერც კი იკითხავენ აპების სიას, რომლებსაც შეუძლიათ პასუხი გასცენ ზემოხსენებულ 3-ს. განზრახვის მოქმედებები, რაც ნიშნავს, რომ დეველოპერმა წინასწარ უნდა იცოდეს, რომელი მესამე მხარის კამერის აპები უნდა მხარდაჭერა.
წყარო: CommonsWare, ანდროიდის დეველოპერები
მეშვეობით: Reddit
მადლობა XDA-ს უფროს წევრს AndroidDeveloperLB წვერისთვის!
განახლება 1: Google ამბობს, რომ ეს ცვლილება არის კონფიდენციალურობის შესანარჩუნებლად
Google-მა განაახლა თავისი Android 11 ქცევის ცვლილებების გვერდი ახალი ინფორმაციით "მედია განზრახვის ქმედებები მოითხოვს სისტემის ნაგულისხმევ კამერას" განყოფილება (შ ზღვარზე). Google-ის განმარტებით, ცვლილება შექმნილია იმისთვის, რომ უზრუნველყოს EXIF მდებარეობის მეტამონაცემების სწორად დამუშავება მდებარეობის ნებართვების საფუძველზე აპი, რომელიც აგზავნის განზრახვას." ძირითადად, Google შეშფოთებულია იმით, რომ აპებს, რომლებსაც ჯერ არ აქვთ მინიჭებული მკაფიო მდებარეობაზე წვდომა, აიძულებენ მომხმარებლებს გახსნან კამერის აპები, რომლებიც აქვს მინიჭებული აქვს მდებარეობაზე წვდომა და რადგან შედეგად მიღებული ფოტო, რომელიც გადაეცემა აპს, შეიძლება შეიცავდეს EXIF მდებარეობას მეტამონაცემები, მაშინ დარეკვის აპს შეუძლია გვერდის ავლით მდებარეობის წვდომის მოთხოვნა მდებარეობის მონაცემების წაკითხვით ფოტო. თუ აპლიკაცია შეეცდება ამის გაკეთებას Android 11-ში, მას დასჭირდება განცხადება ACCESS_MEDIA_LOCATION
ისევე, როგორც ACCESS_COARSE_LOCATION
ან ACCESS_FINE_LOCATION
ნებართვები EXIF მდებარეობის მეტამონაცემების წასაკითხად. (აღსანიშნავია, Google-მა დახურა სხვა ადგილის წვდომის ხარვეზი Android 10-ში აპების მოთხოვნით ACCESS_MEDIA_LOCATION
ნებართვა, თუ აპი ცდილობს ფოტოებიდან არარედაქტირებული EXIF მეტამონაცემების აღდგენას.)
მიუხედავად იმისა, რომ ქცევის ეს ცვლილება გავლენას მოახდენს აპების უნარზე, გაუშვან მომხმარებლის მიერ განსაზღვრული ნაგულისხმევი კამერის აპი იმის გამო, თუ რამდენად ძველი და ხშირად გამოიყენება 3. ზემოაღნიშნული განზრახვის მოქმედებებია, Google აღნიშნავს, რომ ცვლილება არ იმოქმედებს ყველა განზრახვის მოქმედებაზე, რომელსაც შეუძლია მომხმარებლის მიერ განსაზღვრული ნაგულისხმევი კამერის აპის გაშვება, მაგ. როგორც: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA
, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE
, ან android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA
. თუმცა, ეს მიზნები არ ემსახურება იმავე მიზანს, რადგან ისინი მხოლოდ ახდენენ კამერის ნაგულისხმევ აპს, ვიდრე გამოსახულების გაგზავნის საშუალებას დარეკვის აპში.