android img文件结构介绍
安卓系统文件夹结构及其文件解析(详细)
安卓系统文件夹及其文件解析打开Android文件管理器,会发现里面数十个英文名称命名的文件夹罗列其中,很多功能我们可以从其名字上略有所知,内部大批量的文件却让我们有些一头雾水。
这些文件是什么?有什么用?我们能不能删?这些都是我们脑中充满疑问的。
现在将将Android手机内部文件夹的架构和各文件的功能描述介绍给大家,让大家自己手机的内部资源有个比较透彻的理解,同时也避免了用户误删造成的数据丢失和系统崩溃。
【文件夹功能简介】\system\app这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。
在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。
\system\bin这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux 系统自带的组件(命令)\system\etc从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
\system\fonts字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常,其中DroidSansFallback.ttf文件大小。
\system\frameworkframework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
\system\liblib目录中存放的主要是系统底层库,一些so文件,如平台运行时库。
\system\media\system\media\audio铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音。
\system\sounds默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
\system\usr用户文件夹,包含共享、键盘布局、时间区域文件等。
\system\app这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。
Android 中的各个Image
IM820中各个Image之间的关系OBJCOPY: objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中。
Objcopy使用GNU BFD库去读或写目标文件。
Objcopy可以使用不同于源目标文件的格式来写目的目标文件(也即是说可以将一种格式的目标文件转换成另一种格式的目标文件)对内核的一些解释:vmlinuz: 是可引导的、压缩的内核。
“vm”代表“Virtual Memory”。
vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz;vmlinux:未压缩的内核,是ELF文件即编译出来的最原始的文件;Image: 内核映像文件, 其实就是vmlinux的OBJCOPY;zImage: 用gzip对vmlinux压缩后的文件的OBJCOPY;uImage:是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别;对在IM820中这些是如何生成内核的一些说明:vmlinux: 由mydroid/kernel/android-2.6.29/Makefile生成:在Makfile的526行 all:vmlinux //可以看出编译内核肯定会得到vmlinuxImage由Mydroid/kernel/arch/arm/boot/.Image.cmd第一行文件生成cmd_arch/arm/boot/Image := arm-none-linux-gnueabi-objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S vmlinux arch/arm/boot/ImagezImage由 Mydroid/kernel/arch/arm/boot/.zImage.cmd文件的第一行生成cmd_arch/arm/boot/zImage := arm-none-linux-gnueabi-objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S arch/arm/ boot/compressed/vmlinuxarch/arm/boot/zImage//compressed/vmlinux的意思是用gzip压缩过的vmlinuxuImage由Mydroid/arch/arm/boot/.uImage.cmd文件的第一行生成cmd_arch/arm/boot/uImage:=/bin/bash /mnt/sdb1/home/lijl/25.14/mydroid/kernel/android-2.6.29/scripts/mkuboot.sh -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n 'Linux-2.6.29-omap1' -d arch/arm/boot/zImage arch/arm/boot/uImagemkuboot.sh 这个脚本其实就是指/home/mid/bin/mkimage这个命令,这个命令是专门给zImage 自动加上uboot的用的文件头的;P59A的启动方式是:开机自动执行ROM code (TI提供已经固化) 然后ROM Code可以片选从一个SD卡或者T卡装载入x-loader到Ti芯片自带的RAM (64K),这是第一级引导程序一般比较小,然后x-loader 又把 uboot.bin装载到一个大的外部RAM(256MB)中,这是第二级引导程序,然后由第二级引导程序装入内核引导次序依次为:Rom code -> x-loader->uboot.bin->kernel;x-loader 的Makefile在 mydroid/bootable/bootloader/ x-loader/Makefile生成文件是:MLOUboot.bin 的Makefile在 mydroid/bootable/bootloader/ u-boot /Makefile生成文件是:u-boot.binuImage就是 kernel文件系统是通过mydroid/Makefile的make j8生成分别是:userdata.img 用户文件系统其实就是userdata目录的内容system.img 系统文件系统其实就是system目录中的内容ramdisk.img 其实就是/文件目录下的内容一般烧内核的时候,把内核和根文件系统同时烧入因此要生成uMulti文件uMulti = uImage + ramdisk.img第一烧录到板子上的文件:1, MLO, u-boot.in, userdata.img, system.img uMulti uboot引导环境变量文件;Uboot环境文件如下,是告诉引导程序一些信息的“bootdelay 3bootargs console=ttyS2,115200n8 mem=256M videoout=omap24xxvout:rotation=0bootcmd nand unlock; nand read.i 81C00000 0x0200000 0x500000; bootm 81C00000“下面再描述如何编译recovery.img(这个是在恢复出厂设置,或升级软件时用到的)编译recovery.img 直接./mydroid下执行make recoveryimage就可以了;但编译会出错,经过查询可以知道真正的Makefile在./mydroid /build/core目录在Makefile中用到变量TARGET_NO_KERNEL,要执行TARGET_NO_KERNEL不能为TRUE 修改./vendor/ti/zoom2/BoardConfig.mk :把TARGET_NO_KERNEL := true导致我们目前在编译的时候,默认没有生成 recovery.img,要生成 recovery.img 必须屏蔽 TARGET_NO_KERNEL := true创建目录: ./vendor/ti/zoom2/recovery/res拷贝编译好的内核到目录:vendor/ti/zoom2cp zImage ./vendor/ti/zoom2/kernel命令: make recoveryimage单独生成 recovery.img, ramdisk-recovery.imgrecovery.img:是recovery文件系统;ramdisk-recovery.img 是根文件系统;。
Android系统文件夹目录结构详解
Android系统文件夹目录结构详解内容手机核心提示:本文介绍的是Android手机系统的文件夹结构,帮助大家更直观地了解系统,作为查询工具加入收藏夹还是很不错的哦*^_^*\\system\\app这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。
在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\\data\\文件夹中。
下面是详细的介绍:\\system\\app\\AlarmClock.apk闹钟\\system\\app\\AlarmClock.odex\\system\\app\\Browser.apk浏览器\\system\\app\\Browser.odex\\system\\app\\Bugreport.apk Bug报告\\system\\app\\Bugreport.odex\\system\\app\\Calculator.apk计算器\\system\\app\\Calculator.odex\\system\\app\\Calendar.apk日历\\system\\app\\Calendar.odex\\system\\app\\CalendarProvider.apk日历提供\\system\\app\\CalendarProvider.odex\\system\\app\\Camera.apk照相机\\system\\app\\Camera.odex\\system\\app\\com.amazon.mp3.apk亚马逊音乐\\system\\app\\Contacts.apk联系人\\system\\app\\Contacts.odex\\system\\app\\DownloadProvider.apk下载提供\\system\\app\\DownloadProvider.odex\\system\\app\\DrmProvider.apk DRM数字版权提供\\system\\app\\DrmProvider.odex\\system\\app\\Email.apk电子邮件客户端\\system\\app\\Email.odex\\system\\app\\FieldTest.apk测试程序\\system\\app\\FieldTest.odex\\system\\app\\GDataFeedsProvider.apk GoogleData提供\\system\\app\\GDataFeedsProvider.odex\\system\\app\\Gmail.apk Gmail电子邮件\\system\\app\\Gmail.odex\\system\\app\\GmailProvider.apk Gmail提供\\system\\app\\GmailProvider.odex\\system\\app\\GoogleApps.apk谷歌程序包\\system\\app\\GoogleApps.odex\\system\\app\\GoogleSearch.apk搜索工具\\system\\app\\GoogleSearch.odex\\system\\app\\gtalkservice.apk GTalk服务\\system\\app\\gtalkservice.odex\\system\\app\\HTMLViewer.apk HTML查看器\\system\\app\\HTMLViewer.odex\\system\\app\\IM.apk即时通讯组件包含MSN、yahoo通\\system\\app\\ImCredentialProvider.apk\\system\\app\\ImProvider.apk\\system\\app\\ImProvider. odex\\system\\app\\Launcher.apk启动加载器\\system\\app\\Launcher.odex\\system\\app\\Maps.apk电子地图\\system\\app\\Maps.odex\\system\\app\\MediaProvider.apk多媒体播放提供\\system\\app\\MediaProvider.odex\\system\\app\\Mms.apk短信、彩信\\system\\app\\Mms.odex\\system\\app\\Music.apk音乐播放器\\system\\app\\Music.odex\\system\\app\\MyFaves.apk T-Mobile MyFaves程序\\system\\app\\MyFaves.odex\\system\\app\\PackageInstaller.apk apk安装程序\\system\\app\\PackageInstaller.odex\\system\\app\\Phone.apk电话拨号器\\system\\app\\Phone.odex\\system\\app\\Settings.apk系统设置\\system\\app\\Settings.odex\\system\\app\\SettingsProvider.apk设置提供\\system\\app\\SettingsProvider.odex\\system\\app\\SetupWizard.apk设置向导\\system\\app\\SetupWizard.odex\\system\\app\\SoundRecorder.apk录音工具\\system\\app\\SoundRecorder.odex\\system\\app\\Street.apk街景地图\\system\\app\\Street.odex\\system\\app\\Sync.apk同步程序\\system\\app\\Sync.odex、\\system\\app\\Talk.apk语音程序\\system\\app\\Talk.odex\\system\\app\\TelephonyProvider.apk电话提供\\system\\app\\TelephonyProvider.odex\\system\\app\\Up dater.apk更新程序\\system\\app\\Up dater.odex\\system\\app\\Vending.apk制造商信息\\system\\app\\Vending.odex\\system\\app\\VoiceDialer.apk语音拨号器\\system\\app\\VoiceDialer.odex\\system\\app\\YouTube.apk Youtube视频\\system\\app\\YouTube.odex\\system\\bin这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍:\\system\\bin\\akmd\\system\\bin\\am\\system\\bin\\app_process系统进程\\system\\bin\\dalvikvm Dalvik虚拟机宿主\\system\\bin\\dbus-daemon系统BUS总线监控\\system\\bin\\debuggerd调试器\\system\\bin\\debug_tool调试工具\\system\\bin\\dexopt DEX选项\\system\\bin\\dhcpcd DHCP服务器\\system\\bin\\dumpstate状态抓取器\\system\\bin\\dumpsys系统抓取器\\system\\bin\\dvz\\system\\bin\\fillup\\system\\bin\\flash_image闪存映像\\system\\bin\\hciattach\\system\\bin\\hcid HCID内核\\system\\bin\\hostapd\\system\\bin\\hostapd_cli\\system\\bin\\htclogkernel\\system\\bin\\input\ \system\\bin\\installd\\system\\bin\\itr\\system\\bin\\linker\\system\\bin\\logcat Logcat日志打印\\system\\bin\\logwrapper\\system\\bin\\mediaserver\\system\\bin\\monkey\\system\\bin\\mount d存储挂载器\\system\\binetcfg网络设置\\system\\bin\\ping Ping程序\\system\\bin\\playmp3MP3播放器\\system\\bin\\pm包管理器\\system\\bin\\qemud QEMU虚拟机\\system\\bin\\radiooptions无线选项\\system\\bin\\rild RIL组件\\system\\bin\\sdptool\\system\\bin\\sdutil\\system\\bin\\service\\system\\bin\\servicemanager服务管理器\\system\\bin\\sh\\system\\bin\\ssltest SSL测试\\system\\bin\\su*Android手机ROOT权限详细说明对于新近入手Android系统手机的机友来说,一定会接触到一个新词“ROOT”,他的出现频率很高,在各个论坛上,网友的字里行间经常会出现,那么ROOT权限是什么呢?可以给我们带来怎样的好处呢?什么是root,我需要它做什么?root就是手机的神经中枢,它可以访问和修改你手机几乎所有的文件,这些东西可能是制作手机的公司不愿意你修改和触碰的东西,因为他们有可能影响到手机的稳定,还容易被一些黑客入侵(Root 是Linux等类UNIX系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权利,所有对象他都有可以操作的权利,所以很多黑客在入侵系统时,都要把权限提升到Root权限,就是将自己的非法帐户添加到Root用户组。
安卓系统文件夹结构及其文件解析
安卓系统文件夹及其文件解析打开Android 文件管理器,会发现里面数十个英文名称命名的文件夹罗列其中,很多功能我们可以从其名字上略有所知,内部大批量的文件却让我们有些一头雾水。
这些文件是什么?有什么用?我们能不能删?这些都是我们脑中充满疑问的。
现在将将Android 手机内部文件夹的架构和各文件的功能描述介绍给大家,让大家自己手机的内部资源有个比较透彻的理解,同时也避免了用户误删造成的数据丢失和系统崩溃。
打开Android 文件管理器,会发现里面数十个英文名称命名的文件夹罗列其中,很多功能我们可以从其名字上略有所知,内部大批量的文件却让我们有些一头雾水。
这些文件是什么?有什么用?我们能不能删?这些都是我们脑中充满疑问的。
现在将将Android 手机内部文件夹的架构和各文件的功能描述介绍给大家,让大家自己手机的内部资源有个比较透彻的理解,同时也避免了用户误删造成的数据丢失和系统崩溃。
打开Android 文件管理器,会发现里面数十个英文名称命名的文件夹罗列其中,很多功能我们可以从其名字上略有所知,内部大批量的文件却让我们有些一头雾水。
这些文件是什么?有什么用?我们能不能删?这些都是我们脑中充满疑问的。
现在将将Android 手机内部文件夹的架构和各文件的功能描述介绍给大家,让大家自己手机的内部资源有个比较透彻的理解,同时也避免了用户误删造成的数据丢失和系统崩溃。
打开Android 文件管理器,会发现里面数十个英文名称命名的文件夹罗列其中,很多功能我们可以从其名字上略有所知,内部大批量的文件却让我们有些一头雾水。
这些文件是什么?有什么用?我们能不能删?这些都是我们脑中充满疑问的。
现在将将Android 手机内部文件夹的架构和各文件的功能描述介打开Android 文件管理器,会发现里面数十个英文名称命名的文件夹罗列其中,很多功能我们可以从其名字上略有所知,内部大批量的文件却让我们有些一头雾水。
这些文件是什么?有什么用?我们能不能删?这些都是我们脑中充满疑问的。
android主要镜像(image)解析
android主要镜像(image)解析img解析:ramdisk.img:android根文件系统,在android编译系统生成的out/target/product/root目录中结构:./init.trout.rc./default.prop 保存一些调试参数,对于开发者相当重要./proc./dev./init.rc 一些启动参数./init./sys./init.goldfish.rc./sbin./sbin/adbd./system system.img挂载点./data userdata.img挂载点userdata.img 保存用户、应用信息。
结构:/data/app 所有安装后的app会移至此处,apk被拆成dex和apk,dex为目标文件,apk为资源包/data/data 应用程序内部存储信息,sharepreference、database,etcsystem.img 包含整个android系统结构:system/app android出厂内置应用在此,同时,在这里的app可以获得一些特别的权限。
system/framework android框架在此,不宜乱动,开发者可以使用adb push + 拔电池开关机可以快速验证问题。
(前提是eng 版本)Special App:SystemUI.apk 状态栏藏在里面。
framework-res.apk包含整个系统res文件夹 including 系统UI、一些配置参数、theme、style、animationrecovery.img 按power键+音量上键(android默认)可以进去,可以执行T卡升级,format,backup userdata,restore userdata 结构:不知道boot.img 包含一个linux kernel (maybe named as zImage)和一个ramdisk。
img文件结构在源码system/core/mkbootimg/bootimg.h中声明uboot.img android启动时第一个加载的镜像,初始化硬件和基本输入出系统。
android img 的编译过程
android img 的编译过程
Android img的编译过程通常包括以下步骤:
在Android源码根目录下执行初始化环境命令:source build/envsetup.sh。
使用lunch命令选择需要编译的版本,如:lunch full-eng。
执行make命令进行编译,如:make bootimage,这个命令会编译生成boot.img。
boot.img的生成过程主要是将kernel、ramdisk、dtb打包到一起。
在这个过程中,需要用到dtb.img,如果dtb.img过大导致编译不过,那么需要分析dtb.img的生成过程。
dtb.img实际上是将kernel下的dts文件重新命名后拷贝到out目录下生成的。
此外,编译Android系统时,make命令实际上是在执行Makefile文件。
Android系统的Makefile文件在源码根目录下,并且这个Makefile文件会包含另一个主要的Makefile文件,即main.mk。
在main.mk中,定义了一个默认目标droid,这个目标依赖于droid_targets。
droid_targets又依赖于droidcode和dist_files两大伪目标。
当执行make命令时,make工具会检查并解析这些依赖关系,然后按照依赖顺序生成目标文件。
安卓系统文件夹结构及其文件解析(详细)
1:c:/System/cache 文件夹是缓存目录,建议大家定时清空。
2:所有temp文件夹是临时目录建议清空。
3:依次打开C:/system/dmgr,里面有两个文件夹了,各有一个contents的文件夹,进去之后发现里面的文件是不是似曾相识?嘿嘿,这就是平时上网下载的一些视频啦音乐还有一些文本文件,可以安全删除,不放心的话,这里的文件可以直接打开。
4:c盘data目录下的installs是软件的安装目录,可以清空。
5、打开C盘--打开system--删除system.ini文件,重新启动手机,还能恢复这个文件,但是,文件已经没那么大了,再看接收短信彩信,速度已经快多了,机器运行也顺多了。
定期删除以下的文件:c:\cache 缓存目录c:\space\cache 手机照相缩图c:\system\data\music.db 音乐临时文件c:\system\data\cbs\cbtopicsmsgs.dat 若存在定时删除c:\system\temp 临时文件夹c:\system\install 已安装sis纪录文件c:\system\install\install.log 安装软件的日志文件c:\system\apps\applnst\appinst.ini 纪录安装软件的讯息c:\system\apps\photoalbum\photoalbum.ini 图片浏览初始化文件c:\system\mail 讯息储存文件夹c:\data\install 一般应没有档案,若有则删除c:\system\system.ini 纪录系统错误讯息e:\private\10202dce 已安装软体之备份档e:\resource\skins\03d960c95acb3ca6 安装后与已删主题之残留文件智能手机C盘清理技巧---提高运行速度的六种方法定时清理C盘垃圾,是改善手机运行速度的通用方法,下面的几种都是在N95上适用的清理方法:1)文件传送法:首先,把信息的存储指定到机器存储,然后看自己机器内存有多大。
simg2img imgsing用法
simg2img imgsing用法simg2img和img2simg是Android系统中的两个工具,用于将系统镜像文件(system.img、userdata.img等)转换成可读写的img格式,以及将img格式转换成只读的simg格式。
这些工具通常在开发和定制Android系统时使用,以便在不同设备上部署和管理系统镜像。
simg2img和img2simg的用法很简单。
下面分别介绍它们的用法。
1. simg2img的用法:simg2img工具用于将simg格式的系统镜像文件转换为img格式。
使用该工具的命令格式如下:```simg2img <source_simg_file> <output_img_file>```其中,`<source_simg_file>`是要转换的simg格式系统镜像文件的路径,`<output_img_file>`是转换后的img格式系统镜像文件的输出路径。
例如,要将名为system.simg的simg格式系统镜像文件转换为img格式,可以使用以下命令:```simg2img system.simg system.img```执行上述命令后,将生成一个名为system.img的可读写的img格式系统镜像文件。
2. img2simg的用法:img2simg工具用于将img格式的系统镜像文件转换为simg格式。
使用该工具的命令格式如下:```img2simg <source_img_file> <output_simg_file>```其中,`<source_img_file>`是要转换的img格式系统镜像文件的路径,`<output_simg_file>`是转换后的simg格式系统镜像文件的输出路径。
举个例子,要将名为system.img的img格式系统镜像文件转换为simg格式,可以使用以下命令:```img2simg system.img system.simg```执行上述命令后,将生成一个名为system.simg的只读的simg格式系统镜像文件。
安卓系统文件夹结构及其文件解析
安卓系统文件夹结构及其文件解析Android系统的文件夹结构是由一系列目录和文件组成的,用于存储系统文件、应用程序、用户数据等。
以下是Android系统文件夹结构的详细解析。
1. /system:该目录包含了系统级别的文件和应用程序。
主要包含以下几个子目录和文件:- /bin:存放一些系统的可执行文件。
- /etc:存放一些系统的配置文件。
- /lib:存放系统级别的库文件。
- /vendor:存放供应商定制的文件和应用程序。
2. /data:该目录存放应用程序的数据、用户数据等。
主要包含以下几个子目录和文件:- /data/app:存放应用程序的安装包及其相关数据。
- /data/data:存放应用程序的数据。
- /data/system:存放系统级别的数据,如配置文件、登录信息等。
- /data/user:存放用户的数据,如文档、照片等。
3. /cache:该目录存放系统的缓存文件。
主要包含以下几个子目录和文件:- /cache/app:存放应用程序的缓存数据。
- /cache/dalvik-cache:存放Dalvik虚拟机的缓存文件。
- /cache/recovery:存放系统恢复相关的缓存文件。
4. /root:该目录是系统的根目录,包含一些系统级别的文件和目录。
5. /mnt:该目录是挂载点目录,用于挂载外部存储设备和其他文件系统。
6. /proc:该目录是一个虚拟文件系统,用于存放系统和进程相关的信息。
除了以上主要的文件夹,还有一些重要的文件可以解析如下:7. /init.rc:该文件是系统的启动脚本,用于初始化系统的各个组件和服务。
8. /build.prop:该文件包含了系统的一些基本属性和配置,如设备型号、版本号等。
9. /system/framework:该目录存放Android系统的核心框架文件。
10. /system/app:该目录存放系统自带的应用程序。
11. /system/lib:该目录存放系统级别的共享库文件。
Android工程各文件夹结构的含义及全代码使用与全解
Android工程各文件夹结构的含义及全代码使用与全解对Android这些东西一开始听迷惑的,不知道什么东西该放在上面地方,把网上的资源整合一下,放在这里。
1.总述我们建立一个android工程,其结构如下:1.1、src文件夹顾名思义(src, source code)该文件夹是放项目的源代码的。
A. android.app.Activity类:Activity类关注创建窗口与交互,它使用方法setContentView(View)将自己的UI放到里面。
重要的方法:onCreate(Bundle):初始化活动(Activity)。
(1)通过调用setContentView(int)方法加载布局资源(layoutresource)从而实现对UI的定义;(2)另一方面,可以用findViewById(int)在UI中检索到需要编程交互的小部件(widgets)。
主要的思想:setContentView指定由哪个文件指定布局(main.xml),可以将这个界面显示出来,然后我们进行相关操作,我们的操作会被包装成为一个意图(Intent),然后这个意图对应有相关的activity进行处理。
B. android.os.Bundle类:从字符串值映射各种可打包的(Parcelable)类型(Bundle单词就是捆绑的意思,所有这个类很好理解和记忆)。
如该类提供了公有方法——public boolean containKey(String key),如果给定的key包含在Bundle的映射中返回true,否则返回false。
该类实现了Parceable和Cloneable接口,所以它具有这两者的特性。
1.2、gen文件夹该文件夹下面有个R.java文件,R.java是在建立项目时自动生成的,这个文件是只读模式的,不能更改。
R.java文件中定义了一个类——R,R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R类定义该项目所有资源的索引。
Android的文件系统结构
Android的⽂件系统结构1、Android⽂件系统的结构官⽅android源码编译后得到的⽂件如下:其中有system.img,ramdisk.img,userdata.img三个映像⽂件。
其中,ramdisk.img是⽂件系统,system.img包括了主要的包、库等⽂件,userdata.img包括了⼀些⽤户数据,当emulator加载这3个映像⽂件后,会把system.img和userdata.img分别加载到ramdisk⽂件系统中的system和userdata⽬录下。
2、分离组建Android⽂件系统system.img,ramdisk.img,userdata.img映像⽂件是采⽤cpio打包、gzip压缩的,可以通过file命令验证:filer amdisk.img,输出:[plain]1. ramdisk.img:gzip compressed data, from Unix, last modified:其中ramdisk.img是⼀个分区映像⽂件,即是⼀个⽂件系统(root file system),,kernel启动时,ramdisk负责init,system.img包括了主要系统,系统app等,挂载于⽂件系统下的system⽂件夹, userdata.img包括了⼀些⽤户数据,被挂载到⽂件系统下的data⽂件夹下。
另外Android源码编译后还有root、system、data三个⽂件夹,其实就是上述三个img解压之后的内容⽽已,root⽂件夹⾥⾯的内容就是ramdisk.img解压后的内容,即是⼀个⽂件系统,包括system、data、bin、dev等⽬录。
⽽system与data则对应着system.img与userdata.img 的解压后的内容。
验证⼀下就⾏了,将ramdisk.img复制⼀份到任何其他⽬录下,将其名称改为ramdisk.img.gz,并使⽤命令[java]1. gunzip ramdisk.img.gz然后新建⼀个名为ramdisk的⽂件夹,转到ramdisk⽬录,输⼊命令[html]1. <pre name="code" class="java">cpio-i -F ../ramdisk.img这下,就能看见ramdisk⾥⾯的内容与root⽂件夹⼀样的了。
Android系统文件夹结构说明
\system\app\Bugreport.odex
\system\app\Calculator.apk 计算器
\system\app\Calculator.odex
\system\app\Calendar.apk 日历
\system\app\Calendar.odex
\system\ap日历提供
\system\app\TelephonyProvider.apk 电话提供
\system\app\TelephonyProvider.odex
\system\app\Up dater.apk 更新程序
\system\app\Up dater.odex
\system\app\Vending.apk 制造商信息
\system\app\Vending.odex
\system\app\VoiceDialer.apk 语音拨号器
\system\app\VoiceDialer.odex
\system\app\YouTube.apk Youtube视频
\system\app\YouTube.odex
\system\app\gtalkservice.odex
\system\app\HTMLViewer.apk HTML查看器
\system\app\HTMLViewer.odex
\system\app\IM.apk 即使通讯组件包含MSN、yahoo通
\system\app\ImCredentialProvider.apk
Android系统文件夹结构说明
Android手机系统的文件夹结构,帮助大家更直观地了解系统,作为查询工具加入收藏夹还是很不错的哦!\system\app这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。
安卓系统文件夹结构详解
安卓系统文件夹结构详解\\system\\app这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。
在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\\data\\文件夹中。
下面是详细的介绍:\\system\\bin这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary 二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍:\\system\\bin\\akmd\\system\\bin\\am\\system\\bin\\app_process系统进程\\system\\bin\\dalvikvm Dalvik 虚拟机宿主\\system\\bin\\dbus-daemon系统BUS总线监控\\system\\bin\\debuggerd调试器\\system\\bin\\debug_tool调试工具\\system\\bin\\dexopt DEX选项\\system\\bin\\dhcpcd DHCP服务器\\system\\bin\\dumpstate状态抓取器\\system\\bin\\dumpsys系统抓取器\\system\\bin\\dvz\\system\\bin\\fillup\\system\\bin\\flash_image闪存映像\\system\\bin\\hciattach\\system\\bin\\hcid HCID内核\\system\\bin\\hostapd\\system\\bin\\hostapd_cli\\system\\bin\\htclogkernel\\system\\bin\\input\\system\\bin\\installd\\system\\bin\\itr\\system\\bin\\linker\\system\\bin\\logcat Logcat日志打印\\system\\bin\\logwrapper\\system\\bin\\mediaserver\\system\\bin\\monkey\\system\\bin\\mountd存储挂载器\\system\\bin etcfg 网络设置\\system\\bin\\ping Ping程序\\system\\bin\\playmp3 MP3播放器\\system\\bin\\pm包管理器\\system\\bin\\qemud QEMU虚拟机\\system\\bin\\radiooptions无线选项\\system\\bin\\rild RIL组件\\system\\bin\\sdptool\\system\\bin\\sdutil\\system\\bin\\service\\system\\bin\\servicemanager服务管理器\\system\\bin\\sh\\system\\bin\\ssltest SSL测试\\system\\bin\\su**ceflinger触摸感应驱动\\system\\bin\\svc服务\\system\\bin\\system_server\\system\\bin\\telnetd Telnet组件\\system\\bin\\toolbox\\system\\bin\\wlan_loader\\system\\bin\\wpa_cli\\system\\bin\\wpa_supplicant\\system\\etc从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
安卓系统中各镜像介绍
安卓系统中各镜像介绍背景对于安卓开发⽽⾔,了解各镜像的意义、内容以及如何制作,有极⼤的意义。
注意,ROM中的5个镜像⽂件的扩展名都是img,但其格式却不同,也就是说不能使⽤同⼀种⽅法对其进⾏格式解析。
系统镜像(System.img)系统镜像⽤于存储Android系统的核⼼⽂件,将其解压出来,就是设备中/system⽬录,⾥⾯包含了Android系统主要的⽬录和⽂件。
⼀般这些⽂件是不允许修改的。
系统镜像对应的⽂件名⼀般叫system.img。
当然,系统镜像的⽂件可以任意命名,之所以叫system.img是为了与⽣成镜像⽂件之前的system⽬录保持⼀致,这样⽐较容易与其他类型的镜像⽂件区分。
system.img可以添加:Android系统应⽤更多的library为了搞清楚system.img镜像中的内容,可以将其解压:旧版的镜像是yaffs格式的(通过mkyaffs2image⼯具制作的),可以使⽤unyafss命令对其解压。
unyaffs system.img如果对编译Android源代码⽣成的system.img⽂件执⾏上⾯的命令,可以完美的将system.img⽂件还原成system⽬录,会从system⽬录中看到相应的⼦⽬录,例如,/system/app、/system/lib等,实际上,system.img⽂件就是out/target/product/generic/system中的⽂件压缩⽣成的。
另外,⾼版本Android的system.img通常是ext4格式的⽂件系统镜像(通过make_ext4⼯具制作),可以使⽤simg2img⼯具进⾏转换后挂载。
由于system.img是压缩格式,所以并不能直接使⽤mount命令挂载。
在编译Android 源代码后会在Android源代码⽬录/out/host/linux-x86/bin⽬录⽣成⼀个simg2img命令⾏⼯具建议将该⽬录加到PATH环境变量中,因为当中的各种命令⾏⼯具会被经常使⽤。
android中各种img文件的作用以及系统启动过程
android中各种img文件的作用以及系统启动过程android中各种img文件的作用以及系统启动过程2011-11-09 17:41首先通过编译,先将android内核编译成功。
正常情况下,在目录out/target.product/generic/(但是有的就没有generic文件,如freescale和iriver;但是lonshinetech下面就有这个文件,依据情况而定,只要能找到生成的三个文件就可以。
例如:~/freescale/R9.2/out/target/product/imx51_bbg$ )下会生成三个文件:ramdisk.img,system.img,userdata.img。
这三个文件的作用如下:(1)ramdisk.img一个分区影像文件,它会在kernel 启动的时候,以只读的方式被mount ,这个文件中只是包含了/init 以及一些配置文件,这个ramdisk 被用来调用init,以及把真正的root file system mount 起来。
#其实ramdisk.img的内容就是/out/target/product/generic/root目录的压缩而已。
方法1:android编译生成后的ramdisk.img是一个gzip 格式的文件,输入命令# file ramdisk.img, 会得到=>ramdisk.img: gzip compressed data, from Unix那么先解压ramdisk.img,因为后缀不是.gz,所以用—S选项, # gunzip -S .img ramdisk.img这样就得到一个新文件ramdisk.img,用# file ramdisk 查看格式, 得到=> ramdisk: ASCII cpio archive (SVR4 with no CRC) 可以看出解压生成的ramdisk是cpio格式的文件,再次解压,为了防止解压后文件混乱,首次建立一个目录如:# mkdir rfs //rfs可以用来放ramdisk解压后的文件, 进入# cd rfs解压# cpio -i -F ../ramdisk 方法2:将ramdisk.img复制一份到任何其他目录下,将其改名为ramdisk.img.gz,然后使用命令# gunzip ramdisk.img.gz,然后新建一个文件夹ramdisk,进入,输入命令# cpio -i -F ../ramdisk.img 得到结果如下drwxr-xr-x 8 root root 4096 2011-01-12 11:36 ./drwxr-xr-x 13 root root 4096 2011-01-12 11:35 ../drwxrwx--x 2 root root 4096 2011-01-12 11:36 data/-rw-r--r-- 1 root root 118 2011-01-12 11:36 default.propdrwxr-xr-x 2 root root 4096 2011-01-12 11:36 dev/-rwxr-x--- 1 root root 107784 2011-01-12 11:36 init*-rwxr-x--- 1 root root 492 2011-01-12 11:36init.freescale.rc*-rwxr-x--- 1 root root 1677 2011-01-12 11:36init.goldfish.rc*-rwxr-x--- 1 root root 18263 2011-01-12 11:36 init.rc*drwxr-xr-x 2 root root 4096 2011-01-12 11:36 proc/drwxr-x--- 2 root root 4096 2011-01-12 11:36 sbin/drwxr-xr-x 2 root root 4096 2011-01-12 11:36 sys/drwxr-xr-x 2 root root 4096 2011-01-12 11:36 system/ #可以看出这写文件是和root目录下的内容完全一样,其实就是对root目录的打包和压缩。
android rom制作之bootimg的详细介绍和使用
您首先应该要做的事情是使用您的recovery对您的ROM进行备份,以免操作失误照成数据的丢失!二、boot和recovery映像的文件结构boot和recovery映像并不是一个完整的文件系统,它们是一种android自定义的文件格式,该格式包括了2K的文件头,后面紧跟着是用gzip压缩过的内核,再后面是一个ramdisk 内存盘,然后紧跟着第二阶段的载入器程序(这个载入器程序是可选的,在某些映像中或许没有这部分)。
/*** +-----------------+** | boot header | 1 page** +-----------------+** | kernel | n pages** +-----------------+** | ramdisk | m pages** +-----------------+** | second stage | o pages** +-----------------+**** n = (kernel_size + page_size - 1) / page_size** m = (ramdisk_size + page_size - 1) / page_size** o = (second_size + page_size - 1) / page_size**** 0. all entities are page_size aligned in flash** 1. kernel and ramdisk are required (size != 0)** 2. second is optional (second_size == 0 -> no second) ** 3. load each element (kernel, ramdisk, second) at** the specified physical address (kernel_addr, etc)** 4. prepare tags at tag_addr. kernel_args[] is** appended to the kernel commandline in the tags.** 5. r0 = 0, r1 = MACHINE_TYPE, r2 = tags_addr** 6. if second_size != 0: jump to second_addr** else: jump to kernel_addr*/boot的ramdisk映像是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,例如:初始化init进程以及init.rc(可以用于设置很多系统的参数)等文件。
android镜像文件说明
android 源码编译完成后会生成三个镜像文件 system.img ->yaffs2格式 userdata.img ->yaffs2格式 ramdisk.img ->cpio 前两个文件可以挂载,但ubantu14.04默认不支持yaffs2格式,需编译内核。 windows下有解析此格式的软件 ramdisk.img 首先 file ramdisk.img ramdisk.img: gzip compressed data, from Unix 看出为gzip压缩过的文件,将ramdisk.img重命名为ramdisk.img.gz mv ramdisk.img ramdisk.img.gz 再用file来看一下ramdisk.img,此时为 ramdisk.img: ASCII cpio archive (SVR4 with no CRC) 这时候使用cpio来提取ramdisk.img中的内容 mkdir temp cp temp cpio -i -F ../ramdisk.img.gz 就解压开了 实际编译完成后out文件夹里 system.img ->system文件夹 userdata.img ->data文件夹 ramdisk.img -> root文件夹
ramdisk.img相当于根目录 system.img和userdata.img分别挂载到ramdisk的system和data文件夹。
Hale Waihona Puke
Img图像文件格式解析及读取
Img图像文件格式解析及读取王孝萌;曹广超【摘要】IMG文件格式是一种可存储多种类型数据、应用广泛的图像数据格式.IMG文件采用HFA结构组织数据,HFA是一种树状结构,各种数据(图像教据、统计数据、投影信息、地理数据等)占据“树”的各个节点.本文详细介绍了Img文件格式的结构,Img存储信息的重要特点是分块存储,并且提供了对Img文件读取的方法,此方法读取效率高,可以根据需要分块读取,只读取需要的块信息,大大的提高了读取速度.【期刊名称】《科技风》【年(卷),期】2012(000)024【总页数】2页(P81-82)【关键词】节点;Img;存储列表;数据流;CSharp【作者】王孝萌;曹广超【作者单位】青海师范大学生命与地球科学学院,青海西宁810008;青海师范大学生命与地球科学学院,青海西宁810008【正文语种】中文地理信息系统(GIS)中图像数据处理一直是一项重要的研究课题,图像数据格式的读写是其它工作的基础和前提,目前图像数据的处理和应用格式很多,Img格式是一种组织结构比较好的数据格式,在各种GIS平台的图像处理系统中应用很多。
最近一直在研究图像文件格式的解析,有一些进展,而且Img格式解析及其代码读取的相关文献较少,现就研究结果做一些分析。
本文详细介绍了Img图像文件的格式,并用CSharp语言实现了对Img图像文件的读取。
1 Img文件格式的组织结构1.1 Img文件格式的基本对象Img文件格式是由一系列相互联系的节点构成,每个节点都有自己的头文件,节点之间通过各自的头文件联系在一起,每个节点的头文件里分别记录着下一个节点、上一个节点、第一个子节点以及父节点的存储位置,可以根据这些信息轻松的读取到所有的节点,而且每个节点的头文件里还存储着各个节点数据的存储位置、数据大小、节点的结构类型等信息,可以根据节点的结构类型轻松的读取每一个节点。
每一个节点的结构类型都是不同的,这些结构类型列表存储在文件末尾。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. ramdisk.img : 一个分区影像文件,它会在kernel 启动的时候,以只读的方式被mount ,这个文件中只是包含了/init 以及一些配置文件,这个ramdisk 被用来调用init,以及把真正的root file system mount 起来。
2.system.img:是根文件系统,会被挂接到"/" 上,包含了系统中所有的二进制文件system|-- app| |-- Browser.apk| |-- Contacts.apk| |-- ContactsProvider.apk| |-- Development.apk| |-- Fallback.apk| |-- GoogleApps.apk| |-- GoogleAppsProvider.apk| |-- Home.apk| |-- ImProvider.apk| |-- Maps.apk| |-- MediaProvider.apk| |-- Phone.apk| |-- SettingsProvider.apk| |-- TelephonyProvider.apk| |-- XmppService.apk| `-- XmppSettings.apk|-- bin| |-- AudioHardwareRecord| |-- AudioInRecord| |-- RecursiveMutexTest| |-- SRecTest| |-- SRecTestAudio| |-- UAPI_PortabilityTest| |-- UAPI_SrecTest| |-- UAPI_test| |-- am| |-- app_process| |-- busybox| |-- cat -> toolbox| |-- cmp -> toolbox| |-- crasher| |-- dalvikvm| |-- date -> toolbox| |-- dbus-daemon| |-- dd -> toolbox| |-- debuggerd| |-- dexdump| |-- dexopt| |-- df -> toolbox| |-- dmesg -> toolbox | |-- drm1_unit_test| |-- drm2_unit_test| |-- dumpstate| |-- dumpsys| |-- exists -> toolbox | |-- getevent -> toolbox | |-- getprop -> toolbox | |-- hd -> toolbox| |-- ifconfig -> toolbox | |-- input| |-- insmod -> toolbox | |-- install_boot_image | |-- ioctl -> toolbox| |-- kill -> toolbox| |-- linker| |-- ln -> toolbox| |-- log -> toolbox| |-- logcat| |-- ls -> toolbox| |-- lsmod -> toolbox | |-- mem_profiler| |-- mkdir -> toolbox | |-- mkdosfs -> toolbox | |-- monkey| |-- mount -> toolbox | |-- mtptest| |-- netcfg| |-- netstat -> toolbox| |-- ping -> toolbox| |-- powerd -> toolbox | |-- pppd| |-- printenv -> toolbox | |-- ps -> toolbox| |-- pv| |-- r -> toolbox| |-- readtty -> toolbox| |-- reboot -> toolbox| |-- renice -> toolbox| |-- resetradio -> toolbox | |-- rild| |-- rm -> toolbox| |-- rmdir -> toolbox| |-- rmmod -> toolbox| |-- ro.xml| |-- ro2.xml| |-- roerror.xml| |-- rotatefb -> toolbox | |-- route -> toolbox| |-- runtime| |-- sdutil| |-- sendevent -> toolbox | |-- service| |-- setconsole -> toolbox | |-- setkey -> toolbox| |-- setprop -> toolbox| |-- sh| |-- showmap| |-- showslab| |-- sleep -> toolbox| |-- smd -> toolbox| |-- sqlite3| |-- ssltest| |-- start -> toolbox| |-- stop -> toolbox| |-- su| |-- sync -> toolbox| |-- syren -> toolbox| |-- system_server| |-- toolbox| |-- umount -> toolbox| |-- usbd| |-- watchprops -> toolbox | |-- webgrab -> toolbox| `-- wipe -> toolbox|-- build.prop|-- etc| |-- event-log-tags| |-- favorites-default.xml| `-- gservices.xml|-- fonts| |-- DroidSans-Bold.ttf| |-- DroidSans.ttf| |-- DroidSansFallback.ttf | |-- DroidSansMono.ttf| |-- DroidSerif-Bold.ttf| |-- DroidSerif-BoldItalic.ttf | |-- DroidSerif-Italic.ttf| `-- DroidSerif-Regular.ttf |-- framework| |-- am.jar| |-- core.jar| |-- ext.jar| |-- framework-res.apk| |-- framework-tests.jar| |-- framework.jar| |-- input.jar| |-- monkey.jar| `-- ssltest.jar|-- lib| |-- libFFTEm.so| |-- libUAPI_jni.so| |-- libaes.so| |-- libandroid_runtime.so | |-- libaudioflinger.so| |-- libc.so| |-- libcorecg.so| |-- libcrypto.so| |-- libctest.so| |-- libcutils.so| |-- libdbus.so| |-- libdl.so| |-- libdrm1.so| |-- libdrm1_jni.so| |-- libdvm.so| |-- libembunit.so| |-- libevent.so| |-- libexpat.so| |-- libhardware.so| |-- libicudata.so| |-- libicui18n.so| |-- libicuuc.so| |-- libm.so| |-- libmedia.so| |-- libmedia_jni.so| |-- libnativehelper.so | |-- libopengles_cm.so | |-- libpim.so| |-- libpixelflinger.so | |-- libpv.so| |-- libreference-ril.so | |-- libril.so| |-- libsgl.so| |-- libsonivox.so| |-- libsqlite.so| |-- libssl.so| |-- libstdc++.so| |-- libsurfaceflinger.so | |-- libsystem_server.so | |-- libthread_db.so| |-- libui.so| |-- libutils.so| |-- libwebcore.so| |-- libz.so| `-- security| `-- cacerts.bks|-- lost+found|-- media| `-- audio| `-- ringtones| |-- em_ringtone1.mp3| |-- em_ringtone2.mp3| |-- ring3.mp3| `-- ringer.mp3|-- sounds| `-- test.mid`-- usr|-- keychars| |-- qwerty.kcm.bin| |-- qwerty2.kcm.bin| `-- tuttle2.kcm.bin|-- keylayout| |-- qwerty.kl| `-- tuttle2.kl|-- share| |-- bsk| | |-- V_FD_speed_101.bsk| | `-- V_FD_std_101.bsk| `-- zoneinfo| |-- zoneinfo.dat| `-- zoneinfo.idx`-- srec`-- config|-- | |-- audio| | `-- v139| | `-- v139_113.nwv| |-- baseline.par| |-- baseline11k.par| |-- baseline8k.par| |-- dictionary| | `-- basic.ok| |-- g2p| | |-- en-US-15k.dictionary| | |-- en-US-60k.dictionary| | |-- en-US-90k.dictionary| | `-- en-US-ttp.data| |-- grammars| | |-- VoiceDialer.g2g| | |-- bothtags5.g2g| | |-- dynamic-test.g2g| | `-- enroll.g2g| `-- models| |-- generic.lda| |-- generic.mul| |-- generic.swiarb| |-- generic.swimdllst| |-- generic_f.swimdl| `-- generic_m.swimdl|-- shared| `-- sigmoid_param`-- speech_prompt.mp33。