ඔබ සැකසීම් තුළ 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 හි නොමැත, නිකුතු අතර දැනුම්දීමකින් තොරව වෙනස් වේ, යෙදුම් වෙළඳසැල් එම ප්‍රවේශය අවදානමක් ලෙස සලකයි. උපාංගය root කිරීම ද ඒවා ස්ථාවර නොකරයි, මන්ද root සහ සැඟවුණු API ප්‍රවේශය සම්බන්ධ නොවන ගැටලු ය.

ආධාරක සංචාලන සහායකය Settings.ACTION_VPN_SETTINGS වන අතර එහි අගය android.net.vpn.SETTINGS වේ. ආරම්භ කිරීමට පෙර එය විසඳන්න, මන්ද සමහර OEM ගොඩනැගීම් එම ක්‍රියාකාරකම ලබා නොදේ, විසඳුම අසාර්ථක වූ විට ලිඛිත පියවරවලට යන්න. එය පරිශීලකයා තිරයට ගෙන යන අතර කිසිවක් වින්‍යාස නොකරයි.

උපාංග හිමිකරු සහ MDM මාර්ග යනු මිනිසුන් සාමාන්‍යයෙන් අදහස් කරන ව්‍යතිරේකයයි. DevicePolicyManager සැමවිටම-ක්‍රියාකාරී VPN පැකේජයක් නම් කළ හැක, කළමනාකරණය කළ වින්‍යාසයන් ඒවා ආධාරක කරන සේවාදායකයක් සඳහා සැකසීම් පෙරටු කොට පූරණය කළ හැක, නමුත් එය තවමත් PPTP පැතිකඩක් ලියන පොදු SDK නොවේ.

තීරණය පරිශීලකයාගේ පැත්තෙන් බලන්න

ඔබේ නිෂ්පාදනයට ගමන් රැගෙන යා යුතු නම්, VpnService සහ සැබෑ ප්‍රොටොකෝල තට්ටුවක් සැලසුම් කරන්න, අනුමැති ප්‍රවාහය සහ එක්-VPN රීතිය සඳහා කාලය වෙන් කරන්න. ඉලක්කය දැනටමත් ඇති ආයතනික පැතිකඩකට සම්බන්ධ වීම නම්, ඔබේ කාර්යය මාර්ගෝපදේශයයි: සැකසීම් තිරයට ගැඹුරු සබැඳියක්, ක්ෂේත්‍ර ලේඛනගත කිරීම, උමග වේදිකාවේ සේවාදායකයට කරන්නට හරින්න. යෙදුමට පෞද්ගලික අන්ත ලක්ෂ්‍යයකට ළඟා වීමට පමණක් අවශ්‍ය නම්, එයට තමන්ගේම උමගක් කිසිසේත් අවශ්‍ය නොවේ.

කේතය ලිවීමට පෙර එම තීරණය ලියන්න, මන්ද පළමු ස්ප්‍රින්ට්ට පසුව මාර්ග තුනටම පාහේ කිසිවක් පොදු නොවේ.

ආරම්භ කිරීමට පෙර අවසන් පරීක්ෂාව: අවශ්‍යතාව කියන්නේ අපේ යෙදුම සම්බන්ධ වන බවද, නැතහොත් උපාංගය සම්බන්ධ වන බවද? පළමුවැන්න VpnService ය, දෙවැන්න ඔබට නිර්මාණය කළ නොහැකි පැතිකඩකි. එම වාක්‍යය නිවැරදි කිරීම ඕනෑම ප්‍රතිසංස්කරණයකට වඩා ලාභදායී ය.

අදාළ ලිපි