hal
文章平均质量分 59
杨斌并
这个作者很懒,什么都没留下…
展开
-
实现自己的HAL-15 控制led(Android 8.1 selinux 配置(自定义系统服务,以及节点的读写)),从app 到 hal 到底层内核kernel层的驱动 的实现(七)
Android 8.1 selinux 配置(自定义系统服务,以及节点的读写)SELinux概述SELinux 简述SELinux,安全增强Linux(Security-Enhanced Linux),是由美国国家安全局(NSA)发起, 多个非营利组织和高校参与开发的强制性安全审查机制(Mandatory Access control,简称MAC)。SELinux最早于2000年12月采用GPL许可发布。目前,Linux Kernel 2.6 及以上的版本都已经集成了SELinux。SELinu原创 2021-07-01 14:53:06 · 814 阅读 · 0 评论 -
实现自己的HAL-14 控制led(内核设备节点的访问权限的动态配置),从app 到 hal 到底层内核kernel层的驱动 的实现(六)
内核设备节点的访问权限的动态配置在控制led,从app 到 hal 到底层内核kernel层的驱动 的实现(一)中我们创建了led 控制驱动,同时原创 2021-06-29 19:05:39 · 378 阅读 · 0 评论 -
实现自己的HAL-13 控制led(控制led 的app),从app 到 hal 到底层内核kernel层的驱动 的实现(五)
控制led 的appMainActivity.java 代码package com.example.myapplication;import android.app.Activity;import android.os.Bundle;import android.app.HelloWorldServiceManger;import android.util.Log;import android.view.View;import android.widget.TextView;pub原创 2021-06-29 17:40:38 · 256 阅读 · 0 评论 -
实现自己的HAL-12 控制led(自定义的系统service的实现),从app 到 hal 到底层内核kernel层的驱动 的实现(四)
控制led的自定义的系统service的实现Z:\itop-3399_8.1\frameworks\base\core\java\android\os 下创建 IHelloWorldService.aidlIHelloWorldService.aidl 代码/** * Copyright (c) 2007, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "Lice原创 2021-06-29 17:24:31 · 282 阅读 · 0 评论 -
实现自己的HAL-11 控制led(jni 的编写),从app 到 hal 到底层内核kernel层的驱动 的实现(三)
led 驱动的framwork 的jni 的编写在文件夹Z:\itop-3399_8.1\frameworks\base\services\core\jni 下创建 com_android_server_HelloWorldService.cppcom_android_server_HelloWorldService.cpp 代码#include <nativehelper/JNIHelp.h>#include <jni.h>#include <android_原创 2021-06-29 16:43:48 · 250 阅读 · 0 评论 -
实现自己的HAL-10 控制led(内核驱动的hal),从app 到 hal 到底层内核kernel层的驱动 的实现(二)
控制led内核驱动的halZ:\itop-3399_8.1\hardware\libhardware\include\hardware 下创建 helloworld.hhelloworld.h 代码#define ANDROID_HELLOWORLD_INTERFACE_H#include <hardware/hardware.h>__BEGIN_DECLS//定义模块ID#define HELLOWORLD_HARDWARE_MODULE_ID "helloworld"原创 2021-06-29 16:32:14 · 370 阅读 · 0 评论 -
实现自己的HAL-9 控制led(驱动),从app 到 hal 到底层内核kernel层的驱动 的实现(一)
控制led,从app 到 hal 到底层内核kernel层的驱动 的实现(一)led 驱动设备树的修改Z:\itop-3399_8.1\kernel\arch\arm64\boot\dts\rockchip\itop-3399.dtsi 文件 添加自己的test_led 节点 /* itop_led { compatible = "itop_led"; pinctrl-names = "default"; pinctrl-0 = <&led1原创 2021-06-29 16:14:38 · 440 阅读 · 0 评论 -
实现自己的HAL-8 通过Android 系统编译自己的app,用于控制hal
通过Android 系统编译自己的app,用于控制hal系统app 是在 Z:\itop-3399_8.1\packages\apps 这个路径下在Z:\itop-3399_8.1\packages\apps 创建 HelloWorldHelloWorld 下创建res、src文件夹,以及 Android.mk将Android studio 中 或则 eclipse 中生成的AndroidManifest.xml 拷贝过来<?xml version="1.0" encoding=原创 2021-06-22 15:37:03 · 347 阅读 · 0 评论 -
实现自己的HAL-7 Android 系统的各个模块的单独编译
Android 系统的各个模块的单独编译在编译单独模块前,需要先将Android 源码编译通过下Android 源码的根目录下会有.mk 或者 **.sh 文件,一般是.sh文件然后执行 **.sh 文件./**.sh执行.mkmake单独编译 system.img 镜像make systemimage作用它包含了整个Android系统,android的framework等等,会被挂接到 “/” 上,包含了系统中所有的二进制文件。(system.img是out/ta原创 2021-06-22 11:45:17 · 540 阅读 · 0 评论 -
实现自己的HAL-6 serivce 和aidl层的代码
serivce 和aidl层的代码Z:\itop-3399_8.1\frameworks\base\core\java\android\os 在这个路径下创建IHelloWorldService.aidl/** * Copyright (c) 2007, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use t原创 2021-06-11 14:39:01 · 1429 阅读 · 1 评论 -
实现自己的HAL-5 Binder,IDLE简介
Binder,IDLE简介进程间通讯的机制消息队列( message queue)信号(signal) ,内存共享(share memory)套接字(sokcet)命名管道(name pipe)Binder的优势用驱动程序来推进进程间的通信。通过共享内存来提高性能为进程请求分配每个进程的线程池针对系统中的对象引入了引用计数和跨进程的对象引用映射进程间的同步调用Binder结构图Binder 的使用c++层,定义号service提供的服务接口AIDL (An原创 2021-06-11 11:10:20 · 165 阅读 · 1 评论 -
实现自己的HAL-4 JNI层的代码编写
JNI层的代码jni层代码的编写首先找到系统中onload.cpp 所在的目录我的是在Z:\itop-3399_8.1\frameworks\base\services\core\jni 这个路径在这个路径下创建com_android_server_HelloWorldService.cpp的cpp文件代码#include <nativehelper/JNIHelp.h>#include <jni.h>#include <android_runtime/An原创 2021-06-11 11:10:07 · 264 阅读 · 0 评论 -
实现自己的HAL-3 Java与Native层通讯方式分析
Java与Native层通讯方式分析概念:JNI: Java Native Interface,是JAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C、C++)的动态库进行交互,给其它语言发挥优势的机会通过JNI,Java代码可以调用其他语言,其他语言也可以回调Java代码通讯的3种方式phone socket 模式surfaceflinger serivece在native层windowMa原创 2021-06-10 10:57:51 · 299 阅读 · 0 评论 -
实现自己的HAL2 HAL helloworld 之HAL层代码的编写
实现自己的HAL2 HAL helloworld 之HAL层代码的编写编写目标编写一个实现简单功能(加法运算)的HAL代码,不涉及驱动操作编译通过并打包到system.ing中编写头文件原创 2021-06-09 14:55:34 · 1031 阅读 · 6 评论 -
实现自己的HAL1 surfaceFlinger 简介
SurfaceFlinger的hal层的代码的实现surfaceFlinger 简介 每个应用程序可能对应着一个或者多个图形界面,而每个界面我们就称之为一个surface,或者说是window,在上面的图中我们能看到4个surface ,一个是home界面还有就是红、绿、蓝分别代表的3个surface,而两个button 实际是home surface里面的内容。在这里我们能看到我们进行图形显示所需要解决的问题:首先每个surface在屏幕上有它的位置,以及大小,然后每个surface里面大原创 2021-06-08 11:33:51 · 213 阅读 · 1 评论 -
hal体系结构与设计思想
hal体系结构与设计思想hal在Android 架构中的位置HAL设计思想为什么需要HAL传统的linux对硬件的操作基本上在内核空间的linux驱动程序中实现了,那么现在为什么那么多此一举把对硬件的操作分为两部分,hal和linux驱动呢?谷歌搭好了hal的框架,为上层framework打通过jni调用hal提供了统一的api,硬件开发商或者移植人员只需要按照框架开发即可,无需话费精力在与上层的交互上的实现上,将精力放在hal层本身的实现上即可。从商业角度,许多硬件厂商不愿意将自己硬件原创 2021-06-07 20:22:11 · 326 阅读 · 0 评论