Հնարավո՞ր է թաքցնել տեղորոշման փոխարինումը հավելվածներից
«Ինչպես անել, որ փոխարինումը չնկատեն» հարցը տրվում է ամենից հաճախ։ Կարճ պատասխանը․ առաջին և ամենաակնհայտ նշանը թաքցնելը տեխնիկապես հնարավոր է, բայց այն չի տալիս այն արդյունքը, որի համար արվում է․ հավելվածը փոխարինման մասին իմանում է ևս երեք անկախ եղանակով, իսկ համակարգը փոփոխելու գինն անհամաչափ է։ Ներքևում՝ թե ինչպես է իրականում աշխատում հայտնաբերումը, և ինչու մենք այս ճանապարհը ո՛չ նկարագրում, ո՛չ աջակցում ենք։
Ինչպես է հավելվածն իմանում փոխարինման մասին
Մակարդակները չորսն են, և դրանք իրարից անկախ են։
Առաջինը՝ դրոշակ հենց կոորդինատի վրա։ Android-ը թեստային աղբյուրի յուրաքանչյուր կետ նշում է առանձին դաշտով, և հավելվածը կարդում է այն կոդի մեկ տողով։ Սա համակարգի բաց, ներկառուցված ինտերֆեյս է, ոչ թե գաղտնի ստուգում։
Երկրորդը՝ սարքի ամբողջականությունը։ Ապակողպված բեռնիչը և root-ը տեսանելի են պլատֆորմի ատեստավորմանը՝ անկախ նրանից, թե ինչ է կատարվում կոորդինատների հետ։ Հավելվածին պետք չէ իմանալ, թե արդյոք փոխարինում եք տեղադրությունը․ բավական է իմանալ, որ համակարգը փոփոխված է, և ընդհանրապես հրաժարվել աշխատելուց։
Երրորդը՝ համեմատությունը շրջապատի հետ։ Հեռախոսը տեսնում է իր շուրջը գտնվող Wi-Fi ցանցերը և բջջային աշտարակները, և դրանց հավաքածուն չի համընկնում այն կոորդինատին, ուր դուք «տեղափոխվել» եք։ Մեկը մյուսի հետ համադրելը ծառայության համար հեշտ է։
Չորրորդը՝ սերվերային վերլուծությունը։ Հինգ հարյուր կիլոմետր տեղաշարժ մեկ րոպեում, կատարյալ ուղիղ հետագիծ, մեկ մետրով անգամ չփոխվող ճշգրտություն․ այս ամենը տեսանելի է ծառայության կողմից՝ առանց սարքում որևէ դրոշակի։

Ինչ է անում և ինչ չի անում root-ի ճանապարհը
Ինտերնետի ուղեցույցները նկարագրում են նույն բանը․ ապակողպել բեռնիչը, ստանալ root, տեղադրել մոդուլ, որը միջամտում է համակարգային շերտին և կոորդինատներից հանում կեղծ աղբյուրի դրոշակը։
Սա փակում է չորս մակարդակներից ճիշտ առաջինը։ Սարքի ատեստավորումը բեռնիչն ապակողպելուց հետո ձախողվում է ըստ սահմանման, և ձախողվում է ոչ թե փոխարինման, այլ հենց փոփոխության պատճառով։ Ցանցերի հետ համեմատությունը և սերվերային վերլուծությունն ընդհանրապես կապ չունեն սարքի հետ․ դրանք կատարում է ծառայությունը, և հեռախոսի ոչ մի մոդուլ դրանց վրա չի ազդում։
Արդյունքը փոխանակում է․ դուք անջատում եք ամենատեսանելի ստուգումը և միաժամանակ միացնում երկրորդը, շատ ավելի կոպիտ՝ «սարքը փոփոխված է»։ Այն հավելվածների համար, որոնց համար այս ամենն արվում էր (բանկեր, առաքում, կորպորատիվ հաշվառում), արդյունքն ավելի վատ է, քան նախկինում․ նախկինում նրանք աշխատում էին և պարզապես անտեսում էին փոխարինված կոորդինատները, իսկ հիմա ընդհանրապես չեն գործարկվում։
Ինչ է դադարում աշխատել փոփոխությունից հետո
Սարքերի մեծ մասում բեռնիչի ապակողպումը ջնջում է բոլոր տվյալները և զրկում երաշխիքից․ սա արտադրողների պաշտոնական դիրքորոշումն է, ոչ թե մանր տառերով գրվածը։
Ցուցակում հետագա․ բանկային հավելվածները և անհպում վճարումը հրաժարվում են աշխատել ատեստավորում չանցած սարքում, ինչպես նաև որոշ պետական և կորպորատիվ ծառայություններ, «օդով» թարմացումները դադարում են տեղադրվել կամ տեղադրվելիս փչացնում են համակարգը, ամբողջականության ստուգումները դադարում են պաշտպանել․ root հասանելիությամբ վնասակար հավելվածը ստանում է նույն հնարավորությունները, ինչ օգտակարը։
Առանձին կետ է հեռախոսն անօգտագործելի դարձնելու ռիսկը։ Կողպված կրիտիկական բաժնով սարքում որոնվածափոխման սխալը շտկում է սպասարկման կենտրոնը, և ոչ միշտ անվճար։

Ինչու է դա նաև անկայուն
Նույնիսկ մի կողմ թողնելով վերը նշված ամենը, նման լուծումը կարճ կյանք ունի։ Կեղծ աղբյուրի դրոշակը փոխվել է Android-ի տարբերակների հետ․ մինչև Android 12-ը հավելվածները կարդում էին մեկ դաշտ, Android 12-ից՝ մեկ այլ, և հին շրջանցումները դադարեցին աշխատել։ Պլատֆորմի ատեստավորումը թարմացվում է ծառայության, ոչ թե սարքի կողմից, ուստի այն փչանում է առանց ձեր մասնակցության և կամայական պահի։
Գործնականում դա նշանակում է մշտական ձեռնարկումներ․ համակարգի, հավելվածի կամ հենց ատեստավորման յուրաքանչյուր թարմացումից հետո պետք է ստուգել, արդյոք շրջանցումը դեռ աշխատում է, և նորից ինչ-որ բան վերակարգավորել։ Մենք դա ընդունելի չենք համարում և ոչ ոքի չենք խորհուրդ տալիս․ հենց այդ պատճառով Mock Location-ը չի թաքցնում դրոշակը և չի թաքցնի։
Ինչով է դա ավարտվում հաշվի համար
Տեղադրությունը ստուգող ծառայությունները դա չեն անում չարությունից․ նրանց համար տեղադրությունը փաստի ապացույց է։ Առաքիչը նշել է առաքումը, աշխատողը նշվել է օբյեկտում, օգտատերը հաստատել է տարածաշրջանը սակագնի համար։ Նման ապացույցի կեղծումը խախտում է ծառայության կանոնները, և հաճախ նաև պայմանագիրը։
Հետևանքները կանխատեսելի են․ հաշվի արգելափակում առանց վերադարձի և առանց քննարկման, աշխատանքային սցենարներում՝ զրույց գործատուի հետ, իսկ որոշ դեպքերում՝ իրավական պահանջներ։ Փոխարինման օրինականության վերաբերյալ մեր դիրքորոշումը՝ առանձին պատասխանում․ դուք իրավունք ունեք փոխել ձեր սեփական տեղադրությունը, բայց այդ տեղադրության վրա հենվող ծառայությանը մոլորեցնելն այլ պատմություն է։
Ինչ անել, եթե փոխարինումը պետք է օրինական խնդրի համար
Լավ նորությունը․ սցենարների ճնշող մեծամասնությունն աշխատում է առանց որևէ թաքցման, քանի որ այնտեղի հավելվածները պարզապես չեն կարդում դրոշակը։
Քարտեզներն ու նավիգացիան, եղանակը, մոտակա վայրերի որոնումը, տեղական հայտարարություններն ու գները, տեղադրությունից կախված սցենարների փորձարկումը․ այս ամենն ընդունում է փոխարինված կոորդինատները այնպես, ինչպես կան։ Մեկ րոպեում կարող եք ստուգել, արդյոք ձեզ պետք եկած հավելվածը այս խմբից է․ միացրեք փոխարինումը և նայեք, թե ինչ է այն ցույց տալիս (ինչպես ստուգել)։
Եթե հավելվածը պարզվի դրոշակը կարդացողներից մեկը, միակ աշխատող տարբերակը ոչ թե ստուգումը շրջանցելն է, այլ խնդիրը այլ կերպ լուծելը։ Տարածաշրջանային բովանդակության համար ավելի հաճախ պետք է ցանցը, ոչ թե GPS-ը՝ տեղորոշման փոխարինում, թե VPN։ Ձեր սեփական հավելվածը փորձարկելու համար՝ էմուլյատոր և վրիպազերծման կառուցումներ, որտեղ փոխարինումը ներկառուցված է և ոչ ոքի չի խաբում (ակնարկ QA-ի համար)։
Կարճ ասած
Փոխարինման հայտնաբերումը հնարավոր չէ ամբողջությամբ բացառել․ ստուգումների մակարդակները չորսն են, և համակարգի փոփոխությունը փակում է դրանցից մեկը՝ միաժամանակ բարձրացնելով «սարքը փոփոխված է» դրոշակը, որի պատճառով նույն հավելվածներն ավելի շուտ են հրաժարվում։
Mock Location-ն աշխատում է խստորեն Android-ի ներկառուցված մեխանիզմի շրջանակում․ ինչ է այդ մեխանիզմը, ինչու root պետք չէ և ինչու է հավելվածը տեսնում իրական կոորդինատները՝ նկարագրված է առանձին։ Մենք չենք հրապարակում ստուգումները շրջանցելու ուղեցույցներ, ոչ թե զգուշությունից, այլ որովհետև դրանք չեն լուծում խնդիրը և օգտատիրոջ համար ստեղծում են սկզբնականից ավելի մեծ խնդիրներ։