ماخذ سے میڈیا ٹیک Android اینڈروئیڈ کارنل کیسے بنائیں



مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں

بہت سے اینڈرائڈ صارفین اپنی مرضی کے مطابق دانیوں کو انسٹال کرنے سے لطف اندوز ہوتے ہیں ، جو کارکردگی اور بیٹری کی زندگی میں بہتری لانے کی پیش کش کرسکتے ہیں۔ لیکن اگر آپ اپنی پسند کا دانا نہیں ڈھونڈ سکتے ہیں ، یا آپ کے آلے کے لئے کوئی دستیاب نہیں ہے ، تو کبھی کبھی آپ کو خود ہی خود بنانا پڑتا ہے۔ اس گائیڈ میں اس بات پر توجہ دی جائے گی کہ میڈیٹیک آلات کے لئے ذریعہ سے دانا بنانے کا طریقہ۔



براہ کرم انتباہ کریں یہ ہدایت نامہ نیا بنانا نہیں ہے ، اس کا مقصد ایسے لوگوں کے لئے ہے جو Android ROMs کو اپنی مرضی کے مطابق بنانا ، لینکس ٹرمینلز میں کام کرنا ، اور ہم کیا کر رہے ہیں اس کے بارے میں مجموعی طور پر تھوڑا سا کام کرنے کا علم ہے۔



تقاضے:

  1. ایک لینکس آپریٹنگ سسٹم
  2. سی کے بارے میں کچھ بنیادی معلومات اور میکفائلز کے ساتھ کام کرنے کا طریقہ
  3. Android NDK

شروع کرنے کے لئے ، آپ کو لینکس کے لئے مندرجہ ذیل پیکجوں کو ڈاؤن لوڈ کرنے کی ضرورت ہوگی۔



  • ازگر
  • GNU Make
  • جے ڈی کے
  • جاؤ

sudo apt-get install git gnupg flex bison gperf build-ضروری زپ curl libc6-dev libncurses5-dev: i386 x11 پروٹو-کور-دیو libx11-dev: i386 libreadline6-dev: i386 libgl1-mesa-glx: i386 libgl1-mesa جی ++ - ملٹیبل مِنگ ڈبلیو ٹفروڈوس پائتھون-مارک ڈاون لیب ایکس ایم ایل 2-یوٹس ایکس اسٹالٹ پروک زلیب 1 جی-دیو: آئی 386 گٹ کور ایلزپ سی کیچے گینپگ فلیکس بیسن گیپرف بلڈ-ضروری زپ کرل curl zlib1g-dev zlib1g-dev: i386 lib32132bcz2 x11 پروٹو-کور-دیو libx11-dev: i386 libreadline6-dev: i386 lib32z-dev libgl1-mesa-glx: i386 libgl1-mesa-dev g ++ - multilib mingw32 tofrodos python-markdown libxml2-utils xsreadboc32 -gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev: i386 libreadline6: i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-devsbdsb سکبس سکسب اسکولیس 2۔ 8-دیو ازگر جی سی سی جی ++ سی پی پی جی سی سی-4.8 جی ++ - 4.8 && sudo ln -s / usr / lib / i386-linux-gnu / mesa / li bGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

اب وغیرہ / udev / قوانین.d / 51-android.rules پر جائیں:

جذبہ پر # ایڈب پروٹوکول (گٹھ جوڑ ایک)
سبسائسٹم == 'USB' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' 4e12 ″ ، MODE = '0600 ″ ، OWNER =' '
جذبہ پر # فاسٹ بوٹ پروٹوکول (گٹھ جوڑ ایک)
سبسکیم == 'usb' ، ATTR {idVendor} == '0bb4 ″ ، ATTR {idPr Prodct} ==' 0fff '، MODE =' 0600 ″ ، OWNER = ''
Crespo / crespo4g (Nexus S) پر # adb پروٹوکول
سبسکیم == 'USB' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' 4e22 ″ ، MODE = '0600 ″ ، OWNER =' '
Crespo / crespo4g (Nexus S) پر # فاسٹ بوٹ پروٹوکول
سبسکیم == 'USB' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' 4e20 ″ ، MODE = '0600 ″ ، OWNER =' '
اسٹنگری / ونگری پر # ایڈب پروٹوکول (زوم)
سبسائسٹم == 'USB' ، ATTR {idVendor} == '22b8 ″ ، ATTR {idPr Prodct} ==' 70a9 ″ ، MODE = '0600 ″ ، OWNER =' '
# فنگ بوٹ پروٹوکول اسٹیننگری / ونگری (زوم)
سبسکیم == 'usb' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' 708c '، MODE =' 0600 ″ ، OWNER = ''
# ماگورو / ٹورو پر ایڈب پروٹوکول (کہکشاں گٹھ جوڑ)
سبسائسٹم == 'USB' ، ATTR {idVendor} == '04e8 ″ ، ATTR {idPr Prodct} ==' 6860 ″ ، MODE = '0600 ″ ، OWNER =' '
# مگورو / ٹورو پر فاسٹ بوٹ پروٹوکول (کہکشاں گٹھ جوڑ)
سبسائسٹم == 'USB' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' 4e30 ″ ، MODE = '0600 ″ ، OWNER =' '
پانڈا پر # ایڈب پروٹوکول (پانڈا بورڈ)
سبسکیم == 'usb' ، ATTR {idVendor} == '0451 ″ ، ATTR {idPr Prodct} ==' d101 ″ ، MODE = '0600 ″، OWNER =' '
پانڈا پر # ایڈب پروٹوکول (پانڈا بورڈ ES)
سبسائسٹم == 'USB' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' d002 ″ ، MODE = '0600 ″ ، OWNER =' '
پانڈا پر # فاسٹ بوٹ پروٹوکول (پانڈا بورڈ)
سبسکیم == 'USB' ، ATTR {idVendor} == '0451 ″ ، ATTR {idPr Prodct} ==' d022 ″ ، MODE = '0600 ″ ، OWNER =' '
پانڈا پر # USB بوٹ پروٹوکول (پانڈا بورڈ)
سبسکیم == 'usb' ، ATTR {idVendor} == '0451 ″ ، ATTR {idPr Prodct} ==' d00f '، MODE =' 0600 ″ ، OWNER = ''
پانڈا پر # USB بوٹ پروٹوکول (پانڈا بورڈ ES)
سبسکیم == 'usb' ، ATTR {idVendor} == '0451 ″ ، ATTR {idPr Prodct} ==' d010 ″ ، MODE = '0600 ″ ، OWNER =' '
گرئپر / تلپیا پر # ایڈب پروٹوکول (گٹھ جوڑ 7)
سبسائسٹم == 'USB' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' 4e42 ″ ، MODE = '0600 ″ ، OWNER =' '
گرگپر / تلپیا پر # فاسٹ بوٹ پروٹوکول (گٹھ جوڑ 7)
سبسکیم == 'USB' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' 4e40 ″ ، MODE = '0600 ″ ، OWNER =' '
منٹا پر # ایڈب پروٹوکول (گٹھ جوڑ 10)
سبسکیم == 'usb' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' 4e2 ″ ، MODE = '0600 ″ ، OWNER =' '
منٹا پر # فاسٹ بوٹ پروٹوکول (گٹھ جوڑ 10)
سبسائسٹم == 'USB' ، ATTR {idVendor} == '18d1 ″ ، ATTR {idPr Prodct} ==' 4ee0 ″ ، MODE = '0600 ″ ، OWNER =' '



اور bash.rc میں:

USE_CCachE = 1 برآمد کریں
اب آخر میں:

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
لہذا اب ہم تعمیر ماحول قائم کرنے کے لئے تیار ہیں۔ ٹرمینل میں ، ٹائپ کریں:

برآمد کریں TARGET_BUILD_VARIANT = صارف TARGET_PRODUCT = devicename MTK_ROOT_CUSTOM = .. / میڈیٹیک / کسٹم / TARGET_KERNEL_V
یہاں یہ احکامات کیا کرنے جا رہے ہیں:

BUILD_VARIANT: یہ بتاتا ہے کہ دانا کس کے لئے تعمیر کیا جا رہا ہے۔
TARGET_PRODUCT / TARGET_KERNEL_PRODUCT: لینکس کو بتاتا ہے کہ کون سے ڈیوائس کی مخصوص فائلوں کو استعمال کرنا ہے۔
MTK_ROOT_CUSTOM: میڈیٹیک / کسٹم فولڈر کی ڈائریکٹری متعین کرتی ہے۔ یاد رکھیں کہ اس وسطی کو اسی ڈائرکٹری میں ہونا ہی ہے جیسے دانا سورس بھی ہے۔
PATH: آپ کے ٹول کیچ پر عمل درآمد کو آپ کے راستے پر متعین کرتا ہے۔
کراس_کمپائل: ایک کراس کمپائلر ایک ایسا مرتب ہے جس میں پلیٹ فارم چلانے کے علاوہ کسی اور پلیٹ فارم کے لئے قابل عمل کوڈ تخلیق کرنے کی صلاحیت رکھتا ہے۔ ٹول چین اس فنکشن میں سہولت فراہم کرتا ہے
ARCH = بازو ، برطانوی کمپنی اے آر ایم ہولڈنگز کے تیار کردہ کم انسٹرکشن سیٹ کمپیوٹنگ (RISC) فن تعمیر پر مبنی کمپیوٹر پروسیسرز کے لئے اے آر ایم انسٹرکشن سیٹ فن تعمیرات کا ایک خاندان ہے۔ ارم اینڈروئیڈ میں بھی استعمال ہوتا ہے۔

لہذا جب ہم ٹرمینل میں 'ایکسپورٹ ARCH = بازو' ٹائپ کرتے ہیں تو ، ہم بنیادی طور پر لینکس کو بتا رہے ہیں کہ ہم ARM فن تعمیر کے لئے تعمیر کر رہے ہیں۔

لہذا اب ہم دانا کی تشکیل شروع کرنے کے لئے تیار ہیں۔ آپ کو انتہائی محتاط رہنے کی ضرورت ہے ، کیونکہ دانا بنیادی طور پر آپ کے فون کا کنٹرولر ہے۔ تو صرف احتیاط کے ساتھ ساتھ عمل کریں.


آپ کو ممکنہ طور پر kernel_source / mediatek / config / devicename / autoconfig / kconfig / پلیٹ فارم میں بیس کنفیگر مل جائے گا۔
ہم اس بیس کنفیگر کا استعمال کرسکتے ہیں اور اسے مختلف تقاضوں کے ساتھ تشکیل دے سکتے ہیں ، مثال کے طور پر SELinux اجازتیں فعال یا غیر فعال۔ آپ ہمیشہ سے شروع سے ہی ایک بیس تشکیل تیار کرسکتے ہیں ، لیکن میں واقعتا it اس کی سفارش نہیں کرتا ہوں۔

تو اب لینکس ٹرمینل میں ٹائپ کریں:

سی ڈی دانا_سرچہ
cp mediatek / config / devicename / autoconfig / kconfig / platform .config
menuconfig بنائیں

یہ ایک گرافیکل انٹرفیس بنانے جا رہا ہے جو آپ کو دانا میں خصوصیات شامل کرنے کی اجازت دے گا۔ مثال کے طور پر ، آپ I / O شیڈول ، سی پی یو گورنرز ، GPU فریکوئینسی ، وغیرہ موافقت کرسکتے ہیں۔
ایک بار جب آپ اپنی مطلوبہ ترتیبات کو ٹویٹ کر لیتے ہیں ، تو آپ دانا مرتب کرنے کے لئے تیار ہوجاتے ہیں۔ لہذا لینکس ٹرمینل میں ٹائپ کریں:
zImage بنائیں

اور اسے کچھ ایسا لوٹنا چاہئے:

چاپ / بازو / بوٹ / zImage کے لئے تیار ہیں

3 منٹ پڑھا