探索Android 18系统镜像的结构与应用

需积分: 5 1 下载量 92 浏览量 更新于2024-11-21 收藏 229.81MB RAR 举报
资源摘要信息:"Android 18系统镜像文件" Android操作系统自2008年首次发布以来,已经成为了世界上最流行的移动操作系统。它是由Google主导的开源项目,广泛应用于智能手机和平板电脑。系统镜像是Android设备的软件基础,包含了操作系统的所有必要组件,使设备能够启动和运行。每一个Android版本都有与之对应的系统镜像,用于设备开发和测试。 本资源摘要所涉及的"android-18"指的是Android 4.3版本,它是Android操作系统的一个重要版本,正式名称为"Jelly Bean"。该版本在2013年7月发布,具有多项改进,包括提升系统性能和改善用户界面。它还引入了对蓝牙4.0的支持和一个名为"Google Now"的新功能,后者可以根据用户的位置、活动和搜索历史提供个性化的服务和信息。 在Android开发和测试领域,系统镜像扮演着关键角色。开发者需要系统镜像来测试和调试他们的应用程序,而设备制造商则使用它们来适配和优化Android系统以在特定硬件上运行。此外,系统镜像还是进行Android系统修改(如开发自定义ROM)的基础。以下是"system-images android-18"所涉及的一些关键知识点: 1. 系统镜像组成:系统镜像包括了Android的内核、库、Android运行时和所有预装应用。它们被打包成一个单一文件,这样开发者和制造商可以将一个完整的操作系统复制到设备上。 2. 使用场景:Android系统镜像通常用于模拟器环境或真实硬件设备中。开发者使用模拟器来测试应用,而制造商则在设备的开发阶段使用镜像进行测试和优化。 3. 获取方式:开发者可以从小米、华为、三星等制造商的官方ROM包中获取特定设备的系统镜像。对于想要在模拟器中测试应用的开发者,可以直接从Android开发者官网下载相应的系统镜像文件。 4. 更新与维护:随着新版本的Android系统发布,旧版本的系统镜像会逐渐不再支持,停止获得安全更新。因此开发者和制造商需要定期从官方渠道获取最新镜像,确保系统的安全性和兼容性。 5. 版本命名:Android系统采用了甜点命名规则,每个版本都有一个与之对应的甜点名称,而版本号则根据其开发进度进行标记。例如,Android 18对应的"Jelly Bean"版本是继"Ice Cream Sandwich"、"Honeycomb"之后的版本。 6. 安装系统镜像:安装Android系统镜像通常需要使用ADB(Android Debug Bridge)工具或特定的刷机工具。在进行安装之前,需要对目标设备进行解锁,并确保设备的引导程序(bootloader)可以被修改。 7. 刷机风险:刷机是一个高风险操作,可能导致设备损坏、丢失数据或失去保修资格。因此在刷机之前,需要进行充分的备份和研究,并确保遵循正确的步骤和提示。 通过理解和掌握上述知识点,开发者和制造商可以更有效地利用"system-images android-18"资源进行Android系统开发和测试,提升应用和设备的性能和用户体验。同时,这也是保持对Android生态系统的跟进和创新所不可或缺的技能。
2013-09-17 上传
使用方法:http://blog.csdn.net/asmcvc/article/details/11770851 工具: unyaffs,mkyaffs2image 其中unyaffs有windows版本和linux版本,mkyaffs2image只有linux版本。 windows版本的unyaffs用法: 把system.img复制到unyaffs的相同目录下,cmd命令下cd到unyaffs的目录下,然后执行命令:unyaffs system.img unyaffs会把system.img解压到其目录下。 linux版本的unyaffs用法: 把unyaffs复制到/usr/bin目录下,并修改权限为可执行。 然后cd到system.img目录下(假定目录为system目录),执行命令:unyaffs system.img 然后对system目录下的文件进行修改。 注意:修改完后的文件要修改一下权限,尽量和其他文件的权限保持一致。例如:chmod 644 framework-res.apk mkyaffs2image用法: 复制到/usr/bin目录下,并修改权限为可执行。 这里以打包system目录为system.img为例,执行命令: mkyaffs2image system system.img 然后把新生成的system.img复制替换掉原:adt-bundle-windows-x86\sdk\system-images\android-17\armeabi-v7a\system.img 执行bat批处理命令启动模拟器: D:\adt-bundle-windows-x86\sdk\tools\emulator-arm.exe -avd AndroidVM -partition-size 128 这里以修改android系统启动画面为例: 打开解包目录下的\framework\framework-res.apk 替换图片:framework-res.apk\assets\images\android-logo-mask.png为下图: 然后对\framework\framework-res.apk文件重新签名,复制到linux下后修改文件权限和原来一致。 然后mkyaffs2image system system.img打包生成新的system.img,替换原来的system.img,并启动模拟器,效果图如下: 修改代码: 工具:odextools(参考:《一键odex批量合并工具odextools的重新整理与使用》)、dexopt-wrapper 其中odextools.bat的代码: 批处理有一处bug:每打包一次会把odex文件删除掉,导致在后面的打包过程中会出现找不到:system/framework/core.odex类似的错误,因此只需要在打包完后不删除odex文件即可,找到del /f !apkx!.odex 1>nul 2>nul改为:::del /f !apkx!.odex 1>nul 2>nul,也就是注释掉这一行代码。 具体使用方法(操作在windows下): 在odextools\romdir目录下创建文件夹:system 利用unyaffs解包system.img后,把所有文件复制到system目录下。 然后运行odextools.bat,如图: 选择一个需要整合odex的目录选项即可。odextools.bat会自动设置环境变量,使用baksmali.jar来反编译odex为smali,然后再调用smali.jar打包为classes.dex, 然后再打包到相应的apk包(framework目录下对应的是jar后缀的,实际上也是个apk包),最后再重新签名。 如果要修改代码,则需要把上面重新打包生成的apk文件,利用常规方法反编译后修改smali代码,例如插桩输入log信息。然后再回编译并重新签名。 最后一步:因为system.img中的apk是优化过的,apk主目录下是没有classes.dex文件的,而是一个被优化过的odex文件,用于优化启动速度。 因此需要将修改后的apk包再用dexopt-wrapper优化apk包后生成出odex文件,然后删除apk包里的classes.dex,并在相同目录下放置与apk包同名的odex文件。 按照原system目录的文件结构组织好后,目录复制到linux环境下使用mkyaffs2image重新打包成system.img。