تاسو په تنظیماتو کې د VPN کرښې ته ټټ وهي، یو پروفایل وینئ چې بل چا نصب کړی، او هغه کال پیلوئ چې یو اضافه کوي۔ داسې کال نشته۔ اپلیکیشن کولی شي د VpnService له لارې خپل تونل پرانیزي، مګر په دې لیست کې ننوتنې پلیټ فارم او هغه کلاینټ ته اړه لري چې هغه یې جوړې کړې۔ د پولې دقیق پوهه تاسو ته د پټو ټولګیو تعقیبولو یوه اونۍ خوندي کوي۔

د تنظیماتو له سکرین چې څه ښیي پیل وکړئ

د VPN لیست د هغو پروفایلونو ثبت دی چې سیستم یا د جوړوونکي کلاینټ نصب کړي: PPTP، L2TP/IPsec، IKEv2، او هغه کرښې چې OEM اپلیکیشن یا MDM دننه وهڅولې۔ هره کرښه د سرور پته، اعتبارنامې او د پروتوکول هغه پلي کول لري چې ستاسو له پروسې بهر ژوند کوي۔ کله چې کاروونکی هلته نښلول ټټ وهي، تونل د پلیټ فارم کلاینټ پورته کوي، نه ستاسو کوډ۔ له همدې کبله کرښه د بیا پیل وروسته پاتې کېږي او له همدې کبله ستاسو اپلیکیشن غیر نصبول هغه هیڅکله نه لرې کوي۔

د کاروونکي له اړخه لیست د API سطحې په څېر ښکاري، هغه ځای چې VPN اضافه کول باید د یو ارادې فاصله وي۔ داسې نه دی۔ یوازینۍ عامه د ننوتلو نقطې چې هغه ته لاس ورکوي د ناوبرۍ ارادې دي، او هر څه چې پکې لیکي د پلیټ فارم یا د یوې ځانګړې وړتیا لرونکې برخې دي۔

عملي پایله: که د ملاتړ متن کاروونکو ته ووایي چې پروفایل په تنظیماتو کې اضافه کړي، ستاسو اپلیکیشن د دې بهیر برخه نه ده۔

VpnService واقعاً څه درکوي

VpnService او VpnService.Builder یو تونل بیانوي چې ستاسو اپلیکیشن یې مالک دی۔ تاسو پتې، لارې، DNS سرورونه او MTU اضافه کوئ، د addAllowedApplication() یا addDisallowedApplication() له لارې د ترافیک حدود ټاکئ، او بیا establish() د TUN انټرفیس لپاره ParcelFileDescriptor بیرته راګرځوي۔ له هغې شیبې اپلیکیشن IP بستې لولي او ځوابونه لیکي، یعني پروتوکول ستاسو د پلي کولو یا شاملولو کار دی: OpenVPN، WireGuard، یو ځانګړی انتقال۔

په دې ترتیب کې هیڅ شی PPTP، L2TP/IPsec یا IKEv2 نه بولي۔ Builder هغه سویچ نه لري چې ووایي د سیستم L2TP کلاینټ وکاروه، او نه کوم بیرته کال شته چې تاسو ته اجازه درکړي هغه پروفایل چل کړئ چې پلیټ فارم دمخه یې مالک دی۔ دا ریښتینې پوله ده، او دا د ډیزاین پوله ده نه د اجازو تشه۔

نو اپلیکیشن کولی شي په Android کې په بشپړ ډول VPN کلاینټ وي۔ یوازې د تلیفون سره راتلونکو کلاینټونو مدیر نه شي کېدلی۔

د رضایت خبرې اترې سینګار نه دی

ځکه چې ستاسو تونل کولی شي د نورو اپلیکیشنونو ترافیک ونیسي، سیستم کاروونکی مجبوروي چې په ښکاره ډول یې ومني۔ prepare() یو Intent بیرته راګرځوي چې تاسو یې باید پیل کړئ، مننه ستاسو له بستې سره تړلې ده، او تر هغه چې تونل فعال وي د حالت پټه یو دوامداره اشاره ښیي۔ دوهم VPN چې پورته شي لومړی غیر فعالوي، ځکه Android په یو وخت کې یو فعال VPN چلوي۔

د یو فعال قاعده خلک په ازموینه کې ښویېږي۔ تاسو خپل تونل پورته کوئ پداسې حال کې چې یو کارپوریټ کلاینټ نښلول شوی وي او پایله کوئ چې ستاسو کوډ خراب دی، حال دا چې پلیټ فارم یوازې له بل کلاینټ څخه بدل شو۔ مننې وروسته لغوه کېدای شي، او prepare() کېدای شي په هغو وسیلو کې null بیرته راوګرځوي چې د رضایت فعالیت پکې نشته، نو establish() باید لا هم ناکامي سمه کړي۔

پټ API او د تنظیماتو ارادې

زړې ځوابونه د com.android.internal ټولګیو او AIDL انټرفیسونو ته اشاره کوي چې جوړ شوی کلاینټ یې کاروي۔ هغه په SDK کې نشته، د خپرونو ترمنځ پرته له خبرتیا بدلېږي، او اپلیکیشن پلورنځي هغه لاسرسی خطر ګڼي۔ د وسیلې روټ کول هم هغه ثابت نه کوي، ځکه روټ او پټ API ته لاسرسی یو له بل سره نه تړلې ستونزې دي۔

ملاتړ شوی د ناوبرۍ مرستندوی Settings.ACTION_VPN_SETTINGS دی چې ارزښت یې android.net.vpn.SETTINGS دی۔ مخکې له پیلولو یې حل کړئ، ځکه ځینې OEM جوړښتونه هغه فعالیت نه رالېږي، او کله چې حل ونشي لیکل شوو ګامونو ته ورشئ۔ دا کاروونکی سکرین ته وړي او هیڅ شي تنظیم نه کوي۔

د وسیلې مالک او MDM لارې هغه استثنا ده چې خلک یې عموماً مانا لري۔ DevicePolicyManager کولی شي یو تل فعال VPN بسته وټاکي، او مدیریت شوې ترتیبات کولی شي د هغه کلاینټ لپاره چې ملاتړ یې کوي تنظیمات مخکې بار کړي، مګر دا لا هم هغه عامه SDK نه دی چې PPTP پروفایل لیکي۔

پرېکړه د کاروونکي له اړخه وګورئ

که ستاسو محصول باید ترافیک وړي، VpnService او یو ریښتینی پروتوکول سټیک پلان کړئ، او د رضایت بهیر او د یو VPN قاعدې لپاره وخت وټاکئ۔ که هدف له یو موجود کارپوریټ پروفایل سره نښلول وي، ستاسو کار لارښونه ده: ژور لینک تنظیماتو سکرین ته، د ساحو مستند کول، او د پلیټ فارم کلاینټ ته اجازه وکړئ چې تونل جوړ کړي۔ که اپلیکیشن یوازې یو شخصي پای ټکي ته ورسیږي، نو خپل تونل ورته په هیڅ ډول نه دي اړین۔

په کوډ لیکلو دمخه هغه پرېکړه ولیکئ، ځکه درې لارې له لومړي سپرنټ وروسته نږدې هیڅ مشترک نه لري۔

له پیل دمخه وروستۍ کتنه: آیا اړتیا وایي چې زموږ اپلیکیشن نښلول کوي، که وسیله نښلول کوي؟ لومړی VpnService دی، دوهم هغه پروفایل دی چې تاسو یې نه شي جوړولی۔ هغه جمله سمول له هرې بیا جوړونې ارزانه ده۔

اړوندې مقالې