
روت کردن چیست؟

روت بودن گوشی، انبوهی از امکانات جذاب و کاربردی را به گوشیهای اندرویدی اضافه خواهد کرد.
اگر گوشی اندرویدی دارید، احتمالاً اصطلاح «روتکردن» شما را با این سؤال روبهرو کرده باشد که اساساً با روت کردن اندروید چه اتفاقی برای گوشی میافتد و به چه کاری میآید.
در مقالهی پیش رو قصد داریم که ضمن پاسخ به این سؤال، توضیحاتی را در مورد سازوکار عمل روت و چگونگی اعمالپذیری آن در اندروید، تغییرات صورتگرفته و مزایا و معایب روت کردن ارائه دهیم و با نحوهی روت کردن انواع گوشی اندروید آشنا شویم.
روت چیست؟
روت کردن، درواقع اشاره به واژهی Root یا دسترسی ریشه دارد. از آنجا که سیستمعامل اندروید برپایهی کرنل لینوکس توسعه یافته، روت کردن در اندروید بهمثابهی همان دسترسی Superuser در سیستمعاملهای مبتنیبر لینوکس و شبه یونیکسی است و کاربر روت بالاترین مرتبه در انواع دسترسیها به بخشهای مختلف سیستمعامل را دارد.
بنابراین دسترسی روت در اندروید نیز قابل تعریف است، اما گوگل این سیستمعامل را بهگونهای طراحی کرده که بنا به دلایلی که در ادامه مقاله عنوان خواهیم کرد، دسترسی یادشده بهصورت پیشفرض برقرار نباشد؛ اما بهدلیل ماهیت لینوکسی اندروید میتوان این دسترسی را در هر صورت برقرار کرد و تنها روشهای آن برای دورزدن پروتکلهای محافظتی سیستمعامل متفاوت خواهد بود.
با روت کردن اندروید چه اتفاقی برای گوشی میافتد؟
همانطور که گفتیم، برقراری دسترسی روت بهمعنای کسب بالاترین درجه از اختیارات برای انجام اعمال مختلف در سیستمعامل است. در اندروید، این یعنی حدود اختیارات کاربر از محدودهی تعیینشده توسط گوگل فراتر خواهد رفت. روت شدن گوشی بهتنهایی تغییری را در سیستمعامل ایجاد نمیکند، بلکه بستری را فراهم میکند که با استفاده از ابزارهای مختلف بتوان به لایههای زیرین سیستمعامل ورود کرد و بهنوعی امکان مداخله در اجزاء و چهارچوب سیستمعامل را به دست گرفت.
بهبیانی سادهتر امکان یا قابلیتی خاص بلافاصله پس از روتشدن دردسترس قرار نمیگیرد که تا پیش از آن از دید کاربر مخفی بوده باشد؛ بلکه بهکمک یک عامل واسطه که توانسته است کدهای خود را در سطح سیستم به اجرا دربیاورد، مسیر دسترسی جدید و مجزایی را برای ابزارها و برنامهها باز میکند.
یک مثال واضح از نقشی که دسترسی روت در یک گوشی اندرویدی ایفا میکند، آن است که سیستمعامل شامل فایلهای سیستمی مختلفی میشود که در پارتیشنهای مختلف تفکیک شدهاند و هریک از پارتیشنها وظایف خاصی در سیستمعامل دارند. بهصورت پیشفرض، کاربر عادی تنها امکان دسترسی به بخشی از پارتیشن Data برای ذخیره فایلهای شخصی خود را دارد و اپلیکیشنها نیز تنها امکان دسترسی به فضایی را که خود سیستمعامل برای آنها تعریف میکند، دارند؛ اما با اعطای دسترسی روت، سیستم، درخواست خواندن یا ویرایش مسیر غیرمجاز را قبول میکند و کاربر میتواند تغییرات مورد نظر را اعمال کند.
در مورد سایر مواردی که دستورمحور هستند و تغییری را با ارسال دستور در سیستم اعمال میکنند هم به همین صورت است، اما هدف از روتکردن و اخذ این دسترسیها چیست؟
روت کردن به چه دردی میخورد؟
ازآنجاکه روتکردن ساختار سلسله مراتبی و سطوح مختلف دسترسی را در هم میشکند و دیگر هیچ محدودیتی از سمت سیستم دستوپاگیر نخواهد بود، هر تغییر و دخالتی را تا جایی که ظرفیتهای سختافزاری اجازه دهند، میتوان با استفاده از ماژولها و ابزارهای مخصوص دستگاههای روتشده یا با دخالت مستقیم کاربر در نرمافزار و نحوهی کارکرد سختافزار ایجاد کرد.
در اینجا بهتعدادی از مهمترین کاربردهای روت اشاره میکنیم:
- اختیار عمل بیشتر در شخصیسازی جزئیترین بخشهای ظاهری و المانهای بصری رابط کاربری
- امکان دستیابی و تغییر تنظیمات مربوط به کنترل منابع سیستمی مانند فرکانس پردازنده، هستههای فعال، تغییر مقادیر رم مجازی، نحوهی عملکرد سیستم از نظر مدیریت برنامهها در پسزمینه و سایر مواردی از این دست بهمنظور افزایش بهرهوری و کاهش مصرف باتری
- فعالسازی برخی ویژگیها و امکانات کاربردی که در رابط کاربری وجود ندارند یا غیرفعال هستند
- حذفکردن و سبکسازی سیستمعامل از قابلیتها، اپلیکیشنها و ویژگیهایی که ممکن است برای فرد کارایی نداشته باشند
- حذف یا دورزدن محدودیتهایی که بهدلایل مختلف حفاظتی و امنیتی وجود دارند و ممکن است در روند برخی کارها اختلال و محدودیت ایجاد کنند یا دستوپاگیر باشند
- امکان دستیابی به ابزارهای پیشرفته کنترل و رهگیری منابع سیستمی و شبکه که میتواند برای برنامهنویسان و حتی عیبیابی نیز مفید باشد
چرا اندروید بهصورت پیشفرض روتشده نیست؟
اندروید برپایهی ویرایش تغییریافتهای از کرنل لینوکس توسعه پیدا کرده، اما ازآنجاکه این سیستمعامل صرفاً برای گوشی و تبلتها طراحی میشود تا برای استفاده عموم مناسب باشد، برای تمامی اجزای سیستمعامل، از جمله سرویسها و اپلیکیشنها حدود مشخصی از دسترسی تعیین شده است و خود کاربر نیز حوزهی اختیارات مشخصی دارد.
بزرگترین دلیل این کار، مصون نگهداشتن لایههای سیستمی و ساختاری از امکان نفوذ و دستکاری به جهت آن است که لایههای یادشده مستقیماً با اجزای حیاتی دستگاه سروکار دارند و بروز هرگونه مشکل برای این لایهها بهمنزلهی خارج شدن دستگاه از کارکرد نرمال خود و حتی خرابی آن خواهد بود.
در وهلهی بعدی مسئلهی امنیت کاربران، حریم خصوصی و دادههای شخصی آنان مطرح است. در یک گوشی روتشده احتمال سوءاستفاده از این موارد و سرقت دادهها با نفوذ به ابزارهای کنترلی از طریق آسیبپذیریهای موجود در آنها بیشتر است یا اینکه احتمال دارد خود ابزارهایی که امکان کنترل سیستم بهواسطه دسترسی روت را برعهده میگیرند، درون خود دارای سازوکاری برای پیشبردن اقدامات خرابکارانه باشند.
همچنین موضوع حفاظت از آثار دیجیتالی دارای حق کپیرایت، یکی دیگر از عواملی است که سازندگان را ملزم میکند تا پروتکلهایی برای محافظت از نشر یافتن غیرقانونی محتوا در نظر بگیرند و طبیعتاً روتبودن گوشی این امکان را سازنده سلب میکند. بهطور کلی دلایل زیادی برای اجتناب از دسترسی روت وجود دارد که مهمترین آنها به مسائل سلامت و امنیت دستگاه ربط پیدا میکند.
چگونه اندروید روت میشود؟
هر سیستمعاملی برای بهاجرا درآمدن نیاز به فرایند «بوتشدن» دارد. در این فرایند سطحاولترین فایلهای سیستم جهت بالا آوردن رابط گرافیکی سیستمعامل، فراخوانی میشوند. در بین این فایلهای سیستم، مواردی هستند که وظیفهی Mount کردن پارتیشنها و نسبتدادن نوع دسترسی هر نوع سرویس اجرایی بهصورت مجزا را دارند. در این مرحله است که ابزار روت از طریق نفوذ به آن بخش، کدهای قسمت مذکور را دستخوش تغییرات و دسترسی روت را در سیستمعامل فعال میکند.
بهطور دقیقتر این دستکاری در پروسهی init که در حین بوت اندروید وارد عمل میشود، اتفاق میافتد. گفتیم که سیستم اندروید از پارتیشنهای مختلفی تشکیل شده است که هرکدام وظایف خاصی برعهده دارند.
پارتیشنی که وظیفهی بارگذاری سیستمعامل از ابتدای روشن کردن دستگاه را دارد، پارتیشن بوت یا Boot.img است و اسکریپتی که باعث فعالشدن دسترسی Superuser میشود، پارتیشن بوت و Init را دستکاری میکند و حین بوتشدن گوشی، کدهای این بخش را تغییر میدهد. درواقع عمل یادشده هربار در هنگام بالاآمدن سیستمعامل گوشی و Mount شدن پارتیشنها تکرار میشود.
در گوشیهای اندرویدی جدیدتر (عموماًنسخههای ۱۳ به بالا)، پروسهی Init از پارتیشن بوت جدا شده و در یک پارتیشن جدا به اسم init_boot.img قرار گرفته است و ابزار روت با پچکردن این پارتیشن، دسترسی Superuser را بهدست میآورد. در نتیجه فرایند روتکردن گوشی با پچشدن یکی از پارتیشنهای Boot.img یا init_boot.img صورت میگیرد و تغییر پیدا کردن این پارتیشنها نیازمند آنلاککردن بوتلودر بهمنظور فلششدن پارتیشنهای تغییریافته است.
روت کردن چه معایبی دارد؟
روتکردن باعث از بینبردن تمامی محدودیتهایی میشود که بهخاطر ملاحظات سلامتی و امنیتی گوگل برای اندروید درنظرگرفته شدهاند. روتکردن گوشی به خودی خود خطرناک نیست و تهدیدی برای سلامت دستگاه محسوب نمیشود، اما اگر اقداماتی بدون اطلاع از عواقب آن صورت گیرند و یا تغییراتی خودسرانه توسط کاربر در صورتی که قبلاً امتحان خود را توسط فرد دیگری پس نداده باشد، ایجاد شود، میتواند علاوهبر آسیبهای نرمافزاری، خسارتهای سختافزاری به گوشی وارد کند.
با همهی این تفاسیر، روتکردن بهطور کلی از سوی گوگل و همچنین سازندگان نهی شده و به همین خاطر تمهیدات بازدارندهای برای هر کاربری که گوشی خود را روت کند، در نظر گرفته شده است که زیرپاگذشتن آن باعث غیرفعال شدن برخی امکانات و همچنین قابلیتهای محافظتی و امنیتی دستگاه میشود. برخی از این موارد عبارتاند از:
- باطلشدن گارانتی دستگاه در صورت روتبودن گوشی و ابطال دائمی گارانتی گوشیهای سامسونگ بهدلیل از کار افتادن همیشگی سیستم امنیتی Knox
- غیرفعالشدن سرویس SafetyNet گوگل که به کار افتادن برخی اپلیکیشنها، برخی برنامههای پرداخت و اپلیکیشنهای بانکی را به دنبال دارد (این مورد قابل رفع شدن است اما در برخی شرایط شاید راهکاری برای آن وجود نداشته باشد)
- از کار افتادن بهروزرسانیهای OTA بهدلیل امکانپذیرنبودن اعمال بهروزرسانی روی سیستمعامل دستکاریشده
- غیرفعالشدن همیشگی پلتفرم امنیتی Knox و برنامههایی که تحت این پلفترم کار میکنند؛ مانند Secure Folder ،Samsung Pass ،Samsung Health و Samsung Pay
ضمناً با وجود مزایا و آزادی عمل بیشتری که روتکردن اندروید در اختیار کاربر میگذارد، هماکنون در گوشیهای جدید نیاز به روتکردن کمتر احساس میشود؛ بهخصوص اینکه روتکردن سیستمعامل بیشتر در خصوص رامهای سفارشی کاربرد دارد و گوشیهای جدید هم از نظر امکانات و هم از نظر مدت دریافت بهروزرسانیهای اندروید و هم از نظر عملکرد، پیشرفتهای بسیاری بهخود دیدهاند. بااینحال روتکردن برای برخی محدودیتها یا نیاز مبرم به فعالکردن برخی از امکانات یا برای توسعهدهندگان و عیبیابی همچنان کاربرد دارد.
اما اگر از کاربرانی هستید که میخواهید هیچ محدودیتی بر سر راهتان در ایجاد تغییرات مورد نظر در ساختار سیستمعامل وجود نداشته باشد و هر جایی از سیستمعامل را مطابق سلیقهی خود چه از نظر ظاهری و چه از نظر عملکردی شخصیسازی کنید یا اینکه قصد دارید که به امکانات بیشتری دسترسی داشته باشید و از حداکثر ظرفیتهای گوشی هوشمند خود برای نهایت استفاده از آن و گسترش کارکردهای آن استفاده کنید، روت کردن را همچنان بهعنوان یکی از بهترین کارهایی که با گوشی اندروید میتوان انجام داد، به شما توصیه میکنیم.