我正在编写一个安卓应用程序,需要在运行时将文件复制到 "/system"分区。我已经掌握了运行 "su"的命令,可以成功请求超级用户权限,并以 root 身份运行命令。但我不知道如何让这个应用程序在多台设备上通用,因为挂载命令会因 /system 的实际挂载位置而不同。下面是最常用的命令:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
但我知道,在某些设备上,mtdblock3 可能是不同的(我想,yaffs2 也可能是不同的)。因此,我的问题是:有没有一种通用命令可以适用于所有手机?或者有没有办法在运行时找出正确的参数?
你可以运行不带参数的 mount 命令,以便在构建挂载命令前获得分区信息。下面是 HTC Hero 输出的不带参数的挂载命令示例。
$ mount
mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock3 /system yaffs2 rw 0 0
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=
1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,s
hortname=mixed,utf8,errors=remount-ro 0 0