blog.sina.com.cn/s/blog_706845a5010129da.html

终于很恶心的把流程走通了

首先列出需要的东西,从网上搜一下就能搜到了:

———源码类———–

1. kernel source

2. .config文件

———工具类———–

1. 交叉编译器arm-eabi-

2. fastboot,adb等android工具

3. mkbootimg用于解包boot.img使用

———脚本类———–

1. repack-bootimg.pl //不一定需要

2. unpack-bootimg.pl

下面是完整版刷内核及内核模块攻略(基于恶心的Galaxy Nexus)

1. 配置交叉编译器等各种环境

2)写入环境变量中:

export PATH=“/home/xxx/android-toolchain/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH”

2. 编译内核

1)修改内核根目录下的Makefile(一劳永逸的方法…):

#ARCH ?= $(SUBARCH)#CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)ARCH ?= armCROSS_COMPILE ?= arm-eabi-

2)从手机目录: /proc/下找到config.gz压缩文件,拿出来解压成.config,复制到内核源码根目录下

很多情况下手机中没有config.gz,我们刷了N多的rom加内核才找到一个能正常跑并且里面有这个文件的内核…

但是找到了可以一直使用,即使换了别的rom或者内核也没关系

实在没有的话,看第三步。

3)如果2)成功了,执行make menuconfig,看看该配置是否支持netfilter,如果不支持安下面的选上

To use netfilterNetworking support -> Networking options -> Network packet filtering framework (Netfilter)Choose related choices

如果找到config.gz,执行make tuna_defconfig(这个是默认的德州仪器CPU的配置文件,理论上可用,但是我没有成功),然后同样看netfilter配置

4)执行make -j 2

5)完成编译,得到arch/arm/boot/zImage文件

3. 将zImage扔到手机中

1)从手机中拿出boot.img,或者从刷入手机的rom或kernel中拿也可,总之拿到一个手机在用的boot.img

2)执行前确保各个脚本permission正确,将boot.img,zImage,脚本unpack-bootimg.pl,可执行文件mkbootimg,放于同一个目录下。

3)执行脚本com.sh:(com.sh内容如下),用于将zImage打包进boot.img形成我们自己的kernel:newtestboot.img

./unpack-bootimg.pl boot.imgcd boot.img-ramdisk/find . | cpio -o -H newc | gzip > ../ramdisk-repack.cpio.gzcd .../mkbootimg --kernel zImage --ramdisk boot.img-ramdisk/ramdisk-repack.cpio.gz --base 0x30000000 -o newtestboot.img

4. 手机进入bootloader模式,利用fastboot刷入newtestboot.img

1)$ adb reboot bootloader

2)$ fastboot boot newtestboot.img

若出现permission denied,waiting for devices之类的问题,执行

$ sudo vim /etc/udev/rules.d/51-android.rules

在规则中添加

若出现permission denied之类的错误,执行

$ sudo vim /etc/udev/rules.d/51-android.rules

在规则中添加:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"

这个的作用是将usb权限以及配置与adb或者fastboot配对,特别是fastboot由于是通过usb线刷的,必须保证usb口是匹配的。

5. 此时不出意外就是完成了内核刷入,下面将内核模块加载进去就简单了

6. 编译内核模块

1)利用我们的内核源码作为头文件,交叉编译器作为编译器来编译内核模块,Makefile文件写法如下:

KERNELDIR := /home/carelife/android_icecream/android_kernel/CyanogenModPWD :=$(shell pwd)ARCH=armCROSS_COMPILE=arm-eabi-CC=$(CROSS_COMPILE)gccLD=$(CROSS_COMPILE)ldobj-m := netCatch.omodules:$(MAKE) -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) M=$(PWD) modulesclean:$(MAKE) -C $(KERNELDIR) M=$(PWD) clean

7. 加载KM

1)$ adb push /your_kernel_module_position /sdcard/2)$ adb shell#cd sdcard#insmod your_kernel_module_name

8. 查看debug信息

1)$ adb shell dmesg

这个方法的实质是从手机IO缓存中读取print信息,输出到电脑屏幕上,所以是一个固定时间更新的静态查看信息的方法,十分不利于调试

2)等待寻找其他debug方法…

android刷内核,完整版刷android内核及定制内核模块攻略相关推荐

  1. 高煥堂 5本 Android 的 eBooks (完整版Free)

    歡迎下載 高煥堂 5本 Android 的 eBooks (完整版Free): –>>(第二版)此處下載 ☆ 身為架構師,圖形思考能力愈好,創意設計與人際溝通能力就愈好.因此,培養架構師的 ...

  2. Carson带你学Android:这是一份全面详细的WebView学习攻略

    前言 现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 那么这种该如何实现呢?其实这是Android里一个叫WebView组件实现 今天, ...

  3. 我的世界服务器无限开号,我的世界服务器无限刷物品bug教程 | 手游网游页游攻略大全...

    发布时间:2017-06-23 在我的世界服务器中怎么样刷东西呢?怎么样才能刷出大量的物品?今天游戏园小编就为大家带来了我的世界大量无限刷物品的方法,喜欢的朋友快来看看吧,希望大家能够喜欢! 这两种方 ...

  4. Android Jcenter 依赖完整版

    Jcenter 依赖完整版 测试环境: github仓库(码云仓库无法依赖).Jcenter仓库.Android Studio2.2.2.Gradle 2.14.1.TortoiseSVN 1.9.6 ...

  5. Android USB通讯(完整版)

    1.Host端代码: package com.tcl.navigator.hostchart.activity;import android.app.PendingIntent; import and ...

  6. 收藏 | Android开发从入门到精通系列书籍资料最全攻略!!!(最新更新)

    很多人会私信给我提问,问安卓的学习路线是什么,因为之前没有写过系统的路线图,于是近期花了一些时间,把这块的知识,做成一个体系分享给大家,也算是自己在安卓这边做的一份贡献. 关于安卓如何来学习,安卓入门 ...

  7. Android 深入系统完全讲解(二)音视频理解攻略 PDF

    原创PDF |<Android 深入系统完全讲解>,可能价值百万! 最近因为训练营里面,想学习音视频的比较多,当然也有一部分因素是我在给大家讲市场时候,说了,算法和界面,其实是市场的一个底 ...

  8. 未转变者服务器车怎么得,未转变者刷车指令大全 | 手游网游页游攻略大全

    发布时间:2016-05-16 天天飞车应该怎么刷车呢?相信很多玩家都已经会使用烧饼来刷车了,下面小编就给大家介绍一下天天飞车的刷车代码. 标签: 天天飞车 游戏攻略 游戏秘籍 发布时间:2017-0 ...

  9. 代刷装修音乐代码大全_代刷网音乐代码 | 手游网游页游攻略大全

    发布时间:2016-03-19 伤害世界私服怎么刷物品 物品代码怎么用详解.是近期很热门的一款游戏,而有些玩家在游戏中出现了代码不能用,输入指令刷不出东西的情况.有些玩家在私服可能用 ... 标签: ...

最新文章

  1. MySQL sysdate-5_mysql sysdate 1
  2. 5G NPN 行业专网 — 媒体行业 5G 专网部署方案
  3. 人脸口罩检测现开源PyTorch、TensorFlow、MXNet等全部五大主流深度学习框架模型和代码...
  4. boost::geometry::cross_product用法的测试程序
  5. LeetCode Algorithm 1925. 统计平方和三元组的数目
  6. spring核心配置文件引入外部properties文件和另外的xml配置文件
  7. 20--两个数组的交集
  8. Software Defined Perimeter白皮书
  9. SpringMVC @ControllerAdvice 注解的官方解释
  10. vue可以配合jade以及sass吗_在vue中如何使用Jade模板 - echart
  11. code换取微信openid_快速实现微信公众号支付功能
  12. ckplayer6.8 php播放,CKplayer-超酷网页视频播放器 v6.8
  13. python代码情话_python教你谈恋爱-之-土味情话5000条
  14. 阿里云IoT | HaaS开源百校科技助力计划 —— 开源大使招募
  15. 【开工】知道创宇网络安全线上服务指南
  16. 自己做量化交易软件(12)通通量化AI框架的使用1-与通通AI对话聊天
  17. 奋斗吧,程序员——第十六章 笑渐不闻声渐悄,多情却被无情恼
  18. 光和颜料中的三原色,美术中的三原色
  19. 三个数比大小 输出最大值
  20. Axure 9.0.0.3699 授权码

热门文章

  1. 什么是消融实验(Ablation experiment)?
  2. 杭电Oj--DIY--2021选拔训练赛--1006
  3. 将Gitbook上的书籍发布在GitHubPages上
  4. 照片误删了怎么恢复?照片删了回收站也删了怎么找回来
  5. 使用Visual Studio Code开发Java程序
  6. 报org.apache.jasper.JasperException错误的一种解决方法
  7. RFID曼彻斯特编码
  8. 项目实战教程来了-4412开发板-zigbee智能家居
  9. Spring Cloud Alibaba 学习笔记
  10. Java教程:如何申请Java开发微信支付中的必要参数(appid,appsecret,商户号,微信支付密钥)