Android اسکوپڈ اسٹوریج کو سمجھنا: کیا بدلا ہے اور یہ کیوں اہم ہے۔

A smartphone beside small storage drawers with one locked, illustrating Android scoped storage

اگر آپ نے کبھی کسی Android ڈیوائس پر فائلز کا نظم کرنے کی کوشش کی ہے، تو آپ نے شاید محسوس کیا ہوگا کہ آپ Android کا کون سا ورژن چلا رہے ہیں اس پر منحصر ہے کہ چیزیں مختلف طریقے سے کام کرتی ہیں۔ Android 10 کے ساتھ شروع کرتے ہوئے، گوگل نے ایک بنیادی تبدیلی متعارف کرائی کہ ایپس فائل سسٹم کے ساتھ کیسے تعامل کرتی ہیں۔ اس تبدیلی نے، جسے اسکوپڈ اسٹوریج کے نام سے جانا جاتا ہے، مشترکہ اسٹوریج پر فائلوں کو پڑھنے اور لکھنے کے بارے میں قواعد کی نئی وضاحت کی۔ ان صارفین کے لیے جو ایپس کو سائڈ لوڈ کرتے ہیں، OBB فائلوں کا نظم کرتے ہیں، یا فائل مینیجرز کے ساتھ کام کرتے ہیں، اسکوپڈ اسٹوریج کو سمجھنا ضروری ہے۔

اس آرٹیکل میں، ہم دریافت کریں گے کہ اسکوپڈ اسٹوریج کیا ہے، گوگل نے اسے کیوں نافذ کیا، یہ روزمرہ کے صارفین اور ڈویلپرز کو کیسے متاثر کرتا ہے، اور جو بھی Play Store سے باہر APK یا XAPK فائلیں انسٹال کرتا ہے اس کے لیے اس کا کیا مطلب ہے۔

پرانے سٹوریج ماڈل کے ساتھ مسئلہ

اینڈروئیڈ 10 سے پہلے، کوئی بھی ایپ جس نے READ_EXTERNAL_STORAGE یا WRITE_EXTERNAL_STORAGE اجازت کی درخواست کی تھی وہ ڈیوائس کے مشترکہ اسٹوریج پر کسی بھی فائل تک رسائی حاصل کر سکتی ہے۔ اس میں دیگر ایپس کے ذریعے بنائی گئی تصاویر، دستاویزات، ڈاؤن لوڈ، اور یہاں تک کہ فائلیں بھی شامل تھیں۔ اگرچہ اس نے فائل مینجمنٹ کو آسان بنا دیا، اس نے رازداری اور سیکورٹی کے سنگین خدشات کو جنم دیا۔

ایک سادہ ٹارچ لائٹ ایپ پر غور کریں۔ پرانے ماڈل کے تحت، اگر آپ اسے اسٹوریج کی اجازت دیتے ہیں، تو یہ خاموشی سے آپ کی تصاویر پڑھ سکتا ہے، آپ کے ڈاؤن لوڈ کردہ دستاویزات کو اسکین کرسکتا ہے، یا دوسری ایپلی کیشنز سے تعلق رکھنے والی فائلوں میں ترمیم بھی کرسکتا ہے۔ کوئی دانے دار کنٹرول نہیں تھا۔ آپ نے یا تو ایک ایپ کو اپنے پورے اسٹوریج تک مکمل رسائی دی یا اسے مکمل طور پر مسترد کر دیا۔

اس وسیع رسائی نے حقیقی دنیا کے مسائل کو جنم دیا۔ کچھ ایپس نے حساس فائلوں کے لیے سٹوریج کو سکین کر کے صارف کا ڈیٹا حاصل کیا۔ دوسروں نے یتیم فائلوں کو پیچھے چھوڑ دیا جنہوں نے ایپ کے ان انسٹال ہونے کے کافی عرصے بعد ڈیوائس کو بے ترتیبی میں ڈال دیا۔ گوگل کو ایک ایسے حل کی ضرورت تھی جو پرائیویسی کے ساتھ قابل استعمال متوازن ہو، اور اسکوپڈ اسٹوریج ان کا جواب تھا۔

اسکوپڈ اسٹوریج اصل میں کیا کرتا ہے۔

اسکوپڈ اسٹوریج بنیادی طور پر ایپس اور فائل سسٹم کے درمیان تعلق کو تبدیل کرتا ہے۔ اس ماڈل کے تحت، ہر ایپ کو بیرونی اسٹوریج پر اپنا ذاتی سینڈ باکس ملتا ہے، جو عام طور پر /Android/data/[package.name]/ پر واقع ہوتا ہے۔ ایپس بغیر کسی اجازت کے اپنے سینڈ باکس میں آزادانہ طور پر پڑھ اور لکھ سکتی ہیں۔

تاہم، اس سینڈ باکس سے باہر فائلوں تک رسائی کے لیے کنٹرول شدہ APIs سے گزرنا ضروری ہے۔ یہاں یہ ہے کہ نیا ماڈل کیسے کام کرتا ہے:

ایپ کے لیے مخصوص اسٹوریج

ہر ایپ کی ایک سرشار ڈائریکٹری ہوتی ہے جس تک صرف وہی رسائی حاصل کر سکتی ہے۔ جب ایپ ان انسٹال ہو جاتی ہے، تو یہ ڈائرکٹری خود بخود صاف ہو جاتی ہے۔ روٹ تک رسائی کے بغیر کوئی دوسری ایپ اس مقام پر پڑھ یا لکھ نہیں سکتی۔ اس سے یتیم فائلوں کا مسئلہ ختم ہوجاتا ہے اور کراس ایپ ڈیٹا اسنوپنگ کو روکتا ہے۔

میڈیا کے مجموعے۔

مشترکہ میڈیا جیسے تصاویر، ویڈیوز اور آڈیو فائلوں کے لیے، Android MediaStore API فراہم کرتا ہے۔ ایپس مشترکہ مجموعوں میں میڈیا کا تعاون کر سکتی ہیں اور دیگر ایپس کے ذریعے تخلیق کردہ میڈیا کو پڑھ سکتی ہیں، لیکن صرف اس ساختی انٹرفیس کے ذریعے۔ ایک ایپ بغیر کسی اجازت کے اپنا میڈیا دیکھ سکتی ہے، لیکن دیگر ایپس کے میڈیا تک رسائی حاصل کرنے کے لیے READ_MEDIA_IMAGES، READ_MEDIA_VIDEO، یا READ_MEDIA_AUDIO اجازتوں کی ضرورت ہوتی ہے جسے Android 13 میں متعارف کرایا گیا ہے۔

اسٹوریج تک رسائی کا فریم ورک

دستاویزات اور دیگر غیر میڈیا فائلوں کے لیے، ایپس کو سٹوریج ایکسیس فریم ورک (SAF) استعمال کرنا چاہیے۔ یہ صارف کو سسٹم فائل چننے والا پیش کرتا ہے، جو واضح طور پر منتخب کرتا ہے کہ ایپ کن فائلوں یا ڈائریکٹریوں تک رسائی حاصل کر سکتی ہے۔ ایپ کو کبھی بھی پورے فائل سسٹم تک رسائی حاصل نہیں ہوتی ہے۔

MANAGE_EXTERNAL_STORAGE کی اجازت

ایسی ایپس کے لیے جنہیں حقیقی طور پر فائل تک وسیع رسائی کی ضرورت ہوتی ہے، جیسے فائل مینیجر، بیک اپ ٹولز، اور اینٹی وائرس سافٹ ویئر، Android MANAGE_EXTERNAL_STORAGE اجازت فراہم کرتا ہے۔ تاہم، اس اجازت کے لیے پلے اسٹور کے ذریعے تقسیم کی جانے والی ایپس کے لیے گوگل سے خصوصی منظوری درکار ہوتی ہے، اور صارفین کو اسے ایک سادہ ڈائیلاگ کے بجائے سسٹم کی ترتیبات کے ذریعے دستی طور پر دینا چاہیے۔

رول آؤٹ ٹائم لائن

گوگل نے اسکوپڈ اسٹوریج کو راتوں رات نافذ نہیں کیا۔ منتقلی آہستہ آہستہ ہوئی:

  • Android 10 (API 29): اسکوپڈ اسٹوریج متعارف کرایا گیا تھا لیکن ایپس اپنے مینی فیسٹ میں requestLegacyExternalStorage="true" کا استعمال کرتے ہوئے آپٹ آؤٹ کر سکتی ہیں۔ اس سے ڈویلپرز کو اپنانے کا وقت ملا۔
  • Android 11 (API 30): API 30 یا اس سے زیادہ کو نشانہ بنانے والی ایپس کے لیے میراثی پرچم کو نظر انداز کر دیا گیا تھا۔ پلے سٹور پر نئی اور اپ ڈیٹ ایپس کے لیے اسکوپڈ اسٹوریج لازمی ہو گیا ہے۔
  • Android 12 اور اس سے آگے: مزید اصلاحات کی گئیں، بشمول دانے دار میڈیا کی اجازتیں اور SAF کی بہتر کارکردگی۔
  • Android 13 (API 33): وسیع READ_EXTERNAL_STORAGE اجازت کو مخصوص میڈیا اجازتوں کے حق میں فرسودہ کر دیا گیا تھا۔
  • Android 14 (API 34): جزوی تصویر اور ویڈیو تک رسائی متعارف کرائی گئی تھی، جس سے صارفین کو پوری میڈیا لائبریریوں کے بجائے مخصوص فائلوں تک رسائی کی اجازت دی گئی تھی۔

اسکوپڈ اسٹوریج سائیڈ لوڈنگ کو کیسے متاثر کرتا ہے۔

پلے اسٹور کے باہر سے ایپس انسٹال کرنے والے صارفین کے لیے، اسکوپڈ اسٹوریج کچھ عملی چیلنجز متعارف کرواتا ہے جو سمجھنے کے قابل ہیں۔

APK فائلوں کو ڈاؤن لوڈ اور ان تک رسائی

جب آپ براؤزر کے ذریعے APK فائل ڈاؤن لوڈ کرتے ہیں، تو یہ عام طور پر ڈاؤن لوڈز فولڈر میں اتر جاتی ہے۔ اسکوپڈ اسٹوریج کے تحت، براؤزر ایپ اس فائل کی مالک ہے۔ اگر آپ اسے کسی مختلف ایپ کا استعمال کرتے ہوئے انسٹال کرنا چاہتے ہیں، جیسے کہ فائل مینیجر، تو اس فائل مینیجر کو مناسب رسائی کی ضرورت ہے۔ زیادہ تر جدید فائل مینیجر اس کو SAF کے ذریعے صحیح طریقے سے ہینڈل کرتے ہیں، لیکن بوڑھے لوگ جدوجہد کر سکتے ہیں۔

سسٹم پیکج انسٹالر اب بھی ان فائلوں تک رسائی حاصل کر سکتا ہے جنہیں آپ فائل پیکر کے ذریعے واضح طور پر منتخب کرتے ہیں، لہذا APK کو ڈاؤن لوڈ اور انسٹال کرنے کا بنیادی بہاؤ اب بھی کام کرتا ہے۔ تاہم، خودکار انسٹالیشن ورک فلوز جو براہ راست فائل پاتھ تک رسائی پر انحصار کرتے ہیں ٹوٹ سکتے ہیں۔

OBB فائلیں اور گیم ڈیٹا

یہ وہ جگہ ہے جہاں گنجائش والا ذخیرہ سائڈ لوڈرز کے لیے سب سے زیادہ رگڑ پیدا کرتا ہے۔ بہت سے بڑے گیمز /Android/obb/[package.name]/ میں ذخیرہ شدہ OBB (Opaque Binary Blob) فائلوں کا استعمال کرتے ہیں۔ پرانے ماڈل کے تحت، آپ آسانی سے OBB فائلوں کو کسی بھی فائل مینیجر کا استعمال کرتے ہوئے درست ڈائریکٹری میں کاپی کر سکتے ہیں۔

اسکوپڈ اسٹوریج کے ساتھ، /Android/obb/ ڈائرکٹری پر پابندی ہے۔ Android 11 اور اس کے بعد کے ورژن پر، باقاعدہ ایپس کسی اور ایپ کی OBB ڈائرکٹری میں نہیں لکھ سکتیں۔ اس کا مطلب ہے کہ اگر آپ ایک XAPK فائل ڈاؤن لوڈ کرتے ہیں جس میں OBB ڈیٹا ہوتا ہے، تو انسٹالر کو ان فائلوں کو صحیح طریقے سے رکھنے کے لیے خصوصی ہینڈلنگ کی ضرورت ہوتی ہے۔

ہمارے OBB ایکسٹریکٹر جیسے ٹولز XAPK پیکجز سے OBB فائلیں نکالنے میں آپ کی مدد کر سکتے ہیں، لیکن انہیں Android کے نئے ورژنز پر درست ڈائرکٹری میں رکھنے کے لیے MANAGE_EXTERNAL_STORAGE اجازت کے ساتھ فائل مینیجر یا کمپیوٹر سے ADB کمانڈز استعمال کرنے کی ضرورت پڑ سکتی ہے۔

XAPK کی تنصیب کے تحفظات

XAPK فائلیں ایک APK کو OBB ڈیٹا کے ساتھ بنڈل کرتی ہیں اور بعض اوقات APK کنفیگریشنز کو تقسیم کرتی ہیں۔ Android 11 یا اس کے بعد والے آلات پر ان کو انسٹال کرنے کے لیے ایک ایسے انسٹالر کی ضرورت ہوتی ہے جو اسکوپڈ اسٹوریج کی پابندیوں کو سمجھتا ہو۔ انسٹالر کو یا تو MANAGE_EXTERNAL_STORAGE اجازت رکھنے کی ضرورت ہے یا OBB فائلوں کو صحیح جگہ پر رکھنے کے لیے مناسب APIs کا استعمال کرنا چاہیے۔

یہ ایک وجہ ہے کہ XAPK فائلوں کو معیاری APK فارمیٹ میں تبدیل کرنا مفید ہو سکتا ہے۔ ایک اسٹینڈ تنہا APK کو OBB فائل کی جگہ کا تعین کرنے کی ضرورت نہیں ہے، نئے Android ورژنز پر انسٹالیشن کے عمل کو آسان بناتا ہے۔ آپ XAPK پیکیج سے بنیادی APK نکالنے کے لیے ہمارا XAPK سے APK کنورٹر استعمال کر سکتے ہیں۔

ڈویلپرز کو کیا جاننے کی ضرورت ہے۔

اگر آپ Android ایپس تیار کر رہے ہیں تو اسکوپڈ سٹوریج کے لیے دوبارہ سوچنے کی ضرورت ہے کہ آپ فائلوں کو کیسے ہینڈل کرتے ہیں:

  • ایپ کے لیے مخصوص ڈائریکٹریز استعمال کریں۔ کسی بھی فائل کے لیے جن کی صرف آپ کی ایپ کو ضرورت ہے۔ ان کو کسی اجازت کی ضرورت نہیں ہے اور ان انسٹال پر خود بخود صاف ہو جاتے ہیں۔
  • میڈیا اسٹور استعمال کریں۔ تصاویر، ویڈیوز اور آڈیو کے لیے جو دیگر ایپس کو نظر آنا چاہیے اور ان انسٹال ہونے سے بچ جانا چاہیے۔
  • SAF استعمال کریں۔ جب آپ کی ایپ کو صارف کے منتخب کردہ دستاویزات یا ڈائریکٹریز کے ساتھ کام کرنے کی ضرورت ہو۔
  • ہارڈ کوڈ فائل پاتھ سے بچیں۔ راستے جیسے /sdcard/MyApp/ اب قابل بھروسہ نہیں ہیں۔ اس کے بجائے Context.getExternalFilesDir() استعمال کریں۔
  • متعدد API سطحوں پر ٹیسٹ کریں۔ طرز عمل Android 10، 11، 13 اور 14 کے درمیان نمایاں طور پر مختلف ہے۔

نقل مکانی کی حکمت عملی

اگر آپ کی ایپ نے پہلے مشترکہ اسٹوریج میں فائلیں اسٹور کی ہیں، تو آپ کو منتقلی کا منصوبہ درکار ہے۔ تجویز کردہ نقطہ نظر یہ ہے کہ اپ ڈیٹ کے بعد پہلے لانچ پر موجودہ فائلوں کو ایپ کے مخصوص اسٹوریج میں کاپی کیا جائے، پھر پرانی کاپیاں حذف کردیں۔ پرانی فائلوں کو پڑھنے کے لیے منتقلی کی مدت کے دوران میراثی پرچم کے ساتھ Environment.getExternalStorageDirectory() استعمال کریں، پھر انہیں نئے مقام پر منتقل کریں۔

عام غلط فہمیاں

"اسکوپڈ اسٹوریج کا مطلب ہے کہ ایپس کسی بھی فائل تک رسائی حاصل نہیں کر سکتی ہیں"

یہ جھوٹ ہے۔ ایپس اب بھی آزادانہ طور پر اپنی فائلوں تک رسائی حاصل کر سکتی ہیں، مشترکہ میڈیا کلیکشن میں حصہ ڈال سکتی ہیں، اور سسٹم چنندہ کے ذریعے مخصوص فائلوں تک رسائی کی درخواست کر سکتی ہیں۔ کیا تبدیلی آئی ہے کہ ایپس اب خاموشی سے پورے فائل سسٹم کو براؤز نہیں کرسکتی ہیں۔

"فائل مینیجر نئے Android ورژن پر ٹوٹ گئے ہیں"

MANAGE_EXTERNAL_STORAGE کی درخواست کرنے والے فائل مینیجر اب بھی کام کرتے ہیں۔ صارف کو صرف ترتیبات کے ذریعے یہ خصوصی اجازت دینے کی ضرورت ہے۔ سب سے زیادہ مقبول فائل مینیجر پہلے ہی اس ضرورت کے مطابق ڈھال چکے ہیں۔

"اسکوپڈ اسٹوریج صرف SD کارڈ کو متاثر کرتا ہے"

اسکوپڈ اسٹوریج کا اطلاق تمام مشترکہ اسٹوریج پر ہوتا ہے، بشمول اندرونی مشترکہ اسٹوریج۔ Android میں "بیرونی اسٹوریج" کی اصطلاح سے مراد مشترکہ اسٹوریج ہے جو متعدد ایپس کے لیے قابل رسائی ہے، ضروری نہیں کہ کوئی فزیکل SD کارڈ ہو۔

صارفین کے لیے عملی تجاویز

اگر آپ اپنے Android ڈیوائس پر ایپس کو باقاعدگی سے سائڈ لوڈ کرتے ہیں یا فائلوں کا نظم کرتے ہیں، تو یہاں کچھ عملی تجاویز ہیں:

  1. جدید فائل مینیجر استعمال کریں۔ جو MANAGE_EXTERNAL_STORAGE کو سپورٹ کرتا ہے۔ Solid Explorer، MiXplorer، اور Total Commander جیسی ایپس نے اسکوپڈ اسٹوریج کے لیے اچھی طرح سے ڈھال لیا ہے۔
  2. احتیاط سے اجازتیں دیں۔ جب فائل مینیجر "تمام فائلوں تک رسائی" کے لیے پوچھتا ہے، تو سمجھیں کہ یہ MANAGE_EXTERNAL_STORAGE اجازت ہے اور مکمل فعالیت کے لیے ضروری ہے۔
  3. ضدی فائل آپریشنز کے لیے ADB استعمال کریں۔ اگر آپ فائل مینیجر کے ذریعے OBB فائلیں نہیں رکھ سکتے ہیں، تو اپنے آلے کو کمپیوٹر سے جوڑنا اور adb push استعمال کرنا اسکوپڈ اسٹوریج کی پابندیوں کو مکمل طور پر نظرانداز کرتا ہے۔
  4. پیچیدہ پیکجوں کو آسان فارمیٹس میں تبدیل کریں۔ اگر ایک XAPK فائل آپ کو کسی نئے ڈیوائس پر پریشانی کا باعث بن رہی ہے، تو صرف APK جز کو نکالنا کم از کم مزاحمت کا راستہ ہو سکتا ہے۔
  5. اپنے انسٹالر ایپس کو اپ ڈیٹ رکھیں۔ XAPK انسٹالرز کے پرانے ورژن اسکوپڈ اسٹوریج کو صحیح طریقے سے ہینڈل نہیں کرسکتے ہیں۔

Android اسٹوریج کا مستقبل

گوگل ہر Android ریلیز کے ساتھ اسٹوریج ماڈل کو بہتر کرتا رہتا ہے۔ Android 14 نے میڈیا کی جزوی رسائی متعارف کرائی، جس سے صارفین کو اپنی پوری لائبریری کے بجائے مخصوص تصاویر کو ایپ کے ساتھ شیئر کرنے دیا گیا۔ Android 15 سے سٹوریج ایکسیس فریم ورک کی کارکردگی اور استعمال میں مزید بہتری کی توقع ہے۔

رجحان واضح ہے: Android ایک ایسے ماڈل کی طرف بڑھ رہا ہے جہاں صارفین کے پاس ہر ایپ کیا دیکھ اور ترمیم کر سکتی ہے اس پر بہتر کنٹرول ہے۔ اگرچہ یہ پاور استعمال کرنے والوں اور سائڈ لوڈرز کے لیے کچھ رگڑ پیدا کرتا ہے، لیکن یہ وسیع تر صارف کی بنیاد کے لیے پرائیویسی اور سیکیورٹی کو نمایاں طور پر بہتر بناتا ہے۔

ایپ ڈیٹا کو توڑے بغیر اسکوپڈ اسٹوریج کے ساتھ کام کرنا

اسکوپڈ اسٹوریج حالیہ برسوں میں Android کے فن تعمیر میں سب سے اہم تبدیلیوں میں سے ایک کی نمائندگی کرتا ہے۔ ایپس کو ان کے اپنے سینڈ باکسز تک محدود کرکے اور وسیع تر رسائی کے لیے واضح صارف کی رضامندی کی ضرورت کے ذریعے، گوگل نے پلیٹ فارم کی رازداری کی کرنسی کو ڈرامائی طور پر بہتر کیا ہے۔ ان صارفین کے لیے جو ایپس کو سائڈلوڈ کرتے ہیں اور فائلوں کو دستی طور پر منظم کرتے ہیں، ان پابندیوں کو سمجھنے سے آپ کو کبھی کبھار رگڑ کے مقامات پر کام کرنے میں مدد ملتی ہے۔ اور ڈویلپرز کے لیے، اسکوپڈ اسٹوریج کو اپنانا اختیاری نہیں ہے بلکہ جدید Android ڈیولپمنٹ کے لیے ایک بنیادی ضرورت ہے۔

APKs کو انسٹال کرنا، OBB فائلیں رکھنا، اور روزانہ صرف اسٹوریج کا انتظام کرنا سب ایک ہی سسٹم میں چلتے ہیں: اسکوپڈ اسٹوریج۔ ایک بار جب آپ سمجھ جاتے ہیں کہ یہ کیسے کام کرتا ہے، تو آپ اپنے آلے کے کنٹرول میں ہیں، بجائے اس کے کہ وہ ایپس کے رحم و کرم پر ہوں جو وسیع فائل تک رسائی کا غلط استعمال کر سکتی ہیں۔

انجینئرڈ اور دستاویزی Mst Shafale کے ذریعہ لیڈ ڈیولپر اور Android پیکیج آرکیٹیکٹ • Android 12–15 پر تصدیق شدہ

Mst Shaefale xapktoapk.com پر کلائنٹ سائڈ XAPK/APKS انضمام، بائنری مینی فیسٹ پارسر، اور APK v1+v2 سائننگ ٹولز کو برقرار رکھتی ہے۔ ایک پرانی کمانڈ یا OS کی تبدیلی کو اسپاٹ کریں؟ ایک ادارتی نوٹ بھیجیں۔