关闭
当前搜索:

为 Android 8.0 添加开机启动脚本

为 Android 8.0 添加开机启动脚本 Qidi 2018.01.11 (Markdown & Haroopad) 【写在前面】   本人对于 SELinux for Android 理解不深,下文中的各文件及安全规则虽都是我所编写,但也是一边查阅文档一边试验得出的。在此强行为文,若有理解错误之处,请各位工程师同仁热情指出。 一、需求描述   项目上需要在 Andr...
阅读(76) 评论(0)

使用 libTomCrypt 实现 AES、HMAC、HKDF 运算

使用 libTomCrypt 实现 AES、HMAC、HKDF 运算Qidi 2017.11.06 (Markdown & Haroopad)1、libTomCrypt 简介  libTomCrypt 是一个使用 C 语言编写的开源加解密算法库,使用 WTF 协议进行授权,支持 AES、HMAC、HKDF、RSA、PRNG、BASE64 等常用加解密算法。2、基础文件  我们在使用 libTomCr...
阅读(102) 评论(0)

在 Android 8.0 中绕过 hwbinder 实现跨模块对 audio HAL 调用

在 Android 8.0 中绕过 hwbinder 实现跨模块对 audio HAL 调用 Qidi 2017.10.20 (Markdown & Haroopad) 【需求描述】   Audio 模块中专门为 TV 产品添加了一些代码,需要在 hdmi 的 HAL 代码中进行调用以完成某些功能。 【旧的实现】   在 Android 7.1 中的做法是在 hdmi 的...
阅读(1357) 评论(2)

Kernel 4.9 上 dma_alloc_coherent() 函数开辟 DMA 连续内存空间失败 解决办法

【问题描述】   将之前可以在 Kernel 3.14 上正常运行的驱动代码移植到 Kernel 4.9 上,发现驱动在进行 probe 时失败,具体失败位置为函数 dma\_alloc\_coherent(),对应代码段如下:amaudio_start_addr = (unsigned char *)dma_alloc_coherent(amaudio2_dev,...
阅读(410) 评论(0)

git push 失败,提示 unpack error/unpack failed 解决方法

【问题描述】   在执行命令 git commit --amend 对提交进行修改后,再执行 git push review HEAD:refs/for/xxxx 将代码提交到 Gerrit 上,但是提交失败了并打印出下方这样的提示:qidi.huang@droid10$ git push review HEAD:refs/for/xxxxWriting objects: 100% (1/1),...
阅读(359) 评论(0)

Linux 内核修改 xxx_defconfig 的正确方法

【前言】   昨天将 Android N 上的驱动代码移植到 Android O 上,xxxx_defconfig 文件是我手动修改的,但因为公司将内核版本切换到 4.9 之后开启了强制代码格式检查,所以 Patch 在提交到服务器之后无法通过格式检测,一直提示存在如下问题:checkpatch found errors or warnings: $ git log -1 | ./scrip...
阅读(244) 评论(0)

使用 SysRq 查看系统信息

使用 SysRq 查看系统信息Qidi 2017.08.31 (Markdown & Haroopad)前言:因为看到有同事使用了 SysRq 的技巧进行 debug,虽然我目前还没有使用过,但为了便于以后使用也为了备忘,所以在这里简要记录一下。更详细的说明可以阅读文末所列参考文章。1、SysRq 是什么  在某些键盘上我们可以看到 SysRq 键,通过按下这个键和其它字母的组合,我们可以在系统挂起...
阅读(489) 评论(0)

在 Android 中使用自定义函数接口替换 Frameworks 中的默认函数接口

在 Android 中使用自定义函数接口替换 Frameworks 中的默认函数接口Qidi 2017.08.31 (Markdown & Haroopad)注意:本文基于 Android 8.0 进行分析。1. 前言  自 Android 8.0 开始,为了实现 Project Treble 对更快完成系统升级的预期,Google 严格要求芯片 vendor 厂商不能再修改 AOSP 的 Fram...
阅读(644) 评论(4)

Android 8.0 VTS 测试 FAIL 失败项解决记录

Android 8.0 VTS 测试 FAIL 项解决记录Qidi 2017.08.09 (Markdown & Haroopad)1. 前言  这篇文章所记录的是我自己在 Amlogic 平台上碰到的 Android Vendor Test Suite (VTS) 测试问题,所以下文中的各 FAIL 项不一定包含了所有的问题类型。但分析 VTS 问题的思路应该是类似的,希望这篇文章能给各位工程师朋...
阅读(3785) 评论(0)

Android Vendor Test Suite (VTS) 的概念、作用及测试方法

Android Vendor Test Suite (VTS) 的概念、作用及测试方法Qidi 2017.08.01 (Markdown & Haroopad)注意:本文基于 Android 8.0 进行分析。这篇文章会不定期更新,欢迎大家指出问题和提出建议。1、前言 - Project Treble  Android 目前有一个比较明显的缺点是设备升级到新版本系统所要花费的时间太长(比如从 And...
阅读(9067) 评论(118)

Android HIDL 简介

Android HIDL 简介Qidi 2017.08.01 (Markdown & Haroopad)注意:本文基于 Android 8.0 进行分析。1、HIDL 的概念  HIDL 读作 hide-l,全称是 Hardware Interface Definition Language。它在 Android Project Treble 中被起草,在 Android 8.0 中被全面使用,其诞...
阅读(9735) 评论(121)

【转】设备树的用法(Device Tree Usage)

【说明】     本文转载自《设备树的用法(Device Tree Usage)》 【正文】 设备树手册(Device Tree Usage)原文地址:http://www.devicetree.org/Device_Tree_Usage 本文概述了如何为一个全新的计算机编写设备树。意在提供一个device tree概念的概述以及如何使用device tree描述一台计算机。 有...
阅读(536) 评论(0)

【I2C设备驱动】必须将id_table[]数组的最后一个元素设置为空的原因

忘记了在哪本书上看到过,说必须给 I2C 设备驱动的 id 表数组添加上一个空元素作为最后一个元素,就像下面的代码所展示的那样:struct i2c_device_id { char name[I2C_NAME_SIZE]; kernel_ulong_t driver_data; /* Data private to the driver */ } static const str...
阅读(413) 评论(0)

Android系统 boot.img 结构

【前言】   本文以我使用的 Intel x86 cherrytrail 平台为例进行说明,部分细节可能会与其它设备上看到的不同,比如 easyimage 是我们产品上自定义的分区,其它设备上如果没有是正常的。【正文】 编译完成后我们可以在out/target/product//obj/PACKAGING/target_files_intermediates/...
阅读(588) 评论(0)

把“dereference”翻译成“提领”不如直译为“引用解析”

【正文】   这 2 天在回顾《内核设计与实现(第3版)》这本书时又看到了“提领”这种说法,它出现在书上第 75 页。估计译者当时也不知道应该翻译成什么中文词汇比较好,所以在译文后加上了英文原文“dereference”。书上的原文是这样的: 节约两次提领(dereference)   如果你碰巧已经得到了 next 和 prev 指针,你可以直接调用内部链表函数,从而省下一点时间(其实...
阅读(354) 评论(2)
141条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:291572次
    • 积分:4220
    • 等级:
    • 排名:第8400名
    • 原创:126篇
    • 转载:11篇
    • 译文:4篇
    • 评论:323条
    邮箱
    huang_qi_di@hotmail.com
    文章分类
    最新评论