شناسه:
EMULATOR_QEMU_PROPERTYدسته: شبیهسازی، پروفایلها و جداسازی وضعیت در RKNHardering 2.10.0: بررسی فعال نقش در حکم نهایی: متوسط
این صفحه پیادهسازی واقعی RKNHardering 2.10.0 را توضیح میدهد. در آن مشخص شده است چه اقدامهایی بدون روت ممکناند، چه چیزهایی به روت نیاز دارند و کدام راهکار فقط یک سیگنال را کاهش میدهد، بیآنکه VPN را بهطور کامل پنهان کند.
کد C++ مقادیر ro.kernel.qemu، ro.kernel.qemu.gles، ro.boot.qemu و qemu.hw.mainkeys را میخواند. هر مقدار موجود و غیرخالی بهصورت qemu_prop خروجی میشود و بررسیکننده آن را finding بازبینی با اطمینان زیاد میداند.
یکی از propertyهای فهرست ثابت مقدار غیرخالی داشته باشد؛ مقدار دقیق آن مهم نیست.
این نشانهای قوی از محیط مبتنی بر QEMU است. چنین propertyهایی معمولاً روی دستگاه فیزیکی با build تولیدی وجود ندارند.
تأثیر این خط بر گزارش: این خط بهتنهایی حکم نهایی صادر نمیکند، اما needsReview=true را تنظیم و شاهدی با اطمینان متوسط اضافه میکند.
ممکن است property از میانافزار سفارشی یا image آزمایشی vendor باقی مانده باشد. شبیهسازی که propertyها را فیلتر کند میتواند از این بردار خاص عبور کند.
این خط باید همراه با سیگنالهای مجاور ارزیابی شود. پاکبودن نتیجهٔ یک API بهتنهایی Java Binder، libc، netlink خام/فراخوانی مستقیم سامانه، procfs/sysfs، سوکتهای محلی و نشانههای سمت سرور را همزمان پوشش نمیدهد.
برای پرهیز از این دسته نشانهها، از دستگاه فیزیکی با build تولیدی استفاده کنید. propertyهای QEMU، نشانگرهای goldfish/ranchu، دستگاههای ویژه و fingerprint ساخت بخشی از محیطاند؛ برنامهٔ عادی نمیتواند بدون تغییر سیستمی آنها را بهطور سازگار عوض کند. تلفن ابری یا clone سازنده را نیز محیطی جدا بدانید و با خط مبنای دستگاه فیزیکی مقایسه کنید.
spoof کردن چند مقدار getprop شبیهساز را به دستگاه فیزیکی تبدیل نمیکند: driverها، nodeهای /dev، پروفایل سختافزار، ABI و رفتار هسته باقی میمانند. ماژولهای روت برای spoof ممکن است یک نشانگر را حذف کنند و همزمان ناسازگاری هوک، property یا library بسازند. این کار برای آزمایش توسعه قابلقبول است، اما برای نتیجهٔ معتبر باید RKNHardering روی دستگاه واقعی اجرا شود. حتی اگر resetprop این سطر را حذف کند، pipe، goldfish/ranchu و پروفایل build برای بررسی متقاطع باقی میمانند.
for p in ro.kernel.qemu ro.kernel.qemu.gles ro.boot.qemu qemu.hw.mainkeys; do adb shell getprop "$p"; done
هر خروجی غیرخالی را با جزئیات گزارششده تطبیق دهید.
پس از هر تغییر، RKNHardering و سرویسگیرندهٔ VPN را بهاجبار متوقف کنید، هر دو را دوباره اجرا کنید و اسکن کامل را تکرار کنید. Zygisk، Xposed و ماژولهای هسته معمولاً به راهاندازی مجدد دستگاه نیاز دارند. فقط همین خط را مقایسه نکنید؛ سیگنالهای مجاور را نیز بررسی کنید، زیرا یک هوک ناقص اغلب میان APIها ناسازگاری ایجاد میکند.
خود پروب با مجوزهای معمول برنامه اجرا میشود و روت درخواست نمیکند. دستورهای ADB زیر فقط برای جهتیابی تشخیصیاند: adb shell با UID دیگری اجرا میشود و ممکن است نسبت به فرایند برنامه اطلاعات بیشتر یا کمتری ببیند. آزمون تعیینکننده، اجرای دوبارهٔ بررسی درون برنامه پس از توقف اجباری است.
تغییر propertyهای بوت میتواند گرافیک، ورودی و رفتار init در شبیهساز را مختل کند.
snapshot یا تنظیمات AVD را بازیابی کنید، یا قاعدهٔ resetprop را حذف و محیط را دوباره راهاندازی کنید.
متوسط. آرایهٔ kQemuProps بررسی شده است؛ سیگنال با اطمینان زیاد اما فقط برای بازبینی است.
وضعیت یک راهکار شخص ثالث خودبهخود به این دستگاه تعمیم پیدا نمیکند. ادعای سازندهٔ ماژول فقط فرضیهٔ آغازین است؛ تأیید واقعی به نتیجهای تکرارپذیر از RKNHardering روی همان نسخهٔ Android، میانافزار و هسته نیاز دارد.
native_signs_probe.cpp — پیادهسازی پروب بومی.NativeSignsChecker.kt — منطق اصلی حکم بومی/قدیمی.NativeSignalId.kt — رجیستری کامل شناسهها.NativeSignalCatalog.kt — نگاشت دسته، slug و خط خروجی.سیگنالهای مرتبط: emulator-qemu-pipe, emulator-goldfish, emulator-build-profile.