خارج شدہ ایپ اب بھی آن لائن؟ ایپ اور راستے کے قواعد مختلف ہیں
Android ایپ کو VPN سے خارج کرنا اسے بلاک نہیں کرتا۔ اجازت کی فہرستیں، UID قواعد اور بھیجے گئے راستے راستے کے مختلف حصے طے کرتے ہیں۔
پیکیج کو خارج کرنا بلاک نہیں، روٹنگ کی ہدایت ہے، اس لیے VPN جڑنے کے بعد لوڈ ہونے والے صفحات متوقع ہیں، ناکامی کا ثبوت نہیں۔ خارج کرنا ایپ کو بلاک کرنے کے بجائے سرنگ سے نکال دیتا ہے، اور عام نیٹ ورک اس کی ٹریفک اٹھاتا ہے۔ یہاں دو الگ پالیسیاں ملتی ہیں: ایک عمل چنتی ہے، دوسری منزلیں. انہیں اسی ترتیب سے پڑھنا بتاتا ہے کہ جڑا ہوا آئیکن اور چلتی ہوئی ایپ تضاد کیوں نہیں۔
خارج کرنا نیٹ ورک کھلا کیوں رکھتا ہے
VpnService.Builder یا تو اجازت کی فہرست لیتا ہے یا ممانعت کی فہرست، دونوں کبھی نہیں۔ سرنگ سے صرف اجازت کی فہرست کے پیکیج گزرتے ہیں۔ ممانعت کی فہرست اسے الٹ دیتی ہے: فہرست میں شامل کے سوا ہر پیکیج سرنگ استعمال کرتا ہے، اور شامل پیکیج جسمانی راستہ رکھتے ہیں۔ اجازت کی فہرست میں نہ ہونے والا پیکیج بھی سرنگ سے باہر ہوتا ہے، اس لیے اس موڈ میں زیادہ تر ایپس کے لیے خارج کرنا عام حالت ہے۔
یہ مقامی ممانعت کے اندراج کو فائر وال قاعدہ نہیں، روٹنگ کا فیصلہ بناتا ہے۔ اگر ضرورت یہ ہو کہ ایپ کسی میزبان تک نہ پہنچے، تو سرنگ کو اسے ڈھانپنا ہوگا اور سرور یا مقامی پالیسی کو ٹریفک مسترد کرنا ہوگا۔ ایپ کو سرنگ سے نکالنا صرف یہ بدلتا ہے کہ اس کے پیکٹ کون سا انٹرفیس اٹھاتا ہے۔
Play Store کا معاملہ عام دانستہ مثال ہے۔ اسٹور کا پیکیج خارج کرنے سے ڈاؤن لوڈز بنیادی کنکشن استعمال کر سکتے ہیں جب VPN کا اخراج منتقلی میں رکاوٹ ڈالتا ہے، اور یہ دکھاتا ہے کہ خارج کرنا بلاک نہیں، گریز ہے۔
ایک پروفائل، ایک فہرست
دونوں کال استعمال ہوں تو بلڈر استثنا پھینکتا ہے، اس لیے آپ کے سامنے پروفائل یا اجازت کی فہرست ہے یا ممانعت کی۔ یہی ایک حقیقت طے کرتی ہے کہ ہر بعد کا مشاہدہ کیسے پڑھا جائے۔ روٹنگ جدول سے پہلے کوڈ یا زیرِ انتظام کنفیگریشن جانچیں، کیونکہ فہرست ہی باقی آؤٹ پٹ کا مطلب طے کرتی ہے۔ ہائبرڈ پروفائل ایسی حالت نہیں جسے آپ دیکھ سکیں۔
یہ فرق یہ بھی بتاتا ہے کہ نئی نصب شدہ ایپ کیا کرے گی۔ اجازت کی فہرست میں کوئی شامل کرنے تک وہ باہر رہتی ہے، جبکہ ممانعت کی فہرست میں وہ بطور طے شدہ سرنگ میں شامل ہو جاتی ہے۔
زیرِ انتظام کنفیگریشنز وہی انتخاب دوسرے کلیدی ناموں کے تحت دکھاتی ہیں، اور کچھ کنسولز اسے فہرست کے بجائے فی ایپ VPN موڈ کہتے ہیں۔ رویہ پھر بھی انہی دو کالوں تک محدود ہے، اس لیے لیبل پر بھروسا کرنے کے بجائے سیٹنگ کو پیکیج فہرست تک پیچھے ٹریس کریں۔ اگر لیبل اور فہرست میں میل نہ ہو تو فہرست جیتتی ہے۔
UID قاعدے کی پیروی کرتے ہوئے سرنگ کے جدول تک جائیں
Android ہر ایپ کو اس کی اپنی Linux صارف ID دیتا ہے، اور VPN سروس UID حدود سے ملتے ہوئے پالیسی قواعد نصب کرتی ہے۔ ملتی جلتی ٹریفک ایسے روٹنگ جدول میں بھیجی جاتی ہے جس کا طے شدہ راستہ tun آلے کی طرف اشارہ کرتا ہے۔ جدول کا نمبر ہر VPN مثال کے لیے مختص ہوتا ہے، اس لیے دوبارہ جڑنے یا دوسرا VPN پروفائل بنانے کے بعد بدل جاتا ہے۔
قواعد کا آؤٹ پٹ ہی نقشہ ہے۔ ہر سطر ایک تلاش جدول کا نام لیتی ہے، اور وہ جدول وہ طے شدہ راستہ رکھتا ہے جو فیصلہ کرتا ہے کہ ملتے جلتے پیکٹ سرنگ میں داخل ہوں گے یا نہیں۔
adb shell ip rule show
adb shell ip route show table all
adb shell cmd package list packages -U | grep <package>
UID حاصل کرنے کے لیے پہلے تیسری کمانڈ چلائیں، پھر وہ قاعدہ تلاش کریں جس کی حد میں یہ آتا ہے۔ وہ قاعدہ جدول نمبر کی طرف اشارہ کرتا ہے، اور ip route show table <n> اس نمبر کے ساتھ tun آلے سے ہوکر کوئی طے شدہ راستہ ہے یا نہیں دکھتا ہے۔ اگر جدول میں طے شدہ نہ ہو تو ایپ منتخب ہے مگر راستہ نہیں، جو الگ ناکامی ہے۔
ان کمانڈز کے لیے ڈیبگ کے قابل بلڈ یا ایسا آلہ چاہیے جہاں adb shell نیٹ ورک کی حالت پڑھ سکے۔ پیداواری فون پر پیکیج منیجر اب بھی جواب دیتا ہے، مگر روٹنگ کا معائنہ مسترد ہو سکتا ہے، اس لیے جو کر سکیں درج کریں اور باقی کو غیر تصدیق شدہ سمجھیں۔
راستہ ایپ نہیں، سابقہ طے کرتا ہے
Builder.addRoute سرنگ کے لیے منزل کے سابقے طلب کرتا ہے۔ صرف 10.0.0.0/8 شامل کرنے والا پروفائل وہ سابقہ سرنگ سے بھیجتا ہے اور باقی ہر منزل جسمانی راستے پر چھوڑ دیتا ہے۔ یہ عام منقسم سرنگ ہے، اور اس کا انحصار اس بات پر نہیں کہ قواعد نے کون سی ایپس چنیں۔
سرور سے بھیجی گئی کنفیگریشن وہی نمونہ ظاہر کرتی ہے۔ الگ راستہ پش سابقے شامل کرتے ہیں، جبکہ redirect-gateway ہدایت طے شدہ راستہ بدل دیتی ہے اور سرنگ جن ایپس کو ڈھانپتی ہے ان کے لیے سب کچھ پکڑ لیتی ہے۔ اس ہدایت کو ہٹانے سے چلتی ہوئی سرنگ آلے پر کسی تبدیلی کے بغیر ایک ذیلی نیٹ تک سکڑ سکتی ہے۔
غیر معمولی گیٹ وے یا میٹرک کوالیفائر والا بھیجا گیا راستہ بھی نصب نہ ہو سکتا ہے۔ سادہ سابقہ شکل کو ترجیح دیں اور فارورڈنگ اور NAT سرور کو سونپ دیں۔
سیٹنگ بدلنے سے پہلے تقاطع پڑھیں
سرنگ ڈھانپے گئے عمل اور مطلوبہ منزلوں کا تقاطع اٹھاتی ہے۔ ڈھانپا گیا ایپ شائع شدہ سابقوں سے باہر پتہ مانگے تو جسمانی نیٹ ورک سے نکلتا ہے۔ ممنوع پیکیج ان سابقوں کے اندر پتہ مانگنے پر بھی باہر رہتا ہے۔ کوئی بھی خرابی نہیں؛ دونوں وہی دو پالیسیاں اپنا کام کر رہی ہیں۔
فی ایپ VPN کسی منسلک ایپ کو کنیکٹیویٹی کے بغیر بھی چھوڑ سکتا ہے۔ جب on-demand بند ہو اور سرنگ نیچے ہو، ایپ فی ایپ VPN سے بندھی رہتی ہے اور اس کے پاس کوئی متبادل نہیں ہوتا، جو پالیسی کی حالت نہیں بلکہ ٹوٹی ہوئی ایپ جیسی لگتی ہے۔ on-demand چالو کرنا، یا انتظام کے ذریعے تعلق ہٹانا، اسے بدلتا ہے۔
| Layer | What it selects | Where to look | Typical mismatch |
|---|---|---|---|
| Package list | Processes | Builder calls or managed configuration | App excluded but expected to be blocked |
| UID policy rule | Which table a UID uses | ip rule show | Tunnel icon on, app still on Wi-Fi |
| Routing table | Destinations for matched traffic | ip route show table <n> | Covered app reaches only one subnet |
| Server push | Prefixes offered to the client | Server route configuration | Tunnel shrinks after a server edit |
ایک وقت میں ایک محور کی تشخیص کریں۔ پہلے اجازت یا ممانعت کی تصدیق کریں، دوسرے نصب شدہ UID قواعد اور جدول پڑھیں، اور آخر میں اسی منزل کے خلاف دوسری ایپ آزمائیں۔ دوسری ایپ ایک ہی درخواست میں عمل کے انتخاب کو منزل کے انتخاب سے الگ کرتی ہے۔
نتیجہ ایپ، منزل اور جدول نمبر کے طور پر لکھیں۔ اگلی تبدیلی کو یہی سہ رکنی محفوظ رکھنا ہے۔