精华内容
下载资源
问答
  • 详细介绍如何解包/编辑/打包android系统的boot.img文件
  • Cocos2d游戏开发之如何解包获得pvr.ccz中的美术资源 在大部分时候,Cocos2d游戏会将美术资源打包以减轻性能要求,提高加载速度。而如果我们需要获得其中的美术资源,就得解包。这里以plist+pvr.ccz常见于iOS项目上的...

    Cocos2d游戏开发之如何解包获得pvr.ccz中的美术资源
    在大部分时候,Cocos2d游戏会将美术资源打包以减轻性能要求,提高加载速度。而如果我们需要获得其中的美术资源,就得解包。这里以plist+pvr.ccz常见于iOS项目上的打包方式为例。
    我们需要:

    • 资源文件(1.zip)
    • 常用打包软件TexturePacker(TexturePacker.zip)
    • 方便好用的解包软件Anti_TexturePacker17(Anti_TexturePacker17.zip)

    先将上述文件下载,安装好。打开TexturePacker,我们可以看见TexturePacker的界面十分简洁。
    TexturePacker的界面

    将解压好的资源文件整个文件夹拖入TexturePacker资源管理器中。
    拖入资源文件夹
    这样,我们就能看到pvr.ccz里打包的美术资源了(可以启用多文件打包)
    接下来,我们要将每一个pvr.ccz输出成一张png文件方便裁剪。
    拆分精灵表
    如图,使用TexturePacker中的拆分精灵表工具
    在这里插入图片描述
    打开我们想要转化的pvr.ccz文件,将精灵宽度和高度调至最大(蓝色范围刚好覆盖整个视图)
    在这里插入图片描述
    按保存精灵,保存了1个就成功了。
    在这里插入图片描述
    接下来要用到我们刚刚导出的png文件和原来资源文件中有的同名plist文件,将png文件重命名跟plist文件相同(删除-0)并放在同一文件夹下。
    在这里插入图片描述
    运行Anti_TexturePacker。
    在这里插入图片描述
    导入我们刚刚导出的png文件,这个软件会自动读取同名pllist,将其拆分成多个png文件。
    在这里插入图片描述
    如果要替换其中png文件,需要相同文件名和宽度高度等其他属性一致。

    展开全文
  • 如何解包.img文件

    千次阅读 2019-08-08 10:24:27
    linux环境下解包 1.sudo apt install android-tools-fsutils 2.执行su: 获取超级用户权限 3.simg2img system.img system_test.img 4.创建system_m目录 5. mount -o loop system_test.img system_m ...

    linux环境下解包
    1.sudo apt install android-tools-fsutils
    2.执行su: 获取超级用户权限
    3.simg2img system.img system_test.img
    4.创建system_m目录
    5. mount -o loop system_test.img system_m

    展开全文
  • #如何解包一个元组或者数组 data = ['ACME',50,91.1,(2012,12,21)] s='Hello' a,b,c,d=data _,_,_,_,e=s print(a,b,c,d,e) 结果ACME 50 91.1 (2012, 12, 21) o
    #如何解包一个元组或者数组
    data = ['ACME',50,91.1,(2012,12,21)]
    s='Hello'
    a,b,c,d=data
    _,_,_,_,e=s
    print(a,b,c,d,e)

    结果

    ACME 50 91.1 (2012, 12, 21) o

    展开全文
  • 如何解包/编辑/打包boot.img文件 感谢本文的作者:Alansj, DarkriftX, RyeBrye, Will, Try OP9, Tonyb486, Timmmm, Lxrose还有好多不知名的作者们在wiki上的不懈努力。 来源:http://an

    http://blog.csdn.net/tanxs001/article/details/6036985

     

    如何解包/编辑/打包boot.img文件

    感谢本文的作者:Alansj, DarkriftX, RyeBrye, Will, Try OP9, Tonyb486, Timmmm, Lxrose还有好多不知名的作者们在wiki上的不懈努力。

    来源:http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images 

    目录
    1、背景知识
    2、boot和recovery映像的文件结构
    3、对映像文件进行解包、编辑、打包的常规方法
    3.1、另一种解包、编辑、打包的方法
    4、将新的映像刷回到手机
    5、解包、编辑、打包为我们带来了什么
    6、本文讲的内容与使用update.zip刷机包不是一码事

    正文
    1、背景知识

    Android手机的文件系统有许多存储器组成,以下是在adb shell下面的输出:
    #cat  / proc / mtd
    dev:    size   erasesize  name
    mtd0: 
    00040000   00020000   " misc "
    mtd1: 
    00500000   00020000   " recovery "
    mtd2: 
    00280000   00020000   " boot "
    mtd3: 
    04380000   00020000   " system "
    mtd4: 
    04380000   00020000   " cache "
    mtd5: 04ac0000 
    00020000   " userdata "
    注意,不同的手机在上述存储设备的顺序可能会各不相同!一定要检查您的手机,确定在以下的操作中选择正确的设备号(mtdX,这个X的序号一定要检查清楚)。

    在本向导中,我们主要描述对"recovery"和"boot"的存储设备进行操作;"system"存储设备保存了android系统目录的所有数据(在系统启动后会挂载到“system/”目录);“userdata”存储设备将保存了android数据目录中的所有数据(在系统启动后会挂载到 “data/”目录,里面是会有很多应用数据以及用户的preference之类的配置数据)。

    从上面的输出可以看出来,recovery和boot分区对应着/dev/mtd/mtd1和/dev/mtd/mtd2,在你您开始做任何修改之前一定要做两件事情,第一件事情,一定要先对这两个分区进行备份。
    可以使用如下命令进行备份:
    # cat  / dev / mtd / mtd1  >   / sdcard / recovery.img
    # cat 
    / dev / mtd / mtd2  >   / sdcard / boot.img
    (注意added by lxros,只有手机获取了ROOT权限以后才能够执行上述的备份命令)

    第二件事情,你您应该把你您最喜欢的update.zip刷机包放置到你您的sd卡的根目录上面。如此一来,即使你您在后续的操作中出了问题,也可以启动到recovery模式进行恢复。

    另外一个你您需要知道的重要文件是在android系统目录下的/system/recovery.img,此文件是mtd1存储设备的完全拷贝。这个文件在每次关机的时候,会自动地被写回到mtd1存储设备里面。

    这会意味着两个事情:
    (1)任何对/dev/mtd/mtd1中数据的直接修改都会在下一次重启手机以后消失。
    (2) 如果希望对/dev/mtd/mtd1进行修改,最简单的做法是用你您自己的recovery.img替换掉/system/recovery.img。当你您创建自己的update.zip刷机包的时候(特别是在做刷机包的适配的时候),如果你您忘记替换这个/system/recovery.img, 这个recovery.img就会在关机的时候被烧写到mtd1里面去或许会变砖。一定要注意这一点!


    2、boot和recovery映像的文件结构
    boot 和recovery映像并不是一个完整的文件系统,它们是一种android自定义的文件格式,该格式包括了2K的文件头,后面紧跟着是用gzip压缩过的内核,再后面是一个ramdisk内存盘,然后紧跟着第二阶段的载入器程序(这个载入器程序是可选的,在某些映像中或许没有这部分)。此类文件的定义可以从源代码android-src/system/core/mkbootimg找到一个叫做bootimg.h 的文件。

    (译者的话,原文是一个叫做mkbootimg.h的文件,但从Android 2.1的代码来看,该文件名应该是改为bootimg.h了)。

    /*
    ** +-----------------+ 
    ** | 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
    */

    ramdisk映像是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,例如:初始化init进程以及init.rc(可以用于设置很多系统的参数)等文件。如果你您希望了解更多关于此文件的信息可以参考以下网址:
    http://git.source.android.com/?p=kernel/common.git;a=blob;f=Documentation/filesystems/ramfs-rootfs-initramfs.txt
    以下是一个典型的ramdisk中包含的文件列表:
    . / init.trout.rc
    .
    / default .prop
    .
    / proc
    .
    / dev
    .
    / init.rc
    .
    / init
    .
    / sys
    .
    / init.goldfish.rc
    .
    / sbin
    .
    / sbin / adbd
    .
    / system
    .
    / data

    recovery映像包含了一些额外的文件,例如一个叫做recovery的二进制程序,以及一些对该程序支持性的资源图片文件(当你您按下home+power组合键的时候就会运行这个recovery程序)。
    典型的文件列表如下:
    . / res
    .
    / res / images
    .
    / res / images / progress_bar_empty_left_round.bmp
    .
    / res / images / icon_firmware_install.bmp
    .
    / res / images / indeterminate3.bmp
    .
    / res / images / progress_bar_fill.bmp
    .
    / res / images / progress_bar_left_round.bmp
    .
    / res / images / icon_error.bmp
    .
    / res / images / indeterminate1.bmp
    .
    / res / images / progress_bar_empty_right_round.bmp
    .
    / res / images / icon_firmware_error.bmp
    .
    / res / images / progress_bar_right_round.bmp
    .
    / res / images / indeterminate4.bmp
    .
    / res / images / indeterminate5.bmp
    .
    / res / images / indeterminate6.bmp
    .
    / res / images / progress_bar_empty.bmp
    .
    / res / images / indeterminate2.bmp
    .
    / res / images / icon_unpacking.bmp
    .
    / res / images / icon_installing.bmp
    .
    / sbin / recovery

    3、对映像文件进行解包、编辑、打包的常规方法

    (注意,下面我给你您介绍的是手工命令行方式进行解包以及重新打包的方法,但是我仍然创建了两个perl脚本,这两个脚本可以让你您的解包和打包工作变得轻松许多。

    可以参考本文的附件

    unpack-bootimg.zip  http://android-dls.com/files/apps/unpack-bootimg.zip

    repack-bootimg.zip  http://android-dls.com/files/apps/repack-bootimg.zip


    如果你您很擅长使用16进制编辑器的话,你您可以打开boot.img或者recovery.img,然后跳过开始的2K的头数据,然后寻找一大堆0的数据,在这一堆0的数据后面,紧跟着1F 8B这两个数字(1F 8B是gzip格式的文件的结束标记)。从此文件开始的地方(跳过2K的头),一大堆0后面紧跟着到1F 8B这两个数字为止的全部数据,就是gzip压缩过的linux内核。从1F 8B后面紧跟着的数据一直到文件的结尾包含的全部数据,就是ramdisk内存盘的数据。你您可以把把内核和ramdisk两个文件分别保存下来,在进行分别的修改和处理。我们可以通过un-cpio和un-gzip操作来读取ramdisk文件中的数据,可以使用如下的命令来实现这个目的,以下操作会生成一个目录,直接cd进去就可以看到ramdisk中的数据了:

    gunzip  - c .. / your - ramdisk - file  |  cpio  - i

    此命令可以将ramdisk中的所有的文件解包到当前的工作目录下面,然后就可以对它进行编辑了。

    当需要重新打包ramdisk的时候,就需要re-cpio然后re-gzip这些数据和目录,可以通过如下命令来实现:(cpio会把所有当前目录下面的文件都打包进去,因此,在进行此步骤之前,请把不需要的文件都清除掉。)

    find .  |  cpio  - - H newc  |  gzip  >  .. / newramdisk.cpio.gz

    最后一步就是通过mkbootimg 这个工具,把kernel和ramdisk打包在一起,生成一个boot.img:

    mkbootimg  -- cmdline  ' no_console_suspend=1 console=null '   -- kernel your - kernel - file  -- ramdisk newramdisk.cpio.gz  - o mynewimage.img

    这里的mkbootimg工具会在编译android的源代码的时候会在~/android-src/out/host/linux-x86/bin目录下面自动生成。
    下载地址:
    http://git.source.android.com/?p=platform/system/core.git;a=tree;f=mkbootimg

    现在,如果不想背这些复杂的命令或者摆弄那个让人眩晕的16进制编辑器的话,可以尝试使用我编写的用于解包和打包的perl脚本了。希望这些脚本能够节约各位的键盘。

    3.1、另一种解包、编辑、打包的方法
    下载split_bootimg.zip 文件,在此zip文件中包含一个perl文件,split_bootimg.pl脚本,该脚本可以读取boot.img头(根据Android源码中的bootimg.h 读取)将kernel和ramdisk读取出来,此脚本也会输出内核命令行和板子名字。http://android-dls.com/files/linux/split_bootimg.zip

    (注意,不要使用从/dev/mtd/mtd2直接拷贝出来的boot.img,此映像可能在读取过程遭到损坏。)
    下面是一个从TC4-RC28更新中提取出来的boot.img进行解包操作:
    %  . / split_bootimg.pl boot.img 
    Page size:  2048  ( 0x00000800 )
    Kernel size:  1388548  ( 0x00153004 )
    Ramdisk size:  141518  ( 0x000228ce )
    Second size:  0  ( 0x00000000 )
    Board name: 
    Command line: no_console_suspend = 1
    Writing boot.img - kernel ... complete.
    Writing boot.img - ramdisk.gz ... complete.

    解包ramdisk的命令如下:
    %  mkdir ramdisk
    %  cd ramdisk
    %  gzip  - dc .. / boot.img - ramdisk.gz  |  cpio  - i
    %  cd ..

    解码完毕后,就可以修改了(例如,在default.prop设置ro.secure=0等等)

    使用mkbootfs工具(mkbootfs工具是编译完毕Android源代码以后,就会在~/android-src/out/host/linux-x86/bin自动生成)来重新创建ramdisk,可以使用如下命令来操作:
    %  mkbootfs . / ramdisk  |  gzip  >  ramdisk - new .gz

    使用mkbootimg来重新创建boot.img,mkbootimg也可以在~/android-src/out/host/linux-x86/bin目录中可以找到:
    %  mkbootimg  -- cmdline  ' no_console_suspend=1 console=null '   -- kernel boot.img - kernel  -- ramdisk ramdisk - new .gz  - o boot - new .img
    (注意:console=null的命令行选现是从TC4-RC30的boot.img引入的,用以去掉root shell)

    4、将新的映像刷回到手机
    可以将recovery.img拷贝到/system目录下面,然后重新启动手机,让手机自动为你您刷写到mtd里面(工作原理在上面已经提过了)。对于boot.img可以通过将其拷贝到sd卡的根目录,然后通过手机内的刷写工具将此映像写入到手机中。

    例如,使用adb工具 Android SDK 中的一个工具)将boot.img拷贝到手机的sd卡的根目录:
    adb push . / mynewimage.img  / sdcard
    然后通过adb shell登录手机(获取过ROOT 的)的shell交互模式,利用命令行进行交互:
    # cat  / dev / zero  >   / dev / mtd / mtd2
       write: No space left on device [ this   is  ok, you can ignore]
    # flash_image boot  / sdcard / mynewimage.img
    然后重启手机。

    如果手机能够正常启动,那么祝贺你您,你您的修改和替换已经成功了;如果不能够顺利启动,则需要重新启动进入recovery模式,并且使用update.zip来恢复。

    5、解包、编辑、打包为我们带来了什么
    可以修改手机开机启动时候的画面,具体的操作的地址为:
    http://forum.xda-developers.com/showthread.php?t=443431

    6、本文讲的内容与使用update.zip刷机包不是一码事

    您可以很容易地在其他论坛上看到关于如何自制update.zip刷机包的方法,也可以下载到很多在网络上共享的自制刷机包。例如:近期的多数刷机包都来自对rc30包的修改和调整。在update.zip刷机包里面会包括新的boot.img,recovery.img以及整个system/目录下的若干文件的替换和更新。如果您希望自己自制boot.img以及recovery.img,建议您选取相对较新的更新和版本。(选用较老的映像的话,或许会出现兼容性问题)。 

    对Gphone文件系统镜像的制作做一个简单的记录。

    一、镜像的制作

    前两天对镜像进行了解包和简单的分析。然后把解包后的文件又压缩成了镜像刷会了我的G1手机。在这里我简单记录一下如何压缩镜像。

    压缩镜像其实比解压简单得多。只要将ramdisk的文件夹和内核的zImage放在同一个文件夹下。然后将以下工具也放入同个文件夹:mkbootimgrepack-bootimg.pl 。(此处的 mkbootimg并不适合HTC版本的 G2  boot.img的制作、如需创建HTC版本的 G2  boot.img则要修改mkbootimg的源码,具体的修改方法我会在日后放出 )

    之后就打开shell,进入这个文件夹,然后执行:

    ./repack-bootimg.pl zImage ramdisk boot.img

    很快的,最后在文件夹下产生的 boot.img就是boot.img镜像。其实repack-bootimg.pl在这行过程中会调用同目录下的mkbootimg。而repack-bootimg.pl的使用格式是

    repack-bootimg.pl <kernel> <ramdisk-directory> <outfile>

    repack-bootimg.pl具体的原理你可以看看这个脚本的代码。recovery.img的镜像制作也是一样的。

    二、简单的刷机


    在有了镜像之后,就可以刷机了。具体方法如下:

    (1)先在G1上插入SD卡 ,然后把G1和电脑 通过USB相连。下载SDK,解包后,通过shell在tools目录下运行:

                sudo ./adb kill-server

                sudo./adb push (你的boot.img镜像路径) /sdcard


    这样,你的boot.img镜像就在Gphone的SD卡中了

    (2)然后,执行:

        sudo ./adb kill-server

        sudo ./adb shell
        * daemon not running. starting it now *
        * daemon started successfully *

        #cat /dev/zero > /dev/mtd/mtd2
        write: No space left on device
        #flash_image boot /sdcard/(你的boot.img镜像名称)



    这样,你就将新的boot.img镜像刷进了Gphone!可以启动看看了.

     

    展开全文
  • 如何解包/编辑/打包boot.img文件 原帖地址:http://blog.csdn.net/zhenwenxian/article/details/5856583 感谢本文的作者:Alansj, DarkriftX, RyeBrye, Will, Try OP9, Tonyb486, Timmmm, Lxrose还有好多...
  • 我把这个uimg文件放进ubuntu里通过unsquashfs可以解包出来,但用mksquashfs打包后有10m之多,再用您这个工具导入重新打包的文件就提示过大了。 我查看了用kmsquashfs打包的文件,头部16进制字节前...
  • 如何解包/编辑/打包boot.img文件 感谢本文的作者:Alansj, DarkriftX, RyeBrye, Will, Try OP9, Tonyb486, Timmmm, Lxrose还有好多不知名的作者们在wiki上的不懈努力。 来源:...
  • ==== ... ...如何解包/编辑/打包android系统的boot.img文件 首先声明这是转帖,LINUX环境大家可以用VMWARE来虚拟,可以下载UBUNTU 目录 1、背景知识 2、boot和recovery映像的文件结
  • 如何解包apk得到里面的源代码

    千次阅读 2016-05-17 18:49:53
    和你想解包的apk软件也放在同一个目录下,然后“运行--cmd”打开控制台,输入 cd /d h : /进入H盘的根目录然后输入以下内容( 控制台不要关,为了后面方便):其中apktool.jar 是解包工具,d表示解包, memo.apk是我...
  • <p style="text-align:center"><img alt="" height="137" src="https://img-ask.csdnimg.cn/upload/1611726430547.png" width="580" /></p> 类似这种的游戏文件拆包后成一文件夹 用的软件是AS 拆包后 不会封包</p>
  • HOWTO: Unpack, Edit, and Re-Pack Boot Images Several people have already figured out the details on their own, but I have gotten requests to do a more comprehensive tutorial on how the boot and
  • H264的RTP包如何解包

    2015-09-28 17:09:52
    各位论坛的大神,请教一下,H264的RTP包如何解包。live555的源码太复杂,没怎么去研究。参考网上其它人的方法,进行解包,把解包后的数据写入到文件中,用Elecard StreamEye工具查看,发现只有I帧是正常的,P帧B帧...
  • 5、解包、编辑、打包为我们带来了什么 可以修改手机开机启动时候的画面,具体的操作的地址为: http://forum.xda-developers.com/showthread.php?t=443431 6、本文讲的内容与使用update.zip刷机包不是一码事 您可以...
  • 如何解包分析Gphone的文件系统

    千次阅读 2009-06-23 18:35:00
    所以如何来提取的解包分析Gphone的文件系统呢?通过网上查找资料,很容易得到解决方法! 一、提取镜像文件。要提取镜像文件,你同手机的超级终端连接必须得有root权限。也就是你用"adb shell"登录手机后的提示符为...
  • 首先声明这是转帖,LINUX环境大家可以用VMWARE来虚拟,可以下载UBUNTU 目录 1、背景知识 2、boot和recovery映像的文件结构 3、对映像文件进行解包、编辑、打包的常规方法 3.1、另一种解包、编辑、打包的方法 4、将新...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 623
精华内容 249
关键字:

如何解包