روت (root) در اندروید
شاید تا به حال کلمهی روت (root) به گوشتان خورده باشد یا اینکه در مغازه های تعمیرات موبایل تبلیغی با مضمون “روت کردن گوشی” دیده باشید. در اصطلاح root به معنای ریشه میباشد. یک سیستمی را در نظر بگیرید که از اجزای مختلف تشکیل شده و همهی این اجزاء به یک جزء وابسته هستند؛ آن جزء همان root یا ریشه است. در این آموزش قصد داریم راجع به root اطلاعات بیشتری را کسب کنیم و مزایا و معایب آن را مورد بررسی قرار دهیم.
اندروید یک سیستم عامل با هستهی لینوکس (Linux) است. در سیستم های بر پایهی یونیکس (Unix base) همانند لینوکس ، ما دو نوع حساب کاربری (user account) تحت عنوان حساب کاربری معمولی (normal user account) و حساب روت (root account) داریم. حساب کاربری معمولی امکانات کمتری نسبت به حساب کاربری root دارد و گاها ما به انجام کارهایی نیاز داریم که در سطح دسترسی root امکان پذیر است.
حساب root به همه ی امکانات سیستم عامل دسترسی دارد. امکاناتی مثل بروزرسانی (update) سیستم عامل، نصب برنامه، تغییر در سیستم عامل، توانایی اجرای دستور (command) و از این قبیل کار ها را دارا میباشد. دسترسی داشتن به حساب root یعنی داشتن امکانات و دسترسی بدون محدودیت در دستگاه اندروید.
یکی از راه هایی که میتوان root بودن دستگاه را تشخیص داد، استفاده از روش زیر است. (ابتدا آموزش کار با adb را مطالعه کنید.)
در shell دستگاه دستور su را اجرا میکنیم. (در صورتی که دسترسی root را نداشته باشیم با خطای زیر مواجه میشویم)
shell@android:/ $ su /system/bin/sh: su: not found 127|shell@android:/ $
اگر دستگاه root شده باشد ، کاربر روت یک UID با مقدار ۰ دارد. (مانند متن زیر)
shell@android:/ $ su root@android:/ # id uid=0(root) gid=0(root) root@android:/ #
چرا باید دستگاه خود را روت کنیم؟!
همانطور که در بالا ذکر کردیم ، کاربر root همهی دسترسی ها را در دستگاه دارد. البته هدف root در افراد مختلف متفاوت است. مثلا عده ای برای نصب تم های متنوع یا فونت های مختلف یا نصب نرم افزار هایی که برای اجرا نیاز به دسترسی root دارند دستگاه خود را روت میکنند.
مزایای روت
۱- کنترل بدون محدودیت روی دستگاه (برای مثال اجرای دستور زیر در حساب معمولی و root)
shell@android:/ $ ls /data/data opendir failed, Permission denied 1|shell@android:/ $
shell@android:/ $ su root@android:/ # ls /data/data com.android.backupconfirm com.android.bluetooth com.android.browser com.android.calculator2 com.android.calendar com.android.certinstaller com.android.chrome com.android.defcontainer com.android.email com.android.exchange
۲- نصب برنامه های اضافی
بعضی نرم افزار ها برای نصب به دسترسی root نیاز دارند ، مثل BusyBox که یک نرم افزار برای اجرای دستور های مفید لینوکسی است. دستگاه های اندرویدی به صورت پیشفرض قابلیت نصب این نرم افزار ها را ندارند.
۳- ویژگی های بیشتر و شخصی سازی
با نصب ریکاوری شخصی (custom recovery) و رام های شخصی (custom ROM) روی دستگاه اندرویدی، میتوانیم ویژگی ها و شخصی سازی بیشتری نسبت به سیستم عامل اولیهی دستگاه داشته باشیم.
معایب روت
۱- خطر امنیتی دستگاه
به صورت پیشفرض نرم افزار ها در دستگاه اندروید درون sandbox خود با UID اختصاص داده شده توسط سیستم عامل اجرا میشوند. یک برنامه به صورت تضمینی با توجه به UID اختصاصی خود از دیگر برنامه های در حال اجرا جدا میشود و برنامه های دیگر، نمیتوانند به منابع یا داده های برنامه با UID های مختلف دسترسی داشته باشند.
در یک دستگاه روت شده یک برنامهی مخرب میتواند بدون محدودیت و اجازه (premission) دیگر، و فقط با استفاده از دسترسی root، به پیامک ها، تماس ها، مخاطبین و اطلاعات بقیه برنامه ها دسترسی داشته باشد. (اگر دستگاه روت شده باشد و گم یا دزدیده شود اطلاعات شما در خطر است!)
بهتر است یک مثال کاربردی در این مورد ببینیم.
با استفاده از URI زیر میتوان به پیامک های پیشنویس دسترسی داشت.
content://sms/draft
با استفاده از adb و بکار گیری shell و اجرای دستور زیر میتوان به پیامک های پیشنویس دسترسی پیدا کرد.
shell@android:/ $ su root@android:/ # content query --uri content://sms/draft Row: 0 _id=1, thread_id=1, address=, person=NULL, date=-1141447516, date_sent=0, protocol=NULL, read=1, status=-1, type=3, reply_path_ present=NULL, subject=NULL, body=Android Rooting Test, service_ center=NULL, locked=0, sub_id=0, error_code=0, seen=0, semc_message_ priority=NULL, parent_id=NULL, delivery_status=NULL, star_status=NULL, delivery_date=0 root@android:/ #
با این روش فایل های مهمی مثل mmssms.db که اطلاعات پیامک ها را در خود دارند به آسانی مورد سرقت قرار میگیرند.
۲- آجر شدن دستگاه (bricking)
روت کردن ممکن است دستگاه شما را آجر کند! با آجر چه کاری میتوانید بکنید؟!
در واقع دستگاه شما به یک آجر تبدیل میشود که حتی برای ساخت دیوار هم به کار نمیآید! برای مثال اگر ویندوز کامپیوتر شما boot نشود شما میتوانید ویندوز جدیدی را نصب کنید یا حتی سیستم عامل دیگری را بر روی کامپیوتر خود نصب و استفاده کنید. اما اگر بخواهید کامپیوتر خود را روشن کنید و سیستم عامل روی آن نصب کنید ولی اصلا روشن نشود عملا کامپیوتر شما یک آجر است!
۳- باطل شدن گارانتی
گارانتی دستگاه روت شده باطل میشود. بسیاری از سازنده ها، از دستگاه های روت شده به صورت رایگان پشتیبانی نمیکنند. بعد از روت کردن دستگاه اگر دورهی گارانتی شما تمام نشده باشد شاید برای تعمیر از شما بخواهند که هزینه را خودتان پرداخت کنید!
اگر دستگاه شما هنوز شامل گارانتی میباشد توصیهی ما این است که این کار را انجام ندهید! اگر دستگاه شما روت شده است در نصب برنامه هایی دارای دسترسی root احتیاط کنید!
امیدوارم با مفهموم روت آشنا شده باشید.
تا آموزشی دیگر شما رو به خدای بزرگ میسپارم.
موفق باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.