㈠ 手機內置存儲鏡像到電腦
本文詳細圖文講述安卓直接鏡像到電腦的方法;
目前安卓手機鏡像數據恢復是一個困擾大家的難題,尤其是沒有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後的輸出貼給我,我再給你回復