البدء

توضّح هذه الصفحة طريقة إطلاق إصدار AOSP باستخدام Cuttlefish.

التحقّق من توفّر وحدة تحكّم افتراضي في الأجهزة (KVM)

Cuttlefish هو جهاز افتراضي ويعتمد على توفّر تكنولوجيا المحاكاة الافتراضية على الجهاز المضيف.

في وحدة طرفية على جهازك المضيف، تأكَّد من توفّر تقنية المحاكاة الافتراضية باستخدام جهاز افتراضي يعتمد على النواة (KVM):

grep -c -w "vmx\|svm" /proc/cpuinfo

من المفترض أن يعرض هذا الأمر قيمة غير صفرية.

عند التشغيل على جهاز ARM64، تكون الطريقة الأكثر مباشرةً هي التحقّق مما يلي: /dev/kvm:

find /dev -name kvm

إطلاق حبَّار

  1. في نافذة المحطة الطرفية، عليك تنزيل حزم نظام التشغيل Debian المضيفة وإنشاؤها وتثبيتها.

    sudo apt install -y git devscripts equivs config-package-dev debhelper-compat golang curl
    git clone https://github.com/google/android-cuttlefish
    cd android-cuttlefish
    tools/buildutils/build_packages.sh
    sudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -f
    sudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -f
    sudo usermod -aG kvm,cvdnetwork,render $USER
    sudo reboot

    يؤدي إعادة التشغيل إلى بدء تثبيت وحدات إضافية للنواة وتطبيق udev القواعد.

  2. تشكّل Cuttlefish جزءًا من منصة Android Open-Source Platform ‏(AOSP). يمكن العثور على إصدارات الجهاز الافتراضي على موقع الويب "دمج Android المستمر". للعثور على فهرس لجميع إصدارات Android، انتقِل إلى موقع الويب المخصص للدمج المستمر لنظام Android على الرابط التالي: http://ci.android.com/.

  3. أدخِل اسم فرع. استخدِم الفرع التلقائي aosp-main أو استخدِم فرع صورة نظام عامة (GSI) مثل aosp-android13-gsi.

  4. انتقِل إلى الإصدار المستهدف من aosp_cf_x86_64_phone وانقر على userdebug للحصول على أحدث إصدار.

  5. انقر على المربّع الأخضر أسفل userdebug لاختيار هذا الإصدار. تظهر لوحة التفاصيل التي تتضمّن المزيد من المعلومات المتعلّقة بهذا الإصدار. في هذه اللوحة، انقر على العناصر للاطّلاع على قائمة بكل العناصر المُرفَقة بهذا الإصدار.

  6. في لوحة "العناصر" ( Artifacts)، نزِّل العناصر الخاصة بالحبَّار.

    1. انقر على رمز العنصر aosp_cf_x86_64_phone-img-xxxxxx.zip لنظام التشغيل x86_64 أو رمز العنصر aosp_cf_arm64_only_phone-xxxxxx.zip لنظام التشغيل ARM64، والذي يحتوي على صور الجهاز. في اسم الملف، "xxxxxx" هو معرّف الإصدار لهذا الجهاز.

    2. انتقِل للأسفل في اللوحة ونزِّل cvd-host_package.tar.gz. يجب دائمًا تنزيل حزمة المضيف من الإصدار نفسه المستخدَم في صورك.

  7. على نظامك المحلي، أنشِئ مجلدًا للحاويات واستخدمه لاستخراج الحِزم:

    1. بنية x86_64:

      mkdir cf
      cd cf
      tar -xvf /path/to/cvd-host_package.tar.gz
      unzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zip

    2. بنية ARM64:

      mkdir cf
      cd cf
      tar -xvf /path/to/cvd-host_package.tar.gz
      unzip /path/to/aosp_cf_arm64_only_phone-img-xxxxxx.zip

  8. إطلاق حبَّار:

    HOME=$PWD ./bin/launch_cvd --daemon

التأكّد من ظهور Cuttlefish من خلال adb

على غرار الجهاز الفعلي، يظهر تطبيق Cuttlefish من خلال Android Debug Bridge (adb).

في المجلد نفسه الذي أطلقت فيه تطبيق Cuttlefish، نفِّذ الأمر التالي للاطّلاع على قائمة بجميع أجهزة Android المتاحة من خلال adb على الجهاز المضيف:

./bin/adb devices

عرض الجهاز الظاهري والتفاعل معه على الويب

يتم تشغيل Cuttlefish تلقائيًا باستخدام --start_webrtc، ما يتيح عرض WebView من خلال المنفذ 8443 على الجهاز المضيف.

لعرض أجهزتك الافتراضية والتفاعل معها، انتقِل إلى https://localhost:8443 في متصفح الويب.

لمزيد من المعلومات، يُرجى الاطّلاع على مقالة Cuttlefish: بث WebRTC.

إيقاف Cuttlefish

أوقِف الجهاز الافتراضي في الدليل نفسه الذي استخدمته لبدء تشغيل الجهاز:

HOME=$PWD ./bin/stop_cvd