اولین قدم برای اجرای یک دستور روت، مطمئن شدن از روت بودن و نبودن دستگاه است.
تابع زیر را بنویسید:
public static boolean isRoot() { Process suProcess; try { suProcess = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(suProcess.getOutputStream()); DataInputStream osRes = new DataInputStream(suProcess.getInputStream()); if (null != os && null != osRes) { return true; } } catch (Exception e) { return false; } }
این تابع، اگر گوشی روت باشد، مقداردtrue و اگر نباشد، مقدار false را برمیگرداند.
اگر در ترمینال، دستور su را نوشته و Enter را بزنید، در صورتی که گوشی روت باشد، ممکن است با عبارت root@android / # رو به رو شوید که این یعنی اجازهی اجرای دستورات روت را دارید. در حقیقت خود دستور su به معنی دسترسی به super user بوده و خود برای اجرا شدنش به روت بودن گوشی نیاز دارد. همچنین اگر دستور در ترمینال اچرا نشود، پیام not found نمایش داده خواهد شد.
در کد بالا هم با استفاده از process فعل، دستور su را اجرا کردیم و خروجی را به داخل suProcess ریختهایم. سپس مقدارهای DataOutputStream و DataInputStream را از داخل آن به بیرون کشیدهایم و درصورتی که این دومقدار هردو مخالف null باشند، گوشی روت شده است.
این به این معنی است که دستور صحیح بوده و ورودی و خروجی ای وجود دارد؛ پس اگر دستور صحیح باشد، گوشی روت میباشد.
نظرات ثبت شده بدون دیدگاه