فلش کردن هسته یک دستگاه اندرویدی. آموزش اندروید
یکشنبه عصر، هسته جدید لینوکس 3.10 رسما منتشر شد. به گفته لینوس توروالدز، این هسته از نظر نوآوری در چند سال گذشته بزرگترین بوده است. لینوس در ابتدا قصد داشت کاندیدای انتشار دیگری را منتشر کند، اما تمایل داشت نسخه نهایی 3.10 را منتشر کند - و در پیام خود اشاره می کند که هسته جدید مانند لینوکس 3.9 مستعد مشکلات عملکردی نیست و برای استفاده روزمره آماده است.
در اعلان نسخه RC، توروالدز نوشت که معمولاً فهرستی از اسامی افرادی را که بخشهای خاصی از کد را ارسال میکردند، درج میکرد، اما این بار این فهرست به قدری بزرگ بود که نمیتوان آن را به طور کامل در یک لیست پستی قرار داد.
لیست جزئی از تغییرات ایجاد شده در هسته 3.10:
- شما می توانید از اجرای اسکریپت ها به عنوان برنامه جلوگیری کنید - عملکرد اسکریپت های در حال اجرا حاوی مسیر مفسر در هدر "#!" اکنون می تواند به عنوان یک ماژول هسته کامپایل شود.
- سیستم Bcache توسعه یافته و مورد استفاده توسط گوگل یکپارچه است. Bcache به شما امکان می دهد تا ذخیره کش دسترسی به هارد دیسک های کند را در درایوهای SSD سریع سازماندهی کنید. ذخیره سازی در سطح دستگاه بلوک انجام می شود - و این به شما امکان می دهد بدون توجه به سیستم های فایل مورد استفاده در دستگاه، دسترسی به درایو را تسریع کنید.
- هسته را می توان با استفاده از کامپایلر Clang به لطف وصله های تهیه شده توسط پروژه LLVMLinux کامپایل کرد.
- یک سیستم پویا برای کنترل تولید وقفه های تایمر ظاهر شده است. اکنون، بسته به وضعیت فعلی، میتوانید وقفهها را در بازهای از هزاران تیک در ثانیه به یک وقفه در ثانیه تغییر دهید - این به شما امکان میدهد هنگام پردازش وقفهها در زمانی که سیستم غیرفعال است، بار روی CPU را به حداقل برسانید. در حال حاضر این تابع برای سیستم های بلادرنگ و HPC (محاسبات با کارایی بالا) استفاده می شود، اما در نسخه های بعدی هسته برای سیستم های دسکتاپ نیز استفاده خواهد شد.
- اکنون می توان رویدادی را ایجاد کرد تا به برنامه اطلاع دهد که حافظه در دسترس فرآیند/سیستم (در گروه های c) در حال اتمام است.
- نمایه دسترسی به حافظه اکنون برای دستور perf در دسترس است.
- یک درایور جدید "همگام سازی" (تجربی) وجود دارد. این در پلت فرم اندروید توسعه یافته است و برای همگام سازی بین سایر درایورها استفاده می شود.
- یک درایور برای آداپتورهای ویدئویی مجازی Microsoft Hyper-V ظاهر شده است (به طور کلی بهبودهایی در عملکرد Hyper-V وجود دارد).
- ویژگی های جدید مدیریت انرژی معرفی شده در خانواده پردازنده های 16h (Jaguar) AMD اکنون پشتیبانی می شود.
- پشتیبانی از تسریع رمزگشایی ویدیو با استفاده از رمزگشای سخت افزاری UVD که در پردازنده های گرافیکی مدرن AMD تعبیه شده است به Radeon DRM اضافه شده است.
- پشتیبانی از پروتکل RDMA (iSER) به زیرسیستم iSCSI اضافه شد.
- اجرای توابع رمزنگاری (sha256، sha512، blowfish، twofish، serpent و camellia) با استفاده از دستورالعمل های AVX/AVX2 و SSE بهینه شده است.
- درایور کارت گرافیک مجازی QXL یکپارچه شده است (در سیستم های مجازی سازی برای خروجی سریع گرافیکی با استفاده از پروتکل SPICE استفاده می شود).
کاربران دستگاه های تلفن همراه همیشه از عملکرد و قابلیت های گجت های خود راضی نیستند. به همین دلیل کاربران به دنبال بهترین راه برای فلش کردن کرنل سیستم عامل اندروید هستند. از یک طرف، این عمل را می توان به راحتی با تبلت یا گوشی هوشمند خود انجام داد. هزاران کاربر بدون هیچ مشکل یا مشکلی کرنل را با موفقیت فلش کرده اند. اما از سوی دیگر، هرگونه اشتباهی در طول این فرآیند می تواند منجر به مشکلاتی از جمله خرابی گجت و نیاز به سرویس گران قیمت شود. در مراحل مختلف، خطر انتخاب نسخه اشتباه سفتافزار هسته وجود دارد که توسط توسعهدهندگان غیرمجاز ایجاد شده است یا برای دستگاه تلفن همراه شما مناسب نیست. توصیه می کنیم هنگام انجام هر گونه اقدامی که باعث ایجاد تغییرات در بخش نرم افزاری دستگاه در سطح پایین می شود، بسیار مراقب باشید. پس از فلش موفقیت آمیز هسته، بسیاری از افراد احساس می کنند که یک دستگاه کاملاً جدید را در دستان خود دارند. بنابراین، کاربران پیشرفته می توانند ابزار را مطابق با نیازها و ترجیحات خود سفارشی کنند، در حالی که دانش و تجربه جدیدی در مورد فناوری های مدرن تلفن همراه به دست می آورند.
هسته سیستم عامل اندروید و سیستم عامل آن
هسته یک دستگاه تلفن همراه چیست؟
هسته سیستم عامل اساس نرم افزاری است که سخت افزار دستگاه را کنترل می کند. پارامترهای اساسی هر ابزاری به آن بستگی دارد. لازم به ذکر است که از سه جزء به هم پیوسته تشکیل شده است - هسته لینوکس، ماشین عمودی Dalvik و خدمات و کتابخانه های مختلف سطح پایین. اگر در مورد سیستم عامل سفارشی صحبت می کنیم، تنها دو مؤلفه تحت تأثیر قرار می گیرند که به شما امکان می دهد خدمات جدید سیستم را اضافه کنید، پارامترهای موجود را بهینه کنید و پوسته گرافیکی را تغییر دهید.
کسانی که مایل به نصب کرنل در اندروید هستند باید بدانند که بین مفاهیم هسته سفارشی و سیستم عامل سفارشی تفاوت وجود دارد. دومی نسخه غیر رسمی نرم افزار است. سیستم عامل سفارشی توسط تیمی از متخصصان برای دستگاه های خاص توسعه داده شد. هسته سفارشی مبتنی بر هسته لینوکس است که نشان دهنده نسخه غیر رسمی آن است. اغلب یک هسته سفارشی همراه با سیستم عامل ارائه می شود. اما بعد از تغییر فریمور می توان آن را جداگانه نصب کرد. اساساً جایگزین هسته بومی دستگاه تلفن همراه نمی شود که هدف نهایی چنین عملیاتی است.
فریمور هسته اندروید عمدتاً برای افزایش چند ساعتی زمان کارکرد دستگاه با تنظیم پارامترهای مصرف انرژی انجام می شود. شاید این دلیل اصلی باشد که کاربران تبدیل های پیچیده نرم افزار ابزارهای خود را انجام می دهند. سیستم عامل به شما این امکان را می دهد که تراشه ویدیویی را بدون عواقب برای تلفن هوشمند یا تبلت خود تغییر دهید. کاربران پیشرفته صفحه را به این روش سفارشی می کنند و رندر رنگ و حساسیت آن را تغییر می دهند. سیستم عامل هسته به شما امکان می دهد صدای دستگاه را بهبود بخشید، درایورها را به روز کنید و از ابزارهای خارجی غیر استاندارد پشتیبانی کنید.
قبل از فلش کردن کرنل، توصیه می کنیم مطمئن شوید که نسخه خوبی را انتخاب کرده اید که توسط توسعه دهندگان با تجربه ایجاد شده است. علاوه بر این، مهم است که مطمئن شوید که برای نسخه سیستم عامل اندروید شما مناسب است. توصیه می شود نظرات افرادی که موفق به نصب نسخه مناسب هسته روی تلفن همراه خود شده اند را مطالعه کنید. بررسی ها ممکن است حاوی اطلاعات مهمی در مورد مشکلاتی باشد که ممکن است در مرحله سیستم عامل یا عملکرد بیشتر دستگاه ایجاد شود.
فلش کردن ابزار از طریق Fastboot
می توانید دستگاه اندروید خود را با استفاده از Fastboot reflash کنید. اما ابتدا باید این ابزار را روی ابزار خود نصب کنید. دو نسخه از این برنامه وجود دارد. اولین مورد شامل دانلود Fastboot به همراه برنامه رسمی Android SDK است. نسخه دوم شامل دانلود ابزار به طور جداگانه است.
توصیه می کنیم بررسی کنید که آیا دستگاه تلفن همراه شما می تواند لپ تاپ یا رایانه شما را ببیند یا خیر. برای انجام این کار باید انجام دهید. پس از دانلود و نصب ابزار Fastboot بر روی کامپیوتر یا لپ تاپ خود که دارای سیستم عامل ویندوز است و گوشی هوشمند خود را متصل کردید، باید خط فرمان را باز کنید. برای این کار جستجو را باز کنید. در ویندوز 8 برای این کار کافیست نشانگر ماوس را به سمت راست صفحه ببرید و قسمت مربوطه را انتخاب کنید. در جستجو باید "cmd" را وارد کنید، پس از آن خط فرمان در مقابل شما ظاهر می شود. دستگاه باید به حالت سیستم عامل تغییر کند. در مرحله بعد، باید دستوری را وارد کنید که تعامل بین رایانه و دستگاه تلفن همراه شما را آزمایش می کند:
دستگاه های فست بوت
اگر همه چیز کار می کند، باید نسخه صحیح سیستم عامل هسته boot.img را دانلود کنید. ما توصیه نمی کنیم که هسته سیستم عامل اصلی را فلش کنید، زیرا ممکن است منجر به مشکلاتی در عملکرد تلفن هوشمند شود. فایل باید در یک پارتیشن از پیش ساخته شده در درایو C به نام "Android" ذخیره شود. پس از این، باید دستگاه تلفن همراه را در Fastboot بوت کنید و آن را به رایانه متصل کنید. پیام "Fastboot USB" روی صفحه ظاهر می شود.
- سی دی سی:\اندروید.
- fastboot flash boot boot.img.
- فست بوت پاک کردن کش
- راه اندازی مجدد فست بوت
وارد کردن صحیح همه کلمات با در نظر گرفتن حروف و فاصله بسیار مهم است. دستور cd پوشه مورد نیاز را که حاوی فایل های مورد نیاز است باز می کند. پس از این، چشمک زدن رخ می دهد. دستور fastboot erase cache پارتیشن Cache را حذف می کند. آخرین دستور - fastboot reboot دستگاه را از حالت سیستم عامل به حالت عادی راه اندازی مجدد می کند. اگر تمام مراحل بالا را به درستی انجام داده باشید، روند موفقیت آمیز خواهد بود.
سیستم عامل با استفاده از ClockworkMod Recovery
ClockworkMod Recovery (یا به اختصار CWM) یک سیستم بازیابی است که به جای ریکاوری اصلی کارخانه استفاده می شود. CWM به شما امکان می دهد سیستم عامل جدید را روی دستگاه تلفن همراه نصب کنید، هسته را فلش کنید، فایل های پشتیبان تهیه کنید و پوسته را بازیابی کنید. چنین سیستمی می تواند با فایل های به روز رسانی سیستم عامل در فرمت zip کار کند. ClockworkMod در نصب شده است و جایگزین بازیابی کارخانه می شود. برای راه اندازی CWM، باید ترکیب کلیدی را که برای گجت شما مناسب است، بدانید. در بیشتر موارد، این ترکیبی از دکمه های کاهش صدا و پاور است که باید هنگام بوت شدن دستگاه فشار داده شود.
برای فلش کردن فریمور هسته، آرشیو را با پسوند zip دانلود کنید. باید حاوی پوشه META-INF باشد. سپس دو گزینه وجود دارد. در مورد اول، باید فایل سیستم عامل را مشخص کنید. گزینه دوم شامل قرار دادن فایل سیستم عامل در پوشه /sdcard است. پس از این، باید ClockworkMod Recovery را فعال کنید، تابع Apply update from sdcard را در آنجا پیدا کنید و فایل مورد نیاز را مشخص کنید.
لازم به ذکر است که منوی ClockworkMod Recovery برای اکثر کاربران راحت و قابل درک است. علاوه بر این سیستم بازیابی برای سیستم عامل، می توانید از TWRP Recovery استفاده کنید. این ابزار مناسب و محبوب در بین کاربران اندروید است. نکته اصلی این است که فایل سیستم عامل صحیح را انتخاب کنید.
فلش کردن هسته اندروید رویه ای است که در صورت رضایت کامل از عملکرد گجت، توصیه نمی کنیم به آن متوسل شوید. چنین اقداماتی با تمایل به بهبود عملکرد تلفن همراه یا تبلت انجام می شود. کاربران پیشرفته این فرصت را دارند که پارامترها را در سطح پایین تری تنظیم کنند. اما بدون دانش خاص و دلایل عینی، بهتر است بخش نرم افزاری دستگاه تلفن همراه را تغییر ندهید، زیرا این امر با خطر و نقص در عملکرد آن همراه است.
بسیاری از دارندگان دستگاههای اندرویدی در انجمنها و وبسایتهای مختلف، اغلب با ذکر چیزی غیرقابل درک مواجه میشوند که به آن «کرنل» یا به زبان انگلیسی «کرنل» میگویند. قابل تغییر است و در منوی تنظیمات دستگاه، در قسمت «درباره تبلت (تلفن)» ذکر شده است.
اگر عمیقتر بگردید، متوجه میشوید که هسته بخشی از سیستم عامل است و نه تنها اندروید آن را دارد، بلکه سیستمعاملهای دیگر: Windows، iOS، MacOS و غیره را نیز دارد. اما ما به هسته اندروید علاقه مند خواهیم شد و سعی می کنم در سطح کاربران تازه کار توضیح دهم که چیست.
احتمالاً می دانید که هر سیستم عامل، از جمله اندروید، به طور کلی مجموعه ای از برنامه هاست که عملکرد کل دستگاه را مدیریت می کند و مسئول راه اندازی برنامه های کاربردی کاربر مانند بازی ها، فایل منیجرها، مرورگرهای وب و غیره است.
و هسته اندروید عملا مهمترین قسمت سیستم عامل است که وظیفه تعامل بین تمامی بخش سخت افزاری و نرم افزاری سیستم را بر عهده دارد. هسته شامل مجموعه ای از درایورها برای تمام تجهیزات موجود در دستگاه و یک زیرسیستم برای مدیریت حافظه، شبکه، امنیت و سایر عملکردهای اساسی سیستم عامل است.
به عنوان مثال، هنگامی که صفحه نمایش را برای راه اندازی یک برنامه لمس می کنید، درایور صفحه لمسی مکانی که در آن لمس رخ داده است را تعیین می کند و مختصات را به برنامه های دیگر گزارش می دهد، که دوباره با استفاده از هسته، برنامه مورد نظر را در حافظه دستگاه پیدا کرده و اجرا می شود. آی تی. البته این یک مدل بسیار ساده است، اما ماهیت سیستم عامل را منعکس می کند.
بنابراین، متوجه شدیم که وقتی هر نرم افزاری برای انجام کاری به سخت افزار تبلت یا گوشی نیاز دارد، برای انجام آن به هسته سیستم عامل روی می آورد.
هسته کاملاً تمام تجهیزات را کنترل می کند: Wi-Fi، بلوتوث، GPS، حافظه و سایر دستگاه ها. "قلب" دستگاه - پردازنده آن - از این قاعده مستثنی نیست. هسته می تواند فرکانس و منبع تغذیه خود را کنترل کند.
هسته سیستم عامل اندروید توسط توسعه دهندگان آن، گوگل، از سیستم عامل لینوکس قرض گرفته شده است.
از آنجایی که هسته تمام سخت افزارها را کنترل می کند و سخت افزار همه تبلت ها و گوشی ها متفاوت است، هسته اصلی اندروید توسط سازنده برای هر دستگاه به طور جداگانه اصلاح می شود.
مانند سیستم عامل، هسته ها می توانند سهام (کارخانه) و سفارشی - جایگزین باشند که توسط توسعه دهندگان مستقل ایجاد شده اند.
چرا به هسته های سفارشی نیاز داریم؟ هسته انبار حداکثر توسط سازنده برای یک دستگاه خاص بهینه شده است، اما معمولاً عملکردهای هسته مهمی مانند کنترل فرکانس پردازنده را مسدود می کند. و اگر نیاز به اورکلاک کردن پردازنده تبلت خود دارید، باید هسته را به یک هسته سفارشی تغییر دهید که در آن عملکرد کنترل فرکانس پردازنده آنلاک است.
علاوه بر این، هسته های سفارشی معمولا بر اساس نسخه های جدیدتر هسته های لینوکس هستند. در اینجا یک لیست تقریبی از ویژگی هایی است که هسته های سفارشی به ما می دهند:
- فرکانس پردازنده را در محدوده وسیعی تغییر دهید.
- اورکلاک کردن زیرسیستم گرافیکی (GPU)؛
- کاهش فرکانس و ولتاژ پردازنده، که عمر باتری طولانیتری را ممکن میسازد.
- درایورهای جدیدتر و با کیفیت بالا، به عنوان مثال، افزایش سرعت GPS یا افزودن عملکردهای جدید.
- طیف گسترده ای از گزینه ها برای سفارشی سازی و پیکربندی صدا و رنگ های صفحه نمایش؛
- پشتیبانی از سیستم های فایل جایگزین (XFS، ReiserFS و دیگران).
از آنجایی که هسته های جایگزین توسط توسعه دهندگان مستقل ایجاد می شوند، هیچ تضمینی وجود ندارد که تبلت یا تلفن شما پس از نصب یک هسته سفارشی بدون مشکل کار کند. بنابراین، قبل از فلش کردن یک هسته جدید، توصیه می شود یک نسخه پشتیبان کامل از سیستم تهیه کنید.
عصر یکشنبه، لینوس توروالدز، مادر لینوکس و توسعه دهنده هسته سیستم عامل، پس از دو ماه کار، از انتشار نسخه جدیدی از هسته لینوکس 3.10 خبر داد.
به گفته خود سازنده، این هسته از نظر نوآوری در چند سال گذشته بزرگترین است.
لینوس اعتراف کرد که در ابتدا قصد داشت کاندیدای انتشار دیگری را منتشر کند، اما پس از تأمل او تمایل داشت که بلافاصله نسخه نهایی را با شماره 3.10 منتشر کند. توروالدز همچنین در پیام خود خاطرنشان کرد که هسته جدید مانند نسخه 3.9 برای استفاده روزمره کاملاً آماده است.
علاوه بر این، در اعلامیه نسخه RC هسته، لینوس توروالدز نوشت که قبلاً همیشه لیستی از اسامی افرادی را که قسمت های خاصی از کد را ارسال می کردند، درج می کرد، اما این بار این لیست به قدری بزرگ است که نمی تواند باشد. به طور کامل در یک برگه ارسال شده است.
لیست تغییرات عمده انجام شده در هسته 3.10:
- اکنون می توانید از اجرای اسکریپت ها به عنوان برنامه جلوگیری کنید - عملکرد راه اندازی اسکریپت های حاوی مسیر مفسر در هدر "#!" اکنون می تواند به عنوان یک ماژول هسته کامپایل شود.
- سیستم Bcache توسعه یافته و مورد استفاده توسط گوگل یکپارچه است. Bcache به شما امکان می دهد تا ذخیره کش دسترسی به هارد دیسک های کند را در درایوهای SSD سریع سازماندهی کنید. ذخیره سازی در سطح دستگاه بلوک انجام می شود - و این به شما امکان می دهد بدون توجه به سیستم های فایل مورد استفاده در دستگاه، دسترسی به درایو را تسریع کنید.
- هسته را می توان با استفاده از کامپایلر Clang به لطف وصله های تهیه شده توسط پروژه LLVMLinux کامپایل کرد.
- یک سیستم پویا برای کنترل تولید وقفه های تایمر ظاهر شده است. اکنون، بسته به وضعیت فعلی، میتوانید وقفهها را در بازهای از هزاران تیک در ثانیه به یک وقفه در ثانیه تغییر دهید - این به شما امکان میدهد هنگام پردازش وقفهها در زمانی که سیستم غیرفعال است، بار روی CPU را به حداقل برسانید. در حال حاضر این تابع برای سیستم های بلادرنگ و HPC (محاسبات با کارایی بالا) استفاده می شود، اما در نسخه های بعدی هسته برای سیستم های دسکتاپ نیز استفاده خواهد شد.
- اکنون می توان رویدادی را ایجاد کرد تا به برنامه اطلاع دهد که حافظه در دسترس فرآیند/سیستم (در گروه های c) در حال اتمام است.
- نمایه دسترسی به حافظه اکنون برای دستور perf در دسترس است.
- پشتیبانی از پروتکل RDMA (iSER) به زیرسیستم iSCSI اضافه شد.
- یک درایور جدید "همگام سازی" (تجربی) وجود دارد. این در پلت فرم اندروید توسعه یافته است و برای همگام سازی بین سایر درایورها استفاده می شود.
- درایور کارت گرافیک مجازی QXL یکپارچه شده است (در سیستم های مجازی سازی برای خروجی سریع گرافیکی با استفاده از پروتکل SPICE استفاده می شود).
- ویژگی های جدید مدیریت انرژی معرفی شده در خانواده پردازنده های 16h (Jaguar) AMD اکنون پشتیبانی می شود.
- پشتیبانی از تسریع رمزگشایی ویدیو با استفاده از رمزگشای سخت افزاری UVD که در پردازنده های گرافیکی مدرن AMD تعبیه شده است به Radeon DRM اضافه شده است.
- یک درایور برای آداپتورهای ویدئویی مجازی Microsoft Hyper-V ظاهر شده است (به طور کلی بهبودهایی در عملکرد Hyper-V وجود دارد).
- اجرای توابع رمزنگاری (sha256، sha512، blowfish، twofish، serpent و camellia) با استفاده از دستورالعمل های AVX/AVX2 و SSE بهینه شده است.
ما بیش از یک بار در مورد سیستم عامل سفارشی، برنامه های کاربردی ریشه و منوهای بوت جایگزین نوشته ایم. همه اینها موضوعات استاندارد در جامعه هک اندروید هستند، با این حال، علاوه بر همه موارد فوق، چیزی به نام "هسته سفارشی" نیز وجود دارد که می تواند تقریباً امکانات نامحدودی را برای مدیریت یک تلفن هوشمند و سخت افزار آن در اختیار شما قرار دهد. پایین ترین سطح. در این مقاله به شما خواهم گفت که چیست، چرا به آن نیاز است و چگونه هسته سفارشی مناسب را انتخاب کنید.
هسته سفارشی؟
هسته سفارشی چیست؟ همانطور که همه ما می دانیم، اندروید یک پای متشکل از سه لایه اصلی است: هسته لینوکس، مجموعه ای از کتابخانه ها و سرویس های سطح پایین، و ماشین مجازی Dalvik، که در بالای آن یک پوسته گرافیکی، ابزارها و خدمات سطح بالا اجرا می شود. و همچنین تقریباً تمام برنامه های کاربردی نصب شده از بازار. سازندگان اکثر سفتافزارهای سفارشی جایگزین معمولاً فقط با دو لایه بالا کار میکنند، عملکردهایی را به پوسته گرافیکی اضافه میکنند (مثلاً دکمههایی در پرده)، آن را تغییر میدهند (موتور تم در CyanogenMod)، و همچنین اضافه کردن خدمات جدید سیستم (اکولایزر). در CyanogenMod) و بهینه سازی موارد موجود.
نویسندگان سفتافزار محبوب همچنین در صورت امکان تغییراتی را در هسته لینوکس ایجاد میکنند: آنها بهینهسازی میکنند (با پرچمهای بهینهسازی کامپایلر تهاجمیتر ساخته میشوند)، شامل قابلیتهای جدید (مثلاً پشتیبانی از Windows Ball) و همچنین تغییرات دیگری مانند توانایی میشوند. برای بالا بردن فرکانس پردازنده بالاتر از فرکانس ارائه شده توسط سازنده . اغلب، همه اینها در پشت صحنه باقی میماند و بسیاری از کاربران سفتافزار سفارشی حتی از این احتمالات آگاه نیستند، به خصوص که همان CyanogenMod با هسته سفارشی فقط برای طیف محدودی از دستگاهها عرضه میشود، که هر دو کد منبع اصلی آن هستند. هسته و قابلیت جایگزینی آن در دسترس است. به عنوان مثال، تقریباً تمام سیستم عامل CyanogenMod برای تلفن های هوشمند موتورولا از یک هسته استاندارد استفاده می کنند - به دلیل محافظت غیرقابل نفوذ بوت لودر، جایگزینی آن با هسته خود غیرممکن است.
با این حال، هسته در گوشی های هوشمند با بوت لودر آنلاک را می توان جدا از سیستم عامل اصلی جایگزین کرد. و نه فقط جایگزین، بلکه نصب یک هسته با تعداد زیادی کارکرد مختلف که برای مدیریت به دانش فنی خاصی نیاز دارند، و بنابراین معمولاً در هسته سیستم عامل محبوب مانند CyanogenMod، AOKP و MIUI تعبیه نشده اند. در میان این توابع می توانید پشتیبانی از فرکانس های بالای پردازنده، کنترل گامای صفحه نمایش، حالت های صرفه جویی در انرژی، مدیریت انرژی بسیار کارآمد و تعداد زیادی از ویژگی های دیگر را بیابید.
در این مقاله در مورد آنچه که سازندگان کرنل های سفارشی می توانند به ما ارائه دهند صحبت خواهیم کرد، هسته های سفارشی اصلی را برای دستگاه های مختلف در نظر می گیریم و همچنین سعی می کنیم کرنل را مستقل از سیستم عامل اصلی نصب کنیم و همه چیز را روی پوست خودمان بررسی کنیم. بنابراین، توسعه دهندگان هسته های جایگزین معمولا چه چیزی را ارائه می دهند؟
کنترلر هوشمند ترافیک
SoC های OMAP35XX که برای مثال در Galaxy S II و Galaxy Nexus استفاده می شوند، دارای عملکرد SmartReflex هستند که به عنوان یک سیستم هوشمند تنظیم ولتاژ هنگام تغییر بار روی پردازنده عمل می کند. در اصل، نیاز به تنظیم دقیق ولتاژ توسط کاربر را از بین می برد.
بهینه سازی ها
اغلب هدف اصلی از ساخت یک هسته سفارشی بهینه سازی عملکرد است. به طور معمول، یک فروشنده دستگاه تلفن همراه سعی می کند تعادل بین عملکرد و پایداری را حفظ کند، بنابراین حتی تکنیک های بهینه سازی خوب که می توانند سرعت دستگاه را به میزان قابل توجهی افزایش دهند، تنها بر این اساس می توانند توسط سازنده رد شوند که پس از استفاده از آنها، برخی از برنامه ها شروع به خراب شدن کردند. هر دهمین پرتاب البته، علاقه مندان از چنین چیزهای کوچکی ناراحت نمی شوند و بسیاری از آنها آماده هستند تا هر گونه گزینه کامپایلر، الگوریتم های صرفه جویی در مصرف انرژی را در هسته اسمبلی خود اعمال کنند و فرکانس پردازنده را تا جایی که دستگاه می تواند بالا ببرند. در میان تمام تکنیک های بهینه سازی، چهار مورد از رایج ترین آنها هستند:
نوع دیگری از بهینه سازی: تغییر زمانبندی پیش فرض ورودی/خروجی. وضعیت در این زمینه جالبتر است، زیرا به جای درک اصول عملکرد زمانبندیها، برخی از سازندگان هسته به سادگی اسنادی را در اینترنت روی زمانبندیهای I/O برای لینوکس میخوانند و نتیجهگیری میکنند. در بین کاربران، این رویکرد حتی گسترده تر است. در واقع، تقریباً همه قدرتمندترین و هوشمندترین زمانبندیهای لینوکس برای اندروید کاملاً نامناسب هستند: آنها برای استفاده در فروشگاههای داده مکانیکی طراحی شدهاند که در آنها سرعت دسترسی به دادهها بسته به موقعیت هد متفاوت است. زمانبند بسته به موقعیت فیزیکی دادهها از طرحهای تجمیع درخواستهای مختلفی استفاده میکند، بنابراین درخواستهایی برای دادههایی که نزدیک به موقعیت سر فعلی هستند، اولویت بیشتری خواهند داشت. این در مورد حافظه حالت جامد که سرعت دسترسی یکسان به همه سلول ها را تضمین می کند، کاملا غیر منطقی است. زمانبندیهای پیشرفته بیش از آنکه مفید باشند در گوشی هوشمند ضرر خواهند داشت و دست و پا چلفتیترین و ابتداییترین آنها بهترین نتایج را نشان میدهند. لینوکس دارای سه زمانبندی مشابه است:
- نوپ (بدون عملیات)- به اصطلاح غیر برنامه ریزی. یک صف درخواست FIFO ساده، درخواست اول اول، دوم دوم و غیره پردازش می شود. برای حافظه حالت جامد مناسب است و به شما امکان می دهد اولویت های برنامه را برای دسترسی به درایو نسبتاً توزیع کنید. یک مزیت اضافی: بار کم پردازنده به دلیل یک اصل عملیاتی بسیار ساده. عیب: عدم توجه به ویژگی های عملکرد دستگاه، که ممکن است منجر به شکست عملکرد شود.
- SIO (I/O ساده)- یک آنالوگ از زمانبندی Deadline بدون در نظر گرفتن نزدیکی بخش ها به یکدیگر، یعنی به طور خاص برای حافظه حالت جامد طراحی شده است. دو ویژگی اصلی: اولویت عملیات خواندن بر عملیات نوشتن و گروه بندی عملیات بر اساس فرآیند، اختصاص یک برش زمانی به هر فرآیند برای انجام عملیات. در گوشی های هوشمندی که سرعت اپلیکیشن فعلی و غلبه عملیات خواندن بر عملیات نوشتن مهم است، عملکرد بسیار خوبی از خود نشان می دهد. در Leankernel، هسته Matr1x برای Nexus 4 و SiyahKernel موجود است.
- ردیف (خواندن روی نوشتن)- یک زمانبندی که به طور خاص برای دستگاه های تلفن همراه طراحی شده و چند ماه پیش به هسته اضافه شده است. هدف اصلی این است که ابتدا درخواستهای خواندن را پردازش کنیم، اما زمان مناسبی را برای درخواستهای نوشتن نیز توزیع کنیم. در حال حاضر بهترین زمانبندی برای حافظه NAND در نظر گرفته می شود؛ به طور پیش فرض در Leankernel و Matr1x استفاده می شود.
شایان ذکر است که تقریباً تمام سیستمافزارهای استاندارد و نیمی از آنهای سفارشی هنوز از هسته با زمانبندی استاندارد لینوکس CFQ استفاده میکنند، که البته چندان بد نیست، زیرا میتواند به درستی با درایوهای حالت جامد کار کند. از سوی دیگر، بسیار پیچیده است، بار بیشتری بر روی پردازنده (و بنابراین باتری) ایجاد می کند و ویژگی های سیستم عامل تلفن همراه را در نظر نمی گیرد. یکی دیگر از گزینه های محبوب، زمانبندی Deadline است که به خوبی SIO است اما اضافی است. با استفاده از دستور زیر می توانید لیست زمانبندی های موجود را مشاهده کنید:
# cat /sys/block/*/queue/scheduler
برای تغییر از موارد زیر استفاده می شود (که در آن ردیف نام زمانبندی است):
# برای i در /sys/block/*/queue/scheduler; انجام echo row > $1; انجام شده
برخی از سازندگان هسته نیز از نوع دیگری از بهینه سازی مربوط به I/O استفاده می کنند. این امر فراخوانی سیستم fsync را غیرفعال میکند، که برای وادار کردن محتوای تغییر یافته فایلهای باز به دیسک فلاش استفاده میشود. عقیده ای وجود دارد که بدون fsync سیستم کمتر به درایو دسترسی پیدا می کند و در نتیجه باعث صرفه جویی در زمان پردازنده و باتری می شود. یک بیانیه نسبتاً بحث برانگیز: fsync اغلب در برنامه ها استفاده نمی شود و فقط برای ذخیره اطلاعات بسیار مهم است، اما غیرفعال کردن آن می تواند منجر به از دست دادن همان اطلاعات در صورت خرابی سیستم عامل یا مشکلات دیگر شود. قابلیت غیرفعال کردن fsync در هستههای franco.Kernel و GLaDOS موجود است و توسط فایل /sys/module/sync/parameters/fsync_enabled کنترل میشود که در آن باید 0 برای غیرفعال کردن یا 1 برای فعال کردن بنویسید. باز هم استفاده از این قابلیت توصیه نمی شود.
اضافه کردن توابع جدید به هسته
البته علاوه بر بهینهسازیها، ترفندها و سیستمهای مختلف مدیریت سختافزار پیشرفته، در هستههای سفارشی میتوانید عملکرد کاملا جدیدی را نیز پیدا کنید که در هستههای استاندارد وجود ندارد، اما میتواند برای کاربران مفید باشد.
اینها عمدتاً درایورها و سیستم های فایل متفاوت هستند. به عنوان مثال، برخی از هستهها از ماژول CIFS پشتیبانی میکنند که به شما امکان میدهد اشتراکهای ویندوز را نصب کنید. چنین ماژولی در هسته Matr1x برای Nexus S، faux123 برای Nexus 7، SiyahKernel و GLaDOS وجود دارد. به خودی خود بی فایده است، اما چندین برنامه کاربردی در بازار وجود دارد که به شما امکان می دهد از قابلیت های آن استفاده کنید.
یکی دیگر از ویژگی های مفید، گنجاندن درایور ntfs-3g در هسته است (به طور دقیق تر، در بسته با هسته؛ خود درایور به عنوان یک برنامه لینوکس کار می کند)، که برای نصب درایوهای فلش فرمت شده در سیستم فایل NTFS ضروری است. این درایور در هستههای faux123 و SiyahKernel یافت میشود. معمولاً به صورت خودکار فعال می شود، اما اگر این اتفاق نیفتد، می توانید از برنامه StickMount از بازار استفاده کنید.
بسیاری از هستهها همچنین از فناوری به اصطلاح zram پشتیبانی میکنند که به شما امکان میدهد مقدار کمی رم (معمولاً 10٪) را رزرو کنید و از آن به عنوان یک منطقه مبادله فشرده استفاده کنید. نتیجه نوعی گسترش حافظه بدون هیچ عواقب جدی برای عملکرد است. موجود در Leankernel، با استفاده از Trickster MOD یا دستور enable zram فعال شده است.
دو ویژگی جالب آخر شارژ سریع USB و Sweep2wake هستند. اولین مورد چیزی نیست جز فعال کردن اجباری حالت "شارژ سریع"، حتی اگر تلفن هوشمند به پورت USB رایانه متصل باشد. حالت شارژ سریع در همه گوشی های هوشمند کم و بیش جدید موجود است، اما به دلیل محدودیت های فنی، نمی توان آن را همزمان با دسترسی به کارت حافظه فعال کرد. عملکرد شارژ سریع USB به شما امکان می دهد همیشه این حالت را فعال کنید و در عین حال دسترسی به درایو را غیرفعال کنید.
Sweep2wake یک روش جدید برای بیدار کردن دستگاه است که توسط نویسنده Breaked-kernel ابداع شده است. هدف آن روشن کردن گوشی هوشمند با کشیدن انگشت خود بر روی کلیدهای ناوبری واقع در زیر صفحه نمایش یا در سراسر خود صفحه نمایش است. این یک ویژگی واقعا راحت است، اما روشن کردن آن باعث میشود حسگر حتی در حالت خوابیدن دستگاه فعال بماند، که میتواند باتری را به میزان قابل توجهی تخلیه کند.
اورکلاک، ولتاژ و صرفه جویی در انرژی
اورکلاک نه تنها در میان دارندگان رایانه های رومیزی و لپ تاپ ها، بلکه در بین علاقه مندان به فناوری تلفن همراه نیز محبوب است. مانند سنگ های معماری x86، پردازنده ها و هسته های گرافیکی دستگاه های تلفن همراه عالی هستند. با این حال، خود روش اورکلاک و اقدامات انجام شده برای اجرای آن تا حدودی متفاوت است. واقعیت این است که درایورهای استاندارد SoCها که وظیفه صرفه جویی در انرژی و تغییر فرکانس پردازنده را بر عهده دارند، معمولاً در فرکانس های استاندارد قفل می شوند، بنابراین برای تنظیم دقیق باید یک درایور جایگزین یا یک هسته سفارشی نصب کنید.
تقریباً تمام هسته های سفارشی کم و بیش با کیفیت بالا و محبوب در حال حاضر شامل درایورهای قفل نشده هستند، بنابراین پس از نصب آنها، توانایی کنترل "قدرت" پردازنده به طور قابل توجهی گسترش می یابد. معمولا سازندگان کرنل سفارشی دو کار را انجام می دهند که بر انتخاب فرکانس تأثیر می گذارد. این گسترش دامنه فرکانس فراتر از مواردی است که در ابتدا مشخص شده است - می توانید فرکانس پردازنده بالاتر یا بسیار کم را تنظیم کنید که به شما امکان می دهد باتری را ذخیره کنید و درجه بندی فرکانس ها را به عنوان مثال به جای سه فرکانس ممکن افزایش دهید. ، شش مورد برای انتخاب وجود دارد. مورد دوم اضافه شدن قابلیت تنظیم ولتاژ پردازنده است، بنابراین می توانید برای حفظ شارژ باتری، ولتاژ پردازنده را در فرکانس های پایین کاهش دهید و برای افزایش پایداری آن را در فرکانس های بالا افزایش دهید.
همه اینها را می توان با استفاده از ابزار پولی معروف SetCPU یا Trickster MOD کنترل کرد. توصیه های مدیریت مانند سیستم های دسکتاپ است. بهتر است فرکانس پایین پردازنده را روی حداقل تنظیم کنید، اما نه کمتر از 200 مگاهرتز (برای جلوگیری از تاخیر)، آستانه بالایی به تدریج در حین تست پایداری عملکرد افزایش می یابد، در صورت افت، توصیه می شود ولتاژ را کمی افزایش دهید. برای این فرکانس هیچ توصیه ای برای ولتاژ وجود ندارد، زیرا هر پردازنده منحصر به فرد است و مقادیر برای همه متفاوت خواهد بود.
سازندگان اغلب علاوه بر تغییر فرکانس ها، الگوریتم های کنترلی جدید صرفه جویی در مصرف انرژی (کنترل خودکار فرکانس پردازنده) را به هسته اضافه می کنند که به نظر آنها می تواند نتایج بهتری نسبت به نمونه های استاندارد نشان دهد. تقریباً همه آنها مبتنی بر الگوریتم Interactive هستند که به طور پیش فرض در نسخه های جدید اندروید استفاده می شود که ماهیت آن افزایش شدید فرکانس پردازنده به حداکثر هنگام افزایش بار و سپس کاهش تدریجی آن به حداقل است. این جایگزین الگوریتم OnDemand است که قبلاً استفاده شده بود، که فرکانس را در هر دو جهت متناسب با بار تنظیم می کرد و سیستم را پاسخگوتر می کند. گردآورندگان هسته های جایگزین الگوریتم های زیر را برای جایگزینی Interactive ارائه می دهند:
- SmartAssV2- بازنگری در الگوریتم تعاملی با تمرکز بر صرفه جویی در باتری. تفاوت اصلی این است که در صورت انفجار کوتاه مدت، پردازنده را به فرکانس های بالا نکشید، که برای آن عملکرد پایین پردازنده کافی است. پیش فرض در هسته Matr1x استفاده می شود.
- InteractiveX- یک الگوریتم تعاملی تنظیم شده که ویژگی اصلی آن قفل کردن پردازنده در حداقل فرکانس تعیین شده توسط کاربر و خاموش کردن هسته پردازشگر دوم در هنگام خاموش شدن صفحه است. پیش فرض در Leankernel استفاده می شود.
- LulzactiveV2- اساساً یک OnDemand دوباره اختراع شده است. هنگامی که بار روی پردازنده از مقدار مشخص شده بیشتر شود (به طور پیش فرض 60٪)، الگوریتم فرکانس را با تعداد معینی از تقسیمات (به طور پیش فرض 1) افزایش می دهد و زمانی که بار کاهش می یابد، آن را کاهش می دهد. این مورد علاقه خاصی است زیرا به شما امکان می دهد به طور مستقل پارامترهای عملیاتی را تنظیم کنید ، بنابراین برای گیک های سخت شده مناسب است.
به طور کلی، سازندگان هسته واقعاً دوست دارند الگوریتم های جدید صرفه جویی در انرژی را به دلیل سهولت پیاده سازی آنها ارائه کنند، بنابراین می توانید ده ها الگوریتم دیگر را پیدا کنید. اکثر آنها آشغال کامل هستند و هنگام انتخاب یک زمانبندی باید از این قاعده راهنمایی بگیرید: یا یکی از سه موردی که در بالا توضیح داده شد، یا استاندارد Interactive، که به هر حال، بسیار خوب است. شما می توانید با استفاده از همان Trickster MOD انتخاب کنید.
رابط های کنترل
محبوب ترین هسته های سفارشی شامل مکانیسم های مختلفی برای کنترل دقیق پارامترهای درایور مختلف است که رایج ترین آنها ColorControl، GammaControl، SoundControl و TempControl است.
دو رابط اول تقریباً در همه جا در دسترس هستند، از جمله هسته های CyanogenMod، دو رابط دوم در Leankernel و شاید در سایرین در دسترس هستند. به هر طریقی، همه آنها را می توان با استفاده از Trickster MOD کنترل کرد.
هسته ها
کدام هسته را باید انتخاب کنید؟ هیچ پاسخ روشنی برای این سوال وجود ندارد، و نه به این دلیل که "به هر کدام خودش"، بلکه به این دلیل که تعداد زیادی دستگاه اندرویدی در جهان وجود دارد و تقریباً به همان اندازه هسته های مختلف وجود دارد. با این حال، چندین هسته محبوب وجود دارد که برای چندین دستگاه به طور همزمان در حال توسعه هستند. به هر شکلی در طول داستان به بسیاری از آنها اشاره کردم و در اینجا به شرح مختصری از آنها می پردازم.
- Leankernel هسته اصلی Galaxy Nexus، Nexus 7 و Galaxy S III است. تاکید اصلی در طول توسعه بر سادگی و سرعت کار است. الگوریتم صرفه جویی در انرژی: InteractiveX V2، زمانبندی I/O: ROW، تمامی رابط های کنترلی فوق، پشتیبانی از شارژ سریع USB، تعویض و zram، گزینه های اورکلاک انعطاف پذیر برای CPU و GPU. یکی از بهترین هسته ها قابل تنظیم با استفاده از Trickster MOD.
- Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) - هسته برای Nexus S و Nexus 4. هسته ساده و بارگیری نشده. پشتیبانی از اورکلاک CPU و GPU، GammaControl، Fast USB Charge، Sweep2wake، زمانبندی I/O: SIO، ROW و FIOPS. ترفندهای عملکردی قابل تنظیم با استفاده از Trickster MOD.
- Bricked-Kernel (http://goo.gl/kd5F4, goo.gl/eZkAV) - یک هسته ساده و بدون بار برای Nexus 4 و HTC One X. بهینهسازیها برای Snapdragon S4 و NVIDIA Tegra 3، حالت صرفهجویی در مصرف انرژی دوباره طراحی شده برای Tegra 3 ، توانایی اورکلاک، الگوریتم صرفه جویی در انرژی: OnDemand تنظیم شده (همچنین تعاملی موجود است).
- SiyahKernel - هسته برای Galaxy S II و S III. گزینههای اورکلاک انعطافپذیر، کالیبراسیون خودکار باتری، بهبود درایور صفحه لمسی، الگوریتمهای صرفهجویی در مصرف انرژی: smartassV2 و lulzactiveV2، زمانبندیهای ورودی/خروجی: noop، مهلت، CFQ، BFQV3r2 (پیشفرض)، V(R)، SIO. درایورهای CIFS و NTFS (با نصب خودکار). با استفاده از ExTweaks قابل تنظیم است.
- franco.Kernel - هسته برای Nexus S، Galaxy Nexus، Nexus 4، Nexus 7، Nexus 10، Galaxy S III، Galaxy Note، Optimus One و One X.
قابلیتهای هسته از دستگاهی به دستگاه دیگر بسیار متفاوت است، بنابراین باید جزئیات را در سایت بررسی کنید. با این حال، با فلش کردن این کرنل، قابلیت اورکلاک، تنظیم درایور، عملکرد عالی و همچنین پشتیبانی از الگوریتم ها و زمان بندی های مختلف صرفه جویی در انرژی را خواهید داشت. در واقع، هسته تقریباً شامل تمام ترفندهایی است که در مقاله توضیح داده شده است. یکی از بهترین هسته های موجود در نظر گرفته می شود. برنامه ای برای به روز رسانی خودکار franko.Kernel Updater وجود دارد. می توانید آن را با استفاده از Trickster MOD پیکربندی کنید.
روش نصب؟
همه هستهها در آرشیوهای ZIP استاندارد Android توزیع میشوند، که باید از طریق کنسول بازیابی به همان روشی که سفتافزارهای جایگزین دارند، فلش شوند. به طور معمول، هستهها با هر سیستمافزاری سازگار هستند، بنابراین پس از انتخاب هسته مناسب، میتوانید با خیال راحت آن را نصب کنید. تنها چیزی که باید به آن توجه کنید نسخه اندرویدی است که هسته با آن سازگار است. این می تواند برای همه نسخه های اندروید موجود برای دستگاه مناسب باشد یا فقط با یکی کار کند (توسعه دهنده معمولاً به صراحت در این مورد صحبت می کند). قبل از فلش کردن فریمور، حتما با استفاده از همان کنسول ریکاوری از فریمور فعلی یک نسخه پشتیبان تهیه کنید. اگر مشکلی پیش بیاید، همیشه می توانید به عقب برگردید.
نتیجه گیری
همانطور که می بینید، هسته های سفارشی مزایای زیادی نسبت به هسته های مورد استفاده در سیستم عامل استاندارد یا شخص ثالث دارند. و مهمتر از آن این است که برای استفاده از آنها نیازی به دانستن همه پیچیدگیهای اندروید ندارید؛ فقط آرشیو ZIP را دانلود و نصب کنید.