天天看點

[Android]利用run-as指令在不root情況下讀取data下面的資料

一、關鍵步驟

    主要是run-as指令:

over@over-ThinkPad-R52:~$ adb shell

$ run-as com.package

$ cd /data/data/com.package

$ ls

databases

lib

$ cd databases

preferences.db

$ cat preferences.db > /mnt/sdcard/preferences1.db   

代碼說明:

注意com.package換成自己的完整包名,關鍵是run-as指令,最後使用cat指令把資料庫拷貝到sd卡下面。

二、補充

    同僚分享/data/data/package/lib這個目錄是可以直接通路的,也就是說adb shell後雖然無法讀取/data目錄,但是可以直接通路這個目錄下的檔案,可以通過上面的run-as指令看得出其權限與其他目錄的權限是不同的,為system權限,這為多apk共享so提供了便利,這也是Vitamio所使用的方式。

    2012-6-14

         如果簽名了并且指定設定了android:debuggable="false"将無法使用該指令。 

    2012-7-13

        感謝網友分享(見評論),注意不要把adb shell 和 run-as作為一條指令一起執行,例如:adb shell run-as com.pack

三、參考檔案