কম্পিউটার

কিভাবে অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প থেকে একটি কাস্টম রম তৈরি করবেন

আপনি যদি আপনার অ্যান্ড্রয়েড ফোন রুট করা বা কাস্টম রম ডাউনলোড করার সাথে পরিচিত হন, যেমন অত্যন্ত জনপ্রিয় CyanogenMod বা এর উত্তরসূরি Lineage OS, তাহলে আপনি হয়তো ভাবছেন – লোকেরা কীভাবে এই রমগুলি তৈরি করে? একটি কাস্টমাইজড রম ডেভেলপ করতে ঠিক কতটা কাজ করে?

এই নির্দেশিকাটি আপনাকে আপনার নিজস্ব কাস্টম অ্যান্ড্রয়েড রম তৈরির মূল বিষয়গুলির মধ্যে নিয়ে যাবে। এটা লক্ষ করা উচিত যে এটি একটি বিশাল উদ্যোগ - যদি আপনার লিনাক্স টার্মিনালগুলিতে কোডিং বা বোকা বানানোর অভিজ্ঞতা শূন্য থাকে তবে আপনি এই গভীর-এন্ডে ডুব দেওয়ার আগে আপনার বেল্টের নীচে কিছু জ্ঞান পেতে চাইতে পারেন। কিন্তু যদি আপনার কাছে এই জিনিসগুলির অন্তত একটি প্রাথমিক ধারণা থাকে, তাহলে আমি যতটা সম্ভব সহজভাবে বিষয়গুলি ব্যাখ্যা করার চেষ্টা করব, যাতে আপনি অনুসরণ করতে পারেন৷

মূলত আমরা যা করছি তা হল raw ডাউনলোড করা অ্যান্ড্রয়েড সোর্স কোড (AOSP) এবং এটি আমাদের পছন্দ অনুযায়ী পরিবর্তন করা। যেহেতু বিভিন্ন ডিভাইসের জন্য বেছে নেওয়ার জন্য অনেকগুলি উত্স রয়েছে, তাই এই নির্দেশিকাটি কেবল মাস্টারকে উল্লেখ করবে উৎস AOSP (Android Open Source Project). নামে পরিচিত

এখন AOSP সম্পর্কে বিষয় হল যে বিশুদ্ধ উত্স কোড অন্তর্ভুক্ত নয় ডিভাইস-নির্দিষ্ট হার্ডওয়্যার বৈশিষ্ট্য। সাধারণ মানুষের ভাষায়, AOSP-এর সাথে বিকাশ করার সময় আপনার ক্যামেরা এবং GPU-এর মতো হার্ডওয়্যার "বাক্সের বাইরে" কাজ করবে না। আসলে, আপনার ডিভাইসটি এই হার্ডওয়্যার বাইনারিগুলি ছাড়া বুটও হবে না৷

আপনি যদি একটি Google-ব্র্যান্ডেড ফোনের (Pixel, Nexus, ইত্যাদি) জন্য ডেভেলপ করেন তাহলে আপনি Google থেকে সরাসরি হার্ডওয়্যার বাইনারিগুলি খুঁজে পেতে পারেন এবং এই নির্দেশিকাটি আপনাকে সেগুলিকে আপনার ROM-এ প্রাপ্ত এবং তৈরি করার মাধ্যমে নিয়ে যাবে৷ যাইহোক, আপনি যদি একটি ব্র্যান্ড-নেম ফোনের (Sony, Samsung, ইত্যাদি) জন্য একটি রম ডেভেলপ করেন... ভাল, আপনার হৃদয়কে আশীর্বাদ করুন, কারণ আপনি একটি রাইডের জন্য আছেন।

কিছু নির্মাতাদের নিজস্ব ওপেন-সোর্স প্রজেক্ট থাকে বা ডেভেলপারদের জন্য ডেভেলপমেন্ট টুল রিলিজ করে, যেখানে অন্যান্য নির্মাতারা তাদের মালিকানা কোডের উপর শক্ত ঢাকনা রাখে। এখানে আরও জনপ্রিয় নির্মাতাদের থেকে ওপেন সোর্স প্রকল্পগুলির একটি সংক্ষিপ্ত তালিকা রয়েছে:

Samsung ওপেন সোর্স রিলিজ সেন্টার
Sony Developer World
Lenovo Support
Huawei Open Source Release Center
Motorola Developers

এর বাইরে, আসুন আমরা অনুমান করে চালিয়ে যাই যে আমরা একটি Google পিক্সেল ডিভাইসের জন্য সবচেয়ে মৌলিক, ভ্যানিলা অ্যান্ড্রয়েড অভিজ্ঞতার জন্য একটি রম তৈরি করছি। আপনার বেল্টের নীচে এই জ্ঞানের সাহায্যে, আপনি নিজে থেকে শাখা তৈরি করতে সক্ষম হবেন এবং নির্দিষ্ট প্রস্তুতকারকের রমগুলির কাস্টমাইজড সংস্করণগুলি বিকাশ শুরু করতে পারবেন৷

এই গাইডের জন্য প্রয়োজনীয়তা:

  • অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট
  • Pixel XL ফোন বা লিনাক্সের জন্য একটি অ্যান্ড্রয়েড এমুলেটর
  • 64-বিট লিনাক্স অপারেটিং সিস্টেম – উবুন্টু বা লিনাক্স মিন্ট হল সবচেয়ে নতুনদের জন্য বন্ধুত্বপূর্ণ ডিস্ট্রো, যেখানে BBQLinux বিশেষভাবে Android ডেভেলপারদের কথা মাথায় রেখে তৈরি করা হয়েছে।
  • পাইথন
  • একটি বিফী কম্পিউটার (কোড কম্পাইল করতে অনেক মেমরি এবং জায়গা লাগে!)

আপনার বিল্ড এনভায়রনমেন্ট সেট আপ করা

আপনার লিনাক্স মেশিনে অ্যান্ড্রয়েড এমুলেটর সেট আপ করে শুরু করা যাক। আপনার কাছে Google Pixel XL ডিভাইস থাকুক বা না থাকুক, আগে একটি Android এমুলেটরে আপনার নতুন রম চেষ্টা করা সর্বদা নিরাপদ। এটি আপনার ডিভাইসে ফ্ল্যাশ করছে। আমার ব্যক্তিগত প্রিয় জেনিমোশন, তাই আমি আপনাকে সেই নির্দিষ্ট এমুলেটর ইনস্টল করার মাধ্যমে নিয়ে যাব। যাইহোক, আপনি "সেরা অ্যান্ড্রয়েড এমুলেটর" এই নির্দেশিকাটিও দেখতে পারেন, কারণ তাদের বেশিরভাগই লিনাক্স সামঞ্জস্যপূর্ণ।

Genymotion ওয়েবসাইটে যান, একটি অ্যাকাউন্ট নিবন্ধন করুন, ইমেলের মাধ্যমে এটি যাচাই করুন এবং আপনার Linux ডেস্কটপে এক্সিকিউটেবল ডাউনলোড করুন।

এখন একটি লিনাক্স টার্মিনাল খুলুন, এবং টাইপ করুন:

Chmod +x genymotion-xxxxx.bin (ফাইলের নামের সংস্করণ নম্বর দিয়ে xxxx প্রতিস্থাপন করুন)
./genymotion-xxxxxx.bin

Y টিপুন Genymotion ডিরেক্টরি তৈরি করতে। এখন টার্মিনালে টাইপ করুন:

cd genymotion &&./genymotion

এখন এটি আপনাকে ইনস্টলেশন প্রক্রিয়া শুরু করতে বলবে, তাই আপনি ভার্চুয়াল ডিভাইস যোগ করুন উইন্ডোতে না আসা পর্যন্ত শুধু পরবর্তীতে ক্লিক করুন। ডিভাইস মডেল বিকল্পের অধীনে "Pixel XL" নির্বাচন করুন এবং তারপরে ইনস্টলেশন সম্পূর্ণ করুন। আপনি চাইলে ভার্চুয়াল ডিভাইসটি পরীক্ষা করে দেখতে পারেন, এটি মূলত আপনার ডেস্কটপে একটি Pixel XL ফোন থাকার মত হবে।

এখন পাইথন সেট আপ করা যাক:

$ apt-get install python

এখন আমাদের আপনার লিনাক্স মেশিনে জাভা ডেভেলপমেন্ট কিট সেটআপ করতে হবে। লিনাক্স টার্মিনাল খুলুন এবং নিম্নলিখিত কমান্ড টাইপ করুন:

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

এখন আপনাকে USB ডিভাইস অ্যাক্সেসের অনুমতি দিতে Linux সিস্টেম কনফিগার করতে হবে। লিনাক্স টার্মিনালে নিম্নলিখিত কোডটি চালান:

কিভাবে অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প থেকে একটি কাস্টম রম তৈরি করবেন

এটি প্রয়োজনীয় 51-android.txt ফাইল ডাউনলোড করবে যা উপরে উল্লিখিত USB ডিভাইস অ্যাক্সেসের অনুমতি দেয়। .txt ফাইলটি খুলুন এবং আপনার লিনাক্স ব্যবহারকারীর নাম অন্তর্ভুক্ত করতে এটি পরিবর্তন করুন, তারপর .txt ফাইলটিকে নিম্নলিখিত স্থানে রাখুন:কিভাবে অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প থেকে একটি কাস্টম রম তৈরি করবেন(রুট ব্যবহারকারী হিসাবে ) নতুন নিয়মগুলি স্বয়ংক্রিয়ভাবে কার্যকর হওয়ার জন্য এখন USB এর মাধ্যমে আপনার ডিভাইসটিকে আপনার কম্পিউটারে প্লাগ করুন৷

Android সোর্স ডাউনলোড করা হচ্ছে

AOSP Git-এ হোস্ট করা হয়েছে, তাই আমরা Git-এর সাথে যোগাযোগ করার জন্য Repo নামক একটি টুল ব্যবহার করতে যাচ্ছি।

প্রথমে আমাদের আপনার হোম ডিরেক্টরিতে একটি /bin ফোল্ডার সেটআপ করতে হবে। লিনাক্স টার্মিনালে নিম্নলিখিত কমান্ড টাইপ করুন:

$ mkdir ~/bin
$ PATH=~/bin:$PATH

এখন আমরা রেপো টুল ডাউনলোড করব, তাই লিনাক্স টার্মিনালে টাইপ করুন:

$ curl https://storage.googleapis.com/git-repo-downloads/repo> ~/bin/repo
$ chmod a+x ~/bin/repo

রেপো ইন্সটল হওয়ার পরে, আপনার কাজের ফাইলগুলিকে ধরে রাখতে আমাদের এখন একটি খালি ডিরেক্টরি তৈরি করতে হবে। তাই লিনাক্স টার্মিনালে এটি টাইপ করুন:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

এখন আমরা আপনার নাম এবং ইমেল ঠিকানা দিয়ে গিট কনফিগার করব – একটি Gmail ঠিকানা ব্যবহার করুন যা আপনি নিয়মিত চেক করেন , অন্যথায় আপনি গেরিট কোড-রিভিউ টুল ব্যবহার করতে পারবেন না।

$ git config –global user.name “Your Name”
$ git config –global user.email
you@gmail.com

এখন আমরা রেপোকে Git থেকে AOSP-এর সর্বশেষ মাস্টার ম্যানিফেস্ট টেনে আনতে বলব:

$ repo init -u https://android.googlesource.com/platform/manifest

সফলভাবে সম্পন্ন হলে, আপনি একটি বার্তা পাবেন যে রেপো আপনার কাজের ডিরেক্টরিতে আরম্ভ করা হয়েছে। আপনি একটি “.repo”ও পাবেন ক্লায়েন্ট ডিরেক্টরির ভিতরে ডিরেক্টরি। তাই এখন আমরা অ্যান্ড্রয়েড সোর্স ট্রি ডাউনলোড করব:

$ রেপো সিঙ্ক

Android উৎস তৈরি করা

এই গাইডের শুরুতে উল্লিখিত হার্ডওয়্যার বাইনারিগুলি এখানেই কার্যকর হয়৷ আসুন AOSP ড্রাইভার পৃষ্ঠায় যাই এবং Android 7.1.0 (NDE63P) এর জন্য Pixel XL বাইনারি ডাউনলোড করি। আপনি বিক্রেতা ইমেজ এবং হার্ডওয়্যার উপাদান উভয় ডাউনলোড করতে চান. এগুলি সংকুচিত আর্কাইভ হিসাবে আসে, তাই এগুলিকে আপনার ডেস্কটপে এক্সট্র্যাক্ট করুন এবং রুট ফোল্ডার থেকে সেলফ-এক্সট্র্যাক্ট স্ক্রিপ্টটি চালান। আমাদের আগে তৈরি করা WORKING_DIRECTORY এর রুটে বাইনারিগুলি ইনস্টল করতে বেছে নিন।

এখন আপনার লিনাক্স টার্মিনালে টাইপ করুন:

$ মেক ক্লোবার
$ source build/envsetup.sh

এখন আমরা নির্মাণের লক্ষ্য নির্বাচন করব, তাই টাইপ করুন:

$ লাঞ্চ aosp_marlin-userdebug
$ setpaths
$ make –j4

সেখানে, আমরা এখন উৎস থেকে একটি অ্যান্ড্রয়েড রম "বিল্ট" করেছি। তাই আসুন এমুলেটরে পরীক্ষা করি, টার্মিনালে টাইপ করে:

$ এমুলেটর

তাই এমুলেটরে একটু ঘুরে আসুন। আপনি দেখতে পাচ্ছেন, একটি সম্পূর্ণরূপে ভ্যানিলা অ্যান্ড্রয়েড অভিজ্ঞতা বেশ ন্যূনতম, এবং এই কারণে নির্মাতারা তাদের প্রয়োজন অনুসারে AOSP কাস্টমাইজ করে। তাই আপনি পারতে আপনি চাইলে আপনার ডিভাইসে এই রমটি ফ্ল্যাশ করুন, কিন্তু কোনো বর্ধিতকরণ যোগ না করে, একটি সম্পূর্ণরূপে ভ্যানিলা অ্যান্ড্রয়েড অভিজ্ঞতা সত্যিই খুব বিরক্তিকর জিনিস হবে।

সুতরাং নির্মাতারা সাধারণত AOSP এর সাথে যা করবে তা হল এটিকে কাঁটাচামচ করা, তাদের নিজস্ব মালিকানা বাইনারি যুক্ত করা, UI কাস্টমাইজ করা, একটি বুট লোগো যোগ করা ইত্যাদি। নির্মাতারা মূলত শুধুমাত্র স্টক অ্যান্ড্রয়েড রম এর উপর রঙ করে, এবং এটি আপনার পরবর্তী লক্ষ্যও হবে। .

সাথে থাকুন, কারণ এই গাইডের দ্বিতীয় অংশে আপনার রমে ফন্ট, থিম এবং বুট অ্যানিমেশন যোগ করা হবে!


  1. কীভাবে একটি অ্যান্ড্রয়েড ফোন থেকে একটি ভাইরাস অপসারণ করবেন

  2. কিভাবে অ্যান্ড্রয়েড ফোন সেটিংস মেনু খুলবেন

  3. Android এ MOBI ফাইল কিভাবে খুলবেন

  4. অ্যান্ড্রয়েডে কাস্টম রম ইনস্টল করার সময় ত্রুটি 7 TWRP কীভাবে ঠিক করবেন