آیا میتوان جعل موقعیت را از برنامهها پنهان کرد
«چگونه جعل موقعیت را غیرقابلتشخیص کنم» بیش از هر چیز دیگری پرسیده میشود. پاسخ کوتاه: پنهان کردن نخستین و آشکارترین نشانه از نظر فنی ممکن است، اما نتیجهای را که برایش انجام میشود نمیدهد؛ برنامه از سه راه مستقل دیگر از جعل موقعیت باخبر میشود و بهای دستکاری سیستم با آن قابل مقایسه نیست. در ادامه میبینید تشخیص در واقع چگونه کار میکند و چرا ما این راه را نه شرح میدهیم و نه پشتیبانی میکنیم.
برنامه چگونه از جعل موقعیت باخبر میشود
چهار سطح هست و مستقل از یکدیگرند.
اول، نشانی روی خود مختصات. اندروید هر نقطهای را که از منبع آزمایشی بیاید با فیلد جداگانهای علامت میزند و برنامه آن را با یک خط کد میخواند. این رابطی باز و داخلی در سیستم است، نه بررسی پنهانی.
دوم، یکپارچگی دستگاه. بوتلودر باز و روت، صرفنظر از آنچه با مختصات میشود، برای تأیید اصالت پلتفرم پیدا هستند. برنامه لازم نیست بداند مکان را جعل میکنید یا نه: کافی است بداند سیستم دستکاری شده و اصلاً کار نکند.
سوم، مقایسه با محیط اطراف. تلفن شبکههای Wi-Fi و دکلهای مخابراتی اطرافش را میبیند و مجموعه آنها با مختصاتی که به آن «رفتهاید» جور نیست. تطبیق یکی با دیگری برای سرویس آسان است.
چهارم، تحلیل سمت سرور. جابهجایی پانصد کیلومتری در یک دقیقه، مسیری کاملاً مستقیم، دقتی که حتی یک متر تغییر نمیکند؛ همه اینها در سمت سرویس و بدون حتی یک نشان روی دستگاه دیده میشوند.

راه روت چه میکند و چه نمیکند
راهنماهای اینترنتی یک چیز را شرح میدهند: باز کردن بوتلودر، گرفتن روت، نصب ماژولی که در لایه سیستم دخالت میکند و نشان منبع ساختگی را از مختصات برمیدارد.
این کار دقیقاً اولین سطح از چهار سطح را میبندد. تأیید اصالت دستگاه پس از باز شدن بوتلودر طبق تعریف رد میشود؛ و نه به خاطر جعل موقعیت، بلکه به خاطر خود دستکاری. مقایسه با شبکهها و تحلیل سمت سرور اصلاً به دستگاه ربطی ندارند: سرویس آنها را انجام میدهد و هیچ ماژولی روی تلفن روی آنها اثر ندارد.
نتیجه یک معامله است: آشکارترین بررسی را خاموش میکنید و همزمان بررسی دوم و بسیار زمختتری را روشن میکنید: «دستگاه دستکاری شده است». برای برنامههایی که همه اینها به خاطرشان بود (بانکها، تحویل سفارش، ثبت حضور سازمانی) نتیجه از قبل بدتر است: پیشتر کار میکردند و فقط مختصات جعلی را نادیده میگرفتند؛ حالا اصلاً اجرا نمیشوند.
پس از دستکاری چه چیزی از کار میافتد
در بیشتر دستگاهها باز کردن بوتلودر همه دادهها را پاک میکند و ضمانت را باطل میکند؛ این موضع رسمی سازندگان است، نه ریزنویس قرارداد.
در ادامه فهرست: برنامههای بانکی و پرداخت بیتماس روی دستگاهی که تأیید اصالت را رد کند کار نمیکنند؛ برخی خدمات دولتی و سازمانی هم همینطور؛ بهروزرسانیهای هوایی دیگر نصب نمیشوند یا با نصب، سیستم را خراب میکنند؛ بررسیهای یکپارچگی دیگر از شما محافظت نمیکنند؛ یک برنامه مخرب با دسترسی روت همان تواناییهایی را میگیرد که یک برنامه مفید.
مورد جداگانه خطر از کار افتادن تلفن است. خطای فلش روی دستگاهی با پارتیشن حیاتی قفلشده را مرکز خدمات درست میکند، آن هم نه همیشه رایگان.

چرا ناپایدار هم هست
حتی اگر همه موارد بالا را کنار بگذاریم، چنین راهحلی عمر کوتاهی دارد. نشان منبع ساختگی همراه نسخههای اندروید تغییر کرده است: پیش از Android 12 برنامهها یک فیلد را میخواندند و از Android 12 فیلدی دیگر، و راهحلهای قدیمی از کار افتادند. تأیید اصالت پلتفرم در سمت سرویس بهروز میشود، نه دستگاه؛ پس بیدخالت شما و در لحظهای دلبخواه از کار میافتد.
در عمل این یعنی ور رفتن همیشگی: پس از هر بهروزرسانی سیستم، برنامه یا خود تأیید اصالت باید بررسی کنید راهحل هنوز کار میکند یا نه و دوباره چیزی را تنظیم کنید. ما این را پذیرفتنی نمیدانیم و به هیچکس توصیه نمیکنیم؛ دقیقاً به همین دلیل Mock Location نشان را پنهان نمیکند و نخواهد کرد.
سرانجامش برای حساب کاربری
سرویسهایی که مکان را بررسی میکنند این کار را از سر لجبازی نمیکنند: برای آنها مکان اثبات یک واقعیت است. پیکی تحویل را ثبت کرده، کارمندی حضورش را در محل ثبت کرده، کاربری منطقهاش را برای یک طرح قیمتی تأیید کرده است. جعل چنین اثباتی قوانین سرویس و اغلب یک قرارداد را هم نقض میکند.
پیامدها قابل پیشبینیاند: مسدود شدن حساب بیبازپرداخت و بیبازبینی، در سناریوهای کاری گفتگو با کارفرما و در برخی موارد ادعای حقوقی. موضع ما درباره قانونی بودن خود جعل موقعیت در پاسخ جداگانهای آمده است: حق دارید مکان خودتان را تغییر دهید، اما گمراه کردن سرویسی که به آن مکان تکیه میکند داستان دیگری است.
اگر جعل موقعیت را برای کاری مشروع لازم دارید چه کنید
خبر خوب: بیشتر سناریوها بیهیچ پنهانکاری کار میکنند، چون برنامههای آنها اصلاً نشان را نمیخوانند.
نقشه و مسیریابی، آبوهوا، جستجوی اطراف، آگهیها و قیمتهای محلی، آزمایش سناریوهای وابسته به مکان؛ همه اینها مختصات جعلی را همانطور که هست میپذیرند. میتوانید در یک دقیقه بررسی کنید برنامه مورد نیاز شما در این گروه هست یا نه: جعل موقعیت را روشن کنید و ببینید چه نشان میدهد (چگونه بررسی کنیم).
اگر معلوم شد برنامه از آنهایی است که نشان را میخوانند، تنها گزینه کارا دور زدن بررسی نیست، بلکه حل کار به روشی دیگر است. محتوای منطقهای بیشتر به شبکه نیاز دارد تا GPS: جعل موقعیت یا VPN. برای آزمایش برنامه خودتان: شبیهساز و نسخههای اشکالزدایی، که جعل موقعیت در آنها داخلی است و کسی را فریب نمیدهد (راهنمای QA).
بهطور خلاصه
تشخیص جعل موقعیت را نمیتوان کاملاً منتفی کرد: چهار سطح بررسی هست و دستکاری سیستم یکی از آنها را میبندد و در عوض نشان «دستگاه دستکاری شده» را بالا میبرد که همان برنامهها را زودتر به رد کردن وامیدارد.
Mock Location فقط در چارچوب سازوکار داخلی اندروید کار میکند: این سازوکار چیست، چرا روت لازم نیست و چرا برنامه مختصات واقعی را میبیند جداگانه آمدهاند. ما راهنمای دور زدن بررسیها منتشر نمیکنیم؛ نه از سر احتیاط، بلکه چون کار را حل نمیکنند و برای کاربر مشکلاتی بزرگتر از مشکل اولیه میسازند.