NEXUS 5为驱动添加硬件抽象层

本文详细介绍如何使用罗老师的代码进行安卓内核驱动的编译过程,包括添加头文件、源文件,初始化环境,修改LOG宏,以及调整文件权限。通过具体步骤指导如何将编译后的system.img和ramdisk.img重新刷入手机,实现驱动更新。

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

接着上个教程,同样用的罗老师的代码。
NEXUS 5为驱动添加硬件抽象层
添加头文件。
NEXUS 5为驱动添加硬件抽象层
添加源文件。
NEXUS 5为驱动添加硬件抽象层
初始化环境。

source build/envsetup.sh
lunch 
export PATH=/home/haidragon/Desktop/java-7-openjdk-amd64/bin/:$PATH

然后添加。 (代码有点老要修改下把所有的LOG宏前面加了一个字母A)
NEXUS 5为驱动添加硬件抽象层

mmm  ./hardware/libhardware/modules/freg/
make snod

NEXUS 5为驱动添加硬件抽象层
NEXUS 5为驱动添加硬件抽象层
然而驱动一般只有root用户才用访问,所以这里修改下权限。
找到ramdisk.img 文件 重新命名为.gz
命令操作如下:

haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ ls
android-info.txt  cache.img       fake_packages        mkbootimg                 ramdisk.cpio.gz       recovery      symbols     unmkbootimg
boot.img          clean_steps.mk  ×××talled-files.txt  obj                       ramdisk.img           recovery.img  system      userdata.img
cache             data            kernel               previous_build_config.mk  ramdisk-recovery.img  root          system.img  zImage-dtb
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ ls
android-info.txt  cache.img       fake_packages        mkbootimg                 ramdisk.cpio.gz       recovery      symbols     unmkbootimg
boot.img          clean_steps.mk  ×××talled-files.txt  obj                       ramdisk.img           recovery.img  system      userdata.img
cache             data            kernel               previous_build_config.mk  ramdisk-recovery.img  root          system.img  zImage-dtb
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ ll
total 478708
drwxr-xr-x 10 haidragon haidragon      4096 Jun 15 00:16 ./
drwxr-xr-x  4 haidragon haidragon      4096 May 29 23:09 ../
-rw-r--r--  1 haidragon haidragon        25 May 29 21:51 android-info.txt
-rwxrw-rw-  1 haidragon haidragon   9078784 Jun 15 00:16 boot.img*
drwxr-xr-x  2 haidragon haidragon      4096 May 29 22:19 cache/
-rw-r--r--  1 haidragon haidragon  13668728 May 29 22:19 cache.img
-rw-r--r--  1 haidragon haidragon     40349 May 29 21:46 clean_steps.mk
drwxr-xr-x  2 haidragon haidragon      4096 May 29 22:19 data/
drwxr-xr-x  2 haidragon haidragon      4096 May 29 22:58 fake_packages/
-rw-r--r--  1 haidragon haidragon     67168 May 29 22:58 ×××talled-files.txt
-rw-r--r--  1 haidragon haidragon   8410192 Jun 15 00:16 kernel
-rwxr-xr-x  1 haidragon haidragon     58104 Jun  2 20:02 mkbootimg*
drwxr-xr-x 14 haidragon haidragon      4096 May 29 22:58 obj/
-rw-r--r--  1 haidragon haidragon       716 May 29 21:46 previous_build_config.mk
-rw-r--r--  1 haidragon haidragon    664636 Jun 15 00:16 ramdisk.cpio.gz
-rw-r--r--  1 haidragon haidragon    498995 May 29 22:23 ramdisk.img
-rw-r--r--  1 haidragon haidragon   1096536 May 29 22:39 ramdisk-recovery.img
drwxr-xr-x  3 haidragon haidragon      4096 May 29 22:39 recovery/
-rw-r--r--  1 haidragon haidragon   9506816 May 29 22:39 recovery.img
drwxr-xr-x  9 haidragon haidragon      4096 May 29 22:23 root/
drwxr-xr-x  4 haidragon haidragon      4096 May 29 22:21 symbols/
drwxr-xr-x 14 haidragon haidragon      4096 May 29 22:43 system/
-rw-r--r--  1 haidragon haidragon 297984228 May 29 22:58 system.img
-rwxr-xr-x  1 haidragon haidragon     13096 Jun  2 20:02 unmkbootimg*
-rw-r--r--  1 haidragon haidragon 140614516 May 29 22:19 userdata.img
-rw-r--r--  1 haidragon haidragon   8410664 Jun 15 00:16 zImage-dtb
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ mv ./ramdisk.
ramdisk.cpio.gz  ramdisk.img      
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ mv ./ramdisk.
ramdisk.cpio.gz  ramdisk.img      
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ mv ./ramdisk.
ramdisk.cpio.gz  ramdisk.img      
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ mv ./ramdisk.img ./ramdisk.img.gz
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ ls
android-info.txt  cache.img       fake_packages        mkbootimg                 ramdisk.cpio.gz       recovery      symbols     unmkbootimg
boot.img          clean_steps.mk  ×××talled-files.txt  obj                       ramdisk.img.gz        recovery.img  system      userdata.img
cache             data            kernel               previous_build_config.mk  ramdisk-recovery.img  root          system.img  zImage-dtb
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ ll
total 478708
drwxr-xr-x 10 haidragon haidragon      4096 Jun 15 01:38 ./
drwxr-xr-x  4 haidragon haidragon      4096 May 29 23:09 ../
-rw-r--r--  1 haidragon haidragon        25 May 29 21:51 android-info.txt
-rwxrw-rw-  1 haidragon haidragon   9078784 Jun 15 00:16 boot.img*
drwxr-xr-x  2 haidragon haidragon      4096 May 29 22:19 cache/
-rw-r--r--  1 haidragon haidragon  13668728 May 29 22:19 cache.img
-rw-r--r--  1 haidragon haidragon     40349 May 29 21:46 clean_steps.mk
drwxr-xr-x  2 haidragon haidragon      4096 May 29 22:19 data/
drwxr-xr-x  2 haidragon haidragon      4096 May 29 22:58 fake_packages/
-rw-r--r--  1 haidragon haidragon     67168 May 29 22:58 ×××talled-files.txt
-rw-r--r--  1 haidragon haidragon   8410192 Jun 15 00:16 kernel
-rwxr-xr-x  1 haidragon haidragon     58104 Jun  2 20:02 mkbootimg*
drwxr-xr-x 14 haidragon haidragon      4096 May 29 22:58 obj/
-rw-r--r--  1 haidragon haidragon       716 May 29 21:46 previous_build_config.mk
-rw-r--r--  1 haidragon haidragon    664636 Jun 15 00:16 ramdisk.cpio.gz
-rw-r--r--  1 haidragon haidragon    498995 May 29 22:23 ramdisk.img.gz
-rw-r--r--  1 haidragon haidragon   1096536 May 29 22:39 ramdisk-recovery.img
drwxr-xr-x  3 haidragon haidragon      4096 May 29 22:39 recovery/
-rw-r--r--  1 haidragon haidragon   9506816 May 29 22:39 recovery.img
drwxr-xr-x  9 haidragon haidragon      4096 May 29 22:23 root/
drwxr-xr-x  4 haidragon haidragon      4096 May 29 22:21 symbols/
drwxr-xr-x 14 haidragon haidragon      4096 May 29 22:43 system/
-rw-r--r--  1 haidragon haidragon 297984228 May 29 22:58 system.img
-rwxr-xr-x  1 haidragon haidragon     13096 Jun  2 20:02 unmkbootimg*
-rw-r--r--  1 haidragon haidragon 140614516 May 29 22:19 userdata.img
-rw-r--r--  1 haidragon haidragon   8410664 Jun 15 00:16 zImage-dtb
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ gunzip ./ramdisk.img.gz 
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ mkdir ramdisk
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ cd ./ramdisk/
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead/ramdisk$ cpio -i -F ../ramdisk.img 
1760 blocks
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead/ramdisk$ rm -f ../ramdisk.img 
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead/ramdisk$ find . | cpio -o - H newc > ../ramdisk.img.unzip
cpio: Too many arguments
Try 'cpio --help' or 'cpio --usage' for more information.
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead/ramdisk$ find . | cpio -o -H newc > ../ramdisk.img.unzip
1760 blocks
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead/ramdisk$ cd ..
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ gz
gzexe  gzip   
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ gzip -c ./ramdisk.img.unzip >./ramdisk.img.gz
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ rm -f ./ramdisk.img.unzip 
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ rm -R ./ramdisk
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ mv ./ramdisk.img.gz ./ramdisk.img
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ ls
android-info.txt  cache.img       fake_packages        mkbootimg                 ramdisk.cpio.gz       recovery      symbols     unmkbootimg
boot.img          clean_steps.mk  ×××talled-files.txt  obj                       ramdisk.img           recovery.img  system      userdata.img
cache             data            kernel               previous_build_config.mk  ramdisk-recovery.img  root          system.img  zImage-dtb
haidragon@ubuntu:~/Desktop/android/out/target/product/hammerhead$ 

把system.img和ramdisk.img 重新刷入手机。(ramdisk.img这个是要重新打包到boot.img)
效果:
NEXUS 5为驱动添加硬件抽象层

转载于:https://blog.51cto.com/haidragon/2409495

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值