You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This release focuses on **Samsung-aligned fingerprints**, **clearer AVD hardware identity**, **firmware package discovery**, and **operator-facing APIs/UI**.
170
+
171
+
#### Fingerprint system
172
+
173
+
-**`/api/fingerprint/{device_id}`** (hub): unified REST for full fingerprint documents, optional **`extended`** JSON (extra SIM, sensors, battery, PLMN, etc.), **`revision_label`** on writes.
174
+
-**Revisions**: table `fingerprint_revisions` — list, **revert** to a snapshot, **compare** current vs a revision.
175
+
-**Apply & randomize** on the hub run **consistency checks** before apply (422 on hard failures).
176
+
-**`GET /api/fingerprint/profiles/list`** — device profile silhouettes for editors.
177
+
-**Merge path**: `fingerprint_row_to_apply_dict()` merges SQL columns + `extended_json` for the spoofer (legacy `/api/devices/.../fingerprint` uses the same merge).
178
+
-**Samsung extended props**: large `ro.product` / `ro.vendor` / CSC map via [`backend/core/fingerprint/samsung_enhanced.py`](backend/core/fingerprint/samsung_enhanced.py); many keys **fail on AVD** (expected — image is AOSP, not One UI). Apply response includes **`note`** and **`detail`** explaining this.
179
+
-**Auto-apply on boot**: after a device **starts** successfully, the server runs **fingerprint + anti-detect apply** once (same as manual “Apply”), logged as `fingerprint_auto_apply`.
180
+
181
+
#### SAMFW / Odin firmware folder names
182
+
183
+
-**Odin-style directory** names such as `G996BXXSJHZA6_G996BOXMJHZA6_XSG` under [`firmware/`](firmware/) are parsed in [`backend/core/firmware/samfw.py`](backend/core/firmware/samfw.py) (AP, CSC, sales code, locale hints).
-**Create device**: optional **`firmware_package`** (ZIP or folder basename) in API; **web UI** loads options from **`GET /api/meta/firmware-packages`**.
187
+
188
+
#### AVD hardware (Android Studio “Properties”)
189
+
190
+
- Samsung fingerprints: AVD is created with **`medium_phone`** (SDK has no Samsung device id) then **`~/.android/avd/<name>.avd/config.ini`** is patched: **`hw.device.manufacturer=Samsung`**, **`hw.device.name=medium_phone`**, LCD **1080×2400** / **420** dpi for common **SM-G996B** class devices.
191
+
-**Every device start** and **every fingerprint save path** (PUT, randomize, revert on hub + legacy PUT/randomize) calls **`sync_avd_hardware_with_fingerprint`** so the INI stays aligned after edits.
192
+
193
+
#### Anti-detection
194
+
195
+
-[`backend/core/fingerprint/anti_detect.py`](backend/core/fingerprint/anti_detect.py): **`ro.build.characteristics`** favours **`default`** for Samsung/qcom; **CPU ABI list** follows fingerprint **`cpu_abi_list_spoof`**; extra flags (`ro.boot.qemu`, virtual device, etc.); Frida template uses dynamic **CPU** placeholders.
196
+
-**Random fingerprint IP** in the generator **avoids `10.0.2.x`** (classic emulator guest range) when synthesizing private IPs.
-**Device screen**: touch mode **Auto** (short movement → tap, longer → swipe) for H.264/JPEG surfaces.
202
+
-**Fingerprint editor**: apply result shows **Arabic summary** + expandable **detail** from API.
203
+
-**App Store**: install-to-device flow improvements (loading feedback) where implemented.
204
+
205
+
#### Frida
206
+
207
+
- Template script and notes: [`scripts/frida/`](scripts/frida/) (optional runtime hooks — does not replace `setprop`).
208
+
209
+
#### Limitations (unchanged but explicit)
210
+
211
+
-**Google AVD system image** remains **AOSP / Google APIs** — not a Samsung stock ROM. Deep Samsung-only behavior may still require **physical devices** or **heavy Frida** per app.
212
+
-**`tag.display` / Google APIs** in AVD metadata cannot become “Samsung” without a different system image.
160
213
161
214
---
162
215
@@ -366,6 +419,7 @@ CI badge points to **`code-root/emulator-android`**; change it if you fork under
-**جدول `fingerprint_revisions`**: حفظ نسخ؛ **استرجاع** نسخة سابقة؛ **مقارنة** الحالي مع نسخة.
568
+
-**تطبيق وعشوائية** عبر الـ hub تشغّل **فحوصات تناسق** قبل التطبيق (خطأ 422 عند فشل جاد).
569
+
-**`GET /api/fingerprint/profiles/list`**: قائمة ملفات أجهزة للمحرر.
570
+
-**دمج للتطبيق**: `fingerprint_row_to_apply_dict` يدمج أعمدة SQL مع `extended_json` لمسار الـ spoofer (ومسارات `/api/devices/.../fingerprint` القديمة).
571
+
-**سامسونج موسّع**: عشرات `ro.product` / `ro.vendor` / CSC عبر [`samsung_enhanced.py`](backend/core/fingerprint/samsung_enhanced.py) — على AVD يُرفض جزء كبير **وهذا متوقع** (الصورة AOSP وليست One UI). الاستجابة تتضمن **`note`** و **`detail`** لشرح ذلك.
572
+
-**بعد تشغيل الجهاز**: يُنفَّذ **تطبيق البصمة + anti-detect** تلقائياً مرة واحدة، مع تسجيل `fingerprint_auto_apply`.
573
+
574
+
#### فريموير SAMFW / مجلد Odin
575
+
576
+
- أسماء مثل **`G996BXXSJHZA6_G996BOXMJHZA6_XSG`** تحت [`firmware/`](firmware/) تُحلّل في [`samfw.py`](backend/core/firmware/samfw.py) (AP، CSC، كود مبيعات، لغة/بلد).
577
+
-**دمج البصمة** يحدّث `ap_version` / `csc_version` ومقطع الـ PDA في `build_fingerprint`؛ لـ **XSG** يُضبط مقطع المنتج إلى **`o1sxxx`**.
-**إنشاء جهاز**: الحقل **`firmware_package`** في الـ API؛ الواجهة تعرض قائمة من **`GET /api/meta/firmware-packages`**.
580
+
581
+
#### ملف AVD (خصائص المحاكي في Android Studio)
582
+
583
+
- لبصمة **Samsung**: إنشاء AVD بملف **`medium_phone`** ثم تعديل **`config.ini`**: **`hw.device.manufacturer=Samsung`**, **`hw.device.name=medium_phone`**, شاشة تقريبية **1080×2400** و**420** dpi لموديلات مثل **SM-G996B**.
584
+
- عند **كل تشغيل** وعند **كل تحديث للبصمة** (PUT، عشوائي، revert على الـ hub والمسار القديم) يُستدعى **`sync_avd_hardware_with_fingerprint`** لتحديث الـ INI.
585
+
586
+
#### مكافحة كشف المحاكي
587
+
588
+
-[`anti_detect.py`](backend/core/fingerprint/anti_detect.py): **`ro.build.characteristics`** مناسب لسامسونج؛ **ABI** من **`cpu_abi_list_spoof`**؛ أعلام إضافية؛ قالب Frida يستخدم قيم CPU من البصمة.
589
+
- توليد **IP عشوائي** في البصمة **يتجنب `10.0.2.x`**.
590
+
591
+
#### الواجهة الأمامية
592
+
593
+
- إنشاء جهاز: قائمة **حزمة فريموير**؛ **افتراضي preset** سامسونج G996B + Android 15 حيث ينطبق.
594
+
- شاشة الجهاز: وضع لمس **تلقائي** (لمسة قصيرة = نقرة، حركة أوضح = سحب).
595
+
- محرر البصمة: بعد Apply تظهر **ملخص عربي** + **تفصيل** من الـ API.
596
+
597
+
#### Frida
598
+
599
+
- قوالب في [`scripts/frida/`](scripts/frida/) — اختياري، لا يغني عن `setprop`.
600
+
601
+
#### حدود واضحة
602
+
603
+
- صورة نظام المحاكي تبقى **Google APIs / AOSP** وليست روم Samsung كاملاً.
604
+
-**`tag.display` = Google APIs** لا يتغير بدون تغيير صورة النظام.
0 commit comments