实战调试记录
记录实际工作中遇到的有意思的,共性的或者比较典型的问题解决思路及过程。
Letcos
一个漂流在自由海洋中的瓶子。
展开
-
Android集成GMS服务及GMS认证方案
如果产品要出到国外,特别是欧美,那么极大可能需要集成GMS并进程GMS认证。这里有三种情况:1.特殊定制化设备,Android只是一个平台,所有业务全部都是自己的App实现的,服务器也是自己的。中情况可以不集成GMS,不做认证。2.只使用GMS的核心功能,大概就是非手机和平板类设备。比如只使用GMS核心服务和Google地图服务。这个时候可以自己集成,然后使用下面的方法绕过认证(不推荐,最好找自己的方案商拿认证,没有风险,不过成本可能较高)3.需要使用大量的google服务,这个就需要找自己的方案商原创 2020-12-13 20:17:23 · 2570 阅读 · 2 评论 -
永久关闭SELinux
当我们自己编写native serivce时,如果打开SELinux,往往需要耗费大量无意义的时间在添加权限上面。所以在对系统安全等级要求不是非常严苛的情况下我们可以关闭SELinux。补丁如下:diff --git a/system/core/init/init.cpp b/system/core/init/init.cppindex be1c232..adda5d8 100755--- a/system/core/init/init.cpp+++ b/system/core/init/init.原创 2020-12-13 19:09:20 · 595 阅读 · 1 评论 -
过滤setting wifi列表中特定ssid的wifi
有时我们只希望用户搜到某个前缀的wifi或者不希望用户搜到包含某个特定字符的wifi,这个时候可以在扫描显示wifi列表的时候过滤某些特定的为wifi。具体示例如下:diff --git a/packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.java b/packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.javaindex 8eb1759..原创 2020-12-13 19:05:13 · 508 阅读 · 0 评论 -
低电量提示和关机方案
平台:exynos 8895Android 7.0Android本身自带低电量操作的,可以按需修改,默认描述如下:1.BatteryWarningLevel=15%,低于15%电池图标会变成红色;现在手机一般设置为20%2.criticalBatteryWarningLevel=5%,低于5%系统会在状态栏弹出低电量警告提示3.关机电量0%,电量为0%且没有充电,系统会自动关机具体修改位置如下:diff --git a/frameworks/base/core/res/res/values/原创 2020-12-13 18:59:16 · 1719 阅读 · 0 评论 -
user模式下允许使用root和adb调试
平台:exynos:8895Android 7.0在某些情况下,我们需要在User版本下调试。但是User版本就算可以通过开发者模式打开adb,也只能使用普通用户登陆。这对调试来说是很麻烦的,所以我们可以允许User模式以root使用adb。具体不定如下:diff --git a/build/core/main.mk b/build/core/main.mkindex a27d4a8..1f0412e 100644--- a/build/core/main.mk+++ b/build/cor原创 2020-12-13 18:45:42 · 605 阅读 · 0 评论 -
关闭系统默认铃声
Platform:RK3399OS:Android 7.1.21.需求需要关闭(修改)系统默认铃声。2.相关文件及目录build/target/product/core_base.mk b/target/product/core_base.mk PRODUCT_PROPERTY_OVERRIDES := \ ro.config.notification_sound=OnTheHunt.ogg \ //提示铃声 ro.config.alarm_alert=Alarm_Cl原创 2020-07-06 10:39:07 · 595 阅读 · 0 评论 -
高温导致的设备重启
platfom:RK3399OS:Android 7.1.2现象设备在密闭未开空调的一个实验室做满负荷老化实验,发现十几分钟时候会出现关机重现现象.分析步骤一:首先分析认为有非常大的可能性是CUP过温自我保护重启了.RK808:查看RK808的数据手册发现:发现RK808的默认温度阈值是85度CPU/GPUrk3399.dtsi: soc_thermal: soc-thermal { polling-delay-passive =原创 2020-06-25 20:37:31 · 1260 阅读 · 0 评论 -
App预装及示例
platform:RK3399OS:7.1.2参考:1.http://ddrv.cn/a/905012.https://blog.csdn.net/zhaoyufei133/article/details/939067523.https://notes.z-dd.net/2020/02/26/RK3399%E9%A2%84%E7%BD%AEAPK%E5%8F%8A%E9%97%AE%E9%A2%98/RK的SDK预装app有两种方式:一种是Androd系统标准的实现方式,一种是RK自己实现的v原创 2020-06-25 20:30:32 · 965 阅读 · 0 评论 -
允许安装第三方应用
Android 8.0以下临时允许设置adb shell settings put secure install_non_market_apps 1查看adb shell settings get secure install_non_market_apps可以获取状态0为关闭,1为开启永久打开diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/va原创 2020-06-04 07:34:08 · 1669 阅读 · 0 评论 -
APK保活系统及应用方案
概述在某些场景下,我们想让某些app能一直在前台或者后台运行,而不被Android系统杀死.这时就涉及到了应用保活.应用保活可以从两个方向来实现,一个是应用层,一个是系统层.Android系统进程优先级应用保活从本质上来讲就是提高进程的优先级.详细可以参考以下博客:https://www.jianshu.com/p/4ee14aa23f07下面是Android定义的ADJ值.应用保活对用开发app的公司来说,由于没有系统源码,所以只能从app层面来考虑保活;但是对于rom定制厂商来说就可以从原创 2020-05-23 15:07:52 · 677 阅读 · 0 评论 -
关闭休眠仅熄屏
Platform:RK3399OS:Android:7.1.2参考:1. https://ask.csdn.net/questions/6736942. https://www.optbbs.com/thread-4216693-1-1.html概述产品需求:在熄屏状态下也可以随时响应语音唤醒.而且主要功能可以使用.由于早期设计的时候全部采用了低功耗硬件设计,所以在真实修休眠下许多功能都不可用.所以只有临时采用只熄屏不休眠的方式实现,后续迭代再修改硬件电路设计.关闭休眠关闭系统休眠有两步操原创 2020-05-22 18:36:20 · 1164 阅读 · 0 评论 -
现代Linux操作系统的栈溢出
译者注:本文源自《[细节剖析]X Windows中一个22年的漏洞》中提到的一篇文章,即如何溢出有保护机制的linux,路径如下:http://www.exploit-db.com/papers/24085/,本着学习的目的,在学习过程中,翻译出来分享给大家。另外为了区分Stack和Heap,在本人的所有文章中“Stack”与“栈”对等“Heap”与“堆”对等因为曾经被人坑惨了,有些文章中把“Stack”翻译成“堆栈”,搞得我着实的晕了好久。前提条件:对C语言和x86_64有基本的了解。1.转载 2020-05-22 11:33:50 · 300 阅读 · 0 评论 -
关机充电满电图标
platform:RK3399OS:Android 7.1概述RK已经实现了关机充电图标动画显示的功能,在实际的使用过程中有一个问题:就算充满电了,充电动画图标仍然在,而没有一个满电图标显示.满电图标显示1.增加满电图标,目录如下tools/resource_tool/resources/images/battery_fully.bmp2.修改配置文件tools/resource_tool/resources/images/battery_fully.bmp #reserve. ba原创 2020-05-21 13:27:37 · 835 阅读 · 0 评论 -
高可靠OTA升级
platform:RK3399OS:Android 7.1概述 OTA(空中下载技术)是一项在线升级技术,它允许终端设备通过网络从服务器下载系统固件并进行升级。高可靠OTA是RK在OTA的基础上增加了两个备份分区实现的一套高可靠的OTA升级机制,其高可靠表现在由于意外情况(断电、固件问题、机器故障)导致升级失败的情况下,仍然可以使用备份分区开机,再次进行升级,避免了升级变砖的情况。 先简要介绍普通OTA,然后介绍高可靠OTA普通OTA步骤1.配置版本号及更新服务器device/r原创 2020-05-21 13:09:42 · 1125 阅读 · 0 评论 -
recovery常见配置修改
platform:RK3399OS:Android 7.1概述简要介绍三点:字符相关修改方向修改固件升级动画修改配置修改修改中英文diff --git a/recovery.cpp b/recovery.cppindex 10743c9..a9f41c5 100644--- a/recovery.cpp+++ b/recovery.cpp@@ -137,7 +137,7 @@ static const int BATTERY_WITH_CHARGER_OK_PERCENTAG原创 2020-05-18 18:30:24 · 1512 阅读 · 0 评论 -
高可靠OTA运行校验错误
platform:RK3399OS:Android 7.1现象描述使用RK的高可靠OTA方案.一直编译和测试没有问题.今天转User版本的OTA固件发现编译失败.并报错:boot or recovery image sha mismatch网上搜索的解决方案是关闭校验,但是这样并不安全.所以自己分析.分析步骤步骤1:验证是否是环境问题.之前都是编译的Userdebug版本,第一次编译User版本,怀疑是环境问题.执行make cleanmake distclean清理环境之后原创 2020-05-11 19:06:29 · 344 阅读 · 0 评论 -
关机充电拨适配器自动开机
platform:RK3399OS:Android 7.1现象描述关机充电需求如下:1.插上充电器,一直充电; a.充电时按开机键,开机 b.如果拔掉充电器(断电),保持关机;2.未插上充电器,按开机键; b.电量高于5%(&& 电压高于6.894V),开机 c.否则不开机但是关机充电拔掉适配器会开机,这显然是不符合需求的.分析步骤步骤1:确认是否有走关机逻辑抓log发现charger discon原创 2020-05-11 17:51:22 · 702 阅读 · 1 评论 -
APK信息查看
概述对于没有源码的apk,有时候我们需要知道apk的一些信息,这时候就需要一些方法.查看方式aapt在 SDK 的 build-tools 目录下,将 build-tools 目录添加到环境变量中,就可以直接使用 aapt 命令.查看apk的相关信息aapt dump badging tv_video/tv_video.apk部分信息:package: name='com.ktcp.tvvideo' versionCode='6700' versionName='4.7.0.2051' p原创 2020-05-11 16:10:50 · 1031 阅读 · 0 评论 -
固件UserDebug转User
概述Android固件在调试的时候一般会使用userdebug版本,这样可以直接root,而且有非常多的log信息帮助调试.但是正式发布的时候就需要使用User版本.User版本关闭调试log信息.User版本除了必要的打印信息和报错信息外,应该关掉多余的调试信息.menuconfig中关掉相应的调试配置.驱动文件中关闭自定义的调试宏对于使用printk打印的信息根据实际情况注释掉.关闭adbadb及root配置的属性如下表所示:当lunch选择user版本时,ro.secure一原创 2020-05-11 12:14:18 · 562 阅读 · 0 评论 -
Android按键上报
参考:1.https://ask.csdn.net/questions/767179概述按键信息上报是input系统里面一个最基本,最简单,也是最常用的功能.一般直接配置dts即可,但是也有可能有定制需求,比如自定义按键和上报特殊按键.新增按键内核已经实现了通用按键驱动,优先建议使用. gpio_keys: gpio_keys { compatible = "gpio-keys"; pinctrl-names =原创 2020-05-11 09:35:50 · 544 阅读 · 0 评论 -
SN及Mac地址烧录
platform:RK3399OS:Android 7.1参考:1.比特人生 https://blog.csdn.net/ielife/article/details/867193132.KrisFei https://blog.csdn.net/kris_fei/article/details/79447343?ops_request_misc=%257B%2522request%255...原创 2020-05-07 15:02:58 · 7772 阅读 · 3 评论 -
RK3399充电管理
platform:RK3399OS:Android 7.11. 概述本文档简要介绍基于RK3399实现充电管理相关部分,主要包括Typec充电和uboot关机充电两大部分。主要实现普通充电、PD充电、关机充电、电量上报、过放及低电保护等功能。2. Typec正常充电typec充电需要fusb302+bq25700+cw2015配合使用才可以正常使用各项功能.驱动已经调试和验证过,所以调...原创 2020-05-06 18:07:55 · 5938 阅读 · 4 评论 -
[Camera]摄像头镜像
platform:RK3399OS:Android 7.1参考:1.石先 https://www.jianshu.com/p/7d88ec1347b62.KrisFei https://blog.csdn.net/kris_fei/article/details/1030245053.KrisFei https://blog.csdn.net/kris_fei/article/detai...原创 2020-05-06 11:36:54 · 3927 阅读 · 0 评论 -
Android开机动画及黑屏
platform:RK3399OS:Android 7.11.Android各阶段动画Android动画主要分为关机充电动画和开机动画;开机动画又分为三个阶段:uboot阶段动画、kernel阶段动画、Android阶段动画。1.1uboot开机动画Uboot阶段由于大部分环境和驱动没有准备好,所有此阶段显示直接采用的framebuffer;而且严格来说只是图片,并不是动画。要在ub...原创 2020-05-05 18:07:51 · 1301 阅读 · 0 评论 -
[Audio]基础声电-THD分析
1. 音频测试音频系统是一个复杂的系统,需要从产品定位,电路设计,结构设计,物料选型,喇叭选型,音腔设计等多方面综合考虑。初步设计完成之后,还需要使用专业设备或者到专业的音频实验室进行音频相关的测试:基础声电测试;声质量测试;声功率测试;产品振动测试以及噪声测试等。根据产品定位以及测试结果反复调整软硬件设计及参数,最终达到一个相对满意的声学效果。这是一个复杂而漫长的过程。1.1 基础电声测...原创 2020-05-02 13:42:59 · 10183 阅读 · 0 评论 -
Android内置系统apk问题
平台:Rockchipandroid版本: 7.1个人博客:https://www.letcos.top/1.问题描述 一款产品需要内置定制的launcher,使用了一些第三方的sdk。按系统app的内置方法,增加share system uid获得系统权限。但是在使用的过程中大概率会出现系统应用setting(设置)闪退。并伴随录音服务挂掉,密钥链等问题(开始以为是独立的 bug,...原创 2020-01-27 16:50:56 · 1655 阅读 · 6 评论