2012-04-24 124 views
3

我正在使用的Android設備不支持sqlite3就可以了,所以我認爲push將它從設備上的pull從AVD中提取出來。安裝帶有寫入權限的文件系統

我沒有問題將它從AVD中拉出來,儘管我不能將它推到設備上,因爲我需要啓用寫入權限。我試圖按照sqlite3: not found

我嘗試以下

$ adb -d shell 
$ mount 
mount 
rootfs/rootfs ro,relatime 0 0 
tmpfs /dev tmpfs rw,relatime,mode=111 0 0 
devpts /dev/pts devpts rw,relatime,mode=600 0 0 
proc /proc proc rw,relatime 0 0 
sysfs /sys sysfs rw,relatime 0 0 
none /acct cgroup rw,relatime,cpuacct 0 0 
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0 
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0 
tmpfs /mnt/usb tmpfs rw,relatime,mode=755,gid=1000 0 0 
tmpfs /app-cache tmpfs rw,relatime,size=7168k 0 0 
none /dev/cpuctl cgroup rw,relatime,cpu 0 0 
/dev/block/mmcblk0p9 /system ext4 ro,relatime,barrier=1,data=ordered 0 0 
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 
/dev/block/mmcblk0p1 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 
nil /sys/kernel/debug debugfs rw,relatime 0 0 
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered, 
/dev/block/mmcblk0p4 /mnt/.lfs j4fs rw,relatime 0 0 
/dev/block/vold/179:11 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,noatime,n 
epage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro,discard 0 

我跟着this link並試圖掛載文件系統如下,但我有一個權限錯誤。

$ mount -o rw,remount -t yaffs2 /dev/block/mmcblk0p9 /system 
mount: Operation not permitted 

任何線索需要什麼才能被做pushsqlite3成用於調試的原因,設備的Adroid?

回答

19

解決方法很簡單。要重新安裝已安裝的系統,您需要擁有root權限。做一個su。你將進入root模式。然後運行下面的命令。它會工作,我做了很多次。

所以這裏的步驟:

adb shell 
su 
mount -o rw,remount /system 

編輯:找到一個更好的解決方案

從主機(Linux或Windows PC),執行下面的命令。

>> adb root 
>> adb remount 

重新安裝將默認重新掛載/系統分區與rw,如果您有權限。

注1:要執行suadb root,您的設備必須植根的命令,有蘇在其上的可執行文件。如果命令su成功,終端提示將從$更改爲#

注2: 在最近的手機,安全性有所收緊,甚至生根的電話後,adb remount是行不通的。據我所知,目前還沒有可用的解決方案。

+0

首先,感謝您的回答。我知道我必須使用超級用戶模式('su'),但我必須根據我的設備。有什麼辦法可以繞過嗎?我只是想複製'sqlite3'二進制文件進行調試。 – MrRoth 2012-04-24 09:18:18

+0

如果您想在某些特定的應用中使用sqlite庫,可以將其包含在jni文件夾中,使用Android NDK構建它,然後在應用程序內部使用它。是的,這是可能的。你可以參考我在這裏發佈的解決方案http://stackoverflow.com/questions/10169336/can-i-use-the-native-libraries-installed-in-android-stack-in-my-ndk-applicatio/10169880#評論13048836_10169880但是這樣做,只有你的應用程序可以使用sqlite。 – 2012-04-24 09:21:25

+0

您是否嘗試過使用運行LineageOS的紮根Android設備?我在RW模式下重新安裝文件系統時遇到問題。我確實擁有root權限。有任何想法嗎? – warfreak92 2017-09-15 06:30:33

0

正如mk指出的,許多新手機禁用了adb root和adb remount。我的LGL34C被鎖定了,adb幾乎只用於拉入文件系統的保護區域。

但是有一種方法(總是有辦法)!當然,您仍然需要安裝su的根電話。在手機上安裝shell終端和/或sshd服務。在本地操作系統上重新安裝並寫入/系統工作狀況良好。

0

你沒有的主要原因有權限...對腳本模特肖像權沒有根的$ 蘇原來是成#我相信....