Android性能分析之emmc坏块测试

本文介绍了如何在Android系统中编译并使用坏块测试工具badblocks,该工具用于检测emmc存储设备的坏块。首先,详细展示了Android.bp和Android.mk两种编译方式,并说明如何在特定平台的device.mk中添加语句将工具编译进系统。然后,阐述了badblocks的使用方法,包括参数选项和实际操作示例,如检查特定分区的坏块。最后,提供了一个脚本示例来批量检测所有分区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.android 支持emmc 坏块测试工具
代码路径:
./external/e2fsprogs/misc/badblocks.c

Android.bp编译方式:./external/e2fsprogs/misc/Android.bp

//########################################################################
// Build badblocks

cc_binary {
   
    name: "badblocks",
    host_supported: true,
    defaults: ["e2fsprogs-defaults"],

    srcs: ["badblocks.c"],
    shared_libs: [
        "libext2fs",
        "libext2_com_err",
        "libext2_uuid",
        "libext2_blkid",
        "libext2_e2p",
    ],
    system_shared_libs: ["libc", "libdl"],
}

Android.mk编译方式:external/e2fsprogs/misc/Android.mk
#########################################################################

Build badblocks

include $(CLEAR_VARS)

badblocks_src_files := \
        badblocks.c

badblocks_c_includes := \
        external/e2fsprogs/lib

badblocks_cflags := -O2 -g -W -Wall \
        -DHAVE_UNISTD_H \
        -DHAVE_ERRNO_H \
        -DHAVE_NETINET_IN_H \
        -DHAVE_SYS_IOCTL_H \
        -DHAVE_SYS_MMAN_H \
        -DHAVE_SYS_MOUNT_H \
        -DHAVE_SYS_PRCTL_H \
        -DHAVE_SYS_RESOURCE_H \
        -DHAVE_SYS_SELECT_H \
        -DHAVE_SYS_STAT_H \
        -DHAVE_SYS_TYPES_H
### Fastboot与EMMC的操作指南及常见问题 #### 一、Fastboot简介 Fastboot是一种用于刷写Android设备的协议工具,允许用户通过USB接口向未启动系统的设备发送命令并执行特定操作。此工具对于开发者来说非常有用,在刷机过程中可以用来擦除分区、安装固件等。 #### 二、Fastboot EMMC操作指南 ##### 1. 进入Fastboot模式 要进入fastboot模式通常可以通过重启手机时按住某些组合键来实现;也可以先连接电脑再运行`adb reboot bootloader`命令使设备自动重启到Bootloader界面[^1]。 ```bash adb reboot bootloader ``` ##### 2. 列出所有可用设备 当成功接入fastboot环境之后,可通过下面这条指令查看当前已连接上的安卓装置: ```bash fastboot devices ``` ##### 3. 获取EMMC信息 为了更好地理解内部存储结构以及各分区大小等情况,可利用如下命令获取emmc的相关详情: ```bash fastboot getvar all | grep mmc ``` ##### 4. 对EMMC进行读取/烧录镜像文件 针对不同的需求可以选择相应的子命令完成数据传输任务,比如下载新内核至指定位置(`part_name`)或将整个系统映像上传给目标板卡: ```bash # 将img文件刷入对应的partition中 fastboot flash part_name file.img # 从某个区域dump出bin文件保存本地 fastboot oem read partition-name filename.bin ``` 请注意这里提到的具体参数(partition name, img/bin files)需依据实际硬件平台而定,并参照官方文档说明做适当调整。 ##### 5. 销毁或创建新的逻辑卷组(LVM) 如果涉及到更复杂的磁盘管理,则可能需要用到LVM技术来进行动态分配空间资源。不过这一步骤相对复杂且风险较大,建议仅由经验丰富的工程师谨慎处理。 #### 三、常见问题解答 - **Q:** 使用fastboot无法识别我的设备怎么办? - **A:** 首先确认驱动程序已经正确安装好,其次尝试更换不同版本的ADB&Fastboot套装试试看能否解决问题。另外也要注意检查USB线缆质量是否良好,最好选用原装配件以确保兼容性最佳效果。 - **Q:** 如何解决fastboot闪存失败的情况? - **A:** 如果遇到此类状况首先要排查是不是因为电源不足造成的错误提示,接着考虑是否存在权限不够的问题(Windows下右击CMD选择管理员身份运行),最后还要留意是否有其他应用程序占用了端口导致冲突发生影响正常通信过程。 - **Q:** fastboot erase userdata会删除哪些资料呢? - **A:** 执行该条目将会清除掉/data目录下的全部个人设置记录,包括但不限于联系人列表、短信聊天记录、应用偏好设定等内容,请务必提前做好重要信息备份工作以免造成不必要的损失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值