البدء

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

التحقّق من توفّر تقنية KVM

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

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

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

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

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

find /dev -name kvm

إطلاق Cuttlefish

  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 المفتوحة المصدر" (AOSP). يمكن العثور على إصدارات الجهاز الافتراضي على موقع الويب الخاص بالتكامل المستمر لنظام التشغيل Android. للعثور على فهرس لجميع إصدارات Android، انتقِل إلى موقع الويب المخصص للدمج المستمر لنظام Android على الرابط التالي: http://ci.android.com/.

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

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

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

  6. في لوحة "العناصر"، نزِّل العناصر الخاصة بتطبيق Cuttlefish.

    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. إطلاق Cuttlefish:

    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