
Android ROM开发
文章平均质量分 62
齊家治國平天下
10年以上的Android framework hal相关的工作经验
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android 14 Binderized HAL开发实战指南(AIDL版)
本文介绍了如何在Android 14中开发Binderized HAL服务,使用AIDL定义接口并实现HAL服务。首先,环境要求包括Android 14源码编译环境、AOSP android-14.0.0_r7分支、Soong构建系统、Java 17和NDK r25c。项目结构分为接口定义、实现层和SELinux策略。实现步骤包括定义AIDL接口、实现HAL服务、编写服务入口代码,并配置构建文件和SELinux策略。最后,通过VINTF配置确保服务在系统中可用,并提供了客户端调用示例。原创 2025-05-23 11:01:41 · 2996 阅读 · 0 评论 -
Android使用固定的key给ko(kernel module) 签名
Android 原生默认每次编译使用自动生成在out目录的 pem和x509文件签名,由于种种原因我们可能需要使用固定的key给ko做签名,经过研究发现如果要使用固定的key来签名,需要做一下修改。原创 2022-10-13 20:56:21 · 2095 阅读 · 0 评论 -
Android Kernel Module 预编译同步签名方法
Android Kernel Module 预编译同步签名方法原创 2022-09-20 20:15:44 · 960 阅读 · 0 评论 -
Android 生成自己的签名key(releasekey platform shared media networkstack verify等)
Android官方文档https://source.android.google.cn/devices/tech/ota/sign_builds?hl=zh-cnhttps://android.googlesource.com/platform/build/+/refs/heads/master/target/product/security/README前言Android 操作系统映像在三个地方使用加密签名:映像中的所有 .apk 文件都必须经过签名。Android 软件包管理器通过下列两种方原创 2021-08-11 15:27:00 · 1796 阅读 · 0 评论 -
Android 刚开机就出现“正在关机”对话框的问题分析
前言之前项目,一直会出现刚开机就出现“正在关机”对话框,然后就关机了,通过串口看内核log。发现进入了recovery模式,然后就跟了一下代码,看什么情况下会进入这个模式代码分析关机对话框关机对话框显示在frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java而调用者在frameworks/base/services/core/java/com/android/server/power/Pow原创 2021-07-29 16:21:50 · 1075 阅读 · 1 评论 -
Android GDB的使用
官网介绍https://source.android.com/devices/tech/debug/gdb简单使用前提source build/envsetup.shlunch aosp_arm64-userdebugNative processdevelopment/scripts/gdbclient.py -p 例如:mediacodec 的 pid是 388 要dbg mediacodec 只需要development/scripts/gdbclient.py -p 388下面就是原创 2021-07-21 17:15:13 · 676 阅读 · 0 评论 -
Android9 HWbinder使用-获取service流程解析
前言接上篇Android9 HWbinder使用-注册service流程解析讲了hidl service的注册流程,这篇文章接着解析hidl service的获取流程HwBinder框架流程解析废话不多说,继续以USB HAL 1.0为例,解析一下获取的流程以vts为参考获取的代码获取流程1. hardware/interfaces/usb/1.0/vts/functional/VtsHalUsbV1_0TargetTest.cpp改一下代码,以常见的不带参数为例usb = IUsb::原创 2020-12-30 18:19:44 · 2521 阅读 · 0 评论 -
Android9 HWbinder使用-注册service流程解析
前言写一个自己的 Android Hidl Service这里写了怎么创建一个自己的hidlservice,现在讲一下hidlservice的注册和获取流程HwBinder的框架原创 2020-12-30 13:33:39 · 3288 阅读 · 0 评论 -
增加真随机数的熵值,以便快速获取随机数
#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#include <stdlib.h>#include <time.h>#include <string>#include <linux/random.h>#include <sys/ioctl.h>#include <stdio.h原创 2020-12-17 14:57:03 · 935 阅读 · 1 评论 -
VS Code常用配置
前言vs code 所有用户自己更改的配置都存储在settings.json文件中存储路径不同的系统存储路径不同linux${HOME}/.config/Code/User/settings.jsonwindows%APPDATA%\Code\User\settings.json常用配置禁止预览。每次打开文件总是新开tab页"workbench.editor.enablePreview": false,字体大小"editor.fontSize": 14,根据出口大原创 2020-12-17 14:44:19 · 286 阅读 · 0 评论 -
Android Android.bp 预编译/集成三方so 二进制 rc etc 配置文件等
前言现在大多数项目需要集成三方的so 二进制 rc etc 配置文件等,下面的方法基本可以覆盖,备用语法参考语法参考官方链接实例预编译继承二进制文件/bin 和启动rc源文件vendor/bin/hw/android.hardware.configstore@1.1-servicerc文件android.hardware.configstore@1.1-service.rccc_prebuilt_binary { name: "android.hardware.config原创 2020-08-04 15:29:31 · 7569 阅读 · 0 评论 -
写一个自己的 Android Hidl Service
HIDLHAL 接口定义语言(简称 HIDL,发音为“hide-l”)是用于指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL)。HIDL 允许指定类型和方法调用(会汇集到接口和软件包中)。从更广泛的意义上来说,HIDL 是用于在可以独立编译的代码库之间进行通信的系统。HIDL 旨在用于进程间通信 (IPC)。进程之间的通信采用 Binder 机制。对于必须与进程相关联的代码库,还可以使用直通模式(在 Java 中不受支持)。HIDL 可指定数据结构和方法签名,这些内容会整理归类到接口(与类原创 2020-06-11 17:13:14 · 3654 阅读 · 5 评论 -
国内 repo 拉取android源码
sudo gedit /etc/hosts复制代码在hosts文件中加入203.208.49.187 googlesource.com203.208.49.187 android.googlesource.com203.208.49.187 gerrit.googlesource.com复制代码注意,203.208.49.187只是原创 2020-06-12 15:39:22 · 3203 阅读 · 0 评论 -
Android native/C/C++ 监控文件夹变化
前言原创 2020-05-08 15:13:07 · 1188 阅读 · 0 评论 -
下载编译LineageOS代码
文章目录介绍前期准备构建你的LineageOS和LineageOS Recovery安装SDK安装构建软件包Java创建文件夹安装repo命令将~/bin目录放在环境变量中初始化LineageOS源码仓库介绍这些说明有望帮助您的Motorola Moto X 2014开始,解锁引导加载程序(如有必要),然后为您下载所需的工具以及LineageOS的最新源代码(基于Google的Android操...翻译 2020-03-16 10:38:33 · 2372 阅读 · 0 评论 -
Android源代码编译脚本
前言在Android源代码编译过程中经常要source,lunch等一系列命令,这个脚本实现了默认保存编译log,无参可编译,可根据需求使用参数,可以单编,清编 update-api等脚本代码#!/bin/bash##creat by Deep Lee for android build# set -o errexitusage() { cat <<USAGE...原创 2020-01-16 14:57:41 · 1068 阅读 · 3 评论 -
Bash脚本之多线程处理
前言在bash中并没有线程的概念,我们可以用多进程来模拟多线程的操作来达到同样的效果示例代码#!/bin/bash# thread number can modify if neededTHREAD=10ROOTDIR="$(pwd)"TMP_FIFO="/tmp/$.fifo"#cannot del here. this is thread controlmkfifo "$...原创 2020-01-16 14:39:56 · 2598 阅读 · 0 评论 -
Android C/C++获取屏触屏输入设备、屏幕分辨率
#include <stdlib.h>#include <stdio.h>#include <gui/ISurfaceComposer.h>#include <gui/Surface.h>#include <gui/SurfaceComposerClient.h>#include <ui/DisplayInfo.h>...原创 2020-01-14 18:17:07 · 4631 阅读 · 4 评论 -
C语言关键字const作用及其应用
只要学过C语言的,都有知道const这个关键字,知道是用来定义常量的,如果一个变量被const修饰,那么它的值就不能再被改变,那么还有什么其他作用呢?一、const常用作用1. 修饰局部变量const int n=5;int const n=5;/*二者是等价的,均表示变量n的值不能被改变了*/注意:在使用const修饰变量时,一定要给变量初始化,否则之后就不能赋值了!接下来看看co...转载 2020-01-14 16:41:02 · 515 阅读 · 0 评论 -
.gitignore使用详解
1. 简绍我们做的每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。比如我们项目中的npm包(node_modules),它在我们项目中是很重要的,但是它占的内存也是很大的,所以一般我们用Git管理的时候是不需要添加npm包的。2. 常用的规则Git忽略文件的原则忽略操作系统自动生成的文件,比如缩略图等;忽略编译生成的中间...转载 2020-01-14 14:45:42 · 697 阅读 · 0 评论 -
Unknown mandatory EABI object attribute 44问题解决方法
在嵌入式交叉编译的时候出现这个错误: Unknown mandatory EABI object attribute 44引起该问题的原因是当前所选择的工具链和已预编好的一些库使用了不同版本的工具链修改方法:1.选择和预编库使用相同的工具链2.有源码的话将预编译的库重新编译一遍转载 2014-08-15 11:39:22 · 1266 阅读 · 0 评论 -
编译android文件系统4.0.4错误全部解析
以下neirongzhuanzi以下是编译Android 4.0.4的常见错误,这些错误的解决办法收录自互联网。Google group有个专门的Android Building组,有兴趣的可以加入。除了android组解决的错误外,还有两个错误1.external/oprofile/libpp/format_output.h:94:22: 错误:转载 2014-08-15 15:07:30 · 1990 阅读 · 0 评论 -
Android 开关机动画的实现及支持MP4视频播放
原创文章,转载请注明出处,谢谢。原创 2014-11-12 14:18:48 · 10149 阅读 · 8 评论 -
ntfs-3g 移植到android
ntfs-3g源码为20140215的最新稳定版已经修改移植好的源码地址:http://download.youkuaiyun.com/detail/qq410942197/8341493原创 2015-01-10 10:23:00 · 1687 阅读 · 0 评论 -
android 强制修改adb pull 文件的路径
#强制修改adb pull 文件的路径diff --git a/adb/file_sync_service.c b/adb/file_sync_service.cindex 7933858..fa4afc5 100644--- a/adb/file_sync_service.c+++ b/adb/file_sync_service.c@@ -432,6 +432,10 @@ v原创 2015-11-12 14:36:46 · 3725 阅读 · 0 评论 -
Android源码编译选项eng、user、userdebug的区别
http://www.2cto.com/kf/201312/265629.htmlAndroid源码编译选项eng、user、userdebug的区别1、各选项简要说明eng:debug版本user:release版本userDebug版本:部分debug版本2、详细介绍Android源码编译选项eng、user、转载 2016-01-26 09:59:04 · 1798 阅读 · 0 评论 -
下载LineageOS 源码编译
前才准备好 至于说要安装什么依赖什么工具的,可以等出问题时再apt-get,以下仅简述流程。源码下载源码下载与其他的是一样的,git地址在这里,同样也是使用repo下载。初始化下载 这里下载cm14.1repo init -u git://github.com/LineageOS/android.git -b cm-14.1驱动下载 由于我是要使用nexus5的男人,所以需要把n5的驱动转载 2017-04-01 11:11:49 · 15063 阅读 · 12 评论 -
android系统编译环境
安卓的系统编译环境,参考谷歌官方添加几个个别芯片需要的环境sudoapt-getinstallgit-coregnupgflexbisongperfbuild-essentialzipcurlzlib1g-devlibc6-devlib32ncurses5-devlib32z1 lib32ncurses5 lib32bz2-1.0x11proto-c原创 2014-06-28 10:14:36 · 878 阅读 · 0 评论 -
Git常用命令整理,详细全面
Git篇安装之后第一步安装 Git 之后,你要做的第一件事情就是去配置你的名字和邮箱,因为每一次提交都需要这些信息:git config --global user.name "Deep Lee"git config --global user.email "deeplee@gmail.com"获取Git配置信息,执行以下命令:git config --list...转载 2018-04-10 10:10:39 · 436 阅读 · 0 评论 -
针对特定作者/文件/文件夹的git format-patch
针对特定作者git log X..Y --author='<AUTHOR>' --format="%H" | sed 's/$/^!/g' | xargs -I{} git format-patch {}git log X…Y –author =’< AUTHOR>‘ –format =“%H”以commit id的格式生成X到Y之间author为输出sed’s /...原创 2019-09-27 18:29:00 · 2806 阅读 · 0 评论 -
Android 如何永久性开启adb 的root权限
前言 欢迎大家我分享和推荐好用的代码段~~文章原始出处: 优快云:http://www.youkuaiyun.com 雨季o莫忧离:http://blog.youkuaiyun.com/luckkof正文 adb 的root 权限是在system/core/adb/adb.c 中控制。主要根据ro.secure 以及 ro.debuggable转载 2014-04-12 18:24:18 · 1471 阅读 · 0 评论