۱۳۹۲ آبان ۲۵, شنبه

نکسوز ۷، اندروید ۴.۴، روت و دیگر مخلفات در لینوکس

امروز قراره که آندروید ۵ برای نکسوزها منتشر بشه
مطلب رو یه بررسی مختصر کردم، لینک‌ها آپدیت شدن و احتمالا تمام مراحل برای آندروید ۵ به همین روش جواب بدن.
(در مورد روت باید بگم که طبق چیزی که توی  این پست گوگل پلاس خوندم chainfire اعلام کرده که روت کردن آندروید ۵ به دلیل وجود SELinux یکم سخت‌تر شده و نیاز به دست کاری kernel داره، و درضمن ممکنه تا مدتی بعضی از اپ‌هایی که نیاز به روت دارن مشکل داشته باشن، تا زمانی که اپدیت جدید اون اپ‌ها منشتر بشه)

بعد از این که از شر گالاکسی تب ۷.۷ خلاص شدم ( البته به ذات دستگاه بدی نبود ولی سامسونگ خوب بلده بل‌فعل دهن کاربرو سرویس کنه. حالا باز سامسونگ خوبشه، فلگ شیپ‌هاشو خوب ساپورت می‌کنه، بقیه شرکت‌ها که دیگه ول معطلن (جدیدا متوجه شدم که تب ۷.۷ دستگاهی بوده که توی شکایت‌های اپل از سامی فروشش توی آمریکا ممنوع شده. خداوند لعنت کند پتنت ترول‌ها رو))، و تونستم یه نکسوز ۷ بخرم، سرمست از این که دیگه حالا راحت آخرین آپدیت‌ها رو دریافت می‌کنم، آقا هرچی هی چک کردیم دیدیم خیر! خبری از اندروید ۴.۴ نشد. از ما چک کردن و از گوگل اسرار که آخرین ورژنو داری.

یکی از دوستام خبر داد که ای ملحد اگه آپدیت نکردی ایمیج‌هاش اومده، بیا و دستی آپدیت کن و این قدر خودتو اذیت نکن.
با این که زیاد گالاکسی تب رو دستکاری می‌کردم ولی نمی‌دونم چرا اصلا حس دست زدن به نکسوز رو نداشتم. انگار داشت کارشو خوب انجام می‌داد. ولی خوب چه کنیم که چیزی در وجودمان الگولک می‌کرد که آپدیت کن، آپدیت کن!

خبر خوب اینه که گوگل image ها و درایورهای دستگاه‌های نکسوزی رو کامل منتشر کرده که این می‌تونه بعدا برای دولوپرهایی که کاستوم رام می‌سازن، مفید باشه (خیلی مفید باشه) :)

آپدیت کردم به ۴.۴
دستگاه رو روت کردم
لانچر نکسوز ۵
و الی آخر

شاید مثل من نگران این باشید که با دستکاری تبلت یا گوشیتون دیگه آپدیت‌های رسمی یا همون OTA رو دریافت نکنید.
۴ تا حالت وجود داره
  • دستگاهتون دست نخوردست یا به اصطلاح stock هست
  • دستگاه بوت لودرش آنلاک شده و روت کرده باشید
  • بعد از روت، یک سری از فایل‌های اصلی دستگاه رو تغییر داده باشید، مثلا مودهای مختلف مثل pimp my rom نصب کرده باشید
  • کاستوم رام فلش کرده باشید (کل رام رو تغییر دادید)
درضمن دو نوع آپدیت داریم
  • آپدیت‌های جزئی که فقط چندتا فایل از فایل‌های سیستمی رو آپدیت می‌کنه، مثل آپدیت‌های امینتی و یا آپدیت‌های باگ فیکس.
  • آپدیت‌های کلی مثل همین آپدیت از اندروید ۴.۳ به اندروید ۴.۴ که کل فایل‌ها تغییر می‌کنن. از بوت لودر گرفته تا ریکاوری و تمام فایل‌های سیستم.
حالت اول که روال عادی دستگاه هست و شما آپدیت‌ها رو به راحتی دریافت می‌کنید.
حالت دوم شما با روت کردن دستگاه درواقع فایل جدیدی رو به دستگاه اضافه کردید که اون باینری SU هست. ولی هیچ کدوم از فایل‌های اصلی سیستم تغییر نکرده. پس هر دو آپدیت جزئی و کلی رو دریافت می‌کنید.
حالت سوم چون یک سری از فایل‌ها رو دستکاری کردید، اجازه‌ی آپدیت‌های جزئی رو ندارید، چون فایل‌هایی که قراره آپدیت بشن، نیاز به هماهنگی با بقیه‌ی فایل‌ها دارن و چون شما دستکاری کردید ممکنه اشکالی به وجود بیاد. ولی درمورد آپدیت‌های کلی، چون سیستم، تموم فایل‌ها رو جایگزین می‌کنه، درواقع همه چیز برمی‌گرده به حالت اول و مشکلی به وجود نمیاد، پس می‌شه آپدیت کرد.
حالت چهارم هم که دیگه کاملا معلومه. با فلش کردن کاستوم رام درواقع چیزی از رام اصلی باقی نمونده که بخواد چک بکنه ببینه آپدیت اومده یا نه. شما رام جدیدی دارید که باید به روش خود همون رام آپدیت‌ها رو انجام بدید. (شبیه این می‌مونه که ویندوز رو پاک کرده باشی و لینوکس نصب کرده باشی، بنابراین نباید منتظر آپدیت‌های ویندوز بمونی)

(چیزی که الآن اتفاق افتاده اینه که روت کردن اندروید ۵ نیاز داره تا فایلی رو توی کرنل دستکاری بکنه، این یعنی از این به بعد روت کردن زیر مجموعه‌ی حالت سوم قرار می‌گیره و در نتیجه از آپدیت جزئی خبری نخواهد بود)
(این رو هم اضافه بکنم که کلا آپدیت اگر بیاد شما دریافت می‌کنید ولی موقع نصبه که پیغام خطا می‌ده)

روش‌های مختلفی برای دستکاری نکسوزها وجود داره (توی انجمن سایت xda-developers.com دنبال روش‌های جدیدتر بگردید)
نمونه‌هاش

(توصیه می‌کنم اگه بش اسکریپ بلدید، یه نگاهی به اسکریپت Universal Nexus Linux Toolkit بندازید تا کلی چیز جدید یاد بگیرید)

ولی از اونجایی که ما توی ایران زندگی می‌کنیم و این کارای اوتوماتیک که اتفاقا نیاز به اینترنت هم داره، به کار ما نمیاد. (این ابزارها از دانلود منیجر استفاده نمی‌کنن و درضمن برای هر بار استفاده باید فایل مجددا دانلود بشه، لااقل می‌تونیم یک بار فایل‌ها رو دانلود و صد بار استفاده کنیم) درضمن ممکنه که این نرم‌افزارها هنوز برای اندروید ۴.۴ آماده نباشن، پس آستین‌ها رو بالا می‌زنیم و خودمون همه چیز رو انجام می‌دیم.

نکته: این روش‌ها توی ویندوز و لینوکس، مک و خلاصه هر سیستم‌عاملی که بشه توش اندروید توسعه داد جواب می‌ده، من خودم برای نکسوز ۷ استفاده کردم و احتمالا باید برای نسخه‌ی ۲۰۱۳ و حتی بقیه‌ی نکسوز‌ها هم به راحتی جواب بده.
مراقب باشید، دستگاهتون رو نابود نکنید. چون مسئولیتش با خودتونه!

نیاز به دوتا پکیج داریم
Android USB driver (توی لینوکس به این پکیج احتیاجی نیست)
Platform-Tools که شامل دوتا برنامه به اسم adb و fastboot هست  و ما برای ادامه‌ی کار به این دوتا نیاز داریم

می‌تونین Android Developer Tools  رو از این لینک دانلود کنید ولی چون حجم زیادی داره به نظرم بهتره از لینک‌های پایین صفحه گزینه‌ی VIEW ALL DOWNLOADS AND SIZES رو انتخاب کنید و توی صفحه‌ی جدید باز شده فقط SDK رو دانلود کنید

دوستان اوبونتویی و دبیانی می‌تونید بدون نیاز به دانلود SDK و فقط با دستور زیر این مرحله رو انجام بدید
sudo apt-get install android-tools*
در هر صورت بعد از دانلود کردن می‌ریم سراغ آنلاک کردن بوت‌لودر دستگاه.
نکسوزها چون دستگاه‌های دولوپری به حساب میان آنلاک کردن بوت لودرشون مثل آب خوردنه
وارد تنظیمات دستگاه بشید و گزینه‌ی USB Debuging رو فعال کنید
setting > Developer Options > USB Debugging
اگر گزینه‌ی Developer Options رو نمی‌بینید به این دلیل هست که در آندروید‌های ۴.۲ به بعد این گزینه مخفی شده.
وارد About Tablet یا حالا About Phone بشید و اینقدر روی گزینه‌ی ‌Build Number بزنید تا دستگاه خودش بهتون اعلام کنه که شما یک دولوپر هستید و گزینه‌ی Developer Options رو فعال بکنه. (یادتون باشه که بعد از تموم شدن تمام این کارها، usb debugging رو غیر فعال کنید تا مشکلی براتون پیش نیاد)

دستگاه رو با یو اس بی به سیستم وصل بکنید و دستور زیر رو اجرا کنید تا وارد fastboot بشید (درستش bootloader هست ولی معروف شده به fastboot یا یه دلیل دیگه که من نمی‌دونم)
البته بسته به نوع نکسوزتون بعد از خاموش کردن دستگاه می‌تونید با گرفتن کلید‌های ترکیبی صدا و پاور، دستگاه رو به fastboot ببرید (اینجا توضیحات کامل داده شده)
adb reboot bootloader
بعد از رفتن به fastboot دستور زیر رو اجرا کنید تا بوت لودر شما آنلاک بشه
دستگاه از شما می‌پرسه که آنلاک شدن بوت لودر گارانتی رو از بین می‌بره که باید با کلید پاور دستگاهتون اون گزینه رو تایید کنید (نگران نباشید، می‌تونید از طریق اون ابزارهایی که اول کار معرفی کردم، بعدا بوت‌لودر رو لاک کنید)
fastboot oem unlock
در ادامه باید image مورد نظرمون رو از اینجا دانلود کنیم
فایل image دانلود شده رو از حالت فشرده خارج کنید و بسته به نوع سیستم‌عاملتون فایل‌های اسکریپ توی پوشه رو اجرا کنید. flash-all.bat برای ویندوز و flash-all.sh برای لینوکس و مک.
صبر کنید تا اسکریپ کاملا اجرا بشه و ازش خارج بشه.

برای تازه کارا
روی اسکریپت دابل کلیک نکیند. چون اینطوری متوجه نمی‌شید که اسکریپت کی کارش تموم می‌شه
ترمینال رو باز کنید
و با دستور cd وارد پوشه‌ای بشید که فایل‌های image قرار داره و به صورت زیر اسکریپت رو اجرا کنید. اینطوری تمام مراحل کار رو توی ترمینال می‌بینید.
./flash-all.sh
در نهایت دستگاه ری استارت می‌شه و کار تمومه

(فعلا یعنی در این لحظه که دارم مطلب رو تغییر می‌دم برای روت کردن اندروید ۵ باید از نسخه‌ی v2.17 BETA یا بالاتر روتی که توسط chainfire ارائه شده استفاده کنید، که اگر سری به گوگل پلاس این دوست عزیز بزنید گفته احتمالا فعلا باگ داشته باشه.)
(کاستوم ریکاوری عملا نباید ربطی به نسخه‌ی آندروید شما داشته باشه و انتظار می‌ره که بدون مشکل کار بکنه)
برای روت کردن دستگاه دوتا کار دیگه لازمه
فلش کردن Custom Recovery و نصب روت
فایل کاستوم ریکاوری رو از این لینک دریافت کنید
آخرین نسخه‌ی  روت رو هم از این لنک دریافت کنید

وارد fastboot بشید
و دستور زیر رو توی کامندلاین اجرا کنید
fastboot flash recovery FILENAME.img
بعد از فلش شدن custom recovery
با کلید‌های صدا توی منوی fastboot جابجا بشید تا به گزینه‌ی recovery mode برسید، با فشار دادن دکمه پاور این گزینه رو تایید کنید تا وارد ریکاوری بشید
وارد قسمت زیر بشید
install zip > install zip from sideload
دستور زیر رو اجرا کنید
adb sideload ROOTFILENAME.zip
کار تمومه و دستگاه شما روت شده
درضمن می‌تونید به جای استفاده از sideload، از install zip from sd card استفاده کنید. در این صورت باید قبل از این که وارد ریکاوری بشید، فایل zip رو روی حافظه دستگاهتون قرار بدید.
نکته دیگه این که دستگاه‌های نکسوزی بعد از هر بار ریست شدن، سعی می‌کنن کاستوم ریکاوری رو به حالت اولیه برگردونن. موقع خروج از ریکاوری ازتون می‌پرسه که می‌خواید کاری کنه که کاستوم ریکاوری به حالت اول بر نگرده و شما اوکی می‌دید. (این کار درواقع یه فایل اسکریپت رو که هر بار روشن شدن دستگاه اجرا می‌شه تا ریکاوری رو به حالت اول برگردونه، دستکاری می‌کنه. البته برای روت هم این پیغام رو می‌ده و می‌گه ممکنه روت رو از دست بدید و اگر می‌خواید براتون کاری می‌کنه که روت رو از دست ندید).

چیزی که این بار اضافه می‌کنم به مطلب کاستوم کرنل franco هست
کرنلی که با تغییر یک سری از پارامترهای دستگاه شما باعث کم شدن مصرف باتری می‌شه (تجربه‌ی من روی ۴.۴ بدون هیچ مشکلی بود، امیدوارم که برای اندروید ۵ هم همینطور باشه. البته باید اضافه کنم که هنوز برای ۵ چیزی ارائه نکرده)
از این لینک می‌تونید دانلود کنید
وارد بوت لودر بشید و با دستور زیر نصبش کنید.
fastboot flash boot name_of_the_image.img


(مواردی که در ادامه نوشتم نیازی به انجام نیست، لانچر نکسوز ۵ الآن به اسم Google Now Launcher منتشر می‌شه و همه حتی غیر نکسوزی‌ها هم بدون مشکل می‌تونن ازش استفاده کنن)
حالا که دستگاه بالا اومد می‌بنیم نه خبری از لاچر جدید هست و نه خبری از شفاف شدن پنل‌های بالا و پایین صفحه.
قضیه اینه که پنل‌ها برای شفاف بودن نیاز دارن که برنامه‌ای که روی صفحه درحال اجرا هست اون‌ها رو به صورت شفاف دربیاره و لانچر دیفالت آندروید این کارو نمی‌کنه.
درضمن از لانچر نکسوز ۵ هم خبری نیست
توی این لینک توضیح داده شده که باید لانچر نکسوز ۵ رو دستی نصب کنید
لانچر نکسوز ۵ با سرچ صوتی گوگل یا همون google now یکی شده و از خوبی‌های این یکی شدن اینه که اگه نسخه‌ی جدید نرم‌افزار سرچ گوگل رو با لانچر نکسوز ۵ داشته باشید، هر وقت توی هوم اسکرین دستگاهتون باشید می‌تونید با گفتن "OK Google"، سرچ رو فعال کنید. تقریبا شبیه کاری که Motorola Moto X انجام می‌ده. (البته این دوتا خیلی فرق داره با هم)


یادتون باشه که سرچ رو نصب کردید، اجراش نکنید. قبل از اجرا کردن سرچ، لانچر رو نصب کنید. این باعث می‌شه که حالت ok google فعال بشه.
بقیه‌ی دستگاه‌های غیر نکسوزی هم می‌تونن از این قابلیت استفاده کنن ولی طبق لینک باید یکمی تلاش کنن تا ok google فعال بشه.
روی نکسوز ۷ بدون هیچ دردسری فعال شد.

آخرین نکته هم این که اگر دنبال Android Run Time روی نکسوز ۷ می‌گردید باید بگم که متاسفانه ارائه نشده!
یعنی فعلا فقط برای نکسوز ۴ و ۵ و نکسوز ۷ سری جدید! (البته در هر صورت ART هنوز آزمایشیه و قراره برای اندروید بعدی آماده بشه)

مسلما می‌دونید که ART توی نسخه‌ی ۵ ران تایم اصلی سیستم هست و هر دستگاهی با اندروید ۵ از ART استفاده می‌کنه.