البدء

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

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

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

في نافذة Terminal على جهازك المضيف، تأكَّد من توفّر ميزة المحاكاة الافتراضية باستخدام جهاز افتراضي يعتمد على النواة (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 Continuous Integration على 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، ما يتيح عرض صفحة ويب من خلال المنفذ 8443 على الجهاز المضيف.

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

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

إيقاف Cuttlefish

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

HOME=$PWD ./bin/stop_cvd