એન્ડ્રોઇડનું પોતાનું વર્ઝન બનાવવું એ ખૂબ જ અનુભવી ડેવલપર્સ માટે અનામત કાર્ય જેવું લાગે છે, પરંતુ સત્ય એ છે કે યોગ્ય તૈયારી અને થોડી ધીરજ સાથે, મૂળભૂત જ્ઞાન ધરાવનાર કોઈપણ વ્યક્તિ કસ્ટમ ROM બનાવવાનું શરૂ કરી શકે છે. ભલે તમે સિસ્ટમ સુવિધાઓમાં ફેરફાર કરવાનો પ્રયાસ કરી રહ્યા હોવ, ઉપકરણનું જીવનકાળ વધારવાનો પ્રયાસ કરી રહ્યા હોવ, અથવા ફક્ત તકનીકી પડકાર માટે, Android બનાવવું એ ખૂબ જ લાભદાયી અને શૈક્ષણિક અનુભવ છે.
આ વિગતવાર માર્ગદર્શિકામાં આપણે શરૂઆતથી સમગ્ર પ્રક્રિયા સમજાવીશું.: તમારા વિકાસ વાતાવરણને કેવી રીતે તૈયાર કરવું તેનાથી લઈને ચોક્કસ ઉપકરણ પર ઓપરેટિંગ સિસ્ટમ કમ્પાઇલ કરવાના પગલાં સુધી. આ વિષય માટે અમે શ્રેષ્ઠ ઉપલબ્ધ સ્ત્રોતોનો ઉપયોગ કરીશું: સત્તાવાર એન્ડ્રોઇડ ઓપન સોર્સ પ્રોજેક્ટ (AOSP) દસ્તાવેજીકરણ, નિષ્ણાત વપરાશકર્તાઓ દ્વારા GitHub પર પ્રકાશિત વ્યક્તિગત અનુભવો અને પ્રક્રિયાને સરળ બનાવતા સાધનો.
એન્ડ્રોઇડનું પોતાનું વર્ઝન બનાવવાનું શરૂ કરતા પહેલા તમારે શું જોઈએ છે?
શરૂ કરતા પહેલા, એ સ્પષ્ટ હોવું જરૂરી છે કે Android નું સંકલન તે એવી વસ્તુ નથી જે પાંચ મિનિટમાં થઈ શકે.. તેને સારી તૈયારી અને કેટલાક આવશ્યક સાધનોની જરૂર છે. અલબત્ત, જો તમે વ્યવસ્થિત છો અને પગલાંને યોગ્ય રીતે અનુસરો છો, તો પરિણામ તેના યોગ્ય રહેશે.
- ૬૪-બીટ લિનક્સ ધરાવતું કમ્પ્યુટર, પ્રાધાન્યમાં ઓછામાં ઓછી 16GB RAM અને પુષ્કળ ખાલી ડિસ્ક જગ્યા (સુરક્ષિત રહેવા માટે 100GB થી વધુ) સાથે.
- જાવા (જેડીકે), તમે જે Android વર્ઝન કમ્પાઇલ કરવા જઈ રહ્યા છો તેના માટે ભલામણ કરાયેલ વર્ઝનમાં. એન્ડ્રોઇડ 8.0 જેવા જૂના વર્ઝનને યોગ્ય રીતે ચલાવવા માટે જાવાના ચોક્કસ વર્ઝનની જરૂર પડે છે.
- ગિટ, સીકેશે અને પાયથોન જેવા સાધનો પ્રક્રિયા દરમિયાન પણ જરૂરી રહેશે.
- Android SDK અને પ્લેટફોર્મ ટૂલ્સ, જેમ કે ADB (Android Debug Bridge), જેને તમે તમારા ડિસ્ટ્રિબ્યુશનના રિપોઝીટરીઝમાંથી ઇન્સ્ટોલ કરી શકો છો અથવા સત્તાવાર વેબસાઇટ પરથી ડાઉનલોડ કરી શકો છો.
તમારા Android સંસ્કરણ બનાવતી વખતે પ્રારંભિક પર્યાવરણ સેટઅપ
એકવાર તમારી સિસ્ટમ તૈયાર થઈ જાય, પછી પહેલું પગલું એ છે કે તમારા બિલ્ડ પર્યાવરણને ગોઠવો. આ કરવા માટે, AOSP નામની સ્ક્રિપ્ટનો ઉપયોગ કરવાનું સૂચન કરે છે envsetup.sh
. આ સ્ક્રિપ્ટ ઘણા ઉપયોગી આદેશો આયાત કરે છે અને Android કોડ સાથે કામ કરવા માટે વાતાવરણ તૈયાર કરે છે.
તમે ડાઉનલોડ કરેલા સોર્સ કોડની રૂટ ડિરેક્ટરીમાંથી, નીચેનો આદેશ ચલાવો:
source build/envsetup.sh
આ પગલું તમે ખોલો છો તે દરેક નવા ટર્મિનલ પર કરવું આવશ્યક છે., કારણ કે સ્ક્રિપ્ટ મહત્વપૂર્ણ ચલોને ગોઠવે છે જે સમગ્ર પ્રક્રિયા દરમ્યાન જરૂરી હશે.
બિલ્ડ લક્ષ્ય પસંદ કરો
કંઈપણ કમ્પાઇલ કરતા પહેલા, તમારે સિસ્ટમને કહેવું પડશે તમે કયા ઉપકરણ માટે કમ્પાઇલ કરી રહ્યા છો?. આને "લક્ષ્ય" પસંદ કરવાનું કહેવામાં આવે છે. આ કરવા માટે, આદેશનો ઉપયોગ કરો lunch
, ત્યારબાદ ઉત્પાદન, રૂપરેખાંકન અને બિલ્ડ વેરિઅન્ટનો ઉલ્લેખ કરતી સ્ટ્રિંગ આવે છે.
બપોરના ભોજનના સામાન્ય ઉપયોગનું ઉદાહરણ:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
આ x86_64 આર્કિટેક્ચર સાથેનું એક એમ્યુલેટેડ ડિવાઇસ પસંદ કરે છે, જે પ્રારંભિક પરીક્ષણ માટે આદર્શ છે.
વૈકલ્પિક રીતે તમે ઉપયોગ કરી શકો છો:
echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"
આ તમને બતાવશે કે તમે હાલમાં કઈ સેટિંગ્સ પસંદ કરી છે જેથી ખાતરી કરી શકાય કે તે સાચી છે.
સંકલન પ્રકારો: વપરાશકર્તા, વપરાશકર્તાડિબગ, અને અંગ્રેજી
લંચ કમાન્ડનો જે ભાગ વેરિઅન્ટને વ્યાખ્યાયિત કરે છે તેમાં ત્રણ મૂલ્યો હોઈ શકે છે:
- વપરાશકર્તા: ઉત્પાદન-લક્ષી પ્રકાર, રૂટ એક્સેસ અથવા ડિબગીંગ ટૂલ્સ વિના.
- યુઝરડીબગ: પાછલા એક જેવું જ પરંતુ ડિબગીંગ ટૂલ્સ સક્રિય સાથે. વિકાસકર્તાઓ માટે આદર્શ.
- અંગ્રેજી: આંતરિક વિકાસ માટેનો પ્રકાર. કમ્પાઇલ કરવામાં ઝડપી અને ઓછું ઑપ્ટિમાઇઝ કરેલ.
સ્રોત કોડ ડાઉનલોડ કરો
એન્ડ્રોઇડ સોર્સ કોડ ખૂબ મોટો છે. તે નામના ટૂલનો ઉપયોગ કરીને ડાઉનલોડ થાય છે repo
. ઉદાહરણ તરીકે, LineageOS 17.1 કોડ ડાઉનલોડ કરવા માટે તમારે આ ચલાવવું પડશે:
repo init -u https://github.com/LineageOS/android.git -b lineage-17.1
repo sync
આ પગલામાં કલાકો લાગી શકે છે, તમારા ઇન્ટરનેટ કનેક્શન પર આધાર રાખીને. ઉપરાંત, તે ક્યારેક ક્યારેક ક્રેશ થઈ શકે છે, તેથી જો તે થાય, તો તેને ફરીથી ચલાવો. repo sync
તે પૂરું થાય ત્યાં સુધી.
માલિકીના બ્લોબ્સ ઇન્સ્ટોલ કરી રહ્યા છીએ
ચોક્કસ ઉપકરણ માટે ROM કમ્પાઇલ કરવા માટે, જો ઉત્પાદક બધો કોડ રિલીઝ ન કરે તો તમારે માલિકીના બ્લોબ્સની જરૂર પડશે. આ બ્લોબ્સ એ બાયનરી છે જેમાં હાર્ડવેર-વિશિષ્ટ કાર્યો હોય છે.
બ્લોબ્સનો એક લોકપ્રિય સ્ત્રોત એ ભંડાર છે મપેટ્સ GitHub પર. તમે તેમને આની મદદથી મેન્યુઅલી ડાઉનલોડ કરી શકો છો:
mkdir -p vendor/motorola
cd vendor
git clone https://github.com/TheMuppets/proprietary_vendor_motorola motorola
ઉપકરણ માટે પર્યાવરણ શરૂ કરો
એકવાર બ્લોબ્સ ડાઉનલોડ થઈ જાય, પછી ફરીથી ચલાવો:
breakfast evert
જ્યાં vertભું કરવું તમારા ઉપકરણનું આંતરિક નામ હશે (આ કિસ્સામાં, Moto G6 Plus).
ccache વડે પ્રક્રિયાને ઑપ્ટિમાઇઝ કરો
ભવિષ્યમાં સંકલન સમય ઘટાડવા માટે, તમે ccache સક્ષમ કરી શકો છો:
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
ccache -M 50G
ccache -o compression=true
એન્ડ્રોઇડ કમ્પાઇલ કરો
બધું તૈયાર થઈ ગયા પછી, કમ્પાઇલ કરવાનો સમય આવી ગયો છે. આદેશ ચલાવો:
brunch evert
આ સંકલન પ્રક્રિયા શરૂ કરશે. તમારા હાર્ડવેરના આધારે તેમાં ઘણા કલાકો લાગી શકે છે.. ઓછામાં ઓછી 16 GB RAM રાખવાની ભલામણ કરવામાં આવે છે.
સંકલનનું આઉટપુટ સામાન્ય રીતે આમાં જોવા મળે છે:
out/target/product/evert/
ત્યાં તમને તમારા ઉપકરણ પર ઇન્સ્ટોલ કરવા માટે તૈયાર ROM સાથે .zip ફાઇલ દેખાશે.
વૈકલ્પિક સાધનો: સ્ક્રિબટ
પ્રક્રિયાને સરળ બનાવવા માંગતા લોકો માટે એક રસપ્રદ વિકલ્પનો ઉપયોગ કરવાનો છે સ્ક્રિબટ, એક સાધન જે કસ્ટમ ROM ડેવલપમેન્ટના ભાગોને સ્વચાલિત કરે છે.
સ્ક્રિબટ આની મંજૂરી આપે છે:
- રીપોઝીટરીઝ બનાવો અને સિંક્રનાઇઝ કરો
- જાવા અને ADB જેવી જરૂરી ડિપેન્ડન્સી આપમેળે ઇન્સ્ટોલ કરો.
- નવા વિકાસકર્તાઓ માટે વધુ માર્ગદર્શિત કાર્ય વાતાવરણ સેટ કરો
જોકે, સ્ક્રિબટને ચોક્કસ પૂર્વ જ્ઞાન અને ઉપકરણ માટે સ્રોત કોડની જરૂર છે. પરંતુ જો તમે જરૂરિયાતો પૂરી કરો છો, તમારા ઘણા કલાકો બચાવી શકે છે.
Android પર થ્રેડ રાઉટર્સ માટે સંકલન
સત્તાવાર દસ્તાવેજોમાં આવરી લેવામાં આવેલ બીજો ચોક્કસ કેસ થ્રેડ-આધારિત બોર્ડર રાઉટર બનાવવાનો છે. આ કરવા માટે, તમારે તમારું પોતાનું HAL (હાર્ડવેર એબ્સ્ટ્રેક્શન લેયર) સેટ કરવું પડશે અને થ્રેડ નેટવર્ક ચિપ સોર્સ કોડની ઍક્સેસ હોવી પડશે.
કટલફિશ (એન્ડ્રોઇડ એમ્યુલેટર) જેવા ઉપકરણો પર, તમે પહેલાથી જ સિમ્યુલેશન અને ટૂલ્સ જેવા કે ot-cli-ftd
y ot-ctl
, જે તમને વર્ચ્યુઅલી રેડિયોને નિયંત્રિત કરવાની મંજૂરી આપે છે.
તે UART, SPI અથવા સોકેટ્સનો ઉપયોગ કરીને વાસ્તવિક થ્રેડ રેડિયો સાથે કામ કરવા માટે APEX મોડ્યુલને કેવી રીતે કસ્ટમાઇઝ કરવું તેની પણ વિગતો આપે છે. આ ભાગ વધુ અદ્યતન છે અને તેને XML ફાઇલો, પરવાનગીઓ અને સિસ્ટમ પ્રારંભિક સ્ક્રિપ્ટોમાં ફેરફાર કરવાની જરૂર છે.
પરીક્ષણ અને પ્રમાણપત્ર
એકવાર તમારી પાસે કમ્પાઇલ કરેલું ROM થઈ જાય, પછી તમે કસ્ટમ પરીક્ષણો અને સત્તાવાર સુસંગતતા પરીક્ષણો દ્વારા તેની કાર્યક્ષમતા ચકાસી શકો છો:
- વીટીએસ: HAL ની કામગીરી તપાસો.
- CTS: APIs Android સિસ્ટમ નિયમોનું પાલન કરે છે કે નહીં તે તપાસે છે.
- એકીકરણ: સંપૂર્ણ સિસ્ટમ પર કાર્યાત્મક પરીક્ષણ.
તમે એપનો ઉપયોગ પણ કરી શકો છો થ્રેડનેટવર્કડેમોએપ ગ્રાફિકલ વાતાવરણમાં દ્રશ્ય પરીક્ષણો કરવા માટે.
તમારું પોતાનું કમ્પાઇલ કરો Android સંસ્કરણ તે એક પડકારજનક પણ ખૂબ જ સમૃદ્ધ પ્રક્રિયા છે. તમારા પર્યાવરણને સેટ કરવાથી, તમારા લક્ષ્ય હાર્ડવેરને પસંદ કરવાથી અને તમારા સ્રોત કોડને ડાઉનલોડ કરવાથી, ચોક્કસ રૂપરેખાંકનોને કસ્ટમાઇઝ કરવા અથવા ScriBt અથવા ccache જેવા સાધનોનો ઉપયોગ કરવા સુધી, દરેક પગલું મહત્વપૂર્ણ છે.
જોકે તેમાં સમય, શિસ્ત અને ઘણા ટેકનિકલ પગલાંઓનું પાલન જરૂરી છે, સારા માર્ગદર્શન સાથે તમે નિષ્ણાત ન હોવ તો પણ આશ્ચર્યજનક પરિણામો પ્રાપ્ત કરી શકો છો. અને સૌથી સારી વાત: તમારી પાસે તમારી રુચિ અને જરૂરિયાતો અનુસાર બનાવેલ ROM હશે. આ માર્ગદર્શિકા શેર કરો જેથી વધુ વપરાશકર્તાઓને ખબર પડે કે Android નું પોતાનું સંસ્કરણ કેવી રીતે કમ્પાઇલ કરવું..