没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
12页
做为一名Android手机用户, 拿到system.img和data.img不是件难事 有这两个image可以做什么呢? ^_^可以做很多事,比如删除一些不想用的系统应用(/system/app目录下) 这里介绍的方法是针对image为yaffs2格式,也就是说android手机的存储设备是nand flash, 如果是emmc, 请看另一篇文章
资源推荐
资源详情
资源评论
做为一名 Android 手机用户, 拿到 system.img 和 data.img 不是件难事
有这两个 image 可以做什么呢? ^_^可以做很多事,比如删除一些不想用的系统应
用(/system/app 目录下)
这里介绍的方法是针对 image 为 yaffs2 格式,也就是说 android 手机的存储设备是 nand
flash, 如果是 emmc, 请看另一篇文章
(下面示例,适用于 pagesize=2048 byte 的 nand 芯片)
1. 把 system 目录压缩成 system.img
$out/host/linux-x86/bin/mkyaffs2image -f -c 2048 -s 64
out/target/product/{PRODUCT}/system out/target/product/{PRODUCT}/system .img
mkyaffs2image 由 android 源码工程编译而来,随便哪个 android 版本在 external/yaffs2 目
录下都有它的源码,mm 这个目录即可
2. 解压 system.img
$unyaffs2 -p 2048 -s 64 system,img system
源码如下,分别拷贝到 Makefile, unyaffs2.h, unyaffs2.c 文件,再执行 make all 编译即可
生成 unyaffs2 可执行程序
------------------------------------makefile-----------------------------------------------------------
CROSS =
CC = $(CROSS)gcc
RM = rm -fr
CFLAGS = -I.
CFLAGS += -O2
#CFLAGS += -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs \
# -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations \
# -Wmissing-prototypes -Wredundant-decls
LDFLAGS += -lm
TARGET = unyaffs2
YAFF2SRCS = unyaffs2.c
YAFF2OBJS = $(YAFF2SRCS:.c=.o)
all: $(TARGET)
$(TARGET): $(YAFF2OBJS)
$(CC) -o $@ $(YAFF2OBJS) $(LDFLAGS)
distclean:
clean:
$(RM) $(TARGET) $(YAFF2OBJS)
.PHONY: all clean distclean $(TARGET)
-------------------------------------unyaffs2.h----------------------------------------------------------
/*
* definition copied from yaffs2 project
*/
#ifndef __UNYAFFS_H__
#define __UNYAFFS_H__
#define YAFFS_MAX_NAME_LENGTH 255
#define YAFFS_MAX_ALIAS_LENGTH 159
/* Definition of types */
typedef unsigned char __u8;
typedef unsigned short __u16;
typedef unsigned __u32;
typedef struct {
unsigned sequenceNumber;
unsigned objectId;
unsigned chunkId;
unsigned byteCount;
} yaffs_PackedTags2TagsPart;
typedef struct {
unsigned char colParity;
unsigned lineParity;
unsigned lineParityPrime;
} yaffs_ECCOther;
typedef struct {
yaffs_PackedTags2TagsPart t;
yaffs_ECCOther ecc;
} yaffs_PackedTags2;
typedef enum {
YAFFS_ECC_RESULT_UNKNOWN,
YAFFS_ECC_RESULT_NO_ERROR,
YAFFS_ECC_RESULT_FIXED,
YAFFS_ECC_RESULT_UNFIXED
} yaffs_ECCResult;
typedef enum {
YAFFS_OBJECT_TYPE_UNKNOWN,
YAFFS_OBJECT_TYPE_FILE,
YAFFS_OBJECT_TYPE_SYMLINK,
YAFFS_OBJECT_TYPE_DIRECTORY,
YAFFS_OBJECT_TYPE_HARDLINK,
YAFFS_OBJECT_TYPE_SPECIAL
} yaffs_ObjectType;
剩余11页未读,继续阅读
资源评论
- zzzzt82014-04-28不能用,垃圾
- aadsash2014-04-04谢谢发帖者,你的东东敌我帮助很大
Mr_Acee
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功