يجعل Android 11 تطبيق Google Photos مزعجًا للاستخدام ولكن قد يكون هناك حل

بفضل Scoped Storage، يجعل نظام Android 11 على بعض الأجهزة حذف الصور في صور Google أمرًا غير مريح بعض الشيء، ولكن قد يكون هناك حل.

ليس لدينا طريقة لمعرفة عدد الأجهزة الموجودة في السوق التي تعمل بنظام Android 11 منذ Google لم تعد تنشر إحصائيات التوزيع، ولكن من المحتمل أن يكون هناك عشرات الملايين الآن ممن أتيحت لشركات مثل Xiaomi وSamsung الوقت لدفع التحديث إليها العديد من نماذجهم. إذا كان جهازك يعمل بنظام Android 11 وكنت تستخدم صور Google، فمن المحتمل أنك واجهت تغييرًا مزعجًا إلى حد ما في الطريقة التي يتعامل بها التطبيق مع حذف الصور واستعادتها. بدلاً من تحديد الصور ومقاطع الفيديو التي تريد حذفها ببساطة، اضغط على أيقونة سلة المهملات، ثم اضغط على زر "نقل" "إلى سلة المهملات"، سيتعين عليك الآن النقر فوق مطالبة إضافية لمنح صور Google الإذن بحذف صورك أو استعادتها ملفات.

بالنسبة لأولئك الذين يلتقطون الكثير من الصور ومقاطع الفيديو، قد يكون من المزعج أن تضطر إلى منح إذن صور Google لحذف ملف أو استعادته. وكما أشار AndroidPolice، فإن النقر على زر إضافي ليس هو المشكلة الوحيدة التي قد يتعين عليك التعامل معها. إذا كنت تستخدم صور Google على جهاز آخر وتريد تعديل ملف قمت بتحميله من هاتفك الذي يعمل بنظام Android 11 أو حذفه، فقد يطلب منك التطبيق مراجعة "التغييرات غير المتزامنة". يمكن أن يصبح ذلك مزعجًا بسرعة إذا استمر تطبيق صور Google في مطالبتك بمراجعة التغييرات التي أجريتها للتو على نظام أساسي آخر.

لم تكن الخطوة الإضافية لحذف ملف أو استعادته مطلوبة في Android 10 ولكنها مطلوبة الآن في Android 11 نظرًا لفرض Scoped Storage. قبل Scoped Storage، كانت تتم إدارة الوصول إلى دليل التخزين الخارجي بالكامل بواسطة ملف واحد إذن، مما يجعل من الصعب عليك تحديد التطبيقات التي يمكنها الوصول إلى مستنداتك أو صورك أو ملفاتك الخاصة أشرطة فيديو. مع استخدام Scoped Storage، يحد Android من مقدار الوصول الذي يمكن أن يحصل عليه التطبيق إلى الملفات الحساسة دون موافقة صريحة من المستخدم. يمكنك العثور على مزيد من التفاصيل حول Scoped Storage في هذه المقالة أو انظر إلى رسم Google أدناه للحصول على ملخص للتغييرات.

بينما كانوا مشغولين بتقييد الوصول إلى مساحة التخزين في Android 11، كانت Google تعمل أيضًا على تحسين واجهات برمجة التطبيقات الحالية لتحسين تجربة المستخدم. على سبيل المثال، يمكن للتطبيقات التي تستهدف Android 11 استخدام MediaStore API للقيام بذلك قم بحذف الملف بدلاً من حذفه. ولكن لنقل ملف إلى سلة المهملات، يجب على التطبيق القيام بذلك مطالبة المستخدم بمنحه حق الوصول للكتابة. نظرًا لأن معظم الصور ومقاطع الفيديو التي تضيفها إلى صور Google من هاتفك تأتي من تطبيق مختلف — مثل تطبيق كاميرا المخزون - يجب أن تطلب الصور الإذن قبل أن تتمكن من نقل ملف من وإلى نفاية. ومع ذلك، لا تطلب صور Google الإذن بنقل الملفات إلى سلة المهملات إذا كنت تستخدم هاتف Pixel مثبت عليه Android 11. ومع ذلك، فهو يطلب الإذن على كل الأجهزة الأخرى التي تعمل بنظام Android 11، بما في ذلك معظم أجهزة Samsung وXiaomi وOnePlus وASUS. ما يعطي؟

والسبب هو أن تطبيق معرض النظام لا يخضع لقيود التخزين ذات النطاق. وهذا يعني أن تطبيق معرض الأوراق المالية يمكنه فتح الصور ومقاطع الفيديو أو تحريرها أو حذفها دون إذن صريح. يتم تعيين صور Google مسبقًا كتطبيق معرض النظام على هواتف Pixel، ولكن معظم الشركات المصنعة للمعدات الأصلية تقوم بإعداد تطبيق المعرض الخاص بهم مسبقًا بدلاً من ذلك. علاوة على ذلك، لا يوجد إعداد يواجه المستخدم لتغيير تطبيق معرض النظام، ولا حتى في شاشة "التطبيقات الافتراضية" لنظام Android. مهما يكن هنا يكون طريقة مخفية لتغيير تطبيق معرض النظام، ولكن هناك طريقة واحدة كبير تحذير: يمكن تعيين تطبيق النظام فقط كتطبيق معرض النظام. وهذا يعني فقط الهواتف التي لديك بالفعل صور Google مثبتة مسبقًا كتطبيق نظام يمكن الاستفادة من هذه الخدعة.

ليس هناك الكثير من الهواتف التي تلبي هذا المعيار، ولكن بناءً على اختباراتنا، يمكننا تأكيد ذلك يعمل على معظم هواتف OnePlus وبعض هواتف ASUS. لم تنجح هذه الطريقة على أي من هواتف سامسونج التي اختبرناها عليها، كما أنها لم تنجح أيضًا على هاتف Xiaomi Mi 10 Pro. إذا كان لديك حق الوصول إلى الجذر أو تقوم بتشغيل ذاكرة ROM مخصصة، فقد تعمل هذه الطريقة على جهازك بعد تنظيم تطبيق صور Google، ولكننا اختبرنا هذه الطريقة فقط على الأجهزة المخزنة.

كيفية (ربما) جعل صور Google تطبيق معرض النظام

الاعتمادات تذهب إلى كيرون كوين (كويني899 في منتديات XDA) لمشاركة هذه الخدعة!

أول شيء عليك القيام به هو تثبيت ADB على جهاز الكمبيوتر الخاص بك. لدينا دليل محدث حول كيفية القيام بذلك هنا. بمجرد الانتهاء من إعداد ADB، أدخل الأمر التالي:

adbshellcmdroleadd-role-holderandroid.app.role.SYSTEM_GALLERYcom.google.android.apps.photos

إذا لم تشاهد أي خطأ، فمن المحتمل أن الأمر نجح! يمكنك التحقق بسرعة من نجاحه من خلال التقاط صورة ثم محاولة حذفها في صور Google. بدلا من ذلك، يمكنك تشغيل الأمر التالي:

adb shell dumpsys role

...وتحقق لمعرفة ما إذا كان "صاحب" "android.app.role. SYSTEM_GALLERY" هو "com.google.android.apps.photos" (اسم حزمة صور Google).

إذا كانت مخرجاتك تتطابق مع النص المميز في المستطيل الأحمر، فهذا يعني أنها نجحت.

ماذا يفعل هذا الأمر؟

أضاف أندرويد 10 أ واجهة برمجة تطبيقات جديدة تسمى "Roles". عندما يكون لأحد التطبيقات دور معين، يتم منحه تلقائيًا حق الوصول إلى أذونات معينة. على سبيل المثال، دور SYSTEM_GALLERY يمنح التطبيق تلقائيًا "وصولاً كاملاً للقراءة والكتابة إلى جميع ملفات الصور والفيديو الموجودة على وحدة التخزين الخارجية، بما في ذلك الوصول إلى الموقع البيانات الوصفية." لا يمكن منح دور SYSTEM_GALLERY إلا لتطبيقات النظام، ويتم تحديد حامله الافتراضي بواسطة Android قيمة التكوين "config_systemGallery." كما أوضحنا سابقًا، تقوم معظم الشركات المصنعة للمعدات الأصلية (OEMs) بتعيين هذه القيمة مسبقًا على اسم الحزمة المتوافق مع اسم الحزمة الخاص بها تطبيق المعرض الخاص. لا يمكن تغيير هذه القيمة دون تعديل إطار العمل أو تثبيت تراكب، وكلاهما يتطلب الوصول إلى الجذر.

ومع ذلك، فإنه يكون من الممكن إضافة تطبيق آخر كصاحب دور SYSTEM_GALLERY، ولكن فقط إذا كان هذا التطبيق هو أيضًا تطبيق نظام. يعد هذا ممكنًا على العديد من هواتف OnePlus وبعض هواتف ASUS نظرًا لأن مصنعي المعدات الأصلية قاموا على ما يبدو بتثبيت Google Photos مسبقًا على مستوى النظام بدلاً من مستوى المستخدم. ولهذا السبب، فإن تطبيق صور Google مؤهل لشغل دور SYSTEM_GALLERY، ونحن نستفيد من ذلك من واجهة ShellRoleManager المخفية لنظام Android لمنحه حق الوصول إلى الأذونات التي لا يمكن الحصول عليها عادةً ممنوح. إذا حاولت منح دور SYSTEM_GALLERY لتطبيق غير تابع للنظام، فسترى الخطأ التالي في logcat:

ERoleControllerServiceImpl: Packagedoesnotqualifyfortherole, package: com.google.android.apps.photos, role: android.app.role.SYSTEM_GALLERY

للأسف، لم نجد طريقة للتغلب على هذا القيد، ولكن إذا فعلنا ذلك، فسنشارك طريقتنا مع المجتمع. بالطبع، نفضل أن تقوم Google ببساطة بجعل دور SYSTEM_GALLERY قابلاً للتعريف من قبل المستخدم بدلاً من أن يقتصر على اختيار الشركة المصنعة للمعدات الأصلية (OEM).