5.1.1 और 6.0 के साथ AVD के लिए मैंने विंडोज़ में अगली स्क्रिप्ट का उपयोग किया:
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
SuperSU से UPDATE.zip की आवश्यकता है। उन्हें किसी भी फ़ोल्डर में अनपैक किया। ऊपर सामग्री के साथ बैट फ़ाइल बनाएँ। आवश्यक आर्किटेक्चर और डिवाइस निर्दिष्ट करना न भूलें:set adb=adb -s emulator-5558
और set arch=x64
। यदि आप एंड्रॉइड 5.0 या उसके ऊपर 5.0 चलाते हैं, तो बदल set pie=
दें set pie=.pie
। चलाओ। आपको वर्तमान रन के लिए अस्थायी रूट मिलता है।
यदि आपको रीमाउंट सिस्टम विभाजन में त्रुटि मिली है, तो आपको कमांड लाइन से AVD शुरू करने की आवश्यकता है। Android 7 के लिए पहले चरण के नीचे देखें।
अगर आप इसे लगातार बनाना चाहते हैं - SuperSU में बाइनरी को अपडेट करें और डिफ़ॉल्ट सिस्टम के स्थान के रूप में अस्थायी फ़ोल्डर से store.img को स्टोर करें।
स्थायी पर परिणामी अस्थायी जड़ को कैसे परिवर्तित करें
पहला - यह सुपरसु को जाता है। यह एक बाइनरी अपग्रेड प्रदान करता है। सामान्य तरीके से अपडेट करें। रिबूट अस्वीकार।
दूसरा - केवल एमुलेटर के लिए प्रासंगिक है। वही ए.वी.डी. लब्बोलुआब यह है कि सिस्टम छवि में परिवर्तन सहेजा नहीं जाएगा। आपको उन्हें अपने लिए रखने की जरूरत है।
अलग-अलग एमुलेटर के लिए पहले से ही निर्देश अलग-अलग हैं।
AVD के लिए आप एक अस्थायी फ़ाइल system.img ढूंढने का प्रयास कर सकते हैं, इसे कहीं सहेज सकते हैं और जब आप एमुलेटर शुरू करते हैं तो इसका उपयोग कर सकते हैं।
विंडोज में यह स्थित है %LOCALAPPDATA%\Temp\AndroidEmulator
और इसका नाम कुछ इस तरह है TMP4980.tmp
।
आप इसे एक फ़ोल्डर एवीडी डिवाइस ( %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\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
आपको पुनः आरंभ करने की आवश्यकता है adbd
रूट से :
adb -s एमुलेटर -5554 रूट
और रिमाउंट सिस्टम:
adb -s emulator-5554 remount
इसे केवल एक बार रन एमुलेटर के लिए दान किया जा सकता है। और किसी भी अन्य रिमाउंट में राइट मोड टूट सकता है। इस वजह से आपको रिमाउंट के साथ किसी अन्य कमांड को चलाने की आवश्यकता नहीं है, जैसेmount -o remount,rw /system
।
एक और कदम एक ही रहता है - बाइनरी अपलोड करें, बाइनरी को डेमन और इतने पर चलाएं।
AVD Android 7 x86 से रूट के साथ चित्र:
यदि आप su
बाइनरी को निष्पादित करने में पीआईई के बारे में त्रुटि देखते हैं - तो आप एमुलेटर गलत बाइनरी पर अपलोड करते हैं। आपको बाइनरी su.pie
को आर्काइव के अंदर नाम से अपलोड करना होगा , लेकिन एमुलेटर पर इसका नाम होना चाहिए su
, नहीं su.pie
।