بلاک شدہ Android ایپ اب بھی نیٹ ورک استعمال کیوں دکھاتی ہے
استعمال کا شمار کنندہ ایک حد پر بائٹس ناپتا ہے، کامیاب درخواست نہیں۔ وقت کی ونڈو، UID کی نسبت اور یہ دیکھیں کہ VPN سروس کس ایپ کی ملکیت ہے۔
آپ اپنے Android VPN فائر وال میں ایک ایپ بلاک کرتے ہیں، ایپ کام کرنا چھوڑ دیتی ہے، اور اس کی استعمال کی سطر بڑھتی رہتی ہے۔ دلکش نتیجہ یہ ہے کہ بلاک لیک ہو گیا، یا شمار کنندہ خراب ہے۔ دونوں میں سے کوئی نہیں نکلتا۔ استعمال کا ریکارڈ کہتا ہے کہ کسی مشاہدے کے مقام پر اس شناخت کو بائٹس منسوب کیے گئے؛ یہ نہیں بتاتا کہ کسی دور دراز سروس نے درخواست قبول کی یا نہیں۔ جب آپ جان لیں کہ کون سی حد ناپی گئی اور کس شناخت پر یہ ڈالا گیا، تو دونوں مشاہدے ایک دوسرے سے متصادم ہونا چھوڑ دیتے ہیں۔
شمار کنندہ بائٹس ناپتا ہے، ترسیل نہیں
Android ٹریفک کو ایک UID سے منسوب کرتا ہے اور دونوں سمتوں میں گنتا ہے، اور یہ انٹرفیس کی حد پر کرتا ہے، اس لمحے نہیں جب ایپ کی درخواست کامیاب ہوتی ہے۔
مسترد شدہ کنکشن کی کوشش بھی پیکٹ حرکت دیتی ہے: SYN، ری سیٹ یا اس کے بعد کی دوبارہ ترسیل، نیز وہ DNS استفسار جو دونوں سے پہلے تھا۔ یہ بائٹس اس وقت بھی موجود ہیں جب کچھ بھی نہ پہنچا ہو، اور کچھ راستوں پر کسی بھی فلٹر کے فیصلے سے پہلے گنے جاتے ہیں۔
اسی لیے بلاک شدہ ایپ کی سطر بڑھ سکتی ہے جبکہ ہر درخواست ناکام ہوتی ہے۔ شمار کنندہ «اس شناخت کو کتنے بائٹس منسوب کیے گئے» کا جواب دیتا ہے، «کیا یہ شناخت انٹرنیٹ تک پہنچی» کا نہیں۔ کوئی چارٹ قبول شدہ بہاؤ کو شائستگی سے مسترد شدہ ہینڈ شیک سے الگ نہیں کر سکتا، اور دونوں سمتوں کو جمع کرنے والا کل بھی نہیں۔
نسبت نشان کو نہیں، UID کی پیروی کرتی ہے
سطر فی UID ہے، اور ایک UID ایک سے زیادہ پیکیج میں مشترک ہو سکتا ہے، جبکہ نظر آنے والی ایپ کام کسی الگ جزو کو سونپ سکتی ہے جو اپنی شناخت کے تحت چلتا ہے۔ مشترک WebView پراسیس کی بنائی ہوئی براؤزر ٹیب، پس منظر کی مطابقت پذیری سروس، یا مرکزی ایپ کے ساتھ نصب ساتھی پیکیج — سب ایسی ٹریفک بناتے ہیں جو استعمال کی سکرین آپ کی غیر متوقع نام کے تحت، یا آپ کی بلاک کردہ ایپ کے تحت دکھا سکتی ہے۔ بلاک شدہ پیکیج اور اس کی درخواستیں لے جانے والا مددگار دو مختلف موضوعات ہیں، اور قاعدے نے ان میں سے صرف ایک کو ڈھانپا تھا۔
جب اعداد غلط لگیں تو لیبل نہیں، UID کا موازنہ کریں۔ استعمال کی API UID سے پوچھی جاتی ہے، اور جس عدد سے موازنہ کرنا ہے وہ adb shell dumpsys package <package> | grep userId= چھاپتا ہے، اس لیے ایک ہی UID والی دو اندراجات شمار کنندہ کی نظر میں ایک ہی شناخت ہیں۔
وقت کی ونڈو آپ کے قاعدے سے پہلے کی ہو سکتی ہے
استعمال کا ڈیٹا بالٹیوں میں جمع کیا جاتا ہے اور وقتاً فوقتاً پوچھا جاتا ہے، براہ راست اسٹریم نہیں ہوتا۔ روزانہ کل میں بلاک فعال کرنے سے پہلے کے منٹ، پچھلے گھنٹے کی پس منظر کی مطابقت پذیری، یا وہ ٹریفک شامل ہو سکتی ہے جو پہلے سے راستے میں تھی۔ جمع شدہ کل کا ایک مسترد شدہ درخواست سے موازنہ کرنا اور فرق کو لیک کہنا پیمائش کی غلطی ہے، فائر وال کی دریافت نہیں۔
چھوٹی ونڈو اور نئی شروعات استعمال کریں۔ قاعدہ بدلتے وقت وقت کا نشان نوٹ کریں، ایک جمع آوری کا وقفہ انتظار کریں، پھر صرف اس کے بعد کا ڈیٹا دیکھیں۔ اگر قاعدے کے بعد شروع ہونے والی ونڈو میں کل بڑھتا رہے تو آپ کے پاس جانچنے کو کچھ ہے؛ اگر بڑھنا رک جائے تو پہلے کی نمو دکھایا جانے والا تاریخ تھی۔
VPN سروس وہ نہ ہو جو آپ نے ترتیب دی
VPN فائر وال صرف وہی ٹریفک دیکھتا ہے جو اس کی اپنی سروس لے کر چلتی ہے۔ اگر کوئی دوسری VPN ایپ شروع ہو کر فعال کنکشن لے لے، تو آپ کا فلٹر اب راستے میں نہیں، جبکہ اس کا انٹرفیس ترتیبات میں اب بھی موجود ہے۔ فی ایپ بائی پاس فہرستیں یہی جان بوجھ کر کرتی ہیں، اور ایپ کو خارج کرنے والا پروفائل لیک نہیں جب ایپ بعد میں کام کرے۔
IPv4، IPv6 اور DNS بھی مختلف ہو سکتے ہیں۔ IPv4 سنبھالنے والا فلٹر IPv6 یا نجی DNS حل کنندہ کو باہر چھوڑ سکتا ہے، اس لیے ایپ کی ٹریفک کا کچھ حصہ ایسے راستے پر چلتا ہے جو آپ کے قواعد نے کبھی بیان نہیں کیا۔ کچھ دوبارہ لکھنے سے پہلے دیکھیں کہ ابھی کون سی ایپ VPN کی مالک ہے اور خارجی فہرست کیا کہتی ہے:
adb shell settings get secure always_on_vpn_app
adb shell dumpsys connectivity
adb shell dumpsys netstats detail
ایک نئی درخواست آزمائیں اور چار حقائق لکھیں
کوئی بے ضرر درخواست چنیں، ایک بار کریں، اور چار حقائق لکھیں: نافذ قاعدہ، ایپ کا UID، نیٹ ورک کی حالت اور وقت۔ پھر دیکھیں کہ آپ کے فلٹر نے بہاؤ درج کیا یا نہیں، اور منزل یا گیٹ وے نے وہی کنکشن دیکھا یا نہیں۔ دونوں طرف سے شناخت شدہ ایک بہاؤ ثبوت ہے؛ کل میزان ثبوت نہیں۔
قابل دفاع نتیجہ بتاتا ہے کہ کیا مسترد ہوا اور کس مشاہدے نے اس کی تصدیق کی۔ «شمار کنندہ بڑھا» دریافت نہیں، اور «تمام استعمال کے شمار کنندے جعلی ہیں» بھی نہیں۔ OSI طبقے کا نعرہ یہ طے نہیں کرتا: سچا جواب یہ ہے کہ شمار کنندہ اور بلاک دونوں درست ہو سکتے ہیں جبکہ وہ مختلف چیزیں بیان کرتے ہیں۔ Android کا NetworkStatsManager حوالہ درج کرتا ہے کہ یہ بالٹیاں کیسے پوچھی اور منسوب کی جاتی ہیں۔