2012-04-24 122 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

你没有的主要原因有权限...对脚本模特肖像权没有根的$ 苏原来是成#我相信....