android-emulator - يعطيك - كينج روت




كيفية الحصول على الوصول إلى الجذر على محاكي Android؟ (6)

لدي جميع إصدارات Android SDK (من 1.5 إلى 2.3.3) ، وقد جربت العديد من الطرق للحصول على الجذر في محاكي Android. لا أستخدم أي جهاز Android واختبر كل شيء على المحاكي (AVD).

أحتاج إلى الحصول على الوصول إلى الجذر في أي من محاكيات Android لاستخدام وظيفة "iptables" و "busybox". واستخدام iptables يجب أن يكون الوصول إلى الجذر. يجب أن يتم تنفيذ أمر Atluest 'su' في محاكي المحطة الطرفية.

قمت بتثبيت تطبيق z4root أيضًا ،

ولكن الأمر يستغرق وقتًا طويلاً جدًا ولا ينتهي من عملية التجذير ، كما أنه عالق. يقول البعض أنه إذا قللنا النظام إلى أقل من RC30 ، بهذه الطريقة يمكننا الحصول على الوصول إلى الجذر. إذا كان هذا صحيحًا ، فكيف تفعل ذلك؟ أستخدم كل من Linux و Windows OS.

من فضلك أخبرني أي طريقة لتجذير محاكي.


أعتقد أن أسهل طريقة هي إنشاء اسم مستعار من أجل الأمر sh ، على سبيل المثال

adb shell
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/bin
cat sh > su && chmod 4775 su

تم اختباره على Android Emulator 3.0 والإصدارات الأحدث.


بالنسبة إلى AVD مع 5.1.1 و 6.0 ، استخدمت النص التالي في نظام التشغيل windows:

set adb=adb -s emulator-5558
set arch=x64
set pie=
adb start-server
%adb% root
%adb% remount
rem %adb% shell mount -o remount,rw /system
%adb% shell setenforce 0
%adb% install common/Superuser.apk
%adb% push %arch%/su%pie% /system/bin/su
%adb% shell chmod 0755 /system/bin/su
%adb% push %arch%/su%pie% /system/xbin/su
%adb% shell chmod 0755 /system/xbin/su
%adb% shell su --install
%adb% shell "su --daemon&"
rem %adb% shell mount -o remount,ro /system

exit /b

تحتاج UPDATE.zip من SuperSU. تفكيكها إلى أي مجلد. إنشاء ملف الخفافيش مع المحتوى أعلاه. لا تنس تحديد البنية اللازمة والجهاز: set adb=adb -s emulator-5558 and set arch=x64 . إذا كنت تقوم بتشغيل Android أعلى أو يساوي 5.0 ، set pie=.pie set pie= set pie=.pie . شغلها. يمكنك الحصول على الجذر المؤقت للتشغيل الحالي.

إذا حصلت على خطأ في قسم نظام ريمونت فأنت بحاجة إلى بدء AVD من سطر الأوامر. انظر الخطوة الأولى أدناه لـ Android 7.

إذا كنت تريد جعلها مستمرة - تحديث ثنائي في SuperSU وتخزين system.img من مجلد مؤقت كحل الافتراضي للنظام. img.

كيفية تحويل الجذر المؤقت الناتج على دائم

أولا - يذهب إلى SuperSu. تقدم ترقية ثنائية. التحديث بالطريقة العادية. اعادة التشغيل رفض.

الثانية - ذات الصلة فقط للمحاولات. نفس AVD. خلاصة القول هي أن التغييرات في صورة النظام لن يتم حفظها. تحتاج إلى الاحتفاظ بها لأنفسهم.

هناك بالفعل تعليمات تختلف عن المحاكيات المختلفة.

بالنسبة إلى AVD ، يمكنك محاولة العثور على ملف مؤقت system.img ، وحفظه في مكان ما واستخدامه عند بدء محاكي.

في نظام التشغيل Windows ، يوجد في المجلد %LOCALAPPDATA%\Temp\AndroidEmulator ولديه اسم مثل TMP4980.tmp .

قمت بنسخه إلى مجلد ملف avd ( %HOMEPATH%\.android\avd\%AVD_NAME%.avd\ ) ، وإعادة تسميته إلى system.img .

الآن سيتم استخدامه في البداية ، بدلاً من المعتاد. صحيح إذا تم تحديث الصورة في SDK ، سيكون لها القديم.

في هذه الحالة ، ستحتاج إلى إزالة هذا system.img ، وتكرار العملية عند إنشائها.

دليل أكثر تفصيلاً باللغة الروسية: http://4pda.ru/forum/index.php?showtopic=318487&view=findpost&p=45421931

للحصول على الروبوت 7 تحتاج إلى تشغيل خطوات إضافية: 1. تحتاج تشغيل المحاكي يدويا. انتقل إلى sdk folder sdk\tools\lib64\qt\lib . تشغيل من هذا المجلد المحاكي مع خيارات -writable-system -selinux disabled مثل هذا:

F:\android\sdk\tools\lib64\qt\lib>F:\android\sdk\tools\emulator.exe -avd 7.0_x86 -verbose -writable-system -selinux disabled
  1. تحتاج إلى إعادة تشغيل adbd من الجذر:

    adb -s emulator-5554 root

ونظام remount:

adb -s emulator-5554 remount

يمكن التبرع بها مرة واحدة فقط لكل محاكي تشغيل. وأي جهاز آخر يمكن أن يكسر وضع الكتابة. وبسبب هذا ، لن تحتاج إلى تشغيل أي أوامر أخرى مع إعادة تحميل ، مثل mount -o remount,rw /system .

خطوات أخرى تبقى نفسها - تحميل ثنائي ، تشغيل ثنائي كما الخفي وهلم جرا.

صورة من AVD Android 7 x86 مع الجذر:

إذا كنت ترى خطأ حول PIE على تنفيذ ثنائي su - ثم قمت بتحميل إلى ثنائي خطأ المحاكي. يجب عليك تحميل binary named su.pie داخل الأرشيف ، ولكن على المحاكي ، يجب تسميته باسم su ، وليس su.pie .


في ما يلي قائمة الأوامر التي يجب عليك تشغيلها أثناء تشغيل المحاكي ، أقوم باختبار هذا الحل ل avd على Android 2.2:

adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system  
adb push su /system/xbin/su  
adb shell chmod 06755 /system  
adb shell chmod 06755 /system/xbin/su

يفترض أن الثنائي su موجود في دليل العمل. يمكنك العثور على su و superuser هنا: http://forum.xda-developers.com/showthread.php?t=682828 . تحتاج إلى تشغيل هذه الأوامر في كل مرة تقوم فيها بتشغيل المحاكي. يمكنك كتابة برنامج نصي يقوم بتشغيل المحاكي وتجذيره.


لقد استخدمت جزءًا من الطريقة من الحلول أعلاه ؛ ومع ذلك ، لم يعملوا بشكل كامل. على أحدث إصدار من آندي ، هذا العمل بالنسبة لي:

على Andy (Root Shell) [To get ، انقر بزر الماوس الأيمن على رمز HandyAndy واختر Term Shell]

داخل shell ، شغّل هذه الأوامر:

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/bin
cat sh > su && chmod 4775 su

ثم قم بتثبيت SuperSU وتثبيت SU ثنائي. سيحل هذا محل SU الثنائية التي أنشأناها للتو. (اختياري) قم بإزالة SuperSU وقم بتثبيت Superuser بواسطة CWM. تثبيت سو الثنائية مرة أخرى. الآن ، يعمل الجذر!


هذه الإجابات كلها معقدة دون داع :)

$ > adb shell
generic_x86:/ $
generic_x86:/ $ exit
$ > adb root
restarting adbd as root
$ > adb shell
generic_x86:/ #

Here حزمة بلدي مع كل ما تحتاجه. أو يمكنك استخدام هذا البرنامج النصي:

echo on
set device=emulator-5554
set avd_name=
set adb=d:\Poprygun\DevTools\Android\Android-sdk\platform-tools\adb -s %device%
set emulator=d:\Poprygun\DevTools\Android\Android-sdk\emulator\emulator
set arch=x86
set pie=

echo Close all ANDROID emulators and press any key
pause
start %emulator% -avd Nexus_One_API_25 -verbose -writable-system
echo Wait until ANDROID emulator loading and press any key
pause

%adb% start-server
%adb% root
%adb% remount
%adb% shell setenforce 0
%adb% install D:\SuperSU\SuperSU.apk
%adb% push D:\SuperSU\su\%arch%\su.pie /system/bin/su
%adb% shell chmod 0755 /system/bin/su
%adb% push D:\SuperSU\su\%arch%\su.pie /system/xbin/su
%adb% shell chmod 0755 /system/xbin/su
%adb% shell su --install
%adb% shell "su --daemon&"
pause
exit /b






root