android系统重新刷ROM简记(一)

Android 系统 ramdisk.img 的生成和mkbootfs源码分析 目录1. ramdisk.img生成分析2. mkbootfs工具源码分析3. CPIO格式简介4. TARGET_ROOT_OUT目录由何而来? 1. ramdisk.img生成分析 ramdisk.img是组成boot.img的重要部分,ramdisk image是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件。 将来Linux内核在启动时会调用init/initramfs.c中的函数unpack_to_rootfs对cpio格式进行解包[调用路径:start_kernel --&gt 阅读详情

      当需要对android系统进行大刀阔斧的改造的时候,应该清晰的了解android各个image的组成才能做到庖丁解牛。

      首先在android烧写过程中需要烧写的文件主要包括uboot.bin\boot.img\system.img\userdata.img\recovery.img等文件。

    小米的刷机文件主要包括data\META-INF\recovery\system\blob\boot.img\file_contexts文件。

Data文件夹下只有一个文件夹miui从名字可以知道里面存放的文件主要是小米的用户界面文件。

system/app  这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。

system/bin  这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件(命令)

system/etc  从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。

system/fonts  字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库其中DroidSansFallback.ttf文件大小

system/framework  framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。

system/lib  lib目录中存放的主要是系统底层库,一些so文件,如平台运行时库
system/media/audio  铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音。
system/usr  用户文件夹,包含共享、键盘布局、时间区域文件等

system/priv-app 可以存放自己编写的一些app文件

system/vendor 存放产品相关文件

bootimg文件是由Image和ramdisk.img文件生成。在/build/core/Makefile文件中有相关的描述。# the boot image, which is a collection of other images.

INTERNAL_BOOTIMAGE_ARGS := \

        $(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \

        --kernel $(INSTALLED_KERNEL_TARGET) \

        --ramdisk $(INSTALLED_RAMDISK_TARGET)

在system/core/mkbootimg/bootimg.h中有具体打包的描述。

** +-----------------+

** | boot header     | 1 page

** +-----------------+

** | kernel          | n pages

** +-----------------+

** | ramdisk         | m pages

** +-----------------+

** | second stage    | o pages

** +-----------------+

从上面能够清晰的看出boot.img文件的构成主要是将kernel以及ramdisk.img文件打包并且添加文件头完成。

如果需要修改小米官方给出的文件的情况下,可以使用

#./split_bootimg.pl boot.img

Page size: 2048 (0x00000800)

Kernel size: 6695672 (0x00662af8)

Ramdisk size: 1276106 (0x001378ca)

Second size: 0 (0x00000000)

Board name:

Command line:

Writing boot.img-kernel ... complete.

Writing boot.img-ramdisk.gz ... Complete.

解包ramdisk文件,首先要创建一个文件夹用于存放解压后的文件,进入文件夹之后,执行下面命令:

#gzip -dc ../boot.img-ramdisk.gz | cpio -i

对文件作出修改之后,需要重新做成boot.img文件。

使用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

 

 

 android系统重新刷ROM简记(二)

 

 

 

ROM定制编辑修改完整教程 ROM编辑定制,修改自定义系统,完整教程 阅读详情

相关推荐

android修改原生代码,【ROM教程】安卓原生ROM修改源码消除WIFI叹号教程

【ROM教程】安卓原生ROM修改源码消除WIFI叹号教程。Android为了对网络状态进行检测,采用了一种叫做captive detection的方式进行网络状态检测。其实说起来很简单,每当连接到一个网络,比如移动数据网络或者WIFI的时候,Android的NetworkMonitor模块会构造一个http/https的请求,发送到指定的服务器,然后利用收到的响应进行网络状态判断。安卓手机网络状态...

weixin_35141284的博客 2453

RK3399 Android系统10.0 init进程启动

课程简述  Android是目前最为流行的移动操作系统之一,它的开发涉及到多个知识领域。本课程将深入介绍Android系统启动过程中的重要组成部分——init进程,并探讨与之相关的多项关键技术。我们还将提供实际的开发案例,以RK3399开发板为例,通过演示Android产品配置、init启动流程、selinux权限管理、init.rc启动脚本定制等实际案例,让学员深入理解这些技术在实际产品开发中的应用场景和实现方法,提高学员的实际开发能力和经验,从而更好地应对实际产品开发中遇到的问题和挑战。知识运用方向学习Android启动方面的知识,可以参与如下实际开发工作项:启动流程定制: 根据产品需求调整Android启动流程,包括修改init.rc脚本、修改启动顺序和等待时间、加入自定义服务等。属性系统定制: 通过Android属性系统定制化启动流程,例如增加产品版本信息、定制开机音量等。日志系统分析: 掌握日志的捕捉、分析和排错技术,在启动过程中,需要加入调试信息来方便开发人员进行调试,同时需要进行日志的优化,避免日志输出过多占用过多的系统资源。selinux安全策略定制:在Android系统中,selinux是一种安全机制,用于保护系统的敏感资源和数据。在实际开发中,可能需要对selinux策略进行定制,以确保系统的安全性和稳定性。课程内容主要内容简述1, RK3399 开发板操作这部分内容重点介绍如何在FIreFly开发板上将Android 10系统运行起来, 包含编译FireFly的Android源码下载和编译, 镜像烧录运行,内核和模块编译,以及RK3399内核启动init进程的过程。2, 产品定制这部分讲解获取到方案商或者原厂提供的源码后, 如何定制一个新的产品,产品配置文件和模型, 原始代码中的配置文件和定制化东西3, Android日志代码编写之前讲过Android的日志系统, 并没涉及到代码编写, 这个部分重点讲解C/C++, java代码编写日志的API和代码4, 属性系统在Android中,属性使用的非常频繁的,可以用来作为进程间通信,也可以用于一些行为控制, 这个部分会重点介绍属性系统框架, API接口, 属性文件等知识点5,selinux进程对文件进行访问时,Android 4.3就开始集成了selinux权限管控, 如果需要启动某个脚本或者服务, selinux的配置就避免不了,并且Android8之后, Android系统对进程访问的权限管控的非常严格。6, init.rc脚本Android定义的一种脚本, 改脚本是有init进程启动, 是非常重要的一个脚本, 会包含系统中的其他很多脚本, 在我们系统开发时, 我们经常通过这个脚本进行一些定制化动作。7, init进程代码分析想要了解一个系统,就必须对源码进行分析和理解, 这个章节,带大家去跟读init进程代码, 这样,换了另外一个Android版本,完全就可以去读代码, 知道有什么变化。 

安卓13_ROM修改定制化-----ROM解打包 修改 讲解 导读篇

💖💖💜本文介绍了安卓13系统ROM解打包与定制修改的基础知识。主要内容包括:ROM解打包的概念与必要性,常用工具的使用方法,以及系统功能定制、参数优化、限制突破等常见修改方向。文章还强调了修改风险,包括设备变砖和保修失效的可能性,并警示不得用于非法用途。最后指出实践是掌握ROM修改技能的关键,后续将深入讲解具体操作步骤。该系列专栏旨在为安卓系统定制爱好者提供技术指导和交流平台。

小马哥的专栏 1219

Mkbootfs

NAME mkbootfs (android make ramdisk tools) DESCRIPTION 源代码在system/core/cpio编译出来的程序在out/host/linux-x86/bin/mkbootfs该程序是用来制作ramdisk.img的,需要配合minigzip一起使用。 ramdisk原始目录: ramdisk |-- ramdisk/data

619

全面掌握安卓ROM制作工具

在开始制作自定义安卓ROM之前,了解合适的工具是至关重要的。本章将对ROM制作过程中常用到的工具进行简单介绍。在众多签名工具中,一些尤为突出。例如,Google官方提供的刷机工具fastboot就是一个强大的签名工具,它能够对Android系统的boot分区、recovery分区等进行签名。另一个知名的工具是Android Open Source Project (AOSP) 的mkbootimg工具,它可以用来创建和修改boot.img文件,并为其添加签名。

weixin_32098457的博客 1224

Android打包boot.img工具mkbootfs

用于Android打包boot.img文件,主要是针对ramdisk

android开发中,apk文件安装到\system\app 的解决办法 仅限root机

  原文地址 http://zhidao.baidu.com/question/206374215.html 在 Android 中,如果要使用系统限制的权限(比如 android.permission.WRITE_SECURE_SETTINGS),我们需要把程序安装到 /system/app/ 下。 下面以 SecureSetting.apk 为例,演示这个操作。需要准备一台已经获得...

素食主义の狼 435

别再对着ACF/PACF图发懵了!用R语言实战教你一眼分清AR、MA和ARMA模型

本文通过R语言实战详细解析了时间序列分析中AR、MA和ARMA模型的特征图识别技巧。重点讲解了如何通过ACF和PACF图的截尾与拖尾特征快速判断模型类型,帮助数据分析师建立从图形到模型的直觉映射,提升时间序列分析的效率和准确性。

weixin_28706923的博客 356

2-开发板刷系统

一、开发板刷系统 1.1、什么是刷系统 刷系统就是利用刷机工具,向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来。 1.2、串口输出的意义(做系统控制台) 串口是一种硬件通信口,很多年前的时候串口是CPU之间进行通信的主要接口。但是现在因为串口通信的速度很低,所以现在串口主要是用来做程序输出监控、调试。 桌面电脑可以打开一个虚拟控制台,嵌入式系统一般是用串口来做控制的。一般是用一根串口线连接开发板的串口和我们笔记本电脑的串口,然后在电脑上打开一个串口监视,这样开发板上的串口输出内容就可以在电脑上看

成长的博客 2784

研究生如何快速发CVPR

研究生如何快速发CVPR,找到科研方向

python_vb的博客 785

BookSim2.0 教程

本文是yz关于BookSim2.0的个人学习经验与教程。 1.介绍 什么是BookSim2.0 BookSim2.0 是周期正确的互联网络模拟器(A Cycle-Accurate Interconnection Network Simulator),被设计用来伴随William James Dally 等人出版的的书籍 Principles and Practices of INterconnection on Networks使用。 此后其功能不断得到扩展。当前的主要版本 BookSim 2.0 支持广泛

更新一些计算机体系架构NoC,GEM5, AXI4,还有machine learning 的日常 5736

Android ROM制作教程,让你拥有自己喜欢的ROM

文章转载自:http://bbs.xiaomi.cn/t-13336185 作者斯文是我 关键词:java环境配置 制作工具 update-编写美化 集成 编译反编译 一. 制作目的: 1. 培养个人兴趣,感受动手动脑的快乐。 2. 学习手机基本知识,最终动手制作自己的ROM。 3. 帮助那些需要帮助的朋友(说不定有人喜欢你制作的ROM) 二. 制作原理: 1. 安卓基础知识普及: Andro...

iqiqiya的博客 3万+

5分钟搞定!用ZLMediaKit搭建GB28181视频监控系统(含避坑指南)

本文提供了一份基于ZLMediaKit搭建GB28181视频监控系统的实战指南。文章详细介绍了从环境准备、核心组件(ZLMediaKit与SIP服务器)部署、摄像头配置到内外网穿透的完整流程,并重点分享了设备ID配置、防火墙设置等关键避坑经验,帮助开发者快速构建稳定可控的监控平台。

apple5的专栏 1086

android 刷rom,刷ROM是什么?刷ROM是什么意思?

刷ROM是什么意思首先,ROM是由英文Read only Memory的首字母构成的,意为只读存储器。顾名思义,就是这样的存储器只能读,不能像RAM一样可以随时读和写。它只允许在生产出来之后有一次写的机会,数据一旦写入则不可更改。它另外一个特点是存储器掉电后里面的数据不丢失,可以存放成百上千年。手机ROM指的是存放手机固件代码的存储器(常说的刷机也就是指的是重新构建自己想要的ROM),比如手机的操...

weixin_42131342的博客 1951

基于STM32避障/循迹/蓝牙遥控小车的硬件与软件底层设计

1、实现2m的自动直线行驶,要求左右偏移不大于10cm。2、车载显示屏显示车辆当前行驶速度或车辆运行时间,当前方20cm内出现障碍物时显示与前方障碍物的距离,车每次转弯蜂鸣器报警,同时通过左右指示灯指示转弯方向。3、依次驶过障碍物①②③④,且不触碰障碍物。4、成功进行调头转弯,行驶过程中车轮不碾压黑实线。5、在车道指定位置停车且不越界。6、通过红外、蓝牙、WiFi等任意一种方式实现对小车的控制,使其前进、后退、左转、右转。

2301_78758161的博客 1万+

RV1126B SDK移植实战:从DDR配置到USB烧写全解析

本文详细解析了RV1126B SDK移植的核心实战流程,重点攻克了DDR初始化失败与USB烧写两大难题。文章从理解启动流程入手,提供了DDR配置错误的排查步骤、SDK编译配置要点,并深入讲解了USB烧写的完整操作与常见问题解决方案,旨在帮助开发者高效完成系统移植与稳定运行。

weixin_29164497的博客 542

MIUI刷Android原生,小米手机怎么刷安卓原生系统

小米手机自带的系统很好,但是很多人还是希望用安卓的原生系统,小米手机是支持刷机成为安卓原生系统的。那么小米手机怎么刷安卓原生系统呢?今天学习啦小编与大家分享下小米手机刷安卓原生系统的具体操作步骤,有需要的朋友不妨了解下。小米手机刷安卓原生系统方法下载工具包和线刷完整包,下载完成后解压,刷机工具点击下载MIUI 最新版线刷Fastboot开发版完整包点击下载。(请检查文件后缀名是否为".tgz",如...

weixin_39653481的博客 2万+

【AI编程干货】Vibe Coding 技巧(适用于AI编程IDE)

用 AI 写代码这件事门槛低,谁都能对着对话框输入几句话让它生成代码,但生成的东西能不能用、出了问题能不能兜住,这中间的差距比想象中大得多。 我从去年开始把 AI 编码工具作为主力开发手段,中间经历过项目失控、代码雪崩、反复返工,慢慢摸索出一套相对稳定的工作方式。这篇把核心的五个习惯拆开聊聊,都是实际项目里验证过的。

blues_C的博客 621

安卓rom制作教程_【教程】一加5/5T刷入第三方ROM教程

一、备份手机上需要的资料二、解锁及刷twrp recovery:首次刷入需要用电脑下载一键刷入recovery工具https://www.lanzous.com/i50mihc,在手机的设置---关于中,连续点击版本号,出现开发者选项后,返回到设置,进入开发者选项,打开OEM解锁和usb调试,连接电脑,手机出现询问信息,点击允许;刷机打开下载好的工具,按照提示操作,等待完成后即可三、刷入...

weixin_39811193的博客 2821

区块链技术与应用 【全国职业院校技能大赛国赛题目解析】Caliper从0到使用

技能大赛样题解析,caliper题目从0到使用

weixin_52865146的博客 2076

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

计算机ROM指什么意思,ROM是什么 刷ROM是什么意思

ROM是只读内存(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。如今安卓智能手机说的最多还是刷机,但现在又冒出了一个刷ROM,对于很多朋友来说,容易将这两者混淆,以致于不容易理解。其实手机刷ROM就是指刷机。ROM是指手机硬盘(存储东西与...

weixin_30520605的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

卡刷rom轻松转线刷rom_常见的第三方REC卡刷过程总结

从最原始的官方REC升级,到第三方REC卡刷ROM,刷机的方式,也在不断的更新,并且产生出新的卡刷形式。尤其是在谷歌推出的Project Treble(简称PT)之后,新机型对于各种不同的厂商的ROM的兼容性似乎更好了。这也就意味着可以刷通刷包或者恢复包了。和普通的第三方REC卡刷不同,通刷包以及恢复包的刷入形式比较特殊,不是简单地安装即可。目前,常见的第三方REC卡刷,主要有以下三种:...

weixin_39767386的博客 2万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android10rom包,安卓10的刷机教程,教你刷好Killer的精简包

本帖最后由 大熊花 于 2020-6-13 22:03 编辑安卓10真香……之前我还退回到安卓9的公测33,心想为了玩游戏流畅,结果发现还是安卓10更好一点。下午把东西准备齐了刷了killer的安卓10稳定1的精简包,打游戏又开心了(我玩崩坏3,战双以及fgo,欢迎一起来玩)刷安卓10除了需要准备的东西有些许不同其他都差不多。流程如下:先用一加搬家备份,先用一加搬家备份,先用一加搬家备份,再把备份...

weixin_32123093的博客 7391

MIUI13欧洲ROM开发版安卓12超详细教你刷入MIUI欧洲版ROM

MIUI13欧洲ROM开发版安卓12简洁版教程 通过 Fastboot 安装 A12 设备: 下载我们的 ROM zip 文件 解压下载的 zip 文件在 PC 中 将您的设备重新启动到快速启动模式(按降低音量键 + 电源键) 通过 USB 电缆连接到 PC 根据您的 PC 操作系统从解压缩的 zip 运行 fastboot 安装脚本: 对于 Windows 操作系统 -windows_fastboot_update_rom.bat 对于 Linux -linux_fastboot_update_..

zeh_521的博客 1万+

android 刷rom,android系统又一次刷ROM简记(一)

当须要对android系统进行大刀阔斧的改造的时候,应该清晰的了解android各个image的组成才干做到庖丁解牛。首先在android烧写过程中须要烧写的文件主要包含uboot.binoot.imgsystem.imguserdata.imgecovery.img等文件。小米的刷机文件主要包含dataMETA-INFecoverysystemloboot.imgfile_contexts文件。...

weixin_39959369的博客 279

[教程] [经验技巧] 任意手机移植ROM 教程,超详细ROM 技术学习

从内核基于linux开始 整个系统就运行在一个虚拟机上,这是安卓的一大特征!! 那么我们移植的时候要修改哪一部分? 这就是我们这个帖子的重点了 参考本链接 http://www.miui.com/thread-3660267-1-1.html 交流学习 通俗易懂的流程,主体框架不会改变。固定的目录结构,移植不同设备,根据不同的需求对几个特定文件进行修改。最后重新进行压缩zip,zip包名改为upd...

qq_15904867的博客 2万+
上一篇: git使用入门
下一篇: 文件系统笔记ext4 yaffs2 fat ubi
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值