
手机移动开发
文章平均质量分 76
junwua
为着常成,行者常至
改变思想,付诸行动
展开
-
Mic Android 8.1 方案
虚拟Mic方案原创 2022-12-05 13:57:34 · 2426 阅读 · 0 评论 -
unbutu20.04 高版本安全错误问题解决神器
hi3516 编译问题原创 2022-09-29 13:46:35 · 1284 阅读 · 0 评论 -
Android 8.1 MTK root版本解决方案
android 8.1 root权限原创 2022-09-20 17:07:02 · 4749 阅读 · 0 评论 -
PD充电驱动解析
pd充电驱动解析原创 2022-09-05 15:15:46 · 2786 阅读 · 0 评论 -
rk平台vr主板项目开发总结
rk vr功能调试原创 2022-09-01 15:33:57 · 2368 阅读 · 6 评论 -
PD充电调试问题解析(一)
pd 充电,充电功率问题解决原创 2022-08-17 11:10:56 · 2446 阅读 · 1 评论 -
recovery 调试
Recovery 调试原创 2022-07-27 19:43:31 · 1838 阅读 · 0 评论 -
OpenHarmony 服务编译成动态库,而不是进程,问题详解
鸿蒙服务、进程原创 2022-06-29 11:29:45 · 2514 阅读 · 0 评论 -
OpenHamony Hilog 鸿蒙Hilog能存log吗?
OpenHamony Hilog 鸿蒙Hilog能存log吗原创 2022-06-28 16:04:56 · 848 阅读 · 0 评论 -
鸿蒙应用权限管理和访问控制
鸿蒙应用权限管理和访问控制原创 2022-06-20 10:07:09 · 8611 阅读 · 3 评论 -
linux内存管理机制--学习整理汇总 dma-buf(3)
linux 内存管理和使用 dma_buf原创 2022-06-09 09:49:28 · 5210 阅读 · 0 评论 -
linux内存管理机制--学习整理汇总(2)
linux 内存管理和使用原创 2022-06-09 09:46:02 · 599 阅读 · 0 评论 -
安全编译选项
系统安全策略原创 2022-06-07 09:54:35 · 1185 阅读 · 0 评论 -
理清鸿蒙系统 组件概念
一、Open Harmony系统中组件的概念如下:1.组件时最基本的交付单元,可以是一套配置、一个独立的功能模块、或一组资源文件和编译脚本;2.一般一个组件由若干个源文件和一个构建配置文件BUILD.gn组成;3.BUILD.gn中定义了一个构建对象,分别设置了组件源码、使用到的头文件和依赖的模块;4.根目录下的一级目录是模块,二级目录是子系统,三级目录是组件;5.在配置子系统时,需要在子系统对应的json文件里配置相应的组件,每个组件配置了组件名称、组件描述、是否为最小系统必选、源文.原创 2022-05-31 13:49:33 · 1411 阅读 · 0 评论 -
鸿蒙与Android系统 各自的标准C库
GNU C库,也称为glibc, 是C标准库的GNU项目实现。并非所有的标准C函数都可以在glibc中找到:大多数数学函数实际上是在libm库中实现的,这是一个独立的库。截至今天,glibc是Linux上使用最广泛的C库。Bionic是Google为其Android操作系统所编写的C标准库实现,它直接在底层使用。 第三方开发者可以通过Android原生开发工具包(NDK)访问Bionic,该工具集允许你使用C和C++代码编写Android应用程序。在 C++ 端, NDK提供了很多版本的实现:原创 2022-05-16 17:03:16 · 1691 阅读 · 0 评论 -
Wayland与Weston关系
Wayland是一套display server(Wayland compositor)与client间的通信协议,而Weston是Wayland compositor的参考实现。Wayland基于domain socket实现了一套display server与client间通信的库(简单的基于例子的介绍可以参见http://blog.youkuaiyun.com/jinzhuojun/article/details/40264449),并且以XML形式定义了一套可扩展通信协议。这个协议分为Wayland核心原创 2022-05-16 13:55:22 · 2208 阅读 · 0 评论 -
EGL简介
第三章 EGL简介 - 简书OpenGLES 与 EGL 基础概念 - 知乎对比 OpenGL ES/EGL,各要素的对应关系大体如下:画家:编程人员 笔、颜料、辅助工具:OpenGL ES API 画布:EGL 创建的 Surface所以计算机绘画的本质就是选择图像显示的像素格式,申请一块内存(画布),填充像素(颜色),绘制完成之后,通知计算机显示到屏幕上(按比例发射RGB光),最终就看到了所绘制的画面。之所以要先选择像素格式,是因为无论是...原创 2022-05-13 09:53:32 · 7684 阅读 · 0 评论 -
gcc 编译安全选项
OPT_CFLAGS += -fPIC -fPIE -fstack-protector-all -z now -D_FORTIFY_SOURCE=2 -fvisibility=hidden操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,例如 ASLR、NX 等等,这里简单介绍一些常见的使用项。简介操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,例如 NX ASLR PIE CANARY FORTIFY RELRO 等手段,存在 NX 的话...原创 2022-04-18 19:37:03 · 6925 阅读 · 0 评论 -
【Linux安全审计机制模块总体描述】
审计是事后认定违反安全规则的分析技术,安全审计为管理员在用户违反安全法则时提供及时的警告信息,实现对系统信息的追踪、审查、统计和报告等功能[1]。linux提供了用来记录系统安全事件的审计系统,审计系统包括用户空间审计系统和内核空间审计系统,用户空间审计系统由一些用户空间的审计程序组成,用来开启内核审计功能、设置审计规则和审计系统状态、接收内核审计系统发送来的审计消息并写入log文件,以及审计消息的检索和生成审计总结报告。内核审计系统用于产生和过滤内核的各种审计消息...原创 2022-03-18 17:16:26 · 5030 阅读 · 0 评论 -
LTC 铁三角
ltc 铁三角 To B 学习理解原创 2022-02-17 17:11:33 · 1174 阅读 · 0 评论 -
linux insmod *.ko Exec format error
insmod: failed to load vendor/lib/mali.ko: Exec format error最近调试一个KO的驱动,之前insmod是正常的,突然更新boot代码后,insmod失败。后面一直没查出原因,编译的时候查找mali.ko,没有看到源码,删除后,重新编译出来,然后再用insmod指令成功,mali: disagrees about version of symbol module_layout;根本原因是编译时间不同...原创 2022-01-24 15:47:11 · 6237 阅读 · 2 评论 -
Ubuntu18.04 编译 Android10.0 系统环境
Ubuntu18.04 编译 Android10.0 系统环境,每次搞一个新电脑或环境,编译总要搞半天,虽然知道是环境安装的问题,但确实很烦和耗时,关键是报错各异。思路: 网上找资料,首先要对齐Ubuntu 版本号,18.04, 20.04等,这个很关键,否则对不上。最近弄的18.04,kernel都编译正常,一编译Android就挂了,啥错误提示都看不到,找了好多网页,总是好了。用最笨的办法解决。sudo apt-get install git bc bison build-essential原创 2021-11-17 17:49:17 · 6273 阅读 · 6 评论 -
Android与鸿蒙系统安全(二)
五、SE Android机制Android是一个基于Linux内核的系统,Android也有用户的概念。只不过这些用户不需要登录。Android系统将每一个安装在系统的APK都映射为一个不同的Linux用户。也就是每一个APK都有一个对应的UID和GID,这些UID和GID在APK安装的时候由系统安装服务PackageManagerService分配。Android沙箱隔离机制就是建立在Linux的UID和GID基础上。 这种基于Linux UID/GID的安全机制存在什么样的问题呢?Linu原创 2021-10-22 11:46:49 · 1119 阅读 · 0 评论 -
Android与鸿蒙系统安全(一)
Android、鸿蒙系统安全一、信息安全概念信息安全涉及信息论、计算机科学和密码学等多方面的知识,它研究计算机系统和通信网络内信息的保护方法,是指在信息的产生、传输、使用、存储过程中,对信息载体(处理载体、存储载体、传输载体)和信息的处理、传输、存储、访问提供安全保护,以防止数据信息内容或能力被非法使用、篡改。信息安全的基本属性包括机密性、完整性、可用性、可认证性和不可否认性,主要的信息安全威胁包括被动攻击、主动攻击、内部人员攻击和分发攻击,主要的信息安全技术包括密码技术、身份管理技术、权限管理原创 2021-10-22 11:41:56 · 6130 阅读 · 0 评论 -
鸿蒙系统概述 - 大白话解析
鸿蒙系统是第一个国产手机大集成系统,是一个系统工程。但是PPT的宣讲,还是带了不少夸大的成分。 一两句来理解鸿蒙系统,第一所谓的“分布式“系统,还是有很大的水份,所鼓吹的软总线,说白话,说人话,就是,他只不过是 一个局域网的自定义协议罢了;他所采用COAP协议,是已经存在的规范,不是首创,提的宏内核,在车载系统领域一直在使用;所以我说他是一个大集成。鼓吹的“设备发现”,无法是一个局域网协议;对于物联网来说,有些故意避重就轻,为什么这么说,物联网最大的问题是什么,是连网...原创 2021-08-10 20:59:16 · 3261 阅读 · 2 评论 -
鸿蒙系统学习 LiteOS-m(六)
OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点,其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等,分为硬件相关层以及硬件无关层,硬件相关层提供统一的HAL(Hardware Abstraction Layer)接口,提升硬件易适配性,不同编译工具链和芯片架构的组合分类,满足AIoT类型丰富的硬件和编译工具链的拓展。其架构图如图1所示:图 1OpenHarmony LiteOS-M核内核架构图.原创 2021-07-27 17:54:37 · 7143 阅读 · 0 评论 -
鸿蒙系统学习 驱动应用开发(三)
采用主从架构设计模式,围绕着框架、模型、能力库和工具四个维度能力展开构建。鸿蒙的微内核架构,导致所有以前的驱动需要重构适配,所采用的驱动逻辑,与Linux也非常接近,平台驱动,总线驱动等等。...原创 2021-07-27 09:38:56 · 1140 阅读 · 0 评论 -
鸿蒙系统学习 安全认证(二)
在分布式终端场景下,只有保证用户使用的设备是安全可靠的,才能保证用户数据在虚拟终端上得到有效保护,避免用户隐私泄露。 AVB --- Hash + 签名安全启动确保源头每个虚拟设备运行的系统固件和应用程序是完整的、未经篡改的。通过安全启动,各个设备厂商的镜像包就不易被非法替换为恶意程序,从而保护用户的数据和隐私安全。可信执行环境提供了基于硬件的可信执行环境(TEE,Trusted Execution Environment)来保护用户的个人敏感数据的存储和处理,确保数据不泄露。由于分布式终端硬件的安全能.原创 2021-07-27 09:22:58 · 970 阅读 · 0 评论 -
鸿蒙系统学习(四)
对于全场景,分布式理解,我们可以想一下华为自家的多屏协作,以及电脑,平板和手机可以很方便实现在电脑上操作平板,手机。到此应该有一个疑问,如果不用鸿蒙 OS,能不能实现以上交互?多屏协同,多设备协同?答案是可以的,官方有提到,他们把鸿蒙 OS 一些能力,例如分布式提出来放到 EMUI 上。我们在华为的开发平台上可以看到一些 kit 和鸿蒙有关的有设备虚拟化、HiCar、HiLink、碰一碰等。这些 kit 是可以让设备在不上鸿蒙的情况下,实现全场景,分布式。他们做的类似做一个中间层,App 和原创 2021-07-26 18:16:26 · 648 阅读 · 0 评论 -
dts 语法学习
3、reg属性设备的unit-address地址也经常在其对应结点的reg属性中给出。ePAPR标准给出了结点命名的规范:reg#address-cells#size-cellsreg: reg的组织形式为reg = <address1 length1 [address2 length2] [address3 length3] … >,其中的每一组address length表明了设备使用的一个地址范围。#address-cells: 为1个或多个32位的整型(即cell),基地原创 2021-07-22 18:02:07 · 2062 阅读 · 0 评论 -
HIDL 语法学习
HIDL 语法HIDL语言类似于C(但不使用C预处理器)/* / 表示文档注释./* */ 表示文档多行注释.// 表示在一行结束后注释[empty] 表明当前项的值为空? 放置在项前,表明该项为可选项.… 表明该序列包含0个或多个如前述使用分隔符隔开的项, 逗号用于分隔序列中的元素; 分号用于标记每个元素的结束位置.@entry 当前HAL模块被使用时应当被最先调用的接口@exit 当前HAL模块被调用时应当被最后调用的接口..原创 2021-07-16 18:07:39 · 3608 阅读 · 2 评论 -
POSIX CMSIS-RTOS操作系统 API规范
和操作系统(OS)相关的一个重要标准是POSIX(Portable Operating System Interface of UNIX),表示可移植操作系统接口。虽然POSIX中的X代表的是UNIX,但其实POSIX并不局限于UNIX,许多其它的OS也可以符合POSIX标准。POSIX是IEEE为在各种OS上运行的软件而定义的一组API接口标准,目标是获得源代码级别的软件可移植性。也就是说,在一个符合POSIX标准的OS上开发的应用程序,在其它的POSIX操作系统上无需修改也可以直接编译运行。在物原创 2021-07-13 15:01:36 · 832 阅读 · 1 评论 -
鸿蒙系统学习 LiteOS-a(五)
车机系统原创 2021-07-10 10:58:38 · 869 阅读 · 0 评论 -
Cat.1的全称是LTE UE-Category 1
eMTC和NB-IoT都主要是针对低速率、低功耗、低成本的物联网应用。而针对中速率的物联网应用市场,主要就是Cat.1。随着近年来物联网及可穿戴市场的爆发,越来越凸显了LTE缺乏单天线标准的缺憾。于是在2017年,LTE Cat.1 bis正式成为LTE单天线UE等级。Cat.1主要就是针对物联网应用的,其下行速率最高可达10Mbps,上行速率最高可达5Mbps。...原创 2021-07-10 09:31:10 · 1050 阅读 · 0 评论 -
鸿蒙系统学习 框架概述(一)
。鸿蒙的LiteOS才是用来对标Linux的,值得注意的是LiteOS和Linux是一样的,都是宏内核而不是之前宣传的微内核,鸿蒙的微内核可能要到过段时间才会发布。那么鸿蒙对标的产品是什么呢?是安卓和Windows。这也让安卓特别的难受,因为与它正在开发的Funchsia系统在地位上有较大的吻合,都是面向IOT设备的操作系统。我们可以看看这张图,在鸿蒙的整个框架中内核只是占比较小的一部分,而内核这部分里还分了两个内核子系统:Linux和LiteOS。所以内核位于鸿蒙就像心脏位于人体,非常重要但占比很小。如果原创 2021-07-05 13:53:04 · 14819 阅读 · 1 评论 -
android gps 数据流程分析
GPS 位置数据一定是从gps模块反馈回来的,通过Hal往上callback传出去的。这个我在跟踪gps数据流程时,一直坚信的原则。 奈何android java,hidl hal,jni, driver各层反复绕在一起。应该是对代码分层没有理清楚。gps/service/mtkgnss.cppGpsCallbacks MtkGnss::sGnssCb = { .size = sizeof(GpsCallbacks), .location_cb = locationCb,...原创 2021-05-21 16:49:55 · 1052 阅读 · 0 评论 -
jack-server编译不过问题解决方案
删除/etc/java-8-openjdk/security/java.security 文件里jdk.tls.disabledAlgorithms 的 TLSv1, TLSv1.1606 jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \607 RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224, \6...原创 2021-05-15 17:37:43 · 469 阅读 · 0 评论 -
Android 密钥库系统 (二)
要求进行用户身份验证才能使用密钥 生成密钥或将密钥导入到 AndroidKeyStore 时,您可以指定密钥仅授权给经过身份验证的 用户使用。用户使用安全锁定屏幕凭据(模式/PIN/密码、指纹)的子集进行身份验证。 这是一项高级安全功能,通常仅用于有以下要求的情形:在生成/导入密钥后(而不是之前 或当中),应用进程受到攻击不会导致密钥被未经身份验证的用户使用。 如果密钥仅授权给经过身份验证的用户使用,可以将其配置为以下列两种模式之一运行: 经过身份验证的用户可以在一段时间内使用密钥。原创 2021-04-23 09:13:38 · 2058 阅读 · 2 评论 -
Android 密钥库系统 (一)
Android 密钥库系统 利用 Android 密钥库系统,您可以在容器中存储加密密钥,从而提高从设备中提取密 钥的难度。在密钥进入密钥库后,可以将它们用于加密操作,而密钥材料仍不可导出。此外, 它提供了密钥使用的时间和方式限制措施,例如要求进行用户身份验证才能使用密钥,或者 限制为只能在某些加密模式中使用。如需了解详细信息,请参阅安全功能部分。 密钥库系统由 KeyChain API 以及在 Android 4.3(API 级别 18)中引入的 Android 密钥 库提供程序功原创 2021-04-23 09:06:11 · 2701 阅读 · 1 评论 -
openstf rethinkdb install
Get the source codeDownload and extract the archive:wget https://download.rethinkdb.com/repository/raw/dist/rethinkdb-2.4.1.tgztar xf rethinkdb-2.4.1.tgzBuild the serverKick off the build process:cd rethinkdb-2.4.1./configure --allow-fetchm原创 2021-04-10 10:38:18 · 274 阅读 · 0 评论