热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

system.img解压和压缩

Android中的system.img可能有是yaffs2或者ext的文件系统。1.判断文件系统类型fileouttargetproduct

    Android 中的 system.img 可能有是yaffs2 或者 ext 的文件系统。



1.判断文件系统类型
   file out/target/product/generic/system.img
   如果输出是: out/target/product/generic/system.img: VMS Alpha executable  , 则表明是 yaffs2 文件系统,
   如果输出是: data 文件,则表明是 ext 文件系统

2. 解压
  - yaffs2 文件系统:
  •    下载 unyaffs 工具, 可以从 http://code.google.com/p/unyaffs/downloads/list 下载。
  •    创建一个目录把system.img 文件拷贝到该目录下
  •    运行 unyaffs system.img && rm system.img 就可以把 system.img 解压到新创建的目录下
  - ext 文件系统
  •   用simg2img 工具把system.img 转为为ext4 文件格式。
  •  用法: simg2img system.img system.ext4.img.
  • 工具位置 out/host/linux-x86/bin/simg2img
  • 源代码 http://gitorious.org/0xdroid/system_extras/blobs/9c842adc177c1bcd22c2038d8d237bfb70654dca/ext4_utils/simg2img.c
  •    之后创建一个目录,例如 "data",之后运行 mount -t ext4 -o loop system.ext4.img  data
  •    这样就可以在目录data 下面看到整个system.img 的内容了
3. 压缩
  - yaff2 文件系统
  •   可以使用工具: out/host/linux-x86/bin/mkyaffs2image
  •  工具用例:   out/host/linux-x86/bin/mkyaffs2image -f  out/target/product/generic/system out/target/product/generic/system.img
  - ext4 文件系统
  •   可以使用 out/host/linux-x86/bin/mkuserimg.sh 来生成 ext 文件系统的 system.img .
  • mkuserimg.sh 用法如下:
        mkuserimg.sh [-s] SRC_DIR OUTPUT_FILE EXT_VARIANT MOUNT_POINT SIZE
       ./mkuserimg.sh -s /some/directory/with/files ./factoryfs_custom.img ext4 ./temp 512M

     

        可以从这里看到源代码:  https://android.googlesource.com/platform/system/extras/+/android-cts-4.1_r2/ext4_utils/mkuserimg.sh

   




 

推荐阅读
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • jQuery Flot 数据可视化插件:高效绘制图表的专业工具
    jQuery Flot 是一款高效的数据可视化插件,专为绘制各种图表而设计。该工具支持丰富的图表类型和自定义选项,适用于多种应用场景。用户可以通过其官方网站获取示例代码和下载资源,以便快速上手和使用。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 点云技术初探(三):PCL基础知识与学习路径指南本文首先介绍了点云库(PCL)的基本概念,PCL是一个在前人点云研究成果基础上发展而来的大型跨平台开源C++编程库,旨在为点云数据处理提供全面的支持。文章详细阐述了PCL的核心功能及其在三维数据处理、特征提取、分割与配准等方面的应用,并为初学者提供了系统的学习路径和资源推荐,帮助读者快速掌握PCL的使用方法。 ... [详细]
  • 深入RTOS实践,面对原子操作提问竟感困惑
    在实时操作系统(RTOS)的实践中,尽管已经积累了丰富的经验,但在面对原子操作的具体问题时,仍感到困惑。本文将深入探讨RTOS中的原子操作机制,分析其在多任务环境下的重要性和实现方式,并结合实际案例解析常见的问题及解决方案,帮助读者更好地理解和应用这一关键技术。 ... [详细]
  • 在Ubuntu和Linux Mint系统中安装LibreOffice 6.0的详细步骤
    本文详细介绍了在Ubuntu和Linux Mint操作系统上安装LibreOffice 6.0的具体步骤,包括必要的系统准备、软件源配置以及命令行操作,确保用户能够顺利安装并使用这一开源办公套件。 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 对于内存仅为512MB、硬盘80GB的老旧设备,部署Ubuntu Server毫无压力。然而,许多平台仅支持CentOS系统,而CentOS默认要求1GB以上内存才能使用图形界面安装。实际上,安装完成后,即使内存低至256MB也能正常运行。此外,通过优化系统配置和减少不必要的服务,可以进一步提升系统性能,确保在资源受限的环境中稳定运行。 ... [详细]
  • 在使用C#编程语言从MySQL数据库中获取最近插入的记录ID时,我遇到了一些问题。具体来说,在执行以下SQL语句时出现了困难:`START TRANSACTION; SET @LASTID = 0; INSERT INTO Accounts (Col1, Col2) VALUES ('value1', 'value2'); SET @LASTID = LAST_INSERT_ID(); COMMIT;` 本文将详细探讨如何正确实现这一功能,并提供解决方案和最佳实践。 ... [详细]
  • 如何在Linux系统中部署TensorFlow的详细指南
    本文详细介绍了在Linux系统中部署TensorFlow的过程。作者基于北京大学曹建教授的MOOC课程进行学习,但由于课程内容较旧,环境配置方面遇到了不少挑战。经过多次尝试,最终成功解决了这些问题,并总结了一套详细的安装指南,帮助初学者快速上手TensorFlow。 ... [详细]
  • 2019.12.19
    LAMP环境搭建与配置 1.安装MySQL  下载软件包  #uname-i(x86_64)查看Linux多少位 (1)初始化 #tarzvfmysql*** [-dusrloca ... [详细]
author-avatar
用户uuexwjx90j
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有