
Android framework
文章平均质量分 76
记录Android framework相关知识
sdkdlwk
Android系统driver、hal、framework、app demo等定制、调试、合作,请私信!
展开
-
关于 Android LocalSocket、LocalServerSocket
如果在另外一个app中已经创建了这个 "hello_world" 的 LocalServerSocket, 这里再创建会抛异常:java.io.IOException: Address already in use。原创 2024-11-26 12:52:22 · 1128 阅读 · 0 评论 -
Android上的C底层库都有啥
调用 native_handle_create()函数,可以得到一个native_handle_t,其大小实际上是由参数传入的内容来决定的,得到 native_handle_t 结构体后,对其中的文件描述符和整数赋值。属性的名称和属性值都是使用字符串 (char*)来表示的。在建立 native_handle 时,传入xxx_handle_t 实际的文件描述符和整数的数目,此时返回的结构体指针指向的内存就是xxx_handle_t的大小,因此它实际上是可以作为 xxx_handle_t 使用的。原创 2024-11-26 10:34:02 · 1111 阅读 · 0 评论 -
MTK中 使用logwrapper进行守护进程log的重定向
在Android有一些应用程序的日志输出是通过printf之类的标准函数输出的,这类log是无法记录到的。主要是由于init进程会把0,1,2三个fd指向到/dev/null,而其他进程都是由init fork出来的,所以标准输出和标准错误输出都会继承自父进程,所以默认也都是不打印出来的。android中提供了logwrapper程序用来log的输出,重定向的log可以使用logcat查看,我们来看下他的实现机制又是怎样的呢?原创 2024-11-23 11:41:45 · 381 阅读 · 0 评论 -
Android ROM开发 编译阶段设置预置文件或者文件夹的权限
【代码】Android ROM开发 编译阶段设置预置文件或者文件夹的权限。原创 2024-11-21 19:59:07 · 566 阅读 · 0 评论 -
android 11添加property遇到的selinux问题
dac_override 是一种典型的neverallow权限,要添加dac_override权限必须是coredomain才能添加,如果不是coredomain是没有办法添加这种neverallow权限的,也就是说在device/qcom/sepolicy/目录下添加的文件是不可能有dac_override权限的,如何添加coredomain修改如问题1所示。/system/sepolicy/private/目录下添加addnew.te 文件。:xxx.ignore.cil使用。原创 2024-08-18 23:46:40 · 688 阅读 · 0 评论 -
adb shell service命令与SurfaceFlinger调试
CODE就是就是binder机制中,onTransact函数中的第一个参数;我们用一个例子来说明,如何通过service命令和系统服务互动。SERVICE 就是list查询到的系统服务的名字;后面是要传递的参数,参数类型+参数值。可以看下源码(下面我截取的是。原创 2024-07-14 17:06:24 · 437 阅读 · 0 评论 -
Android P 背光机制流程分析
在android 9.0中,相比android 8.1而言,背光部分逻辑有较大的调整,这里就对android P背光机制进行完整的分析。原创 2024-01-26 10:14:33 · 12060 阅读 · 0 评论 -
Android P 屏保和休眠相关知识
Android P添加屏保功能,如果休眠时间设定大于屏保时间,则先进入屏保,达到休眠时间后再进入休眠需求:修改后的屏保: 分析与实现:由于Android原生系统默认进入屏保的条件是充电或插入基座时,但到达休眠时才进入屏保。所以需要把进入屏保的条件修改为任何时候都能进入。2.在设置–>显示–>屏保中添加“屏幕互保”选项开关2.1添加系统自定义全局变量,用来保存“屏幕互保”选项开关的状态值2.2 vendor/mediatek/proprietary/packages/apps/MtkSett原创 2024-01-26 08:59:07 · 11760 阅读 · 0 评论 -
Android系统禁止进入深休眠的方法
在PowerManagerService中mWakeLockSuspendBlocker是控制CPU休眠的锁。mDisplaySuspendBlocker是控制显示开关的锁。通过查看文件,亮屏时看到的也是这两个锁:当按下电源键,会调用goToSleep—>goToSleepInternal —>goToSleepNoUpdateLocked—>updatePowerStateLocked;原创 2024-01-08 15:25:31 · 11089 阅读 · 0 评论 -
MTK Android P Sensor架构(二)
kernel层框架的要点大概就这么多,不同的sensor,基本的驱动流程都类似,读完我这系列文章后应该就能一通百通了。原创 2023-12-12 22:48:04 · 47611 阅读 · 0 评论 -
MTK Android P Sensor架构(一)
本来如果只是给传感器写个驱动并提供能读取温湿度数据的节点,是一件比较轻松的事情,但是最近上层应用的同事要求我们按照安卓标准的流程来,这样他们就能通过注册一个服务直接读取传感器事件数据了。这样做的好处就是第三方的应用也能正常读取温湿度的数据并展示。原创 2023-12-12 22:26:58 · 48241 阅读 · 1 评论 -
Android P 9.0 增加以太网静态IP功能
在 mobile_network_settings 和 tether_settings 之间增加如上代码,对应的 icon 资源文件是我从 SystemUI 中拷贝过来的,稍微调整了下大小,也贴给你们吧到这一步 Settings 的修改就完成了,就能实现上图的效果了,你可以mm push看效果了如果你编译报错,大概是 Settings 中没有添加对应的变量,我的本来就有的,没有的可参考下面的加一下加完后你需要先 make update-api成功后,在重新 mm 编译应该就好了。原创 2023-12-07 15:45:09 · 48466 阅读 · 0 评论 -
Android framework定制1-->用户无操作一段时间,自动播放客户提供的视频,用户操作后退出播放
【代码】Android framework定制1-->用户无操作一段时间,自动播放客户提供的视频,用户操作后退出播放。原创 2023-12-03 00:03:09 · 46712 阅读 · 0 评论 -
mtk平台dump系统分区(内含RK平台)
mtk平台dump系统分区声明郑重声明:博文为原创内容,可以转载或引用,但必须在明显位置标明原文作者和出处,未经同意不得擅自修改本文内容!博客地址:http://blog.youkuaiyun.com/luzhenrong451. 为什么要dump Android分区?一般来讲,Android设备可以正常开机情况下,我们可以通过各种方式和手段访问Android各个分区内容,比如通过adb获取ca...原创 2019-05-06 20:50:58 · 12790 阅读 · 0 评论 -
android修改触摸屏添加唤醒功能参考
tp触摸唤醒功能原创 2022-11-28 18:51:56 · 43057 阅读 · 1 评论 -
Android编译差分包命令
RK3288 可以使用下面的脚本mkota.sh#!/bin/bash./build/tools/releasetools/ota_from_target_files -v \ -k vendor/XXX/security/releasekey --block \ -i rockdev/YYY.8_target_files.zip rockdev/YYY.9_target_files.zip rockdev/ZZZ.zip原创 2021-09-27 17:01:59 · 38938 阅读 · 0 评论 -
PMS构造函数流程分析
1、相关代码文件frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.javaframeworks\base\services\core\java\com\android\server\pm\Settings.javaframeworks\base\services\core\jav...转载 2019-05-06 20:47:05 · 589 阅读 · 0 评论 -
Android 给 app默认权限(不弹窗申请权限)
1.系统app系统app的权限默认开启,大家应该都知道是修改DefaultPermissionGrantPolicy.java。frameworks/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java在grantDefaultSystemHandlerPermissions中可以...原创 2019-08-02 16:40:13 · 23398 阅读 · 0 评论 -
tp 双击唤醒 最终实现方案 参考
折腾许久,终于调试出一个比较满意的版本,采用的许多方法跟上一篇不一样,在这里重新整理。 注册和上报键值这里就不在累赘了,本篇博客主要要解决以下bug: 1.系统进入睡眠状态后,如何通过tp唤醒系统。 2.如何解决快速双击时唤醒系统,长按时不唤醒系统。要唤醒进入睡眠状态的系统,首先要了解以下函数接口:在了解函数接口前,讲一下suspend和resume,Suspend:kernel会依次调用你注册驱动里的suspend函数,将各种外设都进入节电模式。最后CPU进入power down 模式..原创 2020-09-03 09:50:51 · 6435 阅读 · 2 评论 -
Android or Linux 的休眠与唤醒
Linux休眠/唤醒简介休眠/唤醒在嵌入式Linux中是非常重要的部分,嵌入式设备尽可能的进入休眠状态来延长电池的续航时间。这篇文章就详细介绍一下linux中休眠/唤醒是如何工作的,还有Android中如何把这部分和Linux的机制联系起来的.在Linux中,休眠主要分三个主要的步骤:1)冻结用户态进程和内核态任务2)调用注册的设备的suspend的回调函数,顺序是按照注册顺序转载 2017-06-26 18:11:56 · 4588 阅读 · 0 评论 -
Android 关机流程分析-----(2)JNI和kernel层
最近遇到fastboot关机电流偏高的问题,虽然最后确认是硬件的问题,但还是顺便分析了一下android开关机的流程。总结一下,加深印象,也方便日后查阅。Android智能手机和平板一般都有Power key,长按Power key弹出关机对话框,选择power off就会让系统关闭。关机动作从按键触发中断,linux kernel层给android framework层返回按键事件进入fra...转载 2019-04-19 08:43:37 · 666 阅读 · 0 评论 -
Android 关机流程分析-----(1)Framework层
最近遇到fastboot关机电流偏高的问题,虽然最后确认是硬件的问题,但还是顺便分析了一下android开关机的流程。总结一下,加深印象,也方便日后查阅。Android智能手机和平板一般都有Power key,长按Power key弹出关机对话框,选择power off就会让系统关闭。关机动作从按键触发中断,linux kernel层给android framework层返回按键事件进入fra...转载 2019-04-19 08:42:21 · 772 阅读 · 0 评论 -
Android程序的入口
android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如android提供的发短信或者打电话的Activity. Intent call = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phon...原创 2018-03-20 10:12:55 · 2223 阅读 · 0 评论 -
APK安装时的过滤方式:包名白名单、证书认证
有些项目不允许所有APK都拥有安装权限,例如apk只能通过应用商城来安装或者升级,只允许某些特定的apk自升级,不允许pm install等。这就需要添加安装权限白名单来控制。先介绍android中常用的几种安装方式,好针对这几种进行修改1、 直接调用安装接口。Uri mPackageURI = Uri.fromFile(new File(Environment.getExternalStorageDirectory() + apkName));int installFlags = 0;..原创 2021-01-13 18:00:16 · 9627 阅读 · 0 评论 -
简单使用系统ServiceManger.getService获取自己的service
Java层service顾名思义即为从 Java层提供的service,它与 C++层的服务不同之处在于其service进程的运行由系统( ServiceManager)统一维护。在文件 frameworks/base/services/java/com/android/server/SystemServer.java 中我们可以看到以下代码:AlarmManagerService alarm ...转载 2019-05-25 16:34:18 · 1728 阅读 · 0 评论 -
亲测可用Android原生代码添加系统服务
在Android系统中,为我们提供了很多的系统服务,比如AMS,PMS等,今天参考系统里其他服务的实现,在Android N原生代码中添加自己定制的服务,想想都满激动的准备工作在正式开始之前,需要知道下面两点以及满足下面条件:前提条件Android原生代码,可以通过make全编通过,编译完成之后,可以通过emulator命令启动out目录下生成的image文件,需要注意在执行emula...转载 2019-05-10 17:25:28 · 558 阅读 · 0 评论 -
Android源码添加自定义系统服务
Android源码添加自定义系统服务本文以一个简单的例子详细介绍如何为Android 6.0 系统新增一个系统服务,以及如何使用自定义系统服务。目标:1.创建一个自定义服务CCCService 2.APP 开发过程中可以使用 getSystemService("ccc") 获取 CCCManager 并且调用里面的函数。step1 创建aidl文件在源码fram...转载 2019-05-10 15:14:48 · 3159 阅读 · 0 评论 -
Android 8.1 DisplayPowerController(五) 自动调节亮度(2)——算法
作者:FightFightFight来源:优快云原文:https://blog.youkuaiyun.com/FightFightFight/article/details/83718273在上一篇文章中,对自动背光的流程做了总结,在本篇中,将对自动背光涉及到的一些算法进行分析总结。1.采集光强缓冲区AmbientLightRingBuffer类是一个用于存储采集到的光照强度和对应时间点...转载 2019-03-09 17:02:02 · 2449 阅读 · 0 评论 -
Android 8.1 DisplayPowerController(三) 亮度调节
背光调节,即亮度调节,根据调节方式可以分为手动调节和自动调节。而手动调节有根据调节UI不同,有式有如下几种:1.在设置->显示中手动调节;2.在SystemUI中手动调节;3.在播放视频时上下滑动界面调节亮度.本篇文章对手动调节亮度流程做一个总结。1.设置-显示、SystemUI中调节亮度Settings和SystemUI中的中亮度调节进度框都是来自于SystemUI中的Br...转载 2019-03-09 16:49:33 · 1382 阅读 · 0 评论 -
Android 8.1 DisplayPowerController(一) 亮灭屏流程
作者:FightFightFight来源:优快云原文:https://blog.youkuaiyun.com/FightFightFight/article/details/81320519概述DisplayPowerController(以下简称DPC)用于控制显示电源状态,用来处理亮灭屏、背光的调节,包括接近传感器(P-Senser)、光线传感器(L-senser)和亮灭屏动画。它独立于...转载 2019-03-09 16:40:59 · 5255 阅读 · 0 评论 -
Android 8.1 DisplayPowerController(四) 自动调节亮度(1)——流程
作者:FightFightFight来源:优快云原文:https://blog.youkuaiyun.com/FightFightFight/article/details/83626332和手动调节亮度相比,自动调节亮度则稍微复杂些。其中涉及到多个算法。这里先笼统地介绍其流程,对涉及到的算法在下一篇文章中进行学习。从前面的分析得到,不管是哪种背光调节方式,其最终都会在DisplayPow...转载 2019-03-09 16:53:09 · 2484 阅读 · 0 评论 -
Android 8.1 DisplayPowerController(二) Proximity Sensor的亮灭屏
作者:FightFightFight来源:优快云原文:https://blog.youkuaiyun.com/FightFightFight/article/details/81460803概述P-Sensor亮屏和按Power键亮屏流程还是有些不同之处,如开始调用位置、PowerManagerService中的流程等,由于在平常遇到过许多PSensor亮屏相关Bug,因此这里独立地进行...转载 2019-03-09 16:47:24 · 1434 阅读 · 0 评论 -
为一个驱动添加Android中间层的步骤
本文以demo为本设备的名称,简单描述为一个硬件设备添加中间层的一般步骤。1、添加HAL层代码在hardware/libhardware/modules/下建立demo目录,然后进行下述操作。创建demo.cpp创建Android.mk在hardware/libhardware/include/hardware/目录下创建HAL层头文件demo.h 。转载 2017-08-04 09:19:09 · 399 阅读 · 0 评论 -
Android安全模式
设备在日常使用过程中,不可避免的会添加安装第三方应用。但并不是每一个应用都是安全的,对系统无伤害的。由于第三方应用程序,可能会存在一定的兼容性问题,所以在安装软件后可能会出现系统文件报错,甚至手机无法正常开机或者开机后系统程序不停报错的现象。遇到这种情况,若进行恢复出厂设置,手机中的资料是无法进行备份的,但是Android系统中添加了"安全模式"这项功能,有效的避免上述情况同时来排除故障。流程...原创 2019-09-03 10:33:08 · 18501 阅读 · 0 评论 -
Android扫描、收集、安装APK流程分析(PackageInstaller)
本篇博客分析PackageInstaller源码目的是分析Android权限机制,Android App的权限在应用被安装时,用户选择授予或者拒绝。所以,分析Android权限机制源码的第一步分析应用程序安装时的行为。 此次阅读源码旨在解决的问题:Android权限是一次性授予的,即用户在同意安装后,App就获得了申请的权限。那这个过程是怎样的,即:用户点击同意——>Ap...原创 2019-05-10 11:39:27 · 955 阅读 · 0 评论 -
Android应用安装过程及原理
Android应用安装的流程及路径: 应用安装涉及到如下几个目录:system/app 系统自带的应用程序,无法删除data/app 用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录data/data 存放应用程序的数据Data/dalvik-cache 将ap...原创 2019-10-09 08:51:14 · 18374 阅读 · 0 评论