- 博客(42)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 Android硬件访问服务由HAL层到APP以及添加自定义权限限制访问
本文主要内容如下。其实Android硬件访问服务的文章已经多的数不胜数了。1、编写HAL库控制硬件 2、添加jni访问HAL库 3、java调用jni的实现以及AIDL 4、实现管理类来对java的访问服务进行操作以及APK调用方法 5、对硬件访问服务进行访问硬件的权限检查,以及自己添加新的权限在framework以及APK调用方法1、编写HAL库控制硬件以Android5.0为例
2016-12-01 09:05:08 2544 2
原创 Android 12.0 debug版本打开OEM解锁开关功能实现
查找日志可以发现system/core/set-verity-state/set-verity-state.cpp文件中is_avb_device_locked方法里。这个获取ro.boot.vbmeta.device_state属性。通常为了方便push在debug版本会采用如下命令。这个属性由uboot传上来。因此查找这个影响的代码。
2024-08-02 17:39:29 403
原创 Android 编译错误undefined symbol分析与解决
解决思路均为先找到你对应需要include目录。然后查看该目录下Android.bp编译的库name。基本上出此类问题都是so库并且在android.bp中include对应路径任然报错。在讲name应用到export_shared_lib_headers中。实际上bp指定对应路径为。
2024-07-30 20:06:58 429
原创 camera1 api调用流程
通篇从api调用到获取到provider操作。再去查看provider如何初始化。最终找到了preview分辨率等参数的实际获取地方。
2023-04-19 15:43:23 685
原创 dmesg权限异常
非root用户使用dmesg命令报错如下。dmesg: klogctl: Operation not permitted如要临时开放可按照如下修改diff --git a/kernel/kernel/printk.c b/kernel/kernel/printk.c index 145d69cc9
2022-06-15 17:17:08 2629
原创 app属性seinfo 应用selinux上下文
seinfo用zygote创建app进程时创建selinux上下文使用。不同签名会创建对应的selinux上下文。platform,system,untrusted等。frameworks/base/services/core/java/com/android/server/pm/SELinuxMMAC.java中getSeInfo()函数获取对应安装时分配的值。特殊修改上下文看以针对此函数改动。...
2020-08-18 17:08:38 555
原创 批量安装当前目录apk的bat脚本
@ECHO off @REM 无限循环的标签 :LOOP adb wait-for-device @REM 循环安装本目录下的APK文件 FOR %%i IN (*.apk) DO ( ECHO 正在安装:%%i adb install -r "%%i" ) ECHO 安装完毕;请更换下一台手机!PAUSE GOTO LOOP @ECHO on另存为后缀bat.编码格式记得改成GB2312/GBK...
2020-08-06 17:01:54 844
原创 android Q 标准类新增api错误
You have tried to change the API from what has been previously released inan SDK. Please fix the errors listed above.android Q 标准类新增api错误Aborting: Found compatibility problems checking the public API against the API in /android/out/soong/.intermediates
2020-08-05 20:19:58 3001 2
原创 init.rc文件添加on property触发器无效
在init.rc文件中时常可以看到如下信息。on property:init.svc.vendor.per_mgr=running start vendor.per_proxy这里表明property的属性init.svc.vendor.per_mgr值等于running时。则启动vendor.per_proxy。可以看到设置对应的属性可以启动对应的服务。这里的实现主要由init文件的parser解析实现。system/core/init/action_parser.cpp...
2020-06-21 13:24:17 1780
原创 android 9 sh脚本执行。
关于安卓9中sh脚本的执行。在rc文件中添加脚本执行规则其实很容易,有个小细节要注意。也是写脚本的人员很容易忽略的事情。脚本开头需要指定sh。这对linux或者安卓中都很重要。#!/vendor/bin/sh#!/system/bin/sh直接导致selinux上下文的变化。前者上下文为tcontext=u:object_r:vendor_shell_exec:s0后者上下文为tcontext=u:object_r:shell_exec:s0不注意这个对权限开发会产.
2020-06-18 16:00:12 1264
原创 android 源码集成jar包报Had 356 soft failure(s) verifying all classes
今天集成jar包发现编译不过。Had 356 soft failure(s) verifying all classes, and was asked toabort in such situations. Please check the log.从错误得知ERROR: Dex2oat failed to compile a boot image. It is likely tha...
2020-04-24 10:11:23 800
原创 加速度,陀螺仪6轴传感器调试心得。
传感器内容来说。都是输入设备。可以采用中断,也可以采用轮询。延时队列。或者更高精度的hrtimer。I2C设备调试都可以使用i2c-tools-3.1.1进行寄存器读出写入等操作。方便调试。关于重力感应。所使用的单位是m/s^2。关于陀螺仪,芯片手册所使用的单位一般为dps(度/秒)。转换成弧度需要乘以 π/180 (约0.0174532922222222)。另外。数据精度看输出...
2019-11-13 15:02:01 2800
原创 常用总线调试工具
spi-tools 对spi总线配置以及发送命令数据https://github.com/cpb-/spi-toolsi2c-test-tools I2C测试https://i2c.wiki.kernel.org/index.php/I2C_Toolsiperf 带宽测试https://iperf.fr/...
2019-06-18 15:32:01 2139
原创 android qcom Lights框架以及开发外部应用调用思路
近期项目开发中遇到需要增加手电筒控制的接口(不访问camera)。此类问题实际上实现起来非常简单。本着学习的精神以及不愿意简陋的实现该功能,因此把Lights框架查看了一遍,并增加新灯的控制方式。先从调用处开始查看:frameworks/base/services/core/java/com/android/server/BatteryService.java//调用处,获...
2019-02-26 21:04:51 931 1
原创 安卓设置锁屏密码流程
本文以安卓5.1为例分析锁屏密码设置的流程。由设置界面中设置密码可以看到以下文件。packages/apps/Settings/src/com/android/settings/ChooseLockPassword.java428 if (mUiStage == Stage.Introduction) {429 errorMs...
2018-11-22 09:46:43 3164 1
原创 关于Android开发过程中遇到的一些权限注意点
1、AndroidManifest.xml文件中声明的权限2、linux经典权限chmod3、linux的Selinux权限4、linux层中代码校验UID时的权限。例如 return in_egroup_p(xt_qtaguid_stats_file->gid) || unlikely(!current_fsuid()) || uid == current_fsuid()
2018-02-02 11:14:38 342
原创 高通平台LK传递参数给kernel参考serialno的方式实现
该需求主要是为了能够获取自定义的版本号,或者需要bootloader里,定制代码的执行结果需要传递到bootloader从而控制启动等。首先可以从shell里查看LK传入的值。cat proc/cmdline得知androidboot.serialno=xxxxx那么可以再源码树里查找serialno关键字并依葫芦画瓢即可bootable/bootloader/lk/app/...
2017-10-24 11:22:43 3075
原创 如何删除Windows被占用的COM
如何释放和删除被占用的串口这个解决了,A:可以通过删除注册表中的一个数值项来清除这些配置:在“运行”对话框中输入“regedit”进入注册表;然后进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号。比如1d,它的二进制:0001
2017-04-19 14:37:36 931
原创 关于内核打印信息的查看
第一个ipc_loggingcat sys/kernel/debug/ipc_logging/xxxx/xxx第二个此外,打印中还经常看到pr_debug函数,可以动态的打印调试信息(http://blog.csdn.net/weiqifa0/article/details/44038907)如要打开该函数,只需在内核中配置CONFIG_DYNAMIC_DEBUG,并且
2017-04-13 17:24:17 2017
原创 关于Android properties 中ro开头无法修改的问题
熟悉Android开发的小伙伴都知道,build.prop里存在很多选项,其中ro开头的选项无法通过SystemProperties.set方法进行修改。这里除了Selinux的原因还有本身propertyservice里的限制,我们看看代码system/core/init/property_service.c298 int property_set(const char *name, con
2017-03-02 09:40:09 2504
原创 Android源码树常用命令
croot 切换到源码树的根目录m 在源码树的根目录执行 makemm Build 当前目录下的模块mmm Build 指定目录下的模块cgrep 在所有 C/C++ 文件上执行 grepjgrep 在所有 Java 文件上执行 grepresgrep 在所有 res/*.xml 文件上执行 grepgodir 到包含某个文件的目录路径printconfig 显示当
2017-01-10 09:15:53 389
原创 Android.mk积累
集成apk时,如果带有so库,也就是jni库那么需要添加1、顶层Android.mk 添加 LOCAL_JNI_SHARED_LIBRARIES := libxxxx 2、新建目录jni,把libxxxx.so放入这个目录并且新建Android.mk文件。3、在新建mk中添加一下内容。 include $(CLEAR_VARS) LOCAL_MODULE := l
2017-01-04 09:21:14 429
原创 Android5.1.1实现备份应用数据功能
Android5.1.1实现备份应用数据功能 首先先来几个知识点,Android各个应用数据的隔离实际上是通过不同的UID来区别的。UID分配过程不在本文详解。应用安装时会在/data/data/目录下以包名为目录名,创建一个目录,并且分配权限为751,并分配对应的用户与用户组,这就导致了,要想读取某个应用的应用数据,就应该需要这个应用的uid或者gid,如果要对这个目录进行写的话,则需要ui
2016-12-08 18:27:18 3811 1
原创 触摸屏getevent正常报数据,Android却无触点的bug
今天在调试一款触摸屏。发现一个bug,说来也是奇怪。明明在adb shell里面执行getevent命令,触摸数据和事件都上报了。可是Android就是压根没反应呀!!决定还是从drver入手,查找一番终于发现了问题。原来参考驱动里没有设置input_set_abs_params的ABS_MT_POSITION_X和ABS_MT_POSITION_Y,设置的最大值变量从来没有被赋值。果断改了值,A
2016-09-22 08:24:57 2429
原创 Android5.1.1 自带Camera2/SnapdragonCamera的apk拍照方向旋转90°
Google默认的Camera2或者SnapdragonCamera拍照后方向自动旋转了270°的问题。
2016-07-28 16:47:34 3561
原创 Android 5.1.1 状态栏裁剪以及点击状态栏的事件监听裁剪
公司又派发任务来折磨我了,没关系谁叫咱是码农呢。实际上状态栏和导航栏都属于systemUI里的内容。对于状态栏的裁剪,可以分为两种。第一种,整个状态栏都不要了。那么这种很简单,但是这样可能导致信号什么的不好查看。直接修改xml文件把状态栏显示的dpi改成0搞定。 frameworks/base/core/res/res/values/dimens.xml 修改 25dip为0d
2016-07-28 16:24:59 2231 2
原创 Android设置界面与通知栏裁剪
最近产品在做认证有点烦躁,但是没有关系。不就是认证嘛。该死的认证。奇葩的需求,因为机器申请只有4G的频段,需要把2/3G的频段给频闭。界面上可以设置成只有4G的频段。但是毕竟设置界面在那里,别人发现了还是说明你的机器是全网通机器。因此需要把设置界面给改了。在源码目录下。packages\services\Telephony\src\com\android\phone\msim\MSimMo
2016-06-08 15:42:27 1623
原创 LDD3学习笔记scull编译错误解决
1、./scripts/Makefile.build:49: *** CFLAGS was changed in "/home/jerry/luo/module/examples/scull/Makefile". Fix it to use ccflags-y.很明确了。直接将Makefile的CFLAGS改成ccflags-y。2、 fatal error: linux/config.h
2016-04-17 22:05:15 1774
原创 MIPI接口LCD屏调试心得
首先总结一下LCD调试的三个步骤。第一、线路连接配置本人在这里栽了不止一次。这次要总结一下开关电路。首先mos管开关电路的识别,那么先看看什么是n沟道mos管(借了百度百科的图)对于嵌入式系统工程师来说,我不需要它什么电压导通,我只要知道它是高电平能通还是低电平能通。对于n沟道,G接高电平,S接低电平,D导通。G接高电平,S接高电平,D截止。这里一般是LCD_EN引
2016-03-14 14:31:22 37125 7
原创 关于LCD的HBP,HFP等各种参数
今天终于搞明白了!多亏了这芯片手册话不多说先上图对于这个图已经说的很清楚了我们以HFP为例子假设MIPI为457Mbps/lane,使用4lane。那么1bps就是2.1883ns,24色真彩色。图上给出的HFP是0.94us 按照HFP(pixle)=(940ns * 4)/ (2.1883 * 24) = 71.59这里是最小值。可以取的比最小值大一点那么约为100就好
2016-03-10 20:09:12 13000
原创 Ubuntu android studio 创建虚拟设备问题
修改家目录下的.android所属为当前用户,默认是超级用户。无法布置任务到Android虚拟设备,需要手动启动adb服务。
2016-02-22 10:38:32 1154
原创 Android层测试摄像头实际输出帧率大小
1、设置prop属性adbshellsetproppersist.camera.sf.showfps1log中搜索PROFILE_PREVIEW_FRAMES_PER_SECOND2、在adblog中过滤同时包含mm_stream_read_msm_frame和streamtype1的行,数出每一秒同时包含mm_stream_read_msm_frame和st
2016-02-19 10:34:33 5444
原创 高通平台开机LOGO修改LK(bootloader)下实现
网络上已经有许多在kernel中修改开机Logo的文章,本文就LK下实现开机logo进行简述需要用到ffmpeg工具,没有安装ffmpeg请参考这里:http://blog.csdn.net/redstarofsleep/article/details/45092145 运行"ffmpeg -i logo.png -f rawvideo -pix_fmt bgr24 logo.ra
2016-01-22 14:04:44 6818 2
转载 Ubuntu 14.04 安装Virtualbox No suitable module for running kernel found
问题:No suitable module for running kernel found解决:1、确认清除你之前所安装的virtualboxsudo apt-get purge virtualbox2、从virtualbox网址直接下载:https://www.virtualbox.org/wiki/Download_Old_Builds_4_3选择AMD64,或者i3
2015-11-22 10:58:54 1315
原创 linux内核分析笔记之系统滴答定时
linux0.11内核中滴答时钟被设置成10ms一个系统滴答。从而执行中断程序timer_interrupt ↓jiffies++;//用于记录系统总共运行的时钟数↓被中断的程序CPL(特权级) 传入do_timer();↓CPL=0内核被中断内核态运行时间++ 否则用户态运行时间++↓处理时间链表。//程序有添加使用定时器时才处理↓
2015-03-29 13:01:31 2107
高通平台Android驱动的摄像头名词问题
2015-12-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人