
嵌入式
文章平均质量分 53
屯田中郎将
打铁还需自身硬。
展开
-
linux查找文件并替换文件名字符串
查找名字含有abc的文件名,并把文件名中的abc替换为xxx。原创 2023-01-12 13:19:16 · 651 阅读 · 0 评论 -
Anbox编译问题
anbox移植问题。原创 2022-04-19 16:45:20 · 295 阅读 · 0 评论 -
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 · 603 阅读 · 0 评论 -
批量安装当前目录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 · 956 阅读 · 0 评论 -
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 · 3266 阅读 · 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 · 1872 阅读 · 0 评论 -
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 · 1308 阅读 · 0 评论 -
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 · 852 阅读 · 0 评论 -
加速度,陀螺仪6轴传感器调试心得。
传感器内容来说。都是输入设备。可以采用中断,也可以采用轮询。延时队列。或者更高精度的hrtimer。I2C设备调试都可以使用i2c-tools-3.1.1进行寄存器读出写入等操作。方便调试。关于重力感应。所使用的单位是m/s^2。关于陀螺仪,芯片手册所使用的单位一般为dps(度/秒)。转换成弧度需要乘以 π/180 (约0.0174532922222222)。另外。数据精度看输出...原创 2019-11-13 15:02:01 · 2900 阅读 · 0 评论 -
常用总线调试工具
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 · 2290 阅读 · 0 评论 -
android qcom Lights框架以及开发外部应用调用思路
近期项目开发中遇到需要增加手电筒控制的接口(不访问camera)。此类问题实际上实现起来非常简单。本着学习的精神以及不愿意简陋的实现该功能,因此把Lights框架查看了一遍,并增加新灯的控制方式。先从调用处开始查看:frameworks/base/services/core/java/com/android/server/BatteryService.java//调用处,获...原创 2019-02-26 21:04:51 · 983 阅读 · 1 评论 -
安卓设置锁屏密码流程
本文以安卓5.1为例分析锁屏密码设置的流程。由设置界面中设置密码可以看到以下文件。packages/apps/Settings/src/com/android/settings/ChooseLockPassword.java428 if (mUiStage == Stage.Introduction) {429 errorMs...原创 2018-11-22 09:46:43 · 3284 阅读 · 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 · 357 阅读 · 0 评论 -
高通平台LK传递参数给kernel参考serialno的方式实现
该需求主要是为了能够获取自定义的版本号,或者需要bootloader里,定制代码的执行结果需要传递到bootloader从而控制启动等。首先可以从shell里查看LK传入的值。cat proc/cmdline得知androidboot.serialno=xxxxx那么可以再源码树里查找serialno关键字并依葫芦画瓢即可bootable/bootloader/lk/app/...原创 2017-10-24 11:22:43 · 3139 阅读 · 0 评论 -
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 · 5530 阅读 · 0 评论 -
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 · 445 阅读 · 0 评论 -
如何删除Windows被占用的COM
如何释放和删除被占用的串口这个解决了,A:可以通过删除注册表中的一个数值项来清除这些配置:在“运行”对话框中输入“regedit”进入注册表;然后进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号。比如1d,它的二进制:0001原创 2017-04-19 14:37:36 · 958 阅读 · 0 评论 -
高通平台开机LOGO修改LK(bootloader)下实现
网络上已经有许多在kernel中修改开机Logo的文章,本文就LK下实现开机logo进行简述需要用到ffmpeg工具,没有安装ffmpeg请参考这里:http://blog.youkuaiyun.com/redstarofsleep/article/details/45092145 运行"ffmpeg -i logo.png -f rawvideo -pix_fmt bgr24 logo.ra原创 2016-01-22 14:04:44 · 6890 阅读 · 2 评论 -
关于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 · 13585 阅读 · 0 评论 -
Android设置界面与通知栏裁剪
最近产品在做认证有点烦躁,但是没有关系。不就是认证嘛。该死的认证。奇葩的需求,因为机器申请只有4G的频段,需要把2/3G的频段给频闭。界面上可以设置成只有4G的频段。但是毕竟设置界面在那里,别人发现了还是说明你的机器是全网通机器。因此需要把设置界面给改了。在源码目录下。packages\services\Telephony\src\com\android\phone\msim\MSimMo原创 2016-06-08 15:42:27 · 1660 阅读 · 0 评论 -
MIPI接口LCD屏调试心得
首先总结一下LCD调试的三个步骤。第一、线路连接配置本人在这里栽了不止一次。这次要总结一下开关电路。首先mos管开关电路的识别,那么先看看什么是n沟道mos管(借了百度百科的图)对于嵌入式系统工程师来说,我不需要它什么电压导通,我只要知道它是高电平能通还是低电平能通。对于n沟道,G接高电平,S接低电平,D导通。G接高电平,S接高电平,D截止。这里一般是LCD_EN引原创 2016-03-14 14:31:22 · 37413 阅读 · 7 评论 -
Android 5.1.1 状态栏裁剪以及点击状态栏的事件监听裁剪
公司又派发任务来折磨我了,没关系谁叫咱是码农呢。实际上状态栏和导航栏都属于systemUI里的内容。对于状态栏的裁剪,可以分为两种。第一种,整个状态栏都不要了。那么这种很简单,但是这样可能导致信号什么的不好查看。直接修改xml文件把状态栏显示的dpi改成0搞定。 frameworks/base/core/res/res/values/dimens.xml 修改 25dip为0d原创 2016-07-28 16:24:59 · 2258 阅读 · 2 评论 -
Android5.1.1 自带Camera2/SnapdragonCamera的apk拍照方向旋转90°
Google默认的Camera2或者SnapdragonCamera拍照后方向自动旋转了270°的问题。原创 2016-07-28 16:47:34 · 3600 阅读 · 0 评论 -
高通SPI指纹模块driver调试
高通平台指纹模块的调试小记。原创 2016-09-18 15:09:22 · 8419 阅读 · 3 评论 -
触摸屏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 · 2525 阅读 · 0 评论 -
入网认证遇到的安全受控机制的问题---之Android 5.1.1 AppOps与严格模式
开启严格模式,安全受控机制原创 2016-08-18 15:05:10 · 2923 阅读 · 0 评论 -
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 · 2634 阅读 · 2 评论 -
Android源码树常用命令
croot 切换到源码树的根目录m 在源码树的根目录执行 makemm Build 当前目录下的模块mmm Build 指定目录下的模块cgrep 在所有 C/C++ 文件上执行 grepjgrep 在所有 Java 文件上执行 grepresgrep 在所有 res/*.xml 文件上执行 grepgodir 到包含某个文件的目录路径printconfig 显示当原创 2017-01-10 09:15:53 · 398 阅读 · 0 评论 -
关于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 · 2565 阅读 · 0 评论 -
Android5.1.1实现备份应用数据功能
Android5.1.1实现备份应用数据功能 首先先来几个知识点,Android各个应用数据的隔离实际上是通过不同的UID来区别的。UID分配过程不在本文详解。应用安装时会在/data/data/目录下以包名为目录名,创建一个目录,并且分配权限为751,并分配对应的用户与用户组,这就导致了,要想读取某个应用的应用数据,就应该需要这个应用的uid或者gid,如果要对这个目录进行写的话,则需要ui原创 2016-12-08 18:27:18 · 3878 阅读 · 1 评论 -
嵌入式linux交叉编译工具链搭建
首先我要先吐槽一下这本《嵌入式Linux应用开发》蛋疼无比的书。尼玛。里面的东西也太旧了把。都能成古董了!!!!所以书里面教的交叉编译工具链的建立方法已经早已不适应(当然你直接用书上建好的请忽略本文)。因此花了四天时间研究了一下交叉编译工具链搭建。本次基于Ubuntu12.04.4(32位的也就是i386)+croostool-ng-1.9.3已S3C2440为例。该处理器属于ARMv4t版原创 2014-10-28 13:57:26 · 2407 阅读 · 0 评论