Cuttlefish: একটি কাস্টম ডিভাইস তৈরি করুন

এই পৃষ্ঠাটি বর্ণনা করে কিভাবে একটি কাস্টমাইজড কাটলফিশ ডিভাইস তৈরি করতে হয়। Cuttlefish এ AndroidProducts.mk এ তালিকাভুক্ত বিভিন্ন ফর্ম ফ্যাক্টরের পূর্বনির্ধারিত ডিভাইসের ধরন অন্তর্ভুক্ত করে। একটি নতুন ডিভাইস যোগ করার ক্ষেত্রে বর্ণিত সাধারণ ডিভাইস কাস্টমাইজেশন বিকল্পগুলি ছাড়াও, আপনি ভার্চুয়াল ডিভাইস বোর্ড কনফিগারেশন প্রিসেট (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), কার্নেল প্রিবিল্ট, বুটলোডার প্রিবিল্ট, সিস্টেম প্রপার্টি, কনফিগারেশন প্রিসেটগুলির মতো কাটলফিশ-নির্দিষ্ট কাস্টমাইজেশন করতে পারেন। ভার্চুয়ালাইজেশন সমর্থন, এবং প্রদর্শন বিকল্প। কাস্টমাইজ করা যেতে পারে এমন বিল্ড টাইম প্যারামিটারের সম্পূর্ণ তালিকার জন্য, device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk দেখুন।

নিম্নলিখিত ধাপগুলি বর্ণনা করে কিভাবে একটি কাল্পনিক x86-64 big_phone ডিভাইস একটি সাধারণ কাটলফিশ ডিভাইসের দশগুণ আকারের তৈরি করা যায়।

একটি বিদ্যমান লক্ষ্য থেকে উত্তরাধিকারী

একটি বিদ্যমান লক্ষ্য থেকে উত্তরাধিকারী হতে:

  • একটি device/google/cuttlefish/vsoc_x86_64/ big_phone ডিরেক্টরি তৈরি করুন।
  • সেই ডিরেক্টরিতে একটি aosp_cf.mk ফাইল তৈরি করুন।
$(call inherit-product, device/google/cuttlefish/vsoc_x86_64_phone.mk)

PRODUCT_NAME: big_phone
PRODUCT_DEVICE: vsoc_x86_64
PRODUCT_MANUFACTURER := My Company
PRODUCT_MODEL: My Company very large phone

PRODUCT_VENDOR_PROPERTIES += \
    ro.soc.manufacturer=$(PRODUCT_MANUFACTURER) \
    ro.soc.model=$(PRODUCT_DEVICE)

একটি লাঞ্চ লক্ষ্য যোগ করুন

device/google/cuttlefish/AndroidProducts.mk ফাইলে lunch লক্ষ্য ঢোকান:

PRODUCT_MAKEFILES := \
  ...
  big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
  ...
lunch big_phone

JSON কনফিগারেশন সংজ্ঞায়িত করুন

Cuttlefish ডিভাইসটি চালু করতে, একটি JSON কনফিগারেশন ফাইল তৈরি করুন যার নাম big_phone .json একটি শ্রেণীবদ্ধ কাঠামো যা ডিভাইসের বৈশিষ্ট্যগুলিকে উপস্থাপন করে। উদাহরণস্বরূপ, JSON কনফিগারেশন ফাইলে, আপনি VM-এর জন্য বরাদ্দ করা RAM এবং প্রদর্শন কনফিগারেশনের মতো বিকল্পগুলি নির্দিষ্ট করতে পারেন। এই ফাইলটি AOSP গাছে থাকতে হবে না। কনফিগারেশনের জন্য JSON ফর্ম্যাটের বিশদ বিবরণের জন্য, ক্যানোনিকাল কনফিগারেশন দেখুন।

{
  "instances":
      [
        {
          "vm": {
            "memory_mb": 40960,
          },
          "graphics": {
            "displays": [
              {
                "width": 7200,
                "height": 12800,
                "dpi": 320
              }
            ]
          }
        }
      ]
}

কনফিগারেশন চালু করতে, চালান:

cvd start --config_file=big_phone.json

লঞ্চ_সিভিডি চালান (উত্তরাধিকার)

নির্দিষ্ট কনফিগারেশন বৈশিষ্ট্য অনুক্রমিক JSON কনফিগারেশন বিন্যাসে উপলব্ধ নয়। এই ধরনের কনফিগারেশনের জন্য, আপনি একটি একক-স্তরের JSON অভিধান থেকে launch_cvd পতাকা ডিফল্ট মান সেট করতে পারেন। সমস্ত কনফিগারেশন বিকল্পের সম্পূর্ণ তালিকার জন্য, cf_flags_validator.cpp দেখুন।

JSON কনফিগারেশন ফাইল ব্যবহার করে launch_cvd পতাকা বিকল্পগুলির ডিফল্ট মানগুলিকে কীভাবে ওভাররাইড করতে হয় এবং কাস্টম কনফিগারেশন চালু করতে কাটলফিশ লঞ্চারকে সক্রিয় করতে হয় তার একটি উদাহরণ নিম্নলিখিতটি বর্ণনা করে।

  1. একটি JSON কনফিগারেশন ফাইল তৈরি করুন, device/google/cuttlefish/shared/config/config_ big_phone .json , কাস্টম মান সহ।

    {
      "x_res": 7200,
      "y_res": 12800,
      "dpi": 320,
      "memory_mb": 40960,
      "ddr_mem_mb": 49150,
    }
    
  2. কটলফিশ লঞ্চারের জন্য big_phone কনফিগারেশন চালু করার জন্য, নিশ্চিত করুন যে এটির device/google/cuttlefish/shared/config/config_ big_phone .json ফাইলে অ্যাক্সেস রয়েছে:

    1. device/google/cuttlefish/shared/config/Android.bp ফাইলে prebuilt_etc_host স্তবক যোগ করে JSON আর্টিফ্যাক্টটিকে বিল্ড আর্টিফ্যাক্ট হিসেবে ঘোষণা করুন।

      prebuilt_etc_host {
          name: "cvd_config_big_phone.json",
          src: "config_big_phone.json",
          sub_dir: "cvd_config",
      }
      
    2. device/google/cuttlefish/shared/device.mk এ নিম্নলিখিতটি চালিয়ে কাটলফিশ লঞ্চারে ফলস্বরূপ বিল্ড আর্টিফ্যাক্ট ঘোষণা যোগ করুন।

      $(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
      
    3. একটি android_info.txt ফাইল তৈরি করুন এবং device/google/cuttlefish/vsoc_x86_64/ big_phone /aosp_cf.mk এ নিম্নলিখিত লাইনটি যোগ করে ফাইলের সাথে big_phone কনফিগার করুন:

      TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
      
    4. নিম্নলিখিতগুলির সাথে device/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txt পপুলেট করে big_phone কনফিগারেশনের সাথে ডিভাইসের ধরনটিকে লেবেল করুন:

      config=big_phone