การเตรียมการติดตั้ง¶
เอกสารการเตรียมการติดตั้งนี้จะอธิบายสิ่งที่คุณควรเตรียมให้พร้อมก่อนการติดตั้ง FIRERPA รองรับอุปกรณ์และสถาปัตยกรรมหลายประเภท ในที่นี้จะยกตัวอย่างขั้นตอนการเตรียมการล่วงหน้าสำหรับอุปกรณ์ทั่วไปต่างๆ คุณสามารถเลือกใช้วิธีการที่เหมาะสมตามสถานการณ์จริงของคุณได้ FIRERPA โดยรวมแบ่งออกเป็น client และ server โดย client ส่วนใหญ่เป็นไลบรารีและอินเทอร์เฟซที่เกี่ยวข้องกับ Python ส่วน server คือบริการที่ทำงานบนโทรศัพท์เป้าหมาย คุณสามารถติดตั้งไลบรารี Python บนคอมพิวเตอร์เพื่อควบคุมโทรศัพท์ได้ และเช่นเดียวกัน หากต้องการควบคุมอุปกรณ์ผ่าน Python คุณจำเป็นต้องติดตั้งและเปิดใช้งาน Android server บนโทรศัพท์ของคุณ ซึ่งเป็นขั้นตอนที่จำเป็น
ข้อกำหนดพื้นฐาน¶
สภาพแวดล้อมการทำงานที่เหมาะสมที่สุดสำหรับ FIRERPA คืออุปกรณ์ที่คุณเพิ่งทำการ root (เช่น: emulator ที่สร้างใหม่, ROM ที่มีสิทธิ์ในตัว, Magisk ที่เพิ่ง root) โปรดตรวจสอบให้แน่ใจว่าคุณมีอุปกรณ์ Android หรือ emulator ที่ root แล้ว และมี RAM มากกว่า 2GB และพื้นที่เก็บข้อมูลว่างมากกว่า 1GB แนะนำให้ใช้ NoxPlayer, LDPlayer หรือ AVD emulator เวอร์ชันล่าสุด ก่อนเริ่มต้น ต้องตรวจสอบ รายการต่อไปนี้:
- ปิด Magisk Hide
- ปิด frida-server
- หลังจากยืนยันเรียบร้อยแล้ว ให้รีสตาร์ทอุปกรณ์
สำคัญ
การตั้งค่าระบบ¶
โดยปกติแล้ว โทรศัพท์ของคุณอาจต้องมีการตั้งค่าเพิ่มเติมดังต่อไปนี้ สิ่งเหล่านี้ไม่ใช่ข้อบังคับ แต่เพื่อให้แน่ใจว่าจะสำเร็จในครั้งเดียว ขอแนะนำให้คุณทำการตั้งค่าเหล่านี้ให้เสร็จสิ้นหากมีเวลา
ตรวจสอบโซนเวลาและเวลา¶
เปิดการตั้งค่าระบบ ไปที่วันที่และเวลา ตรวจสอบว่าได้ตั้งค่าเป็น เวลามาตรฐานประเทศจีน หรือโซนเวลาท้องถิ่นของคุณโดยอัตโนมัติหรือไม่ ตรวจสอบว่าเวลาถูกต้องหรืออยู่ในช่วงความคลาดเคลื่อนที่ยอมรับได้หรือไม่ หากไม่ถูกต้อง โปรดปิด ใช้โซนเวลาที่เครือข่ายจัดหาให้ และ เวลาจากเครือข่าย แล้วตั้งค่าโซนเวลาและเวลาด้วยตนเองให้ตรงกับตำแหน่งปัจจุบันของคุณ
ปิดการช่วยเหลือพิเศษ (Accessibility)¶
เปิดการตั้งค่าระบบ ไปที่การช่วยเหลือพิเศษ (Accessibility) (อาจอยู่ในส่วนการตั้งค่าระบบหรือการตั้งค่าเพิ่มเติม) ปิดหรือถอนการติดตั้งแอปพลิเคชันทั้งหมดที่ใช้บริการช่วยเหลือพิเศษ (เช่น TalkBack, Auto.js เป็นต้น)
หมายเหตุ
การตั้งค่าเครือข่าย¶
สภาพเครือข่ายของอุปกรณ์ต่างๆ เช่น โทรศัพท์จริง, cloud phone, และ emulator นั้นแตกต่างกัน คุณต้องทำการตั้งค่าให้สอดคล้องกับสถานการณ์จริงของคุณ มิฉะนั้นคุณจะไม่สามารถเข้าถึงบริการได้ตามปกติหลังการติดตั้ง
สำหรับโทรศัพท์จริง เพียงแค่ตรวจสอบให้แน่ใจว่าคอมพิวเตอร์และโทรศัพท์อยู่ในเครือข่ายเดียวกัน สำหรับ emulator โดยปกติแล้ว emulator ที่สร้างขึ้นมาตามค่าเริ่มต้นจะไม่สามารถสื่อสารกับเครือข่ายของเครื่องคอมพิวเตอร์ของคุณได้โดยตรง หากคุณใช้ Android x86 (Android virtual machine ที่ทำงานบน VMWare) ให้ลองตั้งค่าโหมดเครือข่ายเป็น Bridge Mode ในการตั้งค่าของ virtual machine สำหรับ emulator อย่าง LDPlayer, NoxPlayer คุณต้องติดตั้งไดรเวอร์ตามคำแนะนำในการตั้งค่าและเปิดใช้งาน Bridge Mode จากนั้นรีสตาร์ท emulator สำหรับ Virtual Device ของ Android Studio จะไม่มีการตั้งค่าที่เกี่ยวข้อง หากต้องการเชื่อมต่อกับ AVD โปรดรันคำสั่ง adb forward tcp:65000 tcp:65000 ก่อน แล้วใช้ localhost ในการเชื่อมต่อ
หมายเหตุ
การตั้งค่าอื่นๆ¶
WSA (Windows Subsystem for Android)¶
หากคุณใช้ WSA (Windows Subsystem for Android) โปรดตรวจสอบให้แน่ใจว่าเวอร์ชันของ WSA ไม่ต่ำกว่า 2210.40000 และได้ทำการ root แล้ว จากนั้นเปิดการตั้งค่า WSA -> Subsystem Resources -> เลือก Continuous และปิด Advanced Networking เลือก Developer, เปิด Developer mode และขยายแท็บ, เปิดใช้งาน "Support single machine UI automation" จากนั้นรีสตาร์ท WSA subsystem
AVD (Android Studio Virtual Device)¶
หากคุณใช้ AVD (Android Studio Virtual Device) โปรดขยายขนาดพื้นที่เก็บข้อมูลและหน่วยความจำเริ่มต้นก่อน
คลิกที่ Virtual Device Manager ใน Android Studio, สร้าง virtual machine ใหม่ จากนั้นค้นหา virtual machine ที่ต้องการแล้วคลิกปุ่มแก้ไข (สัญลักษณ์รูปดินสอ) คลิก Show Advanced Settings, ไปที่ Storage -> Internal Storage และตั้งค่าให้มีขนาดอย่างน้อย 2GB และตั้งค่าขนาด RAM เป็นอย่างน้อย 4GB
Redroid (android in docker)¶
ข้อควรสนใจ
หากคุณใช้ Redroid (android in docker) ยกตัวอย่างเช่น Ubuntu 20.04 ที่แนะนำอย่างเป็นทางการ ให้ติดตั้งโมดูล linux-modules-extra ที่เกี่ยวข้องก่อน
apt install linux-modules-extra-`uname -r`
แก้ไขไฟล์ /etc/modules คัดลอกชื่อต่อไปนี้ไปวางไว้ที่ท้ายไฟล์ จากนั้นรีสตาร์ทเครื่องโฮสต์ (host machine)
# โมดูล redroid
mac80211_hwsim
binder_linux
ashmem_linux
สุดท้าย ใช้คำสั่งต่อไปนี้เพื่อเริ่มต้น โดยพารามิเตอร์ redroid_gpu_mode และอื่นๆ โปรดแก้ไขตามความเหมาะสมกับสถานการณ์ของคุณ
ข้อควรสนใจ
docker run -itd --rm --privileged --pull always -v /lib/modules:/lib/modules:ro -v ~/redroid:/data -p 127.0.0.1:5555:5555 -p 127.0.0.1:65001:65000 redroid/redroid:12.0.0-latest androidboot.redroid_gpu_mode=guest
ในคำสั่งข้างต้น การ map พอร์ต 65000 ของ container ไปยังพอร์ต 65001 ของเครื่องโฮสต์นั้น เนื่องจากเครื่องมือบางอย่างจำเป็นต้องผูกกับพอร์ต 65000 ของเครื่องโฮสต์ชั่วคราว เพื่อหลีกเลี่ยงความขัดแย้ง เราจึงใช้พอร์ต 65001
หมายเหตุ