AOSP বিকাশের জন্য সেট আপ করুন (9.0 বা তার পরে)

আপনি Android উত্সের main শাখা ডাউনলোড এবং তৈরি করার আগে, আপনার হার্ডওয়্যার প্রয়োজনীয় প্রয়োজনীয়তা পূরণ করে এবং প্রয়োজনীয় সফ্টওয়্যারটি সঠিকভাবে ইনস্টল করা আছে কিনা তা নিশ্চিত করুন। এছাড়াও আপনাকে নিম্নলিখিত পদগুলির সাথে পরিচিত হতে হবে:

গিট
গিট একটি বিনামূল্যের এবং ওপেন সোর্স বিতরণকৃত সংস্করণ নিয়ন্ত্রণ ব্যবস্থা। অ্যান্ড্রয়েড স্থানীয় ক্রিয়াকলাপগুলির জন্য গিট ব্যবহার করে যেমন ব্রাঞ্চিং, কমিট, ডিফ এবং এডিট। গিট শিখতে সাহায্যের জন্য, গিট ডকুমেন্টেশন পড়ুন।
রেপো
রেপো হল গিট এর চারপাশে একটি পাইথন র‍্যাপার যা একাধিক গিট রিপোজিটরি জুড়ে জটিল ক্রিয়াকলাপগুলিকে সহজ করে তোলে। রেপো সমস্ত সংস্করণ নিয়ন্ত্রণ ক্রিয়াকলাপের জন্য গিটকে প্রতিস্থাপন করে না, এটি কেবল জটিল গিট অপারেশনগুলি সম্পাদন করা সহজ করে তোলে। রেপো অ্যান্ড্রয়েড সুপারপ্রজেক্টে গিট প্রকল্পগুলিকে একত্রিত করতে ম্যানিফেস্ট ফাইলগুলি ব্যবহার করে।
ম্যানিফেস্ট ফাইল
একটি ম্যানিফেস্ট ফাইল হল একটি XML ফাইল যা নির্দিষ্ট করে যেখানে Android সোর্সের বিভিন্ন গিট প্রোজেক্ট একটি AOSP সোর্স ট্রির মধ্যে স্থাপন করা হয়।

হার্ডওয়্যার প্রয়োজনীয়তা পূরণ করুন

আপনার ডেভেলপমেন্ট ওয়ার্কস্টেশন এই হার্ডওয়্যার প্রয়োজনীয়তা পূরণ বা অতিক্রম করা উচিত:

  • একটি 64-বিট সিস্টেম।

  • কোডটি চেক আউট করতে এবং তৈরি করতে কমপক্ষে 400 GB ফ্রি ডিস্ক স্পেস (চেক আউট করতে 250 GB + তৈরি করতে 150 GB)।

  • ন্যূনতম 64 GB RAM। Google Android তৈরি করতে 64 GB RAM সহ 72-কোর মেশিন ব্যবহার করে৷ এই হার্ডওয়্যার কনফিগারেশনের সাথে, অ্যান্ড্রয়েডের সম্পূর্ণ বিল্ডের জন্য এটি প্রায় 40 মিনিট এবং অ্যান্ড্রয়েডের ক্রমবর্ধমান বিল্ডের জন্য মাত্র কয়েক মিনিট সময় নেয়। বিপরীতে, 64 গিগাবাইট RAM সহ একটি 6-কোর মেশিনের সাথে সম্পূর্ণ বিল্ড করতে এটি প্রায় 6 ঘন্টা সময় নেয়।

অপারেটিং সিস্টেমের প্রয়োজনীয়তা পূরণ করুন

আপনার ডেভেলপমেন্ট ওয়ার্কস্টেশনকে অবশ্যই GNU C Library (glibc) 2.17 বা তার পরের যেকোনো 64-বিট লিনাক্স ডিস্ট্রিবিউশন চালাতে হবে।

প্রয়োজনীয় প্যাকেজ ইনস্টল করুন

অ্যান্ড্রয়েড 11 বা উচ্চতর তৈরি করতে, আপনাকে অবশ্যই উবুন্টু 18.04 বা তার পরে ব্যবহার করতে হবে। উবুন্টু 18.04 বা তার পরে প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করতে, নিম্নলিখিত কমান্ডটি চালান:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

ইনস্টল করা প্যাকেজগুলির মধ্যে, এই কমান্ডটি Git ইনস্টল করে, যা AOSP উৎস ডাউনলোড করতে ব্যবহৃত হয়।

প্রয়োজনীয় সফটওয়্যার ইনস্টল করুন

আপনি AOSP এর সাথে কাজ করার আগে, আপনার অবশ্যই OpenJDK, Make, Python 3 এবং Repo এর ইনস্টলেশন থাকতে হবে। অ্যান্ড্রয়েডের AOSP প্রধান শাখা OpenJDK, Make, এবং Python 3 এর পূর্বনির্মাণ সংস্করণের সাথে আসে, তাই অতিরিক্ত ইনস্টলেশন পদক্ষেপের প্রয়োজন নেই। নিম্নলিখিত বিভাগটি ব্যাখ্যা করে কিভাবে রেপো ইনস্টল করতে হয়।

রেপো ইনস্টল করুন

রেপো ইনস্টল করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. বর্তমান প্যাকেজ তথ্য ডাউনলোড করুন:

    sudo apt-get update
    
  2. রেপো লঞ্চার ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    sudo apt-get install repo
    

    রেপো লঞ্চার একটি পাইথন স্ক্রিপ্ট সরবরাহ করে যা একটি চেকআউট শুরু করে এবং সম্পূর্ণ রেপো টুল ডাউনলোড করে।

    সফল হলে, ধাপ 4 এ যান।

  3. (ঐচ্ছিক) নিম্নলিখিত সিরিজের কমান্ডগুলি ব্যবহার করে ম্যানুয়ালি রেপো ইনস্টল করুন:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
    

    প্রথম তিনটি কমান্ড একটি টেম্প ফাইল সেট আপ করে, ফাইলটিতে Repo ডাউনলোড করে এবং প্রদত্ত কীটি প্রয়োজনীয় কীটির সাথে মেলে তা যাচাই করে। এই কমান্ড সফল হলে, চূড়ান্ত কমান্ড রেপো লঞ্চার ইনস্টল করে।

  4. রেপো লঞ্চার সংস্করণ যাচাই করুন:

    repo version
    

    আউটপুটটি 2.5 বা উচ্চতর সংস্করণ নির্দেশ করবে, উদাহরণস্বরূপ:

    repo launcher version 2.40

একটি বিকল্প আউটপুট ডিরেক্টরি সেট করুন

ডিফল্টরূপে, প্রতিটি বিল্ডের আউটপুট মিলে যাওয়া উৎস গাছের out/ সাবডিরেক্টরিতে সংরক্ষণ করা হয়। আপনি OUT_DIR পরিবেশ পরিবর্তনশীল রপ্তানি করে এই ডিরেক্টরিটিকে ওভাররাইড করতে পারেন। উদাহরণস্বরূপ, যদি আপনি একটি ভিন্ন ড্রাইভে আপনার আউটপুট সঞ্চয় করতে চান, আপনি সেই ড্রাইভে OUT_DIR নির্দেশ করতে পারেন:

export OUT_DIR=my_other_drive

এরপর কি?

,

আপনি Android উত্সের main শাখা ডাউনলোড এবং তৈরি করার আগে, আপনার হার্ডওয়্যার প্রয়োজনীয় প্রয়োজনীয়তা পূরণ করে এবং প্রয়োজনীয় সফ্টওয়্যারটি সঠিকভাবে ইনস্টল করা আছে কিনা তা নিশ্চিত করুন। এছাড়াও আপনাকে নিম্নলিখিত পদগুলির সাথে পরিচিত হতে হবে:

গিট
গিট একটি বিনামূল্যের এবং ওপেন সোর্স বিতরণকৃত সংস্করণ নিয়ন্ত্রণ ব্যবস্থা। অ্যান্ড্রয়েড স্থানীয় ক্রিয়াকলাপগুলির জন্য গিট ব্যবহার করে যেমন ব্রাঞ্চিং, কমিট, ডিফ এবং এডিট। গিট শিখতে সাহায্যের জন্য, গিট ডকুমেন্টেশন পড়ুন।
রেপো
রেপো হল গিট এর চারপাশে একটি পাইথন র‍্যাপার যা একাধিক গিট রিপোজিটরি জুড়ে জটিল ক্রিয়াকলাপগুলিকে সহজ করে তোলে। রেপো সমস্ত সংস্করণ নিয়ন্ত্রণ ক্রিয়াকলাপের জন্য গিটকে প্রতিস্থাপন করে না, এটি কেবল জটিল গিট অপারেশনগুলি সম্পাদন করা সহজ করে তোলে। রেপো অ্যান্ড্রয়েড সুপারপ্রজেক্টে গিট প্রকল্পগুলিকে একত্রিত করতে ম্যানিফেস্ট ফাইলগুলি ব্যবহার করে।
ম্যানিফেস্ট ফাইল
একটি ম্যানিফেস্ট ফাইল হল একটি XML ফাইল যা নির্দিষ্ট করে যেখানে Android সোর্সের বিভিন্ন গিট প্রোজেক্ট একটি AOSP সোর্স ট্রির মধ্যে স্থাপন করা হয়।

হার্ডওয়্যার প্রয়োজনীয়তা পূরণ করুন

আপনার ডেভেলপমেন্ট ওয়ার্কস্টেশন এই হার্ডওয়্যার প্রয়োজনীয়তা পূরণ বা অতিক্রম করা উচিত:

  • একটি 64-বিট সিস্টেম।

  • কোডটি চেক আউট করতে এবং তৈরি করতে কমপক্ষে 400 GB ফ্রি ডিস্ক স্পেস (চেক আউট করতে 250 GB + তৈরি করতে 150 GB)।

  • ন্যূনতম 64 GB RAM। Google Android তৈরি করতে 64 GB RAM সহ 72-কোর মেশিন ব্যবহার করে৷ এই হার্ডওয়্যার কনফিগারেশনের সাথে, অ্যান্ড্রয়েডের সম্পূর্ণ বিল্ডের জন্য এটি প্রায় 40 মিনিট এবং অ্যান্ড্রয়েডের ক্রমবর্ধমান বিল্ডের জন্য মাত্র কয়েক মিনিট সময় নেয়। বিপরীতে, 64 গিগাবাইট RAM সহ একটি 6-কোর মেশিনের সাথে সম্পূর্ণ বিল্ড করতে এটি প্রায় 6 ঘন্টা সময় নেয়।

অপারেটিং সিস্টেমের প্রয়োজনীয়তা পূরণ করুন

আপনার ডেভেলপমেন্ট ওয়ার্কস্টেশনকে অবশ্যই GNU C Library (glibc) 2.17 বা তার পরে যেকোনো 64-বিট লিনাক্স ডিস্ট্রিবিউশন চালাতে হবে।

প্রয়োজনীয় প্যাকেজ ইনস্টল করুন

অ্যান্ড্রয়েড 11 বা উচ্চতর তৈরি করতে, আপনাকে অবশ্যই উবুন্টু 18.04 বা তার পরে ব্যবহার করতে হবে। উবুন্টু 18.04 বা তার পরে প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করতে, নিম্নলিখিত কমান্ডটি চালান:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

ইনস্টল করা প্যাকেজগুলির মধ্যে, এই কমান্ডটি Git ইনস্টল করে, যা AOSP উৎস ডাউনলোড করতে ব্যবহৃত হয়।

প্রয়োজনীয় সফটওয়্যার ইনস্টল করুন

আপনি AOSP এর সাথে কাজ করার আগে, আপনার অবশ্যই OpenJDK, Make, Python 3 এবং Repo এর ইনস্টলেশন থাকতে হবে। অ্যান্ড্রয়েডের AOSP প্রধান শাখা OpenJDK, Make, এবং Python 3 এর পূর্বনির্মাণ সংস্করণের সাথে আসে, তাই অতিরিক্ত ইনস্টলেশন পদক্ষেপের প্রয়োজন নেই। নিম্নলিখিত বিভাগটি ব্যাখ্যা করে কিভাবে রেপো ইনস্টল করতে হয়।

রেপো ইনস্টল করুন

রেপো ইনস্টল করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. বর্তমান প্যাকেজ তথ্য ডাউনলোড করুন:

    sudo apt-get update
    
  2. রেপো লঞ্চার ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    sudo apt-get install repo
    

    রেপো লঞ্চার একটি পাইথন স্ক্রিপ্ট সরবরাহ করে যা একটি চেকআউট শুরু করে এবং সম্পূর্ণ রেপো টুল ডাউনলোড করে।

    সফল হলে, ধাপ 4 এ যান।

  3. (ঐচ্ছিক) নিম্নলিখিত সিরিজের কমান্ডগুলি ব্যবহার করে ম্যানুয়ালি রেপো ইনস্টল করুন:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
    

    প্রথম তিনটি কমান্ড একটি টেম্প ফাইল সেট আপ করে, ফাইলটিতে Repo ডাউনলোড করে এবং প্রদত্ত কীটি প্রয়োজনীয় কীটির সাথে মেলে তা যাচাই করে। এই কমান্ড সফল হলে, চূড়ান্ত কমান্ড রেপো লঞ্চার ইনস্টল করে।

  4. রেপো লঞ্চার সংস্করণ যাচাই করুন:

    repo version
    

    আউটপুটটি 2.5 বা উচ্চতর সংস্করণ নির্দেশ করবে, উদাহরণস্বরূপ:

    repo launcher version 2.40

একটি বিকল্প আউটপুট ডিরেক্টরি সেট করুন

ডিফল্টরূপে, প্রতিটি বিল্ডের আউটপুট মিলে যাওয়া উৎস গাছের out/ সাবডিরেক্টরিতে সংরক্ষণ করা হয়। আপনি OUT_DIR পরিবেশ পরিবর্তনশীল রপ্তানি করে এই ডিরেক্টরিটিকে ওভাররাইড করতে পারেন। উদাহরণস্বরূপ, যদি আপনি একটি ভিন্ন ড্রাইভে আপনার আউটপুট সঞ্চয় করতে চান, আপনি সেই ড্রাইভে OUT_DIR নির্দেশ করতে পারেন:

export OUT_DIR=my_other_drive

এরপর কি?