2011-04-16 68 views
5

我需要通過su獲取root權限才能午餐TcpDump二進制文件(我正在研究一種android嗅探器)。我用這個代碼:在Android模擬器上通過su獲得root權限

try { 
    Process process = Runtime.getRuntime().exec("su"); 
    DataOutputStream os = new DataOutputStream(process.getOutputStream()); 
    os = new DataOutputStream(process.getOutputStream()); 
    os.writeBytes("/data/local/tcpdump-arm -c 10 -s 0 -w /data/local/out.txt\n"); 
    os.writeBytes("exit\n"); 
    os.flush(); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

它完全有根的電話,但我想在模擬器中實現這一目標。 默認情況下,您無法通過模擬器上的su獲得root權限(雖然可以通過adb shell)。

我發現this

但它不爲我工作。我在某處讀過這篇技巧不會與sdk的修正版一起工作,但它沒有說明它會起作用。 我嘗試使用sdk revision 10和avd運行Android 2.1。

回答

8

好吧,我自己解決的問題:/

它與SDK版本10,並在AVD 2.2。我之前遵循的提示的問題是重新安裝步驟。這裏是爲我工作的命令列表(摘自http://forum.xda-developers.com/showthread.php?t=821742):

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 
adb install superuser.apk 

你可以得到的蘇二進制和超級用戶的應用程序在這裏:http://forum.xda-developers.com/showthread.php?t=682828

你必須這樣做,每次啓動模擬器。

+0

http://russelldavis.blogspot.com/2011/01/rooting-android-emulator.html – 2011-08-25 05:59:26

1

我能得到superuser.apk刪除/system/app/SdkSetup.apk

我剛纔檢查了一遍,它被重新重啓之間留下來,但我仍然有我的Superuser.apk之間重新啓動。

我也建議推一個busybox二進制文件和su。

0

請注意,a.b.d中的步驟也適用於OS 2.3.3 Gingerbread的AVD仿真器。 我從所提供的鏈接下載了su-2.3.6.1-signed.zip。

此外,我創建了一個.bat文件,其中包含由a.b.d提供的命令以便即時執行。