கர்னலை உருவாக்குதல்

சாதன மூலத்தை எவ்வாறு அமைப்பது, deviceinfo மற்றும் கர்னலை உள்ளமைப்பது மற்றும் அதை உருவாக்குவது எப்படி என்பதை இந்தப் பகுதி விளக்குகிறது. குளோனிங் மற்றும் தள்ளுதல் மற்றும் களஞ்சியங்களை உருவாக்குதல் போன்ற சில கட்டாய சிட் அறிவு உங்களிடம் இருக்க வேண்டும் என்று இந்த வழிகாட்டி எதிர்பார்க்கிறது.

உங்கள் உருவாக்க சூழலை அமைத்தல்

Assuming you have already installed the tools specified in the section on உருவாக்க சூழலை அமைத்தல், there are just a few more to add before your build environment is complete. Run this commmand to add them:

sudo apt install bc bison build-essential \
ca-certificates cpio curl flex git kmod libssl-dev libtinfo5 python2 \
sudo unzip wget xz-utils img2simg jq

If you use a RPM based distro such as Mageia, you run:

sudo urpmi gcc make glibc-devel bc bison \
rootcerts cpio curl flex git kmod libopenssl-devel libncurses5 python3 \
unzip wget xz android-tools jq

Note

சில பழைய கர்னல்களை உருவாக்க பைதான் 2 தேவைப்படலாம். உங்கள் வழங்கல் பைதான் 2 ஐ நிறுத்தியிருந்தால், நீங்கள் அதை கைமுறையாக நிறுவ வேண்டும்.

சாதன மூலத்தை அமைத்து கட்டமைத்தல்

சாதன மூலத்தை உருவாக்குதல்

ஏற்கனவே உள்ள சாதனக் களஞ்சியத்தை https://gitlab.com/ubports/porting இலிருந்து நகலி செய்யவும். ஒரே மாதிரியான SoC/Android பதிப்பைக் கொண்ட சாதனத்தை அடிப்படையாகத் தேர்வுசெய்யவும்.

கர்னல் களஞ்சியத்தை அல்ல, சாதனக் களஞ்சியத்தைப் பெறுவதை உறுதிசெய்யவும் (அடுத்த கட்டத்தில் அதைப் பெறுவீர்கள்). எடுத்துக்காட்டாக, ஃபேர்ஃபோன் 3க்கு, களஞ்சியங்கள் fairphone-fp3 மற்றும் android_kernel_fairphone_sdm632. எனப்படும். முதலில் நீங்கள் விரும்பும் ஒன்று.

கருவியை உருவாக்கும் செயல்முறையின் போது பயன்படுத்தப்படும் உள்ளமைவைக் கொண்டுள்ளது (கர்னல், பூட், டிடிபி/டிடிபிஓ தேவைப்பட்டால் + பின்னர் போர்ட்டிங் நிலைகளில் மீட்பு). உங்கள் சொந்த கருவியை வடிவமைக்க, வழிகாட்டியை மேலும் பின்பற்றவும்.

சாதன கர்னல் மூலக் குறியீட்டைப் பெறுதல்

சரிபார்க்க வேண்டிய முதல் சேதி என்னவென்றால், உங்கள் கருவியில் உத்தியோகபூர்வ அல்லது அதிகாரப்பூர்வமற்ற பரம்பரை துறைமுகம் இருந்தால், போர்ட்டர் ஏற்கனவே சாதன விற்பனையாளர் கர்னல் மூலங்களுக்குத் தேவையான பிட்களை தூய்மை செய்திருக்கலாம் அல்லது மரத்திற்கு வெளியே கர்னல் தொகுதிகளை மீண்டும் கர்னல் மரத்தில் இணைத்திருக்கலாம், இது எங்களுக்கு வாழ்க்கையை எளிதாக்குகிறது.

இல்லையென்றால், சாதன உற்பத்தியாளர் கர்னல் மூலத்தை வழங்குகிறாரா என்று சரிபார்க்கவும்: ஆசச், லெனோவா, சாம்சங், ZTE வழக்கமாக கர்னல் மூலக் குறியீடு டார்பால்சை தங்கள் இணையதளத்தில் வழங்குகின்றன. மோட்டோரோலா, ரியல்ம், ஒன்பிளச், சியோமி வழக்கமாக கர்னல் மூலத்தை தங்கள் அதிகாரப்பூர்வ அறிவிலிமையம் கணக்கில் பதிவேற்றுகின்றன.

நீங்கள் கர்னல் மூலத்தை வாங்கிய பிறகு, உபுண்டு தொடுதலுக்கான மாற்றங்கள் மற்றும் உறுதிப்பாட்டை உருவாக்குவதற்கு வேறு எங்காவது பதிவேற்ற வேண்டும். அறிவிலிஆய்வு விரும்பப்படுகிறது, ஏனெனில் நீங்கள் துறைமுகத்தை உபோர்ட்ச் ஆர்கில் இழுக்கும்போது, அதை அங்கிருந்து எளிதாக நகலெடுக்க முடியும்.

நீங்கள் இப்போது இரண்டு களஞ்சியங்களுடன் பணிபுரிய வேண்டும்: சாதனத் தகவலை வைத்திருக்கும் நகலி செய்யப்பட்ட சாதன ரெப்போ மற்றும் உங்கள் defconfig ஐ வைத்திருக்கும் கர்னல் ரெப்போ (கீழே காண்க).

உங்கள் சரியான கர்னல் கட்டமைப்பைக் கண்டறிதல்

உங்கள் சரியான கர்னல் கட்டமைப்பைக் கண்டுபிடிக்க இரண்டு வழிகள் உள்ளன, கீழே சிலவற்றை பெயரிடுகின்றன: 1. /Proc/config.gz இலிருந்து கருவியில் உங்கள் உள்ளமைவைப் பெறுதல். கர்னல் மூலத்தில் உங்கள் டெஃப்கான்ஃபிக் பெறுதல்

கருவியிலிருந்து உங்கள் உள்ளமைவைப் பெறுதல்

கருவியில் உள்ளமைவு /proc/config.gz என இருந்தால், கருவியிலிருந்து உங்கள் தற்போதைய கர்னல் கட்டமைப்பை இழுக்க முடியும். இந்த கட்டமைப்பை இழுக்க, உங்கள் கருவியிலிருந்து /proc/config.gz கோப்பை உங்கள் கணினிக்கு நகலெடுக்கவும். பின்னர், அதன் வெளியீட்டைப் பெற கோப்பில் Zcat ஐ இயக்கவும். இதை உங்கள் கர்னல் மூலத்தில் .கான்ஃபிக் என சேமிக்கவும். இதற்குப் பிறகு, ARCH = <உங்கள் கருவியின் கட்டமைப்பு> SavedefConfig ஐ இயக்கவும், இது உங்கள் முழுமையான கட்டமைப்பை ஒரு DEFCONFIG ஆக மாற்றும். DefconfigARCH/<உங்கள் கருவியின் கட்டமைப்பு>/configs/<உங்கள் கருவியின் குறியீட்டு பெயர்_டெஃப்கான்ஃபிக் க்கு நகலெடுக்கவும்.

உங்கள் உள்ளமைவை இணைக்க வழிகாட்டியுடன் தொடரவும்.

கர்னல் மூலத்தில் உங்கள் டெஃப்கான்ஃபிக் பெறுதல்

கர்னல் மூலத்திலிருந்து உங்கள் டெஃப்கான்ஃபிக் கண்டுபிடிக்க, நீங்கள் அதை ஆர்ச்/<உங்கள் கருவியின் கட்டமைப்பு/உள்ளமைவுகள் கோப்பகத்தில் தேட வேண்டும். <உங்கள் கருவியின் குறியீட்டு பெயர்>_defconfig அல்லது K61V64_DEBUG_DEFCONFIG போன்ற வித்தியாசமான ஒன்று போன்ற பல வழிகளில் இந்த டெஃப்கான்ஃபிக் பெயரிடப்படலாம். ஒஇஎம் இலிருந்து உங்கள் கர்னல் மூலத்தைப் பெற்றால், சில நேரங்களில் அதில் build.sh ச்கிரிப்ட் அடங்கும், இது டெஃப்கான்ஃபிக் தேவைப்படும். இல்லையெனில், உங்கள் கர்னல் மூலத்தை பரம்பரை போன்ற எங்கோ இருந்து பெற்றால், அவற்றின் சாதன மரத்தின் குறிப்பு டெஃப்கான்ஃபிக் கூட.

உங்கள் டெஃப்கான்ஃபிக் கண்டுபிடித்த பிறகு, அதை இணைக்க வழிகாட்டியுடன் தொடரவும்.

உங்கள் டெஃப்கான்ஃபிகில் குறைந்தபட்ச திட்டுகளைப் பயன்படுத்துதல்

உபுண்டு தொடுதலை வெற்றிகரமாக துவக்க, OS க்குத் தேவையான சில உள்ளமைவுகளை நாங்கள் இயக்க வேண்டும். உங்கள் கர்னல் கோப்பகத்தில் உலாவுவதன் மூலம் தொடங்கவும், வளைவு/<உங்கள் கருவியின் கட்டமைப்பு>/உள்ளமைவுகள், அங்கு நீங்கள் halium.config என்ற புதிய கோப்பைச் சேர்க்க வேண்டும். இந்த கோப்பில், பின்வரும் உள்ளடக்கத்தைச் சேர்க்கவும்:

Config_devtmpfs = ஒய்
Config_fhandle = ஒய்
Config_sysvipc = ஒய்
Config_ipc_ns = ஒய்
Config_net_ns = ஒய்
Config_pid_ns = ஒய்
Config_user_ns = ஒய்
Config_uts_ns = ஒய்
Config_vt = ஒய்

இதற்குப் பிறகு, இந்த கோப்பைச் சேமித்து மூடு. நீங்கள் விரும்பினால் அதை உங்கள் கர்னல் ரெப்போவில் செய்யுங்கள், ஏனெனில் இந்த கட்டமைப்பு பெயர் கருவியின்ஃபோவில் சேர்க்கப்படும்.

இந்த கட்டத்தில் நீங்கள் கர்னலுக்கான ஆரம்ப அமைப்பை அறிவிலிடத்தட்ட முடித்துவிட்டீர்கள், DeviceInfo` கட்டமைத்தல் மற்றும் கட்டமைப்பிற்கு செல்லுங்கள்.

நீங்கள் OS ஐ வெற்றிகரமாக துவக்கிய பிறகு, நீங்கள் பின்னர் கட்டங்களில் டெஃப்கான்ஃபிக் முழுவதையும் ஒட்டிக்கொள்ளலாம்.

குறிப்பு: <codename>_defconfig என்பதற்குப் பதிலாக halium.config என்ற தனிக் கோப்பை ஏன் திருத்துகிறோம் என்று நீங்கள் குழப்பமடையலாம். இந்தக் கோப்புகள் சாதனத் தகவலில் ஒன்றாகத் தேர்ந்தெடுக்கப்பட்டு, அவற்றை ஒன்றாக இணைக்கும். இந்த வழியில், மாற்றங்களை சுத்தமாகவும் படிக்கக்கூடியதாகவும் வைத்திருக்கிறோம்.

உங்கள் கருவியில் நிரப்புதல்

  • ரெட்மி 9 சி அல்லது ரெட்மி குறிப்பு 10 கள் போன்ற முழு சாதன பெயர். தேவையானபடி மாற்றவும்.

deviceinfo_name="Redmi 9C"

  • கருவியின் உற்பத்தியாளரின் பெயர். தேவைக்கேற்ப மாற்றவும்.

சாதனத் செய்தி உற்பத்தியாளர்="Xiaomi"

  • தொலைபேசியின் குறியீட்டு பெயர். இதைப் போன்ற கூகிள் மூலம் இதைப் பெறலாம்: "<சாதன பெயர்> குறியீட்டு பெயர்". கருவியின் பெயரை உங்கள் தொலைபேசியின் முழு பெயருடன் மாற்றவும். கீழே உள்ள குறியீட்டைப் பெயரை உங்கள் சொந்தத்துடன் மாற்றவும்.

deviceinfo_codename="angelica"

  • உங்கள் கர்னலின் கட்டமைப்பு. 2015 க்குப் பிறகு வெளியிடப்பட்ட பெரும்பாலான கருவிளில் ARM64 சிபியு உள்ளது, ஆனால் இடையில் சில விந்தைகள் இன்னும் ARMHF ஆக இருக்கலாம். ARM64 கருவிளுக்கு, கட்டமைப்பை "AARCH64" க்கு அமைக்கவும். ARMHF கருவிளுக்கு, கட்டமைப்பை "ARMV7" க்கு அமைக்கவும்.

deviceinfo_arch="aarch64"

  • இது உங்கள் கர்னல் அமைந்துள்ள அறிவிலி ரெப்போவை வரையறுக்கிறது. நீங்கள் பிரிவு 1 ஐ பின்பற்றினால், இந்த இணைப்பை நீங்கள் ஏற்கனவே வைத்திருக்க வேண்டும், மீண்டும் அதன் வழியாக செல்லவில்லை. கீழே உள்ள இணைப்பை உங்கள் சொந்தத்துடன் மாற்றவும்.

சாதனத் தகவல்_கர்னல்_மூலம்="https://github.com/muhammad23012009/android_kernel_xiaomi_dandelion"

  • கர்னலின் கிளை அடுத்து வருகிறது. கிதுபில் உள்ள குறியீடு தாவலின் கீழ் அல்லது அறிவிலிஆய்வுபில் மேல் இடது பக்கத்தில் உள்ள தாவலின் கீழ் உள்ள தாவலைப் பார்ப்பதன் மூலம் இதை எளிதாகப் பெறலாம். தேவையானபடி மாற்றவும்.

deviceinfo_kernel_source_branch="halium10-new"

  • கர்னல் தொகுப்பு செயல்முறையின் ஒரு முக்கிய பகுதியாகும். உங்கள் கர்னல் மூலத்தில் இந்த டெஃப்கான்ஃபிக்கை நீங்கள் காணலாம், இதற்கான பாதை "வளைவு/<உங்கள் கட்டிடக்கலை>/உள்ளமைவுகள்". டெஃப்கான்ஃபிக் பெயர் பெரும்பாலும் "<உங்கள் குறியீட்டு பெயர்>_defconfig" போல கட்டமைக்கப்பட்டுள்ளது. உங்கள் டெஃப்கான்ஃபிக் கண்டுபிடித்த பிறகு, தேவையானதை மாற்றவும். மேலே உள்ள கர்னல் கட்டமைப்பு திட்டுகளைச் சேர்ப்பதன் காரணமாக, இந்தத் துறையில் ஆலியம்.கான்ஃபிக் ஐச் சேர்க்க வேண்டும். (நீங்கள் இன்னும் கண்டுபிடிக்க முடியாவிட்டால், "உங்கள் டெஃப்கான்ஃபிக் கண்டுபிடிப்பு" என்ற பகுதியைப் பார்க்கவும்)

deviceinfo_kernel_defconfig="angelica_defconfig halium.config"

  • கர்னல் சிஎம்ட்லைன் கர்னல் துவக்கத் தேவையான முக்கிய விசயங்களில் ஒன்றாகும். இது சிறப்பு அளவுருக்களைக் கொண்டுள்ளது, இது கர்னலை எந்த அம்சங்கள்/விசயங்களை இயக்க வேண்டும், அவை முடக்கப்பட வேண்டும் என்பதை தீர்மானிக்க அனுமதிக்கின்றன. உபுண்டு டச் ரூட்ஃப்ச் துவக்க வேண்டிய சில முக்கிய CMDLines ஐ நம்பியுள்ளது, குறிப்பாக "கன்சோல் = TTY0". இதை உங்கள் சாதனத்துடன் மாற்றியமைக்க, உங்கள் துவக்க படத்தைத் திறக்க முயற்சிக்கவும் (பிரிவு 8.3) மற்றும் அங்கிருந்து CMDLINE ஐ நகலெடுக்க முயற்சிக்கவும் அல்லது கிடைத்தால் பரம்பரை சாதன மரத்தின் உதவியை எடுத்துக் கொள்ளுங்கள். "கன்சோல் = tty0" என்பது CMDline க்கு தேவை, எதுவாக இருந்தாலும் அகற்றப்படக்கூடாது. மீதமுள்ள விசயங்களை அகற்றலாம், மேலும் இதை உங்கள் சாதனத்துடன் சரிசெய்யலாம். கன்சோல் = tty0 என்பது ரூட்எஃப்எச் சரியாக துவக்க வேண்டிய தேவை. உங்கள் கணினி பகிர்விலிருந்து உங்கள் ரூட்ஃப்சை துவக்க விரும்பினால் சிச்டம்ச்பார்ட் சேர்க்கப்படுகிறது. இது உங்கள் கணினி பகிர்வை சுட்டிக்காட்ட வேண்டும்.

சாதனத்தகவல்_கர்னல்_கட்டளைவரி="console=tty0 bootopt=64S3,32N2,64N2 systempart=/dev/mapper/system"

  • உங்கள் கர்னலை கிளாங் மூலம் தொகுக்க விரும்பினால் இதை உங்கள் கருவியில் சேர்க்கவும். ஆண்ட்ராய்டு 10 உடன் மற்றும் அதற்குப் பிறகு வெளியிடப்பட்ட பெரும்பாலான கருவிள் தங்கள் கர்னல்களை கிளாங்குடன் உருவாக்குகின்றன. நீங்கள் கிளாங்குடன் கட்ட விரும்பவில்லை என்றால், இந்த உள்ளீட்டை முழுவதுமாக தவிர்க்கவும்.

deviceinfo_kernel_clang_compile="true"

  • எல்.எல்.டி.யை உங்கள் இணைப்பாளராகப் பயன்படுத்த விரும்பினால் மட்டுமே தேவை மற்றும் எல்.டி.ஓவை இயக்கவும். பெரும்பாலான பழைய கர்னல்களுக்கு எல்.டி.ஓ உடைந்துவிட்டது. நீங்கள் அதைப் பயன்படுத்த விரும்பினால், இந்த உள்ளீட்டை உங்கள் கருவியில் சேர்க்கவும், இல்லையெனில் அதைத் தவிர்க்கவும்.

deviceinfo_kernel_use_lld="true"

  • இந்தக் கட்டமைப்பு உங்கள் கர்னலை எல்எல்விஎம் மற்றும் எல்டிஓ உடன் தொகுக்க உங்களை அனுமதிக்கிறது, அது அதை ஆதரிக்கிறது. clang மற்றும் ld.lld ஆகியவற்றைக் குறிப்பிடுவதற்கான தூய்மையான வழி இது. பொதுவாக சிகேஐ கருவிளால் தேவைப்படுகிறது. (இயக்கப்பட்டவுடன், deviceinfo_kernel_use_lld இதனைக் குறிப்பிடதேவையில்லை)

deviceinfo_kernel_llvm_compile="true"

  • உங்கள் DTB/DTBO ஐ தொகுக்க 'DTC_EXT' ஐ இயக்க இதைப் பயன்படுத்தவும். நீங்கள் என்ன செய்கிறீர்கள் என்று உங்களுக்குத் தெரிந்தால் மட்டுமே பயன்படுத்தவும். இயல்புநிலை கம்பைலர் பெரும்பாலான நேரங்களில் வேலை செய்கிறது.

deviceinfo_kernel_use_dtc_ext="true"

  • கர்னல் தொகுக்கப்பட்ட பிறகு கர்னல் பட பெயரைக் குறிப்பிட இந்த விருப்பத்தைப் பயன்படுத்தவும். பெரும்பாலும் இந்த விருப்பம் தேவையில்லை, எனவே அதை உங்கள் கருவியிலிருந்து விடலாம். உங்களுக்கு இது தேவைப்பட்டால், படத்தின் பெயரை தேவையான அளவு சரிசெய்யவும்.

deviceinfo_kernel_image_name="Image.gz"

  • உங்கள் ராம்டிச்க் சுருக்க வழிமுறையைக் குறிப்பிட, கீழே உள்ள விருப்பத்தைப் பயன்படுத்தவும். இது இயல்பாக GZIP க்கு அமைக்கப்பட்டுள்ளது. சி.கே.ஐ கருவிளுக்கு பெரும்பாலும் பயனுள்ளதாக இருக்கும்.

deviceinfo_ramdisk_compression="lz4"

  • உங்கள் ஆலியம் பதிப்பைக் குறிப்பிட இந்த விருப்பத்தைச் சேர்க்கவும். இந்த நேரத்தில் ஆலியம் 13 வரை ஆதரிக்கப்படுகிறது.

deviceinfo_halium_version="11"

  • இந்த விருப்பம் துவக்க பட தலைப்பு பதிப்பை வரையறுக்கிறது. இந்த உரிமையைப் பெறுவது முதன்மை, இல்லையெனில் உங்கள் கருவி துவக்கக்கூடாது. 8 (OREO) க்குக் கீழே உள்ள ஆண்ட்ராய்டு பதிப்புகளுடன் தொடங்கும் கருவிள் தலைப்பு 0, ஆண்ட்ராய்டு 9 (பை) பதிப்பு 1, ஆண்ட்ராய்டு 10 ஐப் பயன்படுத்துகிறது பதிப்பு 2, மற்றும் சி.கே.ஐ கருவிள் பதிப்பு 3/4 ஐப் பயன்படுத்துகின்றன (அவை வெளியான ஆண்ட்ராய்டு பதிப்பைப் பொறுத்து, சி.கே.ஐ உடன் ஆண்ட்ராய்டு 12 பதிப்பு 4 ஐப் பயன்படுத்துகிறது).

deviceinfo_bootimg_header_version="2"

  • நீங்கள் ஆதாரமாகக் கொண்ட முன்பே கட்டப்பட்ட டி.டி.பியை வரையறுக்க இந்த விருப்பத்தைப் பயன்படுத்தவும். நீங்கள் கருவியின் கோப்பைத் திருத்தும் உங்கள் கோப்பகத்துடன் பாதை தொடர்புடையது. உங்களிடம் உள்ளதைப் பொறுத்து டிடிபி பெயரைத் திருத்தவும். உங்கள் தலைப்பு பதிப்பு 3 (சி.கே.ஐ கருவி) ஐ விட அதிகமாகவோ அல்லது சமமாகவோ இருந்தால், இதில் உங்கள் விற்பனையாளர்_பூட்டில் டிடிபி இருக்கும்.

Deviceinfo_Bootimg_Prebuilt_dtb="MT6765.DTB"```````

  • இந்த விருப்பம் உங்கள் கர்னலால் உருவாக்கப்பட்ட டி.டி.பியைப் பயன்படுத்துகிறது, பல டி.டி.பிகளை இங்கே குறிப்பிடலாம்: "மீடியாடெக்/எம்.டி 6765. டி.டி.பி மீடியாடெக்/ஏஞ்சலிகா. உங்கள் தலைப்பு பதிப்பு 3 (சி.கே.ஐ கருவி) ஐ விட அதிகமாகவோ அல்லது அதற்கு சமமாகவோ இருந்தால், கருவிஇன்ஃபோ_ஆர்ச் (AARCH64 என்பது கர்னல் ச்பீக்கில் ARM64 ஆகும்), இது உங்கள் விற்பனையாளர்_பூட்டில் DTB ஐ உள்ளடக்கும்.

deviceinfo_dtb="mediatek/mt6765.dtb"

  • இதைத் தேர்ந்தெடுப்பது துவக்க படத்தில் நீங்கள் தேர்ந்தெடுத்த டிடி படத்தை உருவாக்கும். நீங்கள் கருவியை திருத்தும் உங்கள் தற்போதைய கோப்பகத்துடன் பாதை தொடர்புடையது. (குறிப்பு: இது சாம்சங்/எக்சினோச் கருவிளில் மட்டுமே தேவைப்படுகிறது.)

deviceinfo_bootimg_prebuilt_dt="exynos8890-dt.img"

  • உங்கள் OTA களில் முன்பே கட்டப்பட்ட DTBO ஐ அனுப்பவும், இந்த DTBO உடன் ஏற்கனவே தொகுக்கப்படாவிட்டால் உங்கள் மீட்டெடுப்பை உருவாக்கவும் இதைப் பயன்படுத்தவும். உங்கள் உருவாக்க கோப்பகத்துடன் தொடர்புடைய பாதை மீண்டும் உள்ளது. விரும்பியபடி திருத்து.

deviceinfo_prebuilt_dtbo="angelica-dtbo.img"

  • நீங்கள் ஒரு OTA இல் DTBO படத்தை அனுப்ப விரும்பவில்லை என்றால், இதைத் தேர்ந்தெடுப்பது OTA தொகுப்பிலிருந்து DTBO ஐ அகற்றும், ஆனால் டி.டி.பி.ஓ ஏற்கனவே தொகுக்கப்படாவிட்டால், மீட்பு இன்னும் இந்த டிடிபிஓவுடன் தொகுக்கப்படும்.

deviceinfo_skip_dtbo_partition="true"

  • கர்னலில் இருந்து உங்கள் டிடிபிஓவை தொகுக்க விரும்பினால், கர்னல் அவுட் கோப்பகத்தில் தொகுக்கப்பட்ட டிடிபிஓ கோப்புகளைத் தேர்ந்தெடுக்க இந்த விருப்பத்தைப் பயன்படுத்தவும். இந்த விருப்பம் தேடும் பாதை kernel_obj/arch/<கட்டிடக்கலை>/துவக்க/DTS ஆகும். எடுத்துக்காட்டில் காட்டப்பட்டுள்ளதைப் போல பல டி.டி.பி.ஓ.க்களை வழங்க முடியும். உங்கள் தேவைகளுக்கு ஏற்ப பெயர்களை மாற்றியமைக்கவும். SKIP_DTBO_PARTITION விருப்பம் தேர்ந்தெடுக்கப்படாவிட்டால், இதன் விளைவாக வரும் DTBO படம் OTA இல் அனுப்பப்படும், மேலும் எந்தவொரு சந்தர்ப்பத்திலும் இந்த DTBO உடன் மீட்கப்படும். இந்த விருப்பம் முன்கூட்டியே கட்டப்பட்ட டி.டி.பி.ஓ விருப்பத்துடன் பொருந்தாது.

deviceinfo_dtbo="mediatek/galahad.dtbo mediatek/lancelot.dtbo"

  • இதைப் பயன்படுத்துவது உங்கள் துவக்க படத்தில் உள்ள போர்டு பெயரை வரையறுக்கும், இது சில துவக்க ஏற்றிகள் படத்தை வெற்றிகரமாக துவக்க வேண்டும். உங்கள் பங்கு துவக்க படத்திற்கு இந்த கொடி அதன் தலைப்பில் அமைக்கப்பட்டிருந்தால் மட்டுமே இந்த விருப்பத்தைப் பயன்படுத்தவும். தேவைப்பட்டால் நீங்கள் விரும்பியபடி திருத்தவும்.

deviceinfo_bootimg_board="EXYNOS4412"

  • உங்கள் துவக்க படத்தை ஒரு குறிப்பிட்ட அளவிற்கு பேட் செய்ய இந்த விருப்பத்தைப் பயன்படுத்தவும். நீங்கள் ஒரு VBMETA படத்தை சேர்க்க விரும்பினால் அல்லது உங்கள் படத்தில் ஒரு ஆச் அடிக்குறிப்பை சேர்க்க விரும்பினால் தேவை. உங்கள் பங்கு துவக்க பட அளவிற்கு அளவை மாற்றவும். (குறிப்பு: அளவு பைட்டுகளில் அறிவிக்கப்படுகிறது).

deviceinfo_bootimg_partition_size="67713847"

  • அழகான தன்வய விளக்கமளிக்கும். உங்கள் கருவியிற்கு ஒரு VBMETA படம் தேவைப்பட்டால் அதை உண்மையாக அமைக்கவும் (பிரத்யேக VBMETA பகிர்வு கொண்ட பெரும்பாலான கருவிளுக்கு இல்லை.)

deviceinfo_bootimg_append_vbmeta="true"

  • Ubports மீட்டெடுப்பை துவக்குவதற்கு நீங்கள் ஒரு மீட்டெடுப்பை உருவாக்க விரும்பினால் இந்த விருப்பத்தைப் பயன்படுத்தவும் (நீங்கள் துறைமுகத்தை இறுதி செய்யும்போது மட்டுமே தேவை). பெரும்பாலான சந்தர்ப்பங்களில், உங்கள் துறைமுகத்தின் தொடக்கத்தில் இதைத் தவிர்த்து, அதை நிறுவியில் பெற முயற்சிக்கும்போது அதைச் சேர்க்க விரும்புவீர்கள். உண்மையான அமைப்பை மீட்டெடுப்பதை உருவாக்குகிறது மற்றும் பொய்யை அமைப்பது அல்லது நுழைவை முழுவதுமாக தவிர்ப்பது அது கட்டமைக்கப்படாமல் இருக்கும்.

deviceinfo_has_recovery_partition="true"

  • உங்கள் மீட்பு படத்தை ஒரு குறிப்பிட்ட அளவிற்கு இணைக்க இதைப் பயன்படுத்தவும். உங்கள் படத்தில் ஒரு ஆச் அடிக்குறிப்பை சேர்க்க விரும்பினால் ஒரு தேவை. உங்கள் பங்கு மீட்பு படத்திலிருந்து அளவை மாற்றவும். (நீங்கள் மீட்டெடுப்பதை உருவாக்கினால் மட்டுமே வேலை செய்யும்!)

deviceinfo_recovery_partition_size="67713847"

  • துவக்கப் படங்கள் அதிகாரப்பூர்வமா இல்லையா என்பதைச் சரிபார்க்க அவர்களின் துவக்கப் படங்களில் "சீயண்ட் டிராய்டு" அடிக்குறிப்பை சரிபார்க்கும் சில பழைய/புதிய சாம்சங்கிற்கு மட்டுமே இது தேவைப்படுகிறது. துவக்க ஏற்றி அதைக் கண்டுபிடிக்கவில்லை என்றால், அது திரையின் மேற்புறத்தில் அசிங்கமான தோற்றமுடைய சிவப்பு கோட்டில் விளைகிறது. இதை உங்கள் கருவியில் சேர்ப்பது இந்த சரத்தை துவக்க படத்துடன் சேர்க்கும். (சாக்கிரதை! இதை மற்ற கருவிளில் பயன்படுத்துவது படத்தை துவக்கக்கூடாது!)

deviceinfo_bootimg_tailtype="SEAndroid"

  • தொகுதிகள் தொகுக்கப்பட்டு ரூட்ஃப்சில் நிறுவப்பட வேண்டுமா இல்லையா என்பதை இந்த கட்டமைப்பு தீர்மானிக்கிறது. இயல்புநிலை நடத்தையில் இந்த கட்டமைப்பு முடிவுகளைத் தவிர்ப்பது, அதாவது, தொகுதிகள் தொகுக்கப்பட்டு ரூட்ஃப்சில் நிறுவப்படுகின்றன. இந்த விருப்பத்தை உங்கள் கருவியில் சேர்ப்பது மற்றும் அதை உண்மைக்கு அமைப்பது (காட்டப்பட்டுள்ளதைப் போல) தொகுதிகள் தொகுப்பை முடக்கும். நீங்கள் மேம்பட்ட ஒன்றைச் செய்தால் மட்டுமே உண்மையில் தேவை.

deviceinfo_kernel_disable_modules="true"

  • இந்த விருப்பம் அனைத்து மேலடுக்கு கோப்புகளையும் (மேலடுக்கில்/கோப்பகத்தில்)/கணினி/OPT/HALIUM-OVERLAY இல் நிறுவுகிறது, எனவே அவற்றை முழுமையாக மாற்றுவதற்கு பதிலாக ROOTFS இல் உள்ள கோப்புகளில் கோப்புகளை மேலெழுதும். இது 20.04 மற்றும் அதற்குப் பிறகு தேவை, ஆனால் 16.04 க்கு பொருந்தாது.

deviceinfo_use_overlaystore="true"

  • இந்த விருப்பம் பெரும்பாலும் சில குவால்காம் கருவிளில் பயன்படுத்தப்படுகிறது. இதை உங்கள் கருவியில் சேர்ப்பது உங்கள் டிடிபிஓவை உங்கள் டிடிபிகளுடன் இணைக்கும். உங்களுக்கு இது தேவை என்று உறுதியாக இருந்தால் மட்டுமே பயன்படுத்தவும்.

deviceinfo_kernel_apply_overlay="true"

  • உங்கள் ரூட்எஃப்எச் கணினி படத்திற்கு ஒளிரும் ஒரு நிலையான அளவைக் குறிப்பிட வேண்டியிருக்கும் போது இந்த உள்ளமைவை உங்கள் கருவியில் சேர்க்கவும். விருப்பம் அமைக்கப்படாதபோது இயல்புநிலை 3000 மீ. உங்களுக்கு தேவைப்பட்டால் மட்டுமே பயன்படுத்தவும்.

deviceinfo_system_partition_size="4000M"

  • இந்த கட்டமைப்பு யுஎஃப்எச் சேமிப்பகத்துடன் தொடங்கப்பட்ட புதிய கருவிளுக்கு மட்டுமே பொருத்தமானது

deviceinfo_rootfs_image_sector_size="4096"

  • அடுத்தது ஃபிளாச் ஆஃப்செட்டுகள். நீங்கள் ஒரு சி.கே.ஐ கருவியிற்காக மட்டுமே boot.img ஐ உருவாக்கினால் இவற்றை புறக்கணிக்கலாம், ஆனால் நீங்கள் vendor_boot.img ஐ உருவாக்க விரும்பினால் தேவைப்படும். உங்கள் தலைப்பு பதிப்பு 3 ஐ விட அதிகமாகவோ அல்லது சமமாகவோ இருந்தால் இந்த ஆஃப்செட்டுகள் தானாகவே விற்பனையாளர்_பூட்டுக்கு பொருந்தும். அவற்றைப் பிரித்தெடுப்பதற்கான வழிகாட்டி பின்வருமாறு:

Stock boot.img/vendor_boot.img இலிருந்து மதிப்புகளைப் பிரித்தெடுக்கிறது

For any port to boot, some values must be pulled from the stock boot.img. First and foremost, try to get your stock firmware. Some manufacturers like Samsung like to encrypt their firmwares, but still some tools are available to get them. Others like Xiaomi provide the firmware, but you need to use a search engine to find it. Google on the other hand provides easily accessible full firmware binaries. Long story short, you need to at least find your stock firmware, and then get the boot.img. Once you have the boot.img acquired, follow the following steps:

  • ஒரு கோப்பகத்தை உருவாக்கவும், அதில் நீங்கள் திறக்கப்படாத எல்லா தரவையும் சேமிப்பீர்கள். இது எங்கும் இருக்கலாம், மேலும் எந்த பெயரையும் கொண்டிருக்கலாம். இப்போதைக்கு, நாங்கள் அதை டெம்ப் என்று அழைப்போம்.

  • கோப்பகத்தை உருவாக்க "Mkdir ~/temp" ஐ இயக்கவும், அதற்கு செல்ல "குறுவட்டு ~/தற்காலிக" இயக்கவும்.

  • இப்போது துவக்க படத்தைத் திறக்க அவ்வாறு செய்யப் பல பயன்பாடுகள் உள்ளன. அவற்றில் ஒன்று ஆண்ட்ராய்டு ஆல் வழங்கப்பட்ட பைதான் ச்கிரிப்ட் ஆகும். இப்போதைக்கு இதைப் பயன்படுத்துவோம். உங்கள் தற்போதைய வேலை கோப்பகத்தில் அதைப் பதிவிறக்க "wget https://raw.githubusercontent.com/LineageOS/android_system_tools_mkbootimg/lineage-19.1/unpack_bootimg.py" இதை இயக்கு. இது unpack_bootimg.py ஸ்கிரிப்டைப் பதிவிறக்கும், இதை நீங்கள் இப்போது உங்கள் கர்னல் ஆஃப்செட்களையும் பிற மதிப்புகளையும் ஒரே மாதிரியாக இழுக்கப் பயன்படுத்துவீர்கள்

  • உங்கள் boot.img ஐ தற்காலிக கோப்பகத்தில் கொண்டு வாருங்கள்.

  • இப்போது ச்கிரிப்டை இயக்கவும். வழக்கமான தொடரியல் "பைதான் 3 unpack_bootimg.py --boot_img <boot.img அல்லது vendor_boot.img> --out out" இது துவக்க படத்தைத் திறக்கும், வெளியீட்டு கோப்புகளை அவுட் கோப்பகத்தில் சேமிக்கும், மேலும் இது திரையில் ஆஃப்செட்களை அச்சிடும்.

Boot.img க்கான மாதிரி வெளியீடு இப்படி இருக்கும்:

துவக்க மேசிக்: Android!

கர்னல்_அளவு: 11399060

கர்னல் சுமை முகவரி: 0x40080000

ராம்டிச்க் அளவு: 6576255

ராம்டிச்க் சுமை முகவரி: 0x51b00000

இரண்டாவது துவக்க ஏற்றி அளவு: 0

இரண்டாவது துவக்க ஏற்றி சுமை முகவரி: 0xc0ff0000

கர்னல் குறிச்சொற்கள் சுமை முகவரி: 0x47880000

பக்க அளவு: 2048

OS பதிப்பு: 10.0.0

OS ஒட்டு நிலை: எதுவுமில்லை

துவக்க பட தலைப்பு பதிப்பு: 2

தயாரிப்பு பெயர்:

கட்டளை வரி ஆர்க்ச்: பூடோப் = 64S3,32N2,64N2 பில்ட்வாரியன்ட் = பயனர் சிச்டம் பார்ட் =/தேவ்/மேப்பர்/சிச்டம்: ரோ

கூடுதல் கட்டளை வரி ஆர்க்ச்:

மீட்பு DTBO அளவு: 0

மீட்பு DTBO ஆஃப்செட்: 0x0000000000000000

துவக்க தலைப்பு அளவு: 1660

டிடிபி அளவு: 216417

டிடிபி முகவரி: 0x0000000047880000

விற்பனையாளர்_பூட்.img க்கு, இப்படி இருக்கும்:

துவக்க மேசிக்: vndrboot

விற்பனையாளர் துவக்க பட தலைப்பு பதிப்பு: 4

பக்க அளவு: 0x00001000

கர்னல் சுமை முகவரி: 0x10008000

ராம்டிச்க் சுமை முகவரி: 0x10000000

விற்பனையாளர் ராம்டிச்க் மொத்த அளவு: 13685168

விற்பனையாளர் கட்டளை வரி ஆர்க்ச்: பூட்கான்ஃபிக் லூப்.மேக்ச்_பார்ட் = 7

கர்னல் குறிச்சொற்கள் சுமை முகவரி: 0x10000000

தயாரிப்பு பெயர்: SRPUK23A007

விற்பனையாளர் துவக்க பட தலைப்பு அளவு: 2128

டிடிபி அளவு: 231604

டிடிபி முகவரி: 0x0000000011f00000

விற்பனையாளர் ராம்டிச்க் அட்டவணை அளவு: 216

விற்பனையாளர் பூட்கான்ஃபிக் அளவு: 28

  • இது சுவாரச்யமானது.

    • "கர்னல் சுமை முகவரி" என்பது கர்னல் ஆஃப்செட். பெருங்குடலுக்குப் பிறகு மதிப்பு உங்களுக்குத் தேவை, எடுத்துக்காட்டாக, 0x40080000. இது உங்கள் விசயத்தில் வித்தியாசமாக இருக்கும்.

    • "ராம்டிச்க் சுமை முகவரி" உங்கள் ராம்டிச்க் ஆஃப்செட்டாக இருக்கும். அதற்கு அடுத்த மதிப்பை எடுத்துக் கொள்ளுங்கள். எடுத்துக்காட்டாக, 0x51B00000.

    • "இரண்டாவது துவக்க ஏற்றி சுமை முகவரி" பெரும்பாலும் இன்றைய தரங்களால் தேவையற்றது. ஆனால் உங்கள் துவக்க படம் இந்த மதிப்பைத் துப்பினால், அதை எடுத்துக்கொள்வதை உறுதிசெய்க. எடுத்துக்காட்டாக, 0xc0ff0000.

    • "கர்னல் குறிச்சொற்கள் சுமை முகவரி" ஒரு சிறப்பு. இது கர்னல் குறிச்சொற்கள் மற்றும் டி.டி.பி இரண்டிற்கும் பயன்படுத்தப்படுகிறது, ஆனால் சில சந்தர்ப்பங்களில் இந்த மதிப்புகள் வேறுபட்டிருக்கலாம். மதிப்பையும் எடுத்துக் கொள்ளுங்கள். எடுத்துக்காட்டாக, 0x47880000.

    • "டிடிபி முகவரி" சில நேரங்களில் "கர்னல் குறிச்சொற்கள் சுமை முகவரி" போன்றது. ஆனால் இது வேறுபட்டதாக இருந்தால், இதை நீங்கள் டிடிபிக்கு பயன்படுத்த வேண்டும் மற்றும் குறிச்சொற்களுக்கான குறிச்சொற்கள்.

    • பக்க அளவுகளுக்கு உங்கள் ஃபிளாச் சிப் எதைப் பயன்படுத்துகிறது என்பதை அறிய ராம்டிச்குக்கு "பக்க அளவு" தேவை. பெருங்குடலுக்குப் பிறகு மதிப்பு உங்களுக்குத் தேவை. உதாரணமாக, 2048.

    • "OS பதிப்பு" என்பது இந்த துவக்கத்தை எந்த ஆண்ட்ராய்டு பதிப்பைக் கொண்டுள்ளது என்பதை தீர்மானிக்கும் மதிப்பு. சில துவக்க ஏற்றிகள் இதைச் செயல்படுத்துகின்றன. உதாரணமாக, 10.0.

    • "ஓஎச் ஒட்டு லெவல்" இதேபோன்ற கதை. இந்த மதிப்பையும் நீங்கள் பெற விரும்புவீர்கள், எடுத்துக்காட்டாக, 2021-11.

    • "கட்டளை வரி ஆர்க்ச்" நேராக கருவியின் FO_KERNEL_CMDLINE க்குச் செல்லுங்கள். "கன்சோல் = TTY0" ஐ அங்கே வைத்திருப்பதை உறுதிசெய்க. இங்கே எடுத்துக்காட்டுகள் இல்லை :(

    • நீங்கள் விற்பனையாளர்_பூட்டை உருவாக்குகிறீர்கள் என்றால், இந்த கட்டளை உங்கள் வெளியீட்டு கோப்பகத்தில் பூட்கான்ஃபிக் கோப்பையும் வெளியிடும். இதை உங்கள் மூல மரத்தின் வேருக்கு நகர்த்தவும்.

    • இந்த குறிப்பிடப்பட்ட மதிப்புகள் தவிர, நீங்கள் எல்லாவற்றையும் தவிர்க்க விரும்புவீர்கள்.

இப்போது சொன்ன வழிகாட்டியின் கூற்றுப்படி, உங்கள் ஆஃப்செட்களை நிரப்பவும்:

  • "பக்க அளவு" இலிருந்து மதிப்பை இந்த கட்டமைப்பில் வைக்கவும்.

deviceinfo_flash_pagesize="2048"

  • அடிப்படை ஆஃப்செட் எப்போதும் 0x00000000 இருக்கும்.

deviceinfo_flash_offset_base="0x00000000"

  • இதை "கர்னல் சுமை முகவரி" இலிருந்து நிரப்பவும்.

deviceinfo_flash_offset_kernel="0x40080000"

  • இது "ராம்டிச்க் சுமை முகவரி" இலிருந்து அதன் மதிப்பைப் பெறுகிறது.

deviceinfo_flash_offset_ramdisk="0x51b00000"

  • மிசன் விமர்சனமல்ல என்றாலும், நீங்கள் அதன் மதிப்பைப் பெற்றால், அதை "இரண்டாவது துவக்க ஏற்றி சுமை முகவரி" இலிருந்து நிரப்பவும்.

deviceinfo_flash_offset_second="0xc0ff0000"

  • குறிச்சொற்கள் "கர்னல் குறிச்சொற்கள் சுமை முகவரி" இலிருந்து நிரப்பப்பட வேண்டும்.

deviceinfo_flash_offset_tags="0x47880000"

  • டிடிபி ஆஃப்செட் "டிடிபி சுமை முகவரி" இலிருந்து வருகிறது.

deviceinfo_flash_offset_dtb="0x47880000"

  • இது "OS பதிப்பு" இலிருந்து வருகிறது. சரியாக தேவையில்லை, ஆனால் சில ஒஇஎம் கள் அதை செயல்படுத்துகின்றன.

deviceinfo_bootimg_os_version="10.0"

  • "OS ஒட்டு நிலை" மதிப்பை இங்கே வைக்க விரும்புவீர்கள்.

deviceinfo_bootimg_os_patch_level="2021-11"

  • நீங்கள் ஒரு விற்பனையாளர்_பூட்டை உருவாக்குகிறீர்கள், நீங்கள் பூட்கான்ஃபிக் கோப்பை உங்கள் மரத்தின் ரூட்டுக்கு நகர்த்தியிருந்தால், பின்வருவனவற்றைச் சேர்க்கவும்:

deviceinfo_vendor_bootconfig_path="bootconfig"

அதைப் போலவே, நீங்கள் உங்கள் கருவியை சரியாக நிரப்பியுள்ளீர்கள், இப்போது துறைமுகத்துடன் செல்லலாம்!

கட்டியெழுப்புதல், நிறுவுதல் மற்றும் இயக்குதல்

உங்கள் கருவியை நீங்கள் முடித்து, தேவையான அனைத்து விசயங்களையும் நிரப்பிய பிறகு, அதன் நேரம் நீங்கள் முக்கிய பகுதிக்கு வருவீர்கள். இதற்காக இயங்கும்: ./build.sh -b வொர்க் டிர்

அது தேவையான அனைத்து கருவித்தொகுப்புகளையும் பின்னர் கர்னலையும் பதிவிறக்கம் செய்து, இறுதியாக எல்லாவற்றையும் உருவாக்க வேண்டும். இந்த செயல்முறை கர்னலை உருவாக்க 5 முதல் 50 நிமிடங்கள் ஆகலாம்.

உங்கள் கர்னல் கட்டமைக்கப்பட்ட பிறகு, அடுத்த கட்டத்தில் அதை நிறுவி துவக்கலாம்.