模拟器的 app2sd

一个读者@XXX(因为个人意愿隐掉名字) 发 mail 询问我关于 windows 下模拟器 app2sd 的问题,先不说有没有必要,说一下我测试的结果! 本来我给他回邮件是让他试一下 apptosd.apk 的,后来越想越不对劲,所以自己做了下测试!结果如下:

然后通过 adb shell 也无法操作. # mkdir /system/sd/app mkdir /system/sd/app mkdir failed for /system/sd/app, No such file or directory 不过仔细想想,app2sd 必须满足的条件我们在 windows 上根本就不存在,首先我们必须要一个 app2sd 的支援固件!然后我们需要 sdcard 分出一个 ext2 的分区... 而这两个条件全部都不满足!那基本上可以说没有办法!

看以后有没有高手可以实现模拟器上安装修改固件,那么可以安装一个 app2sd 的固件,而另外一个必须满足的条件就是必须将建立的虚拟 sdcard 分出一个 ext2 分区来!

满足了这两个条件,那么所有的都会水到渠成!

BTW:下午这位读者给我的回复:

非常感谢! 我测试的结果跟您是一样的,不过后面那个建目录的不一样。下面是我对您博文上的一点分析。 然后通过 adb shell 也无法操作. 【XXX】google 好象改过 linux 内核,adb shell 登录以后几种命令都有权限限制。在虚拟 sd 卡上建立文件夹有所有权限,然而用 adb push 传上去的就没有可执行的权限,使用 chmod 命令修改权限也不成功。 # mkdir /system/sd/app

1
2
mkdir /system/sd/app
mkdir failed for /system/sd/app, No such file or directory

【XXX】在 system 目录下 adb shell 命令是没有写权限的。你这个尝试如果是 mkdir /system/sd 就会报“mkdir failed for sd, Read-only file system”的错误,但是在 data 目录下就能够创建目录。 不过仔细想想,app2sd 必须满足的条件我们在 windows 上根本就不存在,首先我们必须要一个 app2sd 的支援固件!然后我们需要 sdcard 分出一个 ext2 的分区… 而这两个条件全部都不满足!那基本上可以说没有办法! 看以后有没有高手可以实现模拟器上安装修改固件,那么可以安装一个 app2sd 的固件,而另外一个必须满足的条件就是必须将建立的虚拟 sdcard 分出一个 ext2 分区来! 【XXX】appsd 的固件这个是什么概念?用 mksdcard 创建的虚拟 sdcard 不就是对应的手机上的 sdcard 么?虚拟 sdcard 为什么要分出一个 ext2 分区呢?ext2 分区一个什么概念,sdcard 要分出 ext2 分区的原理是什么? 能否简单介绍一下?或者介绍一下相关的资料?谢谢。 另:对您给我传的那个 apk 我不是很了解,这个文件从哪里来的,它都做了些什么事? 下面是我 adb shell 后 ls –l 查看到的各文件夹权限,是有加载虚拟 sdcard 的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
drwxrwxrwt root root 2009-08-10 04:45 sqlite_stmt_journals
drwxrwx--- system cache 2009-07-21 09:01 cache
d---rwxrwx system system 2009-08-10 04:52 sdcard
lrwxrwxrwx root root 2009-08-10 04:45 etc -> /system/etc
drwxr-xr-x root root 2009-05-15 00:53 system
drwxr-xr-x root root 1970-01-01 00:00 sys
drwxr-x--- root root 1970-01-01 00:00 sbin
dr-xr-xr-x root root 1970-01-01 00:00 proc
-rwxr-x--- root root 9075 1970-01-01 00:00 init.rc
-rwxr-x--- root root 1677 1970-01-01 00:00 init.goldfish.rc
-rwxr-x--- root root 106568 1970-01-01 00:00 init
-rw-r--r-- root root 118 1970-01-01 00:00 default.prop
drwxrwx--x system system 2009-05-15 00:58 data
drwx------ root root 1970-01-01 00:00 root
drwxr-xr-x root root 2009-08-10 04:46 dev

这里请注意 system,sdcard 和 data 它们的权限以及各自的意义。

1
2
3
d---rwxrwx system system 2009-08-10 04:52 sdcard
drwxr-xr-x root root 2009-05-15 00:53 system
drwxrwx--x system system 2009-05-15 00:58 data

下面说下我对各个信息的理解。首先第一列这是表示的各用户的权限,d 代表这是文件夹,rwx 分别代表读、写、执行权限。 d 后面第一组三个字符表示当前用户的读写执行权限,第二组代表 group 用户的权限,第三组表示 other 用户的权限。 然后是第二列,表示当前用户对该文件夹的权限级别,第三列代表该文件夹的当前用户。 如果我对这组信息的含义理解方式正确的话,那么这里我就有疑问了: 1. linux 下面有 system 这个权限级别吗?我有个同事说只有 root、group 和 other,所以我很奇怪这里的 system 这个权限级别是怎么回事,它有什么样的权限,能做到怎么样。 2. sdcard 这个目录非常奇怪,自己的用户权限都没有,group 和 other 用户却有所有权限,在 sdcard 目录里面建立的目录权限跟 sdcard 的权限一样。 3. 我们自己写的应用程序,不知道是属于什么样的权限级别,是作为什么样的用户来访问各目录包括 sd 卡的,手机 sd 卡和虚拟 sd 卡。

作者

Hivan Du

发布于

2021-08-31

更新于

2024-01-16

许可协议

评论