導航:首頁 > 操作系統 > androidl鏡像

androidl鏡像

發布時間:2024-08-18 22:48:41

① 安卓手機端如何運行iso鏡像文件

安卓手機端無法運行iso鏡像文件,該文件PC鏡像文件,如果安卓手機需要進行重裝系統需要進行刷機操作,以vivo手機為例,具體步驟如下:

1、首先將ROM卡刷包已經復制到SD卡的根目錄,按住手機上面的音量+鍵和開機鍵不放,進入recovery,清除緩存和個人數據。

② 如何製作Ext4文件系統鏡像

編譯android源碼最後是使用make_ext4生成 Ext4鏡像+簽名(更新:合理使用make_ext4參數是不會導致添加簽名的),如果需要純Ext4鏡像,那麼需要再去掉簽名,使用simg2img。這個兩個工具都是在編譯Android源碼時編譯出來的,如果沒有Android源碼編譯環境,當然也可以使用Ubuntu社區已經整理好的工具集android-tools-fsutils,該工具集文件列表如下:(來自android-tools-fsutils/filelist)
/usr/bin/ext2simg
/usr/bin/ext4fixup
/usr/bin/img2simg
/usr/bin/make_ext4fs
/usr/bin/mkuserimg
/usr/bin/simg2img
/usr/bin/simg2simg
/usr/bin/simg_mp
/usr/bin/test_ext4fixup

工具集安裝方法:

sudo apt-get install android-tools-fsutils

1

1

製作Ext4文件系統鏡像:

# 創建測試目錄
mkdir /tmp/ext4 && cd /tmp/ext4 &&
mkdir test test_mount &&
echo "Hello Ext4" > test/HelloExt4.txt &&

# 生成名為test.ext4的Ext4鏡像
make_ext4fs -l 512M test.ext4 test &&

# 掛載test.ext4到test_mount測試
mount -t ext4 -o loop test.ext4 test_mount &&
ls test_mount || echo "Error!"

一、在(yourAndroid code path)/out/ 目錄里查找這個工具
unyaffs: 用於解壓system.img
mkyaffs2image: 用於打包system.img

呵呵,find 命令肯定會吧?find out/ -name mkyaffs2image
找到了後,記住這個目錄. 我的是(codePATH)/out/host/linux-x86/bin/

1.在任意文件夾下面建立一個system文件夾,我的是在home/changjiang/下面建的,這個是用來存放你解壓system.img出來的文件,然後將找到的兩個工具 unyaffs、mkyaffs2image拷貝到/changjiang/home/system
2.將編譯出來的system.img或者下載的system.img復制到system文件夾中。

3.在終端中輸入如下命令操作(/home/changjiang/替換成自己電腦中的路徑,你的不是我的)
cd /home/changjiang/system
./unyaffs /home/changjiang/system/system.img(用unyaffs命令解壓system.img),解壓出來的有各種應用,庫等等,你可以修改或者替換

二、重新打包system.img,雖然我不知道為什麼要這樣做,但是我知道這樣做是可以的.
呵呵,linux沒有不可能的事情.朝鮮的 紅星操作系統就是例子.
具體辦法是
system/ 這個目錄,這個目錄就是用來生成system.img 的.
mkyaffs2image system/ system.img

在Ubuntu中第一次使用mkyaffs2image命令時,會提示
mkyaffs2image:找不到命令

還需要安裝mkyaffs2image
http://code.google.com/p/fatplus/downloads/detail?name=yaffs2-source.tar&can=2&q=
下載yaffs2-source.tar
解壓後,進入utils文件夾,然後make

將make之後生成的mkyaffs2image文件拷貝到/usr/bin目錄下
$ su
# cp mkyaffs2image /usr/bin/
# chmod 777 /usr/bin/mkyaffs2image

之後
$ mkyaffs2image
mkyaffs2image: image building tool for YAFFS2 built Jan 6 2012
usage: mkyaffs2image dir image_file [convert]
dir the directory tree to be converted
image_file the output file to hold the image
'convert' proce a big-endian image from a little-endian machine

表明安裝成功,同時也可以看到該命令的用法
mkyaffs2image dir image_file
例如:

mkyaffs2image am1808-fs am1808-fs.yaffs//創建jffs2文件

搞Android的同學經常會接觸到system.img。但是該文件經常以兩種格式出現:raw和sparse。
一種是raw ext4 image,即經常說的raw image,使用file觀察它: 其特點是完整的ext4分區鏡像(包含很多全零的無效填充區),可以直接使用mount進行掛載,因此比較大(一般1G左右)。
[java] view plain
$ file system.img
system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)
信息非常明確了。

③ 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.

④ 如何將android linux燒到Raspberry Pi及其調試

一.Raspberry Pi入門向導。

可以在以下地址下載Raspberry向導


2.構建android framework

命令如下:

cd <your_android_path>

source build/envsetup.sh

lunch


顯示lunch菜單如下:

You』re building on Linux


Lunch menu… pick a combo:

1. full-eng

2. full_x86-eng

3. simulator

4. full_rpi-eng

5. cyanogen_generic-eng

6. cyanogen_rpi-eng

選擇第6個菜單。

然後進行編譯

make -j8

等待編譯成功,這可能需要幾十分鍾。


編譯成功之後將」system」目錄復制到root目錄下,接下來我們可能會用到。

命令如下:

cd <your_android_path>

cp -r system out/target/proct/rpi/root


ps:編譯時如果jdk版本不對,可將其改成jdk1.6


五.如何在Raspberry Pi上跑android linux內核?


1.准備一張存儲空間2G以上的SD卡及相應讀卡器。


2.下載arch linux鏡像文件

用wget工具下載鏡像文件:

wget http://files.velocix.com/c1410/images/archlinuxarm/archlinux-hf-2012-09-18/archlinux-hf-2012-09-18.zip

解壓:

unzip archlinux-hf-2012-09-18.zip

成功之後,你會在當前目錄下發現一個鏡像文件。


3.燒linux鏡像文件。

sudo dd bs=4M if=archlinux-hf-2012-09-18.img of=/dev/sdb

sudo sync

ps:/dev/sdb是SD卡在主機上的設備文件。不同的電腦可能不同。


4.用android linux內核代替這個內核。

做完上述步驟之後,當你把SD卡插在電腦上,你會發現有兩個分區:一個是引導區,另一個是文件系統區。

用android linux內核代替引導區的kernel.img。

cp -uv <your_android_linux_path>/arch/arm/boot/zImage <your_sdcard_boot_partition>/kernel.img


5.用android linux文件系統代替這個linux文件系統

rm -rf <your_sdcard_file_system_partition>

cp -r <your_android_source_code_path>/out/target/proct/rpi/root/* <your_sdcard_file_system_partition>


6.配置內核命令行cmdline.txt

Edit the <your_sdcard_boot_partition>/cmdling.txt, and replace 「init=/…」 with 「init=/init」


7.做完這些之後就可以在Raspberry Pi上跑這個android linux內核。


六.如何為Android linux做一張可引導的SD卡


1.刪除已有分區,如果沒有就不用刪了。

Command(m for help):p


Disk /dev/sdb: 15.7 GB, 15707668480 bytes

64 heads, 32 sectors/track, 14980 cylinders, total 30668085 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0×00000000


sudo fdisk/dev/sdb


Command(m for help):d

Partition number(1-4):1


Command(m for help):d

Selected partition 2


Command (m for help): p


Disk /dev/sdb: 15.7 GB, 15707668480 bytes

64 heads, 32 sectors/track, 14980 cylinders, total 30679040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0×00000000

Device Boot Start End Blocks Id System


Command(m for help):w

ps:確定刪除之後,卸掉SD卡,然後再裝上。


以bytes問單位記下SD卡的大小。後面的步驟會用到。

然後進入」Expert mode」。


Command(m for help):x


將這個SD卡設置為255個磁面,63個扇區和磁柱數量(不同的SD/mmc卡有著不同的此柱數量)

Expert command (m for help): h

Number of heads (1-256, default 64): 255


Expert command (m for help): s

Number of sectors (1-63, default 32): 63


ps:在下一步開始前,先要計算磁柱數量,計算過程如下:

B:SD卡以bytes為單位的大小(前面已經記住了即:15707668480)

C:磁柱的數量

C=B/255/63/512


例如:我的SD卡大小是16G(15707668480)

C=15707668480/255/63/512=1909.68191721,約等於1909.


Expert command (m for help): c

Number of cylinders (1-1048576, default 14980): 1909

Expert command (m for help): r


2.新建分區

如果你的SD卡已經分區,請按照上述步驟刪除分區。接下來,我們將創建兩個分區,一個是引導區,用來存放內核鏡像等文件;另一個文件系統區存放android linux文件系統。


Command (m for help): n

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): p

Partition number (1-4, default 1):

Using default value 1

First sector (2048-30679039, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-30679039, default 30679039): +128M

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): c

Changed system type of partition 1 to c (W95 FAT32 (LBA))

Command (m for help): a

Partition number (1-4): 1

Command (m for help): n

Partition type:

p primary (1 primary, 0 extended, 3 free)

e extended

Select (default p): p

Partition number (1-4, default 2):

Using default value 2

First sector (264192-30679039, default 264192):

Using default value 264192

Last sector, +sectors or +size{K,M,G} (264192-30679039, default 30679039):

Using default value 30679039

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x

partitions, please see the fdisk manual page for additional

information.

Syncing disks.


ok,分區成功,現在我們有兩個分區,接下我們對分區進行格式化。


3.格式化分區

對引導區進行格式化:


sudo mkfs.msdos -F 32 /dev/sdb1 -n BOOT

mkfs.msdos 3.0.12 (29 Oct 2011)


對文件系統區進行格式化:

sudo mkfs.ext3 /dev/sdb2 -L ROOTFS

mke2fs 1.42 (29-Nov-2011)

Filesystem label=ROOTFS

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

950976 inodes, 3801856 blocks

190092 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=3896508416

117 block groups

32768 blocks per group, 32768 fragments per group

8128 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done


4.設置引導區

引導區必須包含以下文件,你可以從官方鏡像里獲取(bootable/fat32 partition)也可以從書面步驟中復制過來:

bootcode.bin:第二階段的引導程序,

loader.bin:第三階段的引導程序,

start.elf:GPU二進制固件映像,

kernel.img操作系統的內核鏡像文件,

cmdline.txt:傳遞給內核的參數.


5.設置root文件系統分區

ROOTFS分區包含android文件系統,是從<your_android_framework_path>/out/target/proct/rpi/root復制過來的。

cp -r <your_android_framework_path>/out/target/proct/rpi/root/* /media/ROOTFS/


6.完成上述步驟之後,將其放在Raspberry Pi上跑。


七.如何在Raspberry Pi使用adb?


1.查看網路

當android linux在Raspberry Pi運行時,切換到控制台,執行以下命令:

ifconfig eth0

記下ip地址。

如果不能找到ip,可以輸入以下命令:/system/xbin/dhcp-eth0,來啟動網路連接程序。

ps:如果屏幕沒有顯示控制台,只要按CTRL+ALT+F2即可切換到控制台。如果你想要切換到Android界面,只要按CTRL+ALT+F7即可。


2.遠程連接adb伺服器

在主機上執行以下命令即可與同一區域網的Raspberry Pi相連

adb connect ip

連接成功後,你就可以用adb工具輸出日誌,執行shell命令等。


3.也可以用數據線連接主機,直接在主機上調試。

進入調試的命令為:

screen /dev/ttyUSB0 115200


名詞解釋:

交叉編譯(cross compile):交叉編譯呢,簡單地說,就是在一個平台上生成另一個平台上的可執行代碼。這里需要注意的是所謂 平台,實際上包含兩個概念:體系結構(Architecture)、操作系統(Operating System)。同一個體系結構可以運行不同的操作系統;同樣,同一個操作系統也可以在不同的體系結構上運行。舉例來說,我們常說的x86 Linux平台實際上是Intel x86體系結構和Linux for x86操作系統的統稱;而x86 WinNT平台實際上是Intel x86體系結構和Windows NT for x86操作系統的簡稱。

⑤ 手機內置存儲鏡像到電腦

本文詳細圖文講述安卓直接鏡像到電腦的方法;

目前安卓手機鏡像數據恢復是一個困擾大家的難題,尤其是沒有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等.

閱讀全文

與androidl鏡像相關的資料

熱點內容
伺服器異常520什麼意思 瀏覽:390
花園最解壓的搖椅 瀏覽:337
手機屏幕旁邊變色了怎麼辦安卓的怎麼修 瀏覽:218
word怎麼變成pdf格式 瀏覽:505
vc60一編譯就錯誤 瀏覽:458
覺得撒嬌很解壓 瀏覽:934
蘋果控制點安卓怎麼設置 瀏覽:67
順豐app裡面哪裡繳費 瀏覽:894
魚池活水能增加密度嗎 瀏覽:245
如何將安卓導入已激活蘋果 瀏覽:501
電腦寫程序編譯不了 瀏覽:540
linux限制用戶命令 瀏覽:742
8p咋設置應用加密 瀏覽:286
我說你這個我聽是什麼安卓 瀏覽:23
雲計算算程序員嗎 瀏覽:786
vim編譯php 瀏覽:527
如何正確使用國家反詐中心app 瀏覽:181
編譯執行方式的過程 瀏覽:489
當量計演算法的適用條件 瀏覽:445
arm單片機開發環境 瀏覽:401