![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android系统
文章平均质量分 84
峥嵘life
目前职业:android开发工程师
2016年江西农业大学计算机信息工程学院毕业
展开
-
Android EDLA项目 5G热点打开失败分析
Android 13 外销国外的产品都要过EDLA认证了!EDLA认证的项目基本都是默认集成GMS Google mainline 和开启KPI;所以系统会自带了谷歌的很多apk和apex等数据,会造成系统某些代码修改没有作用。//Java 代码--Connectivity//Java 代码-- Wifi虽然部分模块的代码无法修改,但是还是要进行分析验证,谷歌集成的代码和原生代码是差不多的,主要差别就是res的默认属性可能有差别,所以系统代码逻辑还有要看的,这样才能更准确的定位问题。原创 2024-07-18 19:55:50 · 934 阅读 · 0 评论 -
Android13 应用代码中修改热点默认密码
Android 有些情况会有修改热点信息的需求,比如修改热点默认名称、默认密码登信息。但是Android13 或者更新的代码,外销国外的设备都要通过EDLA验证了,集成谷歌那套代码,无法修改 packages\modules\Wifi 的代码,所以无法修改热点的默认信息?其实办法肯定还是有的,只要在系统第一次启动时通过WifiMannager接口获取wifi信息,再修改一次热点的信息即可。如果有需求都可以看看下面的实现代码。修改热点其他默认信息也可以同样参考。原创 2024-07-18 19:41:48 · 778 阅读 · 0 评论 -
Android13 串口控制是能wifi adb实现
Android 系统开发初期调试,一般有串口功能调试,但是可能没有adb功能。adb功能比串口调试方便一些,比如可以直接传输文件,定向打印日志到电脑,投屏,安装电脑中的apk等功能。目前网上是没有详细分析的文章的。原创 2024-06-28 16:41:03 · 1111 阅读 · 0 评论 -
Android 使用adb操作WiFi连接扫描等相关指令
Android系统调试是,如果没有系统原生设置应用又需要调试验证WiFi功能时,可以使用一些指令来验证调试WiFi相关功能,最常用的就是 svc wifi enable/disable,或者使用iv dev来验证,但对于AP功能就没办法验证了,并且可调试功能比较少,其实Android系统自带有组很强大的shell指令集,这里记录下平时使用的cmd wifi 相关指令。系统初期开发或者定位一下wifi、热点问题会比较有用。原创 2024-06-28 15:11:56 · 1660 阅读 · 0 评论 -
Android 蓝牙配对Settings应用里面的简要流程记录
本文只是简单分析一下原生设置Settings中蓝牙配对的大致流程,具体细节有需要的自行研究。另外我这里的开发平台是AML平台的,所以会有Settings和TvSettings,其实这两个应用都会监听到蓝牙配请求,都会进行处理,这也是为啥会出现两次蓝牙配对弹框确认的情况。//监听蓝牙配对广播//;蓝牙配对广播@Override//设置蓝牙配对//关闭广播传递,防止原生设置监听到配对这里是监听到蓝牙配对后,后台直接确认配对,不用点击系统Settings的配对对话框就会确认配对。原创 2024-06-15 17:46:00 · 886 阅读 · 0 评论 -
Android13 蓝牙协议属性配置详解
Android系统中蓝牙协议是否使能一般是通过一个属性值,如果这个属性值设置为false,会导致这个协议的服务未启动,也就是说这个蓝牙功能会没有作用。比如 Android 蓝牙传输文件协议是opp,如果opp未使能,那么整个系统是不支持蓝牙文件传输的。在Android13之前的版本,我们可以通过 config.xml 中的 profile_supported_a2dp 属性控制蓝牙的某个协议是否使能。这些属性是res属性,只能在资源文件中修改,还不方便查询。原创 2024-06-15 15:22:36 · 1453 阅读 · 0 评论 -
Android 系统设置拉起后台非全屏应用不隐藏前台应用
Android 原生流程中,如果切换后台应用界面,会先执行返回Home界面,再切换到新的应用界面;验证方法:手机打开一个应用1界面,底部往上滑,切换一个之前的后台应用2到前台,左右滑动退出应用2,发现回到的是Home界面而不是应用1界面。原生在startActivityFromRecent时,先回到Home了。但是Android 大屏设备,一般是需要显示多个应用,界面部分应用都是悬浮Activity,理想效果是:不返回Home界面,直接拉起后台应用。下面是实现的代码,其实就是在关键方法返回就行。原创 2024-05-19 12:25:30 · 371 阅读 · 0 评论 -
Android14 普通应用registerReceiver注册广播报错One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be
Android14 普通应用注册广播registerReceiver会报错,提示需要添加一个参数RECEIVER_EXPORTED 或者 RECEIVER_NOT_EXPORTED;系统framework或者系统应用是不会报这个错误的!这个问题比较好解决,加一个参数就行,但是网上目前没有人对这个问题今天深入分析。本文对registerReceiver报错进行分析,具体到哪个类哪行代码报错,分析了解后对于系统其他相关报错能有个认识,或者有分析思路。原创 2024-04-30 14:54:19 · 3174 阅读 · 8 评论 -
Android13 源码环境编译app源码报错AndroidManifest.xml.fixed分析解决总结
Android13 从Studio正常编译运行的app代码在源码中编译 有可能报错:AndroidManifest.xml.fixed …网上说法很多,有的说是添加android:appComponentFactory=“XXX” 和 tools:replace="XXX"就可以。Android·13 之前的方案使用上面的属性添加可能有效,这个修改主要针对包冲突问题(support和androidx ),原创 2024-04-30 09:21:33 · 1577 阅读 · 2 评论 -
Android13 设置固定热点ip地址192.168.43.1
Android 热点ip一般的系统都是随机生成的,地址一般是:192.168.XX.XX如果要设置成一个固定的ip地址,就需要适配系统代码。相关的适配代码主要都在 IpServer.java 里面。为啥要设置固定热点ip?一般是投屏软件需求,或者其他一些开机或者打开热点后被自动连接场景的需求。原创 2024-02-26 09:05:46 · 5997 阅读 · 2 评论 -
Android13 系统源码适配安装可卸载的三方apk应用
本文主要介绍 手机的三方应用比如游戏,微博等应用,在源码中如何默认配置到手机中的。Android手机中的系统应用是无法手动卸载的,但是这些三方应用安装后是可以手动卸载的。源码编译中配置系统应用是比较简单的,只要在apk文件并且再Android.mk或者Android.bp中进行配置即可。但是如果要默认配置三方应用确实有点麻烦,网上很多文章讲得都比乱,大部分只是贴了相关代码,基本没有介绍完整流程和分享解决配置过程还有一些编译报错。原创 2024-02-04 12:42:35 · 1760 阅读 · 0 评论 -
Android.mk和Android.bp的区别和转换详解
简单的说:Android.mk和Android.bp都是用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a等等作用。Android.mk就是一个GNU make语法的脚本文件。Android.bp文件是Android 7.0及更高版本中引入的一种构建脚本文件,是使用Starlark语法编写的,它是一种基于Python的轻量级脚本语言。他们的关系如下:ninja是一个编译框架,系统会根据相应的ninja格式的配置文件进行编译。原创 2024-01-19 18:37:40 · 2529 阅读 · 5 评论 -
Android系统目录priv-app 和app 详解
Android4.4增加了/system/priv-app/目录,那么它与/system/app/目录有什么差别?本文主要从定义,作用,具体效果等方面进行分析。有一些是网上没有介绍到的内容。如果只是知道 priv-app 目录比 app目录权限大一点,但是不了解具体区别的可以看看。(1)普通应用。只用到了普通权限,比如上网权限等等。(2)system/app 系统应用,用来可以限制无法手动卸载,对系统权限没有要求的情况,无法调用系统api。原创 2024-01-19 18:32:06 · 2635 阅读 · 0 评论 -
Android.bp详解+入门必备
Android.bp 就是为了用来替换 Android.mk 一个脚本语言文件。如果学习过Android.mk,在学习一下Android.bp应该是很easy的,如果不是很熟悉可以学习了解一下。Android.bp和Android.mk作用都是一样的,在系统源码中用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a作用。其中关键的就是模块类型定义和不同的属性定义。Android.bp文件用类似json的简洁声明来描述需要构建的模块。原创 2024-01-16 18:18:21 · 5607 阅读 · 2 评论 -
Android.mk详解+入门必备
网上有很多关于Android.mk详解的文章,但是感觉比较散,所以有必要写一篇更加完整一点的,更加容易入门一点的文章。Android.mk 博客介绍 :简单的说:Android.mk就是一个GNU make语法的脚本文件,用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a作用。其中关键的就是include类型和不同的属性定义。本文主要对编译 apk 的 Android.mk 文件进行举例和介绍,包含完整示例的展示以及重要属性的介绍。编码类型和关键字。原创 2024-01-16 18:07:45 · 2668 阅读 · 0 评论 -
Android 打开热点2.4G系统重启解决
Android 设备开机后第一次打开热点2.4G系统重启?以5G形式打开热点没有问题!这个问题咋回事呢?和底层驱动的人一起分析了一下,本文进行分享一下分析和解决过程。这种问题一般应用开发不会遇到,只有一些系统开发,或者系统新方案调试可能会遇到。查看了AndroidRuntime 和crash 日志,重启前没啥异常日志。这种情况一般是底层/驱动未完全适配导致。原创 2024-01-06 14:32:12 · 1551 阅读 · 2 评论 -
Android 某个应用缺少特殊权限导致系统一直重启解决
系统一些应用会使用到特殊权限,这时候要在系统配置一下否则系统会一直重启。出现该问题的时候,系统一直显示开机Log界面,无法正常进入Android系统界面。下面一起分析总结一下吧。本文不仅正文有学习价值,后续的延伸介绍内容也是有学习价值的。framework 定义的所有 权限都是有定义包含 protectionLevel 等级的,主要等级有:普通,运行时,权限,特殊。原创 2024-01-06 14:23:05 · 1760 阅读 · 0 评论 -
Android13 热点默认5G频道配置修改
Android开发中经常要设置默认热点,名称,热点密码,是否是5G频段。之前也有对默认名称和密码进行分析的文章,但是热点频道没怎么看,热点频段对传输性能还是比较重要的,有的平台默认就要5G,查看代码发现默认是2.4G热点。本文对 Android 默认热点5G频段配置 进行分析。wifi信息保存位置:热点信息保存位置:热点的信息文件包含了:热点名称,热点密码,热点频段和信道值等基本信息;wifi 的信息文件包含了:连接过的wifi名称,密码,MAC地址等信息。原创 2024-01-02 20:55:28 · 3551 阅读 · 1 评论 -
Android 实现热点开机后自动开启
Android 热点是有api设置永久开启,热点名称,热点密码等接口,但是“永久开启”实际上是不自动关闭,重启设备后热点并不会自动开启。Android Wifi实现开关状态记忆是基于Settings.GLOBAL.WIFI_ON属性,所以热点如果要实现状态记忆那么也是要设置一个Settings属性或者prop属性,系统启动后判断属性决定是否启动热点就可以实现热点状态记忆了。Android Wifi有自己的服务WifiService和服务实现WifiServiceImpl,原创 2023-12-21 20:33:00 · 3690 阅读 · 2 评论 -
Android13 Wifi启动流程分析
本文对Android13 wifi 开启流程进行梳理,有需要的可以看看。如果遇到wifi 打不开问题,可以依照这个流程进行分析,看看具体是哪个流程出现问题。如果后续需要分析比Android13 更新的代码可以对比参考,毕竟Android11的代码变动比较大。本文最后有流程总结,代码分析过程还有最大一个亮点,每个类的流程分析都标志了数字,避免读着读着就迷路了。最后还有wifi开关相关日志过程分析。原创 2023-12-21 20:16:09 · 2800 阅读 · 4 评论 -
Android 蓝牙相关广播介绍
本文主要介绍Android 蓝牙相关的广播,并非硬件相关的蓝牙广播信号,而是蓝牙app中的广播接收器onReceive 的蓝牙相关广播。最近刚好开发了一下蓝牙相关的功能,所以进行一些知识总结和介绍,本文应该是全网最面的接收Android广播介绍知识的文章。如果上面日志过程没怎么看的,那么日志总结可以看看。重要过程,日志里面主要包含connection状态,acl_connected,bond等信息。原创 2023-12-12 18:25:28 · 1757 阅读 · 1 评论 -
Android13 不能静态注册的几个广播
本文介绍一些广播相关的知识,主要是静态广播注册无效的介绍。其实从Android 8.0 就开始有这个问题的,只是本文的源码是基于Android13 分析的。原创 2023-12-12 18:23:53 · 1678 阅读 · 0 评论 -
从Android源码中生成系统签名文件
本文介绍如何从Android源码环境中生成签名文件。注意,需要源码环境哦,window环境是会报错的!原创 2023-12-09 17:58:20 · 1604 阅读 · 0 评论 -
Android 设置20点触摸
增加Android触摸点,一般是在商显的Android大屏上有一定的需求,在普通的Android设备基本不用。首先,Android系统默认最多支持16点触摸。如果要增加有效触摸点,需要更新对应的触摸框驱动ko文件;还要再framework中进行代码适配。关于触摸框点数增加的文章,网上也有不少,但是CSDN上基本都是要会员才能看,这里给大家介绍一下。原创 2023-12-06 15:57:47 · 599 阅读 · 0 评论 -
Android 蓝牙弹框接收传输的文件实现
Android 原生系统蓝牙接收是在通知栏显示和操作,但是部分定制设备比如大屏或者盒子设备是没有通知栏的。如果要接收蓝牙文件就要自己接收蓝牙广播进行弹框提示,大概包括:确认接收,显示接收进度,确认取消/完成接收等弹框和实现,具体修改就要适配系统的蓝牙应用。本文基于Android13 系统蓝牙应用Bluetooth文件传输Opp部分代码适配进行介绍。也许你工作中不一定有这个需求,但是安卓屏显开发大概率是有这个需求的,部分有兴趣的并且有系统源码编译运行条件的,可以尝试修改系统源码试试,原创 2023-12-06 15:16:11 · 1232 阅读 · 0 评论 -
Android 10-13鼠标右键返回功能适配
Android 原生代码代码中接入usb鼠标,点击右键,一般默认是没有反应的。如果要鼠标点击右键设置成返回功能,就要适配系统代码。一般Android板子调试初期没有触摸的情况,适配鼠标右键,是对操作使用是带来较大方便的。本文介绍不同版本的Android 鼠标右键返回功能适配。其实不管什么方案或者版本只需 getButtonState 在点击右键的情况返回的键值是 AMOTION_EVENT_BUTTON_BACK 就会执行返回功能。原创 2023-11-22 06:00:00 · 1478 阅读 · 0 评论 -
Android13分享热点设置安全性为wpa3
Android 网络加密类型WPA3,比WPA和WPA2 安全性强一下;有些客户强制要求支持WPA3,那么就需要系统进行一些适配了。Android手机上热点分享显示的安全性部分手机可以选择WPA3,比如红米12(Android12),一加Ace2(Android13);但是其他很多手机都没有选择加密类型,比如Nova6(Android12)、红米(Android10),谷歌Piex4(Android13)。以前只分析过Android11 ,这里发现Android13 有些区别,记录一下。/**原创 2023-11-11 15:55:34 · 4079 阅读 · 10 评论 -
Android13 安装谷歌GMS导致打开蓝牙失败解决方法
Android13 上安装谷歌GMS相关服务后,无法打开蓝牙,打开蓝牙马上异常导致自动关闭蓝牙。这个问题国内估计大部分开发者不会遇到,但是如果是面向国外用户需要安装谷歌相关服务可能会遇到。这个问题在Android13 几个不同芯片供应商方案都有遇到,说明这个问题在Android13 上是个共性问题,Android原生代码的问题。本文主要记录一下。查看蓝牙相关日志: BluetoothManagerService 、droid.bluetooth 、BluetoothBondStateMachine。原创 2023-11-05 07:00:00 · 1077 阅读 · 0 评论 -
Android13 实现有线网络和wifi共存
Android一些的定制设备,比如商显大屏或者Android盒子,一般是wifi或者有线网络。Android 系统Framework进行一定适配后,可以实现wifi和有线网络端口都打开的,进而在App端即可实现通过代码控制选择使用wifi或者有线网络进行网络请求。Android13 上代码有较大差别,这里也进行记录和介绍。原创 2023-10-21 07:00:00 · 3146 阅读 · 17 评论 -
Android11 实现有线网络和wifi共存
Android 系统Framework进行一定适配后,可以实现wifi和有线网络端口都打开的,进而在App端即可实现通过代码控制选择使用wifi或者有线网络进行网络请求。本文只介绍wifi和有线网络端口同时打开的实现,app代码请求特定网络另外文章介绍。Android 默认是只保留打开一个网络的,其他网络是关闭的;手机一般是wifi或者Sim卡;一些的定制设备,比如商显大屏或者Android盒子,一般是wifi或者有线网络(以太网)。原创 2023-10-18 20:29:36 · 3471 阅读 · 11 评论 -
Android 底层新增按键系统上层适配详解
在Android系统 上外界按键板或者在原有的按键新增个按键都是需要内核和系统层进行代码适配。原创 2023-10-11 20:12:46 · 976 阅读 · 0 评论 -
Android13 按键kl文件优先级详解
本文专门讲解一下Android 按键接收和处理作用的键值kl文件的选择过程,有需要的可以了解。本文具体逻辑和调试是使用Android13代码和系统。原创 2023-09-23 07:30:00 · 1238 阅读 · 0 评论 -
Android adb shell svc 知识详解
这个命令可以用来控制电源管理,wifi开关,数据开关(就是上网流量),注意需要root权限。有兴趣的可以一起学习一下。原创 2023-09-09 17:05:38 · 2175 阅读 · 2 评论 -
Android 13 网络 Adb相关流程深入分析研究
通过代码分析发现Android13 上对 网络adb 进行了限制!Android13原生代码要求:必现连接上某个wifi,才能进行adb ,并且切换wifi或者关闭wifi都是会停止adb。并且Android13 上 wifi adb 端口号每次是变化的,这个也是很不方便的!如果要做成Android11 或者之前一样,设备连接WiFi/有线网络后电脑可以直接进行adb连接,就要对系统代码进行适配修改。原创 2023-09-07 12:41:20 · 1382 阅读 · 1 评论 -
Android13 网络 Adb 默认开启
通过代码分析发现Android13 上对 网络adb 进行了限制!Android13原生代码要求:必现连接上某个wifi,才能进行adb ,并且切换wifi或者关闭wifi都是会停止adb。如果要做成Android11 或者之前一样,设备连接WiFi/有线网络后电脑可以直接进行adb连接,就要对系统代码进行适配修改。关键:1、mk 设置系统属性:persist.adb.tls_server.enable=12、写死端口号 55553、注释若干判断Wifi情况停止adb的代码。原创 2023-08-19 18:18:26 · 3749 阅读 · 0 评论 -
Android13 有线网开关研究
Android13 的api 提供了有线网开关 EthernetManager.setEthernetEnabled(boolean),Android9 如果要设置有线网开关,需要自己实现。但是没有提供查询开关状态的api!需要自己在开关后记录有线网状态。原创 2023-07-22 18:43:33 · 760 阅读 · 0 评论 -
Android13 原生设置应用蓝牙配对代码分析研究
系统内自己封装的一个应用,在Android11 上连接蓝牙耳机和蓝牙鼠标键盘没啥问题的,但是移植到Android13 的系统上经常遇到连接蓝牙鼠标键盘是吧的问题。发现原生Settings 连接未出现这种问题,所有应该是代码处理需要优化。车载项目蓝牙设置分析研究:Android 早期版本 Settings及BluetoothSettings流程分析:看了下类名称都不一样了,想直接用里面的关键字直接找到蓝牙调用的api好像也不太行!这里分享一下原生Settings 中蓝牙连接的相关代码分析。原创 2023-07-10 21:32:57 · 2641 阅读 · 2 评论 -
Android13 分析解决待机关机后wifi被关闭
在Android13 Amlogic 方案的TV设备,上出现了wifi开启的情况待机关机(input keyevent 26),开机后必现wifi 关闭状态,这里记录一下解决方法和思路。分析待机导致 wiif 关闭问题,这里主要靠的是看日志进行分析解决。找到 setWifiEnabled 节点之前的代码,进行分析找到关闭wifi 的代码位置,进行分析处理即可。实际情况,可能还有很多,需要具体问题。比如wifi 在开机的时候wifi模组加载异常也可能导致wifi 开启失败;原创 2023-05-31 21:01:32 · 2088 阅读 · 0 评论 -
Android13蓝牙 停用绝对音量功能
Android13 Tv大屏设备出现了连接蓝牙后,蓝牙音箱声音特别大,并且调节蓝牙声音后,断开连接,再重新连接蓝牙声音还是很大。从网上看到是可以打开设置里面的 “停用绝对音量功能” 进行规避这个问题。有时连接了蓝牙耳机,会出现声音突然变大的情况,这就是开启了绝对音量功能的原因。如果“停用绝对音量功能”开启,那么蓝牙耳机的音量和手机的音量就是相互独立的。如果“停用绝对音量功能”关闭,那么蓝牙耳机的音量和手机的音量就是相互同步的。原创 2023-05-30 21:33:23 · 2781 阅读 · 2 评论 -
Android13 xml配置文件乱码问题解决
Android13 中发现cat 某个的配置文件 是 乱码!这个跟普通的中文乱码问题不同,因为拉到电脑查看也是乱码!//乱码。。。需要root 权限才能正常cat 到上面的文件内容!其他几个setitngs 文件也是会乱码,pull到电脑中查看,也是乱码!Android 新版本中应该还有其他xml也是会乱码。原创 2023-05-12 17:34:18 · 1838 阅读 · 4 评论