android根文件系統
㈠ 如何修改android系統的ramdisk以及boot鏡像
ramdisk 是一種基於內存的虛擬磁碟技術,採用ext2文件系統。ramdisk.gz是ramdisk文件再壓縮後的格式。查看ramdisk.gz根文件系統,或者對原有的文件系統進行修改,只需解壓,再把獲得的鏡像文件掛載即可。
修改步驟如下:
解壓:轉到ramdisk.gz所在文件夾#gunzip ramdisk.gz
注意,解壓後會得到ramdisk鏡像文件,該鏡像文件會把原有的ramdisk.gz覆蓋,因此如果想保留ramdisk.gz復制到其他文件夾後再解壓。掛載: #mkdir /mnt/loop
#mount –o loop ramdisk /mnt/loop //掛載鏡像到loop目錄
#cd /mnt/loop這里可以看到, 就是ramdisk.gz成功載入後的目錄。修改文件系統的內容比如設置固定的IP地址,MAC地址。
umount /mnt/loop卸載 /mnt/loop0。
重新壓縮成.gz壓縮文件
#gzip –v9 ramdisk//生成新的ramdisk.gz壓縮文件。
㈡ 安卓文件無法復制到根目錄
使用第三方軟體復制。
安卓手機正常通過數據線連接手機和電腦的時候,只顯示內存卡,不顯示手機自身內存,這樣您就無法把內存卡的東西復制到電腦里,但是可以通過第三方軟體,比如豌豆莢、360助手或者手機助手連接手機和電腦的,這樣可以查看到內存卡的內存還可以查看到手機內存的,您可以嘗試將內存卡里的東西復制到手機內存里。
根目錄指邏輯驅動器的最上一級目錄,它是相對子目錄來說的。打開「我的電腦」,雙擊C盤就進入C盤的根目錄,雙擊D盤就進入D盤的根目錄。其它類推。根目錄在文件系統建立時即已被創建,其目的就是存儲子目錄(也稱為文件夾)或文件的目錄項。一「棵「目錄樹,樹的最根本就是它的根(根目錄)。
㈢ 怎麼修改Android 的linux內核
Android 產品中,內核格式是Linux標準的zImage,根文件系統採用ramdisk格式。這兩者在Android下是直接合並在一起取名為boot.img,會放在一個獨立分區當中。這個分區格式是Android自行制定的格式。
Android開發時,最標準的做法是重新編譯於內核和根文件系統,然後調用Android給的命令行文件mkbootimg(out/host/linux-x86/bin/)來打包。
在製作手機ROM時,有時會單獨編譯內核或抽出根文件進行修改內容,比如我只編譯內核,其餘的地方不變。這樣重新安裝巨大的Android開發環境實在不劃算。因此很多boot.img解包工具被人開發出來,這一些工具都是把內核和根文件系統從一個現成的boot.img抽取出來,修發後再次打包還原。
一.常見的解包工具
因為boot.img的格式比較簡單,它主要分為三大塊(有的可能有四塊)
因此很多人開發分析工具,有是linux shell腳本,比如repack-zImage,也有人採用perl,還有C語言編寫的 unbootimg,
我使用的是在源碼位置system/core/mkbootimg/ 下的 mkbootimg。為了簡化,藍點工坊把與mkbootimg中打包工具和解包工具以及所包含的libmincrpty庫抽出來,並且重寫一個Makefile,作為開源項目。
使用者只需要在linux(需安裝gcc,make,一般是標配)或windows(需要安裝mingw)的命令行執行make,即可產生可執行文件mkbootimg ,unpackbootimg。
二.解/打包工具使用
解包工具:unpackbootimg
常見格式
unpackbootimg -i .\tmp\boot.img -o .\out
這一句命令行表示把boot.img解包,所有文件輸出到out目錄下
它會解壓出如下文件:
boot.img-zImage (內核文件)
boot.img-ramdisk.gz (根文件系統打包文件)
boot.img-cmdline (mkbootimg cmdline參數)
boot.img-pagesize (mkbootimg pagesize參數)
boot.img-base (mkbootimg base參數)
打包工具:mkbootimg (Android自帶)
常見的命令格式:
./mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel zImage --ramdisk boot/boot.img-ramdisk.gz -o boot.img --base 02e00000
這句含義是把內核文件zImage和boot目錄下的根文件壓縮包 boot.img-ramdisk.gz打包成boot.img.
其中cmdline和base的值均來源於unpackbootimg的結果
㈣ Android數據存儲之File總結
在使用File存儲App數據時,我們需要了解Android系統的存儲系統。Android的存儲分為內部存儲和外部存儲。
由於Android系統的廠商比較多,對於外部存儲目錄的定義有所不同,可能在根目錄下的mnt,sdcard和storage下。以storage為例,打開emulated/0目錄,外部存儲目錄就出現了。雖然可以通過多種路徑打開外部存儲文件,但是最終他們的路徑是相同的:
mnt:
storage:
sdcard:
外部存儲目錄下包含兩大類:公有目錄和私有目錄
私有目錄:
對比下來External有以下幾點優點:
缺點:
內部存儲與外部存儲許可權申請對比如下:
首先我們要獲取外部存儲目標文件的路徑:
然後確定自己需要創建的文件名,結合上面的到的路徑,創建一個File對象:
Android系統默認數據清理的路徑是,內部存儲目錄中相應的cache文件夾中的文件和外部存儲中相應的cache文件夾中的文件。
你的app的internal storage 目錄是以你的app的包名作為標識存放在Android文件系統的特定目錄下[data/data/com.example.xx]。 從技術上講,如果你設置文件為可讀的,那麼其他app就可以讀取你的internal文件。然而,其他app需要知道你的包名與文件名。若是你沒有設置為可讀或者可寫,其他app是沒有辦法讀寫的。因此只要你使用MODE_PRIVATE ,那麼這些文件就不可能被其他app所訪問。
另外記住一點,內部存儲在你的APP卸載的時候,會一塊被刪除,因此,我們可以在cache目錄裡面放置我們的圖片緩存,而且cache與files的差別在於,如果手機的內部存儲空間不夠了,會自行選擇cache目錄進行刪除,因此,不要把重要的文件放在cache文件裡面,可以放置在files裡面,因為這個文件只有在APP被卸載的時候才會被刪除。還有要注意的一點是,如果應用程序是更新操作,內部存儲不會被刪除,區別於被用戶手動卸載。
不管你是使用 () 來存儲可以共享的文件,還是使用 getExternalFilesDir() 來儲存那些對於你的app來說是私有的文件,有一點很重要,那就是你要使用那些類似DIRECTORY_PICTURES 的API的常量。那些目錄類型參數可以確保那些文件被系統正確的對待。例如,那些以DIRECTORY_RINGTONES 類型保存的文件就會被系統的media scanner認為是ringtone而不是音樂。
在開發中,不建議往內部存儲中寫太多的數據,畢竟空間有限。外部存儲在使用的時候最好能夠將文件存放在私有目錄下,這樣有利於系統維護,也避免用戶的反感。
徹底理解android中的內部存儲與外部存儲
Android存儲挖坑記
緩存文件可以放在哪裡?它們各自的特點是什麼
㈤ 如何把軟體安裝到安卓系統文件里,就是system/app裡面!
把安卓應用軟體安裝到安卓系統文件,即把安卓應用軟體放到系統根目錄system/app下 操作方法
准備工作:
一、開啟ROOT許可權。
ROOT方法:下載一鍵ROOT之類的軟體,根據操作步驟進行,就可以獲取ROOT許可權了。
二、安裝RE文件管理器。
清理系統自帶應用
(一)、用RE打開系統根目錄下的system/app,進行精簡系統自帶應用,注意,要對照一些總結可刪減程序的文件,以免刪錯了導致系統故障。
(二)、根目錄:preload目錄下,可能會有系統的預裝應用,不用的也可以全部刪掉。
移動APK到system/app 目錄
一、移動apk:用RE管理器把要安裝的apk軟體移動到/system/app 目錄下。
在操作前,將/system/app 目錄掛載為可讀寫;
注意軟體名不要有中文 、空格及其他特殊字元等;
如果無法移動,顯示空間不足時,可以先移動到data/app/下,再移動到/system/app;
二、修改apk許可權: 對移動進來的apk軟體更改許可權,即改為:用戶許可權為 讀+寫,分組許可權為 讀,其他許可權為 讀。
三、提取 .so文件:用RE提取apk軟體中/lib/目錄下的所有 .so文件,將其移動到/system/lib中。
點擊apk軟體,用RE查看文件內容,即可找到 ,so文件。
四、修改 .so文件許可權:方法同上。
五、重啟手機。在此過程中,可能載入的時間稍長點,請耐心等待即可。
㈥ :android系統的手機目錄各個文件夾代表什麼例如acct app—cache config etc sbi...
Android
是linux內核,底層就是一個Linux操作系統,目錄的作用和Linux一樣。在Android中,/
是文件系統的根目錄。
以下是根目錄下的文件夾,及作用:
1.
bin
可執行文件(命令存放目錄)
2.
boot
引導目錄,系統啟動目錄
3.
dev
硬體設備,所有硬體抽象為一個文件
4.
etc
系統的配置文件
5.
home
用戶家目錄(每個用戶的私有文件目錄)
6.
lib
所有庫文件so
7.
media
自動掛載目錄
8.
opt
大形軟體目錄
9.
proc
內存虛擬目錄
10.
root
最高許可權目錄
11.
sbin
root許可權目錄
12.
selinux
安全機制目錄
13.
sys
系統底層信息目錄
14.
tmp
臨時目錄
15.
usr
默認安裝程序目錄,應用程序安裝目錄
16.
var
經常變化的信息,日誌
17.
mnt
掛載目錄
㈦ Android - 文件系統與Android11 分區存儲
Android文件系統分為 內部存儲(internal storage) 和 外部存儲(external storage)
1.1 用一個表格來直觀對比一下兩者:
1.2 應用的私有路徑
應用在安裝之後,系統會自動在內部存儲和外部存儲,分別建立應用的私有存儲區域。
內部存儲 : data/user/0/packageName
外部存儲 : storage/emulated/0/android/data/packageName
當應用卸載或者清除數據後,該區域文件會被刪除。
1.3 內外部存儲圖解
Android 10版本中,Google推出 分區存儲 (scoped storage)的功能。
背景 :
分區存儲功能是針對內置的外部存儲來說的,很多應用喜歡在外部存儲的根目錄創建自己的文件夾,比如:storage/emulated/0/***
這樣做的好處:1. 當不斷向該目錄存儲時,應用自己的容量不會變化; 2. 當應用卸載時,該目錄下文件不會被刪除,可用於保存一些可持久性的文件。
但是也有壞處: 1. 對用戶來說,會有很多垃圾文件存在於手機中;2. 只要獲取到Read 和 Write許可權,就可以隨意訪問外部存儲的任何目錄,信息安全存在隱患。
分區存儲 :
除了應用的私有目錄和公共目錄,其他位置都稱為 舊版存儲位置 ,我們需要將舊版存儲位置的數據遷移到能兼容分區存儲的位置。