㈠ 手机内置存储镜像到电脑
本文详细图文讲述安卓直接镜像到电脑的方法;
目前安卓手机镜像数据恢复是一个困扰大家的难题,尤其是没有SD卡的手机数据恢复,更是不好做.
之前我做过一个三星W2013的手机,它的data和sdcard是一个分区(ext4)上不同的目录.那时我想都没想,直接dd if=/dev/block/mmcblkxpx of=/sdcard/data.img进行数据恢复,后来傻眼了,做镜像时data区的已经使用空间也在增长.数据被覆盖了!!!后来从客户的备份中找到了手机的联系人.虚惊一场.
现在给大家介绍一种方法,可以直接把手机的内存储镜像到电脑保存到任何一个分区中.
在给大家介绍这个方法之前看一下我们的准备工作:
1.手机要有ROOT权限.
2.手机要开启调试模式.
3.手机要有与外界相互沟通的管道.
4.要知道DATA区的挂载点.
5.要知道相应的镜像命令(dd)
6.电脑端要有相应的工具(nc.exe pv.exe cygwin1.dll以及必备的adb.exe AdbWinApi.dll AdbWinUsbApi.dll )我的这些工具都是放在C:ADBshelladbhelp目录下了.
我们做手机内存储的目的是做数据恢复,因些我们有一个先提条件:手机的DATA分区确保不要写入任何数据
1.ROOT的说明
有关ROOT的方法我这里就不多说了.网上的方法很多.大家选取吧.
对于某些手机比如说HTC,某些索爱手机,如果想ROOT,要先解锁,不解的话是不能取得ROOT的.
一般的ROOT有三个方法,
-- 专门针对某一个类型手机出的ROOT工具.:
--电脑端的一键ROOT工具
--手机端的ROOT工具.
我还有第四种方法,这种方法可以做到部分手机在关机的情况下取得ROOT,进而取得镜像.这是最完善的ROOT取得的方法.
对于找不到某一类型的ROOT工具,我推荐用:电脑端的360一键ROOT,我测试过,用这个软件ROOT的时候,DATA区写入的数据量最少(不到1MB).
万一电脑端的ROOT工具都不能ROOT这个手机,就采用手机端的ROOT工具.能ROOT总比什么也做不了强吧.
2.调试模式的说明
这个不用多说了.打开就行了.至于手机如何开启调试模式,大家一下相关的知识吧.这里就不多说了.
3.与外界管道的说明
这个要用大名鼎鼎的nc工具.关于这个工具的说明大家从网上找找就行了.记得很久以前用这个工具做后门用的.不过我已经不做黑客好多年了.
准备工作做好后,现在开始镜像工作.
手机连上电脑,
图10 镜像完工后手机端显示
图11 镜像完工后电脑端显示
下面就拿数据恢复软件打开F盘330wang目录下的data.img进行扫描吧.只要能支持ext4的就行,比方说winhex r-studio UFS等.
㈡ android 基本文件操作命令
ADB (Android Debug Bridge)
说明:下面一些命令需要有root权限才能执行成功
快速启动dos窗口执行adb:
1. adb.exe所在路径添加到系统环境变量中
2. 配置快捷键启动dos
进入C:\WINDOWS\system32目录下,找到cmd.exe.
右击菜单 "发送到" -> 桌面快捷方式。
在桌面上右击"快捷方式 到 cmd.exe" -> "属性" -> "快捷方式"页
-> 光标高亮"快捷键" -> 按下自定义快捷键 (如:Ctrl + Alt + Z)
任何情况下,按下Ctrl + Alt + Z启动dos窗口就可以执行adb命令了
-----------查看设备连接状态 系列-----------
adb get-serialno 获取设备的ID和序列号serialNumber
adb devices 查询当前计算机上连接那些设备(包括模拟器和手机),输出格式: [serialNumber] [state]
adb get-state 查看模拟器/设施的当前状态.
说明:
序列号[serialNumber]——由adb创建的一个字符串,这个字符串通过自己的控制端口<type>-<consolePort>
唯一地识别一个模拟器/设备实例。一个序列号的例子: emulator-5554
-----------发送命令到设备 系列-----------
adb [-d|-e|-s <serialNumber>] <command>
-d 发送命令给usb连接的设备
-e 发送命令到模拟器设备
-s <serialNumber> 发送命令到指定设备
如启动手机设备shell: adb -d shell
adb forward <local> <remote>发布端口,可以设置任意的端口号,
做为主机向模拟器或设备的请求端口。如:adb forward tcp:5555 tcp:8000
adb reboot 重启手机
adb remount 将system分区重新挂载为可读写分区
adb kill-server 终止adb服务进程
adb start-server 重启adb服务进程
adb root 已root权限重启adb服务
adb wait-for-device 在模拟器/设备连接之前把命令转载在adb的命令器中
adb jdwp 查看指定的设施的可用的JDWP信息.
可以用 forward jdwp:<pid> 端口映射信息来连接指定的JDWP进程.例如:
adb forward tcp:8000 jdwp:472
jdb -attach localhost:8000
adb shell am 命令可以启动应用程序
adb shell input text <string> 向设备输入文本(光标所在的文本框)
adb shell input keyevent <event_code> 向设备发送按键事件
如:
在编辑短信时,往文本框输入文本:adb shell input text "hello"
向手机发送键值回Home:adb shell input keyevent 3
event_code 参考view/KeyEvent.java中的 KEYCODE_*
public static final int KEYCODE_SOFT_LEFT = 1;
public static final int KEYCODE_SOFT_RIGHT = 2;
public static final int KEYCODE_HOME = 3;
public static final int KEYCODE_BACK = 4;
public static final int KEYCODE_CALL = 5;
public static final int KEYCODE_ENDCALL = 6;
-----------安装卸载 系列-----------
adb install [-l] [-r] <file> - push this package file to the device and install it
('-l' means forward-lock the app)
('-r' means reinstall the app, keeping its data)
adb uninstall [-k] <package> - remove this app package from the device
('-k' means keep the data and cache directories)
如:
adb install d:\hello.apk
adb unstall com.huawei.hello
说明:如果带-r选项重新安装apk时,安装在 /data/local/tmp/目录下,手机重启后还是使用原来的apk.
-----------文件操作 系列-----------
adb push <local> <remote> - file/dir to device
adb pull <remote> <local> - file/dir from device
-----------基本linux shell命令 系列-----------
adb shell [command]
ls 列出目录下的文件和文件夹
cd 切换目录
rm 删除目录和文件
cat 查看文件内容
ps 可以看那个进程再跑
ps -x [PID] 查看单个进程的状态
top 可以看那个进程的占用率最高
su 切换到root用户
kill [pid] 杀死一个进程
chmod 777 <file> 修改该文件为可执行权限
详细使用情况可以登录一台Linux服务器在shell下查看帮助手册, man <command>
-----------查看系统状态和信息 系列-----------
adb shell procrank 查询各进程内存使用情况
adb shell service list 查看services信息
adb shell cat /proc/meminfo 查看当前的内存情况
adb shell cat /proc/cpuinfo 查看CPU信息(硬件)
adb shell cat /proc/iomem 查看IO内存分区
adb shell getprop 列出系统所有属性
adb shell getprop | findstr "gsm" 列出包含gsm的属性
adb shell setprop <key> <value> 修改系统属性
adb shell sqlite3 可以执行sql语句查看数据库信息, 具体使用情况待调查
-----------Log 系列-----------
adb logcat [ <filter-spec> ] - View device log
1~~~~~~~~~~~查看可用日志缓冲区:
adb logcat -b radio — 查看缓冲区的相关的信息.
adb logcat -b events — 查看和事件相关的的缓冲区.
adb logcat -b main — 查看主要的日志缓冲区
2~~~~~~~~~~~过滤日志输出:
过滤器语句按照下面的格式描tag:priority ... , tag 表示是标签, priority 是表示标签的报告的最低等级
adb logcat *:W 显示优先级为warning或更高的日志信息
adb logcat ActivityManager:I MyApp:D *:S
日志的标签是系统部件原始信息的一个简要的标志。(比如:“View”就是查看系统的标签).
优先级有下列集中,是按照从低到高顺利排列的:
V — Verbose (lowest priority)
D — Debug
I — Info
W — Warning
E — Error
F — Fatal
S — Silent (highest priority, on which nothing is ever printed)
如果你电脑上运行logcat ,相比在远程adbshell端,你还可以为环境变量ANDROID_LOG_TAGS :输入一个参数来设置默认的过滤
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"
需要注意的是ANDROID_LOG_TAGS 过滤器如果通过远程shell运行logcat 或用adb shell logcat 来运行模拟器/设备不能输出日志.
3~~~~~~~~~~~控制日志输出格式:
日志信息包括了许多元数据域包括标签和优先级。可以修改日志的输出格式,所以可以显示出特定的元数据域。可以通过 -v 选项得到格式化输出日志的相关信息.
brief — Display priority/tag and PID of originating process (the default format).
process — Display PID only.
tag — Display the priority/tag only.
thread — Display process:thread and priority/tag only.
raw — Display the raw log message, with no other metadata fields.
time — Display the date, invocation time, priority/tag, and PID of the originating process.
long — Display all metadata fields and separate messages with a blank lines.
当启动了logcat ,你可以通过-v 选项来指定输出格式:
[adb] logcat [-v <format>]
下面是用 thread 来产生的日志格式:
adb logcat -v thread
需要注意的是你只能-v 选项来规定输出格式 option.
4~~~~~~~~~~~Logcat命令列表
-b <buffer> 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是main 。具体查看Viewing Alternative Log Buffers.
-c 清楚屏幕上的日志.
-d 输出日志到屏幕上.
-f <filename> 指定输出日志信息的<filename> ,默认是stdout .
-g 输出指定的日志缓冲区,输出后退出.
-n <count> 设置日志的最大数目<count> .,默认值是4,需要和 -r 选项一起使用。
-r <kbytes> 每<kbytes> 时输出日志,默认值为16,需要和-f 选项一起使用.
-s 设置默认的过滤级别为silent.
-v <format> 设置日志输入格式,默认的是brief 格式,要知道更多的支持的格式,参看Controlling Log Output Format
adb bugreport - return all information from the device
that should be included in a bug report.
adb shell dmesg 查询内核缓冲区信息
adb shell mpstate 各类信息,比如进程信息,内存信息,进程是否异常,kernnel的log等
adb shell mpcrash
adb shell mpsys 查询所有service的状态
-----------其他 -----------
模拟器使用镜像sdcard
用SDK里的mksdcard工具来创建FAT32磁盘镜像并在模拟器启动时加载它。这样创建镜像:? mksdcard <size> <file>,
比如我要创建一个64M的SD卡模拟文件,文件路径是在D:\workspace\sdcard.img
mksdcard 64000000 D:\workspace\sdcard.img
Emulator –sdcard D:\workspace\sdcard.img
或者在eclipse的run菜单的open run dialog对话框中配置启动参数。
#top
Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]
-m num Maximum number of processes to display.
-n num Updates to show before exiting.
-d num Seconds to wait between updates.
-s col Column to sort by (cpu,vss,rss,thr).
-t Show threads instead of processes.
-h Display this help screen.
********* simple selection ********* ********* selection by list *********
-A all processes -C by command name
-N negate selection -G by real group ID (supports names)
-a all w/ tty except session leaders -U by real user ID (supports names)
-d all except session leaders -g by session OR by effective group name
-e all processes -p by process ID
T all processes on this terminal -s processes in the sessions given
a all w/ tty, including other users -t by tty
g OBSOLETE -- DO NOT USE -u by effective user ID (supports names)
r only running processes U processes for specified users
x processes w/o controlling ttys t by tty
*********** output format ********** *********** long options ***********
-o,o user-defined -f full --Group --User --pid --cols --ppid
-j,j job control s signal --group --user --sid --rows --info
-O,O preloaded -o v virtual memory --cumulative --format --deselect
-l,l long u user-oriented --sort --tty --forest --version
-F extra full X registers --heading --no-heading --context
********* misc options *********
-V,V show version L list format codes f ASCII art forest
-m,m,-L,-T,H threads S children in sum -y change -l format
-M,Z security data c true command name -c scheling class
-w,w wide output n numeric WCHAN,UID -H process hierarchy
netstat -ano 查看网络连状态
显示协议统计信息和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
-a 显示所有连接和监听端口。
-b 显示包含于创建每个连接或监听端口的
可执行组件。在某些情况下已知可执行组件
拥有多个独立组件,并且在这些情况下
包含于创建连接或监听端口的组件序列
被显示。这种情况下,可执行组件名
在底部的 [] 中,顶部是其调用的组件,
等等,直到 TCP/IP 部分。注意此选项
可能需要很长时间,如果没有足够权限
可能失败。
-e 显示以太网统计信息。此选项可以与 -s
选项组合使用。
-n 以数字形式显示地址和端口号。
-o 显示与每个连接相关的所属进程 ID。
-p proto 显示 proto 指定的协议的连接;proto 可以是
下列协议之一: TCP、UDP、TCPv6 或 UDPv6。
如果与 -s 选项一起使用以显示按协议统计信息,proto 可以是下列协议之一:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r 显示路由表。
-s 显示按协议统计信息。默认地,显示 IP、
IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
-p 选项用于指定默认情况的子集。
-v 与 -b 选项一起使用时将显示包含于
为所有可执行组件创建连接或监听端口的
组件。
interval 重新显示选定统计信息,每次显示之间
暂停时间间隔(以秒计)。按 CTRL+C 停止重新
显示统计信息。如果省略,netstat 显示当前
配置信息(只显示一次)
pm
usage: pm [list|path|install|uninstall]
pm list packages [-f]
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]
pm list instrumentation [-f] [TARGET-PACKAGE]
pm list features
pm path PACKAGE
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] PATH
pm uninstall [-k] PACKAGE
pm enable PACKAGE_OR_COMPONENT
pm disable PACKAGE_OR_COMPONENT
The list packages command prints all packages. Options:
-f: see their associated file.
The list permission-groups command prints all known
permission groups.
The list permissions command prints all known
permissions, optionally only those in GROUP. Options:
-g: organize by group.
-f: print all information.
-s: short summary.
-d: only list dangerous permissions.
-u: list only the permissions users will see.
The list instrumentation command prints all instrumentations,
or only those that target a specified package. Options:
-f: see their associated file.
The list features command prints all features of the system.
The path command prints the path to the .apk of a package.
The install command installs a package to the system. Options:
-l: install the package with FORWARD_LOCK.
-r: reinstall an exisiting app, keeping its data.
-t: allow test .apks to be installed.
-i: specify the installer package name.
The uninstall command removes a package from the system. Options:
-k: keep the data and cache directories around.
after the package removal.
The enable and disable commands change the enabled state of
a given package or component (written as "package/class").
查看stdout 和stderr
在默认状态下,Android系统有stdout 和 stderr (System.out和System.err )输出到/dev/null ,
在运行Dalvik VM的进程中,有一个系统可以备份日志文件。在这种情况下,系统会用stdout 和stderr 和优先级 I.来记录日志信息
通过这种方法指定输出的路径,停止运行的模拟器/设备,然后通过用setprop 命令远程输入日志
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start系统直到你关闭模拟器/设备前设置会一直保留,可以通过添加/data/local.prop 可以使用模拟器/设备上的默认设置
UI/软件 试验程序 Monkey
当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,
它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件.
最简单的方法就是用用下面的命令来使用Monkey,这个命令将会启动你的软件并且触发500个事件.
$ adb shell monkey -v -p your.package.name 500
更多的关于命令Monkey的命令的信息,可以查看UI/Application Exerciser Monkey documentation page.
㈢ 如何在adb shell下mount Android下的分区
方法一:使用df命令查看#/dev197M64K197M4096/mnt/asec197M0K197M4096/mnt/obb197M0K197M4096/system295M245M50M4096/data755M26M728M4096/cache188M4M184M4096/HWUserData2G1024K2G32768/cust59M14M44M4096/mnt/sdcard7G753M6G32768/mnt/secure/asec7G753M6G32768看到/system分区有295MB的大小。接着查看/proc下的partitions#cat/proc/partitionscat/proc/partitionsmajorminor#104096mtdblock0看出,分区mmcblk012的大小最接近295MB,判断挂载点/system就对应该它了。(其实,可以在/proc/mounts下面看的更直接。。。)于是,输入以下mount命令#mount-oremount,rw/dev/block/mmcblk0p12/system就可以在/system下面进行写操作。当然,如果不打算重启机子的话,最好还是将它恢复到readonly状态。输入:#mount-oremount,ro/dev/block/mmcblk0p12/system该方法比较麻烦的是还要判断某挂载点跟分区,理论上说必须要将它们对应上来,否则会出错。而实际上试过将不同的分区跟挂载点remount一下,居然还是可以的。原因暂时不明。方法二:考虑到上面用斜黑体字写的现象,尝试用其他信息代替”/dev/block/mmcblk0p12“,试了一下居然也是可行的!直接输入下列命令即可:#mount-oremount,rwmtd@system/system第二种方法虽然也是可以的。之所以这么写是参考init.rc里面的mount写法。不清楚这个是怎么回事,要是原生的linuxmount命令应该不会这样的。update:2013.11其实,没必要像上面方法一和方法二那么复杂.还可以更简单.只需要输入:#mount-oremount,rw/system即可.linux系统自己会去维护一个已经mount的表.所以只需要输入现有的挂载点就行啦
㈣ adb怎么修改DATA文件夹的权限
你好,这个问题比较好处理,
首先用ls
-l
/data看看
data目录是否有读写权限,如果没有就用一下命令改一下:
chmod
777
/data
如果提示没有chmod命令,那么安装一个busybox到你的设备上,然后再用:
busybox
chmod
777
/data
然后,因为data是作为一个分区挂载到文件系统的,所以要看看挂载到文件系统的权限,输入以下命令查看:
mount
你可以找到data的挂载信息,里面如果出现一个ro的话表示已只读方式挂载,此时还不能写入文件
需要重新挂载
输入以下命令重新挂载(这个命令你会运行失败):
mount
-o
rw,remount
-t
yaffs2
/dev/block/mtdblock2
/system
这个地方需要你再提供一下信息,把mount后的输出贴给我,我再给你回复
㈤ ADB是什么 ADB常用命令介绍
adb是windows系统通过usb或者无线连接Android手机的一个接口
adb 常用命令大全
1. 显示系统中全部Android平台:
android list targets
2. 显示系统中全部AVD(模拟器):
android list avd
3. 创建AVD(模拟器):
android create avd --name 名称 --target 平台编号
4. 启动模拟器:
emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)
5. 删除AVD(模拟器):
android delete avd --name 名称
6. 创建SDCard:
mksdcard 1024M ~/名称.img
7. AVD(模拟器)所在位置:
Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 启动DDMS:
ddms
9. 显示当前运行的全部模拟器:
adb devices
10. 对某一模拟器执行命令:
abd -s 模拟器编号 命令
11. 安装应用程序:
adb install -r 应用程序.apk
12. 获取模拟器中的文件:
adb pull <remote> <local>
13. 向模拟器中写文件:
adb push <local> <remote>
14. 进入模拟器的shell模式:
adb shell
15. 启动SDK,文档,实例下载管理器:
android
16. 缷载apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
17. 查看adb命令帮助信息:
adb help
18. 在命令行中查看LOG信息:
adb logcat -s 标签名
19. adb shell后面跟的命令主要来自:
源码\system\core\toolbox目录和源码\frameworks\base\cmds目录。
20. 删除系统应用:
adb remount (重新挂载系统分区,使系统分区重新可写)。
adb shell
cd system/app
rm *.apk
21. 获取管理员权限:
adb root
22. 启动Activity:
adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。
23、发布端口:
你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
24、复制文件:
你可向一个设备或从一个设备中复制文件,
复制一个文件或目录到设备或模拟器上:
adb push
<source>
<destination></destination></source>
如:adb
push test.txt /tmp/test.txt
从设备或模拟器上复制一个文件或目录:
adb
pull <source>
<destination></destination></source>
如:adb
pull /addroid/lib/libwebcore.so .
25、搜索模拟器/设备的实例:
取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
adb devices
26、查看bug报告:
adb bugreport
27、记录无线通讯日志:
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
28、获取设备的ID和序列号:
adb get-proct
adb get-serialno
29、访问数据库SQLite3
adb shell
sqlite3
#cd system/sd/data //进入系统内指定文件夹
#ls //列表显示当前文件夹内容
#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
#rm xxx //删除文件xxx
#rmdir xxx //删除xxx的文件夹
㈥ 如何在adb shell下mount Android下的分区
方法一:
使用df命令查看
# df
df
Filesystem Size Used Free Blksize
/dev 197M 64K 197M 4096
/mnt/asec 197M 0K 197M 4096
/mnt/obb 197M 0K 197M 4096
/system 295M 245M 50M 4096
/data 755M 26M 728M 4096
/cache 188M 4M 184M 4096
/HWUserData 2G 1024K 2G 32768
/cust 59M 14M 44M 4096
/mnt/sdcard 7G 753M 6G 32768
/mnt/secure/asec 7G 753M 6G 32768
看到/system分区有295MB的大小。
接着查看/proc下的partitions
# cat /proc/partitions
cat /proc/partitions
major minor #blocks name
179 0 3817472 mmcblk0
179 1 20 mmcblk0p1
179 2 300 mmcblk0p2
179 3 133120 mmcblk0p3
179 4 1 mmcblk0p4
179 5 12288 mmcblk0p5
179 6 196608 mmcblk0p6
179 7 4096 mmcblk0p7
179 8 3072 mmcblk0p8
179 9 4096 mmcblk0p9
179 10 3072 mmcblk0p10
179 11 3072 mmcblk0p11
179 12 393216 mmcblk0p12
179 13 786432 mmcblk0p13
179 14 4096 mmcblk0p14
179 15 8192 mmcblk0p15
179 16 20480 mmcblk0p16
179 17 4096 mmcblk0p17
179 18 81920 mmcblk0p18
179 19 2154496 mmcblk0p19
179 32 7761920 mmcblk1
179 33 7757824 mmcblk1p1
31 0 4096 mtdblock0
看出,分区mmcblk012的大小最接近295MB,判断挂载点/system就对应该它了。
(其实,可以在/proc/mounts下面看的更直接。。。)
于是,输入以下mount命令
# mount -o remount,rw /dev/block/mmcblk0p12 /system
# mount -o remount,ro /dev/block/mmcblk0p12 /system
㈦ adb怎么修改DATA文件夹的权限
你好,这个问题比较好处理,
首先用ls
-l
/data看看
data目录是否有读写权限,如果没有就用一下命令改一下:
chmod
777
/data
如果提示没有chmod命令,那么安装一个busybox到你的设备上,然后再用:
busybox
chmod
777
/data
然后,因为data是作为一个分区挂载到文件系统的,所以要看看挂载到文件系统的权限,输入以下命令查看:
mount
你可以找到data的挂载信息,里面如果出现一个ro的话表示已只读方式挂载,此时还不能写入文件
需要重新挂载
输入以下命令重新挂载(这个命令你会运行失败):
mount
-o
rw,remount
-t
yaffs2
/dev/block/mtdblock2
/system
这个地方需要你再提供一下信息,把mount后的输出贴给我,我再给你回复
㈧ 如何使用adb 修改分区
A20 adb shell命令实现硬盘分区
1'输入busybox fdisk /dev/block/sda ;
2'在Command (m for help):后输入m,查看帮助;
Command (m for help): m
m
Command Action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
3'输入查看p,若如果之前用过就会有显示,
Command (m for help): p
p
Disk /dev/block/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
4'选择删除d,
Command (m for help): d
d
No partition is defined yet!
5'新建分区n,
Command (m for help): n
n
Command action
e extended
p primary partition (1-4)
6'选择p,
P
P
Partition number (1-4):
7'选择分区的数目,我选择1,
Partition number (1-4): 1
1
First cylinder (1-60801, default 1):
8‘ 直接回车(主分区的起始位置);默认为1,默认就好;
First cylinder (1-60801, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-60801, default 60801):
9’这个是定义分区大小的,+499000M 就是大小为+499000M ;当然您也可以根据p提示的单位cylinder的大小来算,然后来指定 End的数值。回头看看是怎么算的;还是用+499000M这个办法来添加,这样能直观一点。我硬盘是500G,所以就是499G,如果您想添加一个10G左右大小的分区,请输入 +10000M ;
Last cylinder or +size or +sizeM or +sizeK (1-60801, default 60801): +499000M
+499000M
10‘通过t来指定分区类型t;
Command (m for help): t
t
Selected partition 1
Hex code (type L to list codes):
11'在这里输入L,就可以查看分区类型的id了
Hex code (type L to list codes): L
L
0 Empty 1b Hidden Win95 FAT32 9f BSD/OS
1 FAT12 1c Hidden W95 FAT32 (LBA) a0 Thinkpad hibernation
4 FAT16 <32M 1e Hidden W95 FAT16 (LBA) a5 FreeBSD
5 Extended 3c Part.Magic recovery a6 OpenBSD
6 FAT16 41 PPC PReP Boot a8 Darwin UFS
7 HPFS/NTFS 42 SFS a9 NetBSD
a OS/2 Boot Manager 63 GNU HURD or SysV ab Darwin boot
b Win95 FAT32 80 Old Minix b7 BSDI fs
c Win95 FAT32 (LBA) 81 Minix / old Linux b8 BSDI swap
e Win95 FAT16 (LBA) 82 Linux swap be Solaris boot
f Win95 Ext'd (LBA) 83 Linux eb BeOS fs
11 Hidden FAT12 84 OS/2 hidden C: drive ee EFI GPT
12 Compaq diagnostics 85 Linux extended ef EFI (FAT-12/16/32)
14 Hidden FAT16 <32M 86 NTFS volume set f0 Linux/PA-RISC boot
16 Hidden FAT16 87 NTFS volume set f2 DOS secondary
17 Hidden HPFS/NTFS 8e Linux LVM fd Linux raid autodetect
Hex code (type L to list codes):
12'选择83,
Hex code (type L to list codes): 83
83
14’在看一下p
Command (m for help): p
p
Disk /dev/block/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/block/sda1 1 60668 487315678+ 83 Linux
确实出来啦!
15‘创建w
Command (m for help): w
w
The partition table has been altered!
Calling ioctl() to re-read partition table
16’对分区进行格式化,以及加载;
输入busybox mkfs.ext2 /dev/block/sda
root@android :/ # busybox mkfs.ext2 /dev/block/sda
busybox mkfs.ext2 /dev/block/sda
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
30531584 inodes, 122096646 blocks
6104832 blocks (5%) reserved for the super user
First data block=0
Maximum filesystem blocks=125829120
3727 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000
...........
(需要注意如果之前mount过,一定要Umount掉 --busybox unmount /dev/block/sda否则会出错
busybox mkfs.ext2 /dev/block/sda
mkfs.ext2: can't format mounted filesystem)
17‘挂载mount -t ext2 /dev/block/sda /mnt/sata
OK ,buysybox df -h一下 :
root@android :/ # busybox df -h
busybox df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 153.4M 32.0K 153.4M 0% /dev
tmpfs 153.4M 0 153.4M 0% /mnt/asec
tmpfs 153.4M 0 153.4M 0% /mnt/obb
/dev/block/system 504.4M 257.9M 246.5M 51% /system
/dev/block/data 504.4M 57.7M 446.7M 11% /data
/dev/block/cache 252.1M 4.3M 247.8M 2% /cache
/dev/block/vold/93:72
2.1G 48.0K 2.1G 0% /mnt/sdcard
/dev/block/vold/93:72
2.1G 48.0K 2.1G 0% /mnt/secure/asec
/dev/block/sda 458.5G 62.5M 435.2G 0% /mnt/sata
出来啦,激动吧!
㈨ adb怎么修改DATA文件夹的权限
你好,这个问题比较好处理,
首先用ls -l /data看看 data目录是否有读写权限,如果没有就用一下命令改一下:
chmod 777 /data
如果提示没有chmod命令,那么安装一个busybox到你的设备上,然后再用:
busybox chmod 777 /data
然后,因为data是作为一个分区挂载到文件系统的,所以要看看挂载到文件系统的权限,输入以下命令查看:
mount
你可以找到data的挂载信息,里面如果出现一个ro的话表示已只读方式挂载,此时还不能写入文件 需要重新挂载
输入以下命令重新挂载(这个命令你会运行失败):
mount -o rw,remount -t yaffs2 /dev/block/mtdblock2 /system
这个地方需要你再提供一下信息,把mount后的输出贴给我,我再给你回复