Tapálann tú an ró VPN i Socruithe, feiceann tú próifíl a shuiteáil duine éigin eile, agus tosaíonn tú ag cuardach an ghlao a chuireann ceann leis. Níl a leithéid de ghlao ann. Is féidir le haip tollán dá cuid féin a oscailt trí VpnService, ach baineann na hiontrálacha sa liosta sin leis an ardán agus leis an gcliant a chruthaigh iad. Má bhíonn a fhios agat go beacht cá luíonn an teorainn, sábhálfaidh tú seachtain duit ag ruaigeadh rangaí folaithe.

Tosaigh leis an méid a thaispeánann scáileán na Socruithe

Is clár próifíl é an liosta VPN a shuiteáil an córas nó cliant ó mhonaróir: PPTP, L2TP/IPsec, IKEv2, agus aon rónta a bhrúigh aip OEM nó MDM isteach. Iompraíonn gach ró seoladh freastalaí, dintiúir agus cur i bhfeidhm prótacail a mhaireann lasmuigh de do phróiseas. Nuair a thapálann an t-úsáideoir Ceangail ansin, is é cliant an ardáin a thógann an tollán, ní do chód. Sin an fáth a maireann an ró tar éis atosú agus sin an fáth nach mbaineann díshuiteáil d'aip riamh é.

Ó thaobh an úsáideora de, breathnaíonn an liosta cosúil le dromchla API, áit ar cheart cur le VPN a bheith aon intent ar shiúl. Níl. Is iad na haon phointí iontrála poiblí a théann i dteagmháil leis ná intents nascleanúna, agus baineann gach rud a scríobhann ann leis an ardán nó le comhpháirt phribhléideach.

Iarmhairt phraiticiúil: má deir téacs tacaíochta le húsáideoirí an phróifíl a chur leis i Socruithe, níl d'aip mar chuid den sreabhadh sin ar chor ar bith.

An rud a thugann VpnService duit i ndáiríre

Déanann VpnService agus VpnService.Builder cur síos ar thollán amháin atá ag d'aip. Cuireann tú seoltaí, bealaí, freastalaithe DNS agus MTU leis, cuireann tú teorainn le trácht le addAllowedApplication() nó addDisallowedApplication(), agus ansin filleann establish() ParcelFileDescriptor do chomhéadan TUN. Ón bpointe sin léann an aip paicéid IP agus scríobhann sí freagraí, rud a chiallaíonn gur leatsa an prótacal le cur i bhfeidhm nó le leabú: OpenVPN, WireGuard, iompar saincheaptha.

Ní labhraíonn aon rud sa seicheamh sin PPTP, L2TP/IPsec ná IKEv2. Níl aon lasc ag Builder a deir úsáid cliant L2TP an chórais, agus níl aon chúlaoibriú ann a ligeann duit próifíl atá ag an ardán cheana a thiomáint. Sin an fhíortheorainn, agus is teorainn dearaidh í seachas bearna ceadanna.

Mar sin is féidir le haip a bheith ina cliant VPN ar Android gan dabht. Ní féidir léi a bheith ina bainisteoir do na cliaint a thagann leis an nguthán.

Ní ornáid í an dialóg toilithe

Toisc gur féidir le do thollán trácht aipeanna eile a ghabháil, cuireann an córas iallach ar an úsáideoir é a fhormheas go sainráite. Filleann prepare() Intent nach mór duit a sheoladh, tá an formheas ceangailte le do phacáiste, agus fad a bhíonn an tollán suas taispeánann an bharra stádais táscaire buan. Déanann an dara VPN a thagann suas an chéad cheann a dhíghníomhachtú, mar ní ritheann Android ach aon VPN gníomhach amháin ag an am.

Cuireann an riail aon-ghníomhach sin daoine as a riocht agus iad ag tástáil. Tógann tú do thollán agus cliant corparáideach ceangailte, agus tagann tú ar an gconclúid go bhfuil do chód briste, nuair nach ndearna an t-ardán ach aistriú ón gcliant eile. Is féidir formheasanna a tharraingt siar níos déanaí, agus is féidir le prepare() null a fhilleadh ar ghléasanna nach bhfuil an ghníomhaíocht toilithe iontu, mar sin caithfidh establish() cliseadh a láimhseáil fós.

APIanna folaithe agus intents socruithe

Tagraíonn freagraí níos sine do rangaí com.android.internal agus d'idirghníomhuithe AIDL a úsáideann an cliant ionsuite. Níl siad sa SDK, athraíonn siad idir eisiúintí gan fógra, agus measann siopaí aipeanna gur riosca an rochtain sin. Ní dhéanann fréamhú an ghléis iad a dhéanamh cobhsaí ach an oiread, mar is fadhbanna neamhghaolmhara iad fréamh agus rochtain ar API folaithe.

Is é an chabhair nascleanúna a thacaítear léi ná Settings.ACTION_VPN_SETTINGS, arb é android.net.vpn.SETTINGS a luach. Réitigh é sula seolann tú é, mar ní sheachadann roinnt buildí OEM an ghníomhaíocht sin, agus téigh ar ais chuig céimeanna scríofa nuair a theipeann an réiteach. Tugann sé an t-úsáideoir chuig an scáileán agus ní dhéanann sé aon rud a chumrú.

Is iad bealaí úinéir gléis agus MDM an eisceacht a mbíonn daoine i gceist acu de ghnáth. Is féidir le DevicePolicyManager pacáiste VPN a bheith ar siúl i gcónaí a ainmniú, agus is féidir le cumraíochtaí bainistithe socruithe a réamhlódáil do chliant a thacaíonn leo, ach ní hé sin fós an SDK poiblí ag scríobh próifíl PPTP.

Siúil an cinneadh ó thaobh an úsáideora

Má chaithfidh do tháirge trácht a iompar, pleanáil VpnService móide fíorstoc prótacal, agus cuir am ar leataobh don sreabhadh toilithe agus don riail aon-VPN. Más é an sprioc ceangal le próifíl chorparáideach atá ann cheana, is é do chúram treoir: nasc domhain chuig an scáileán socruithe, na réimsí a dhoiciméadú, agus lig do chliant an ardáin an tollánú a dhéanamh. Mura gá don aip ach teacht ar chríochphointe príobháideach, níl aon tollán dá cuid féin ag teastáil uaithi ar chor ar bith.

Scríobh an cinneadh sin síos sula scríobhann tú cód, mar níl beagnach aon rud i gcoiteann ag na trí bhealach tar éis an chéad sprint.

Seiceáil dheireanach sula dtosaíonn tú: an deir an riachtanas go gceanglaíonn ár n-aip, nó go gceanglaíonn an gléas? Is VpnService an chéad cheann, agus is próifíl nach féidir leat a chruthú an dara ceann. Is saoire an abairt sin a chur i gceart ná aon athstruchtúrú.

Ailt ghaolmhara