این راهنما سوی دیگر بررسیهای RKNHardering را توضیح میدهد: برنامه واقعاً چه چیزی را مشاهده میکند، کدام روشها وضعیت قابلمشاهده را واقعاً تغییر میدهند و کدامها فقط ظاهر یک راهحل را میسازند. متن برای توسعه، آزمون سازگاری و اعتبارسنجی سازوکارهای دفاعیای نوشته شده است که خودتان کنترل میکنید. تنظیمات زیر عبور از سامانههای ضدتقلب شخص ثالث را تضمین نمیکنند؛ آن سامانهها ممکن است از سیگنالهای بیشتر سمت سرور، attestation متکی بر سختافزار و قواعد اختصاصی استفاده کنند.
این مطالب با کد منبع RKNHardering 2.10.0 موجود در همین نسخهٔ پروژه تطبیق داده شدهاند. کاملبودن پوشش بر پایهٔ سه رجیستری پیگیری میشود: ۶۵ ورودی EvidenceSource، ۸۵ ورودی NativeSignalId و ۴۱ بررسی beta. در ماتریس کامل برای هر شناسه ستونهای جداگانهٔ «بدون روت»، «با روت» و «چه چیزی همچنان قابلمشاهده میماند» وجود دارد.
| آنچه RKNHardering تشخیص میدهد | آنچه واقعاً باید تغییر کند | بهترین گزینهٔ عملی |
|---|---|---|
| GeoIP، تفاوت IP میان بررسیهای RU و non-RU، CDN، STUN و آزمونهای تماس | مسیر و نشانی خارجی واقعی | مسیریابی درست بهازای برنامه و رفتار سازگار DNS/HTTP/UDP؛ در صورت نیاز، egress با کشور و نوع شبکهٔ مورد انتظار |
TRANSPORT_VPN، TUN، مسیرها، netlink، /proc و رابطها |
نمای محلی شبکه در Android | بدون روت، VPN را به روتر یا دستگاه دیگری منتقل کنید؛ با روت، یک لایهٔ Java سیستمی بههمراه یک backend هسته/بومی بهکار ببرید |
| پورتهای localhost و APIهای Clash/sing-box/Xray | دسترسی UID هدف به صفحهٔ کنترل محلی | listener یا API را غیرفعال کنید؛ با روت، دسترسی loopback را برای UID هدف مسدود کنید |
| برنامههای VPN نصبشده | دیدهشدن packageها | پروفایل جدا فقط بخشی از مسئله را حل میکند؛ با روت، PackageManager را در system_server فیلتر کنید |
Magisk/KernelSU/APatch، هوکها، ناحیههای RWX، maps، propertyها و mountها |
وضعیت فرایند و namespaceِ mount | هوک را داخل فرایند هدف inject نکنید؛ سطح قابلمشاهدهٔ روت را کمینه کنید؛ راهکار سطح هسته را به Zygisk ترجیح دهید |
| Second Space، work profile و clone برنامه | هویت کاربر/پروفایل Android | زیر کاربر اصلی اجرا کنید؛ انتقال به پروفایل bypass کامل نیست و سیگنال خودش را ایجاد میکند |
VpnService در Android یک رابط مجازی و مدل VPN سیستمی میسازد. خارجکردن برنامه از تونل با مسیریابی بهازای برنامه، مسیری را که ترافیک آن برنامه طی میکند تغییر میدهد، اما الزاماً وجود رابط TUN، شبکهٔ VPN یا مسیرهای وابسته را پنهان نمیکند. RKNHardering این موارد را جداگانه بررسی میکند: وجود رابط TUN فعال درحالیکه خود برنامه transportِ VPN ندارد، بهعنوان شاهد خارجکردن صریح برنامه از VPN در نظر گرفته میشود. افزودن RKNHardering به فهرست bypass میتواند به سیگنالهای IP سمت سرور کمک کند، اما بهتنهایی VPN را پنهان نمیکند.
قویترین طراحی بدون روت این است که VPN بهعنوان یک شیء سیستمی از تلفن حذف شود: آن را روی روتر، travel router، تلفن جداگانهای که hotspot میدهد یا gateway دیگری اجرا کنید. در این حالت دستگاه Android تحت آزمون نه VpnService دارد، نه رابط TUN و نه packageِ کلاینت VPN. بااینحال IP خارجی و نشانههای سمت سرور باید همچنان با یکدیگر سازگار باشند.
منابع رسمی Android عبارتاند از VpnService و VpnService.Builder. متدهای addAllowedApplication و addDisallowedApplication مسیریابی برنامه را کنترل میکنند، درحالیکه establish() خود رابط VPN را میسازد.
برچسب منابع در سراسر متن با معنای ثابت بهکار میروند:
بهجای نصب فوری ماژولها، از مدل تهدید و ترتیب انجام کارها شروع کنید. سپس صفحهٔ مرتبط را بخوانید:
boot.img یا init_boot.img متناسب با راهکار روت، فهرست ماژولها، تنظیمات VPN و پشتیبان دادههای پروفایل.موفقیت یک کارت سبز منفرد نیست. همهٔ شرایط زیر باید همزمان برقرار باشند: