- 博客(145)
- 资源 (19)
- 收藏
- 关注
原创 [P7885][Android13] 解决5G信号良好状态栏信号只有两格的问题
最近有一款预研设备使用的是展锐 P7885 的5G 智能模组;经过天线厂调试天线后,各项指标都达到了标准,正常待机的情况下信号是 -80 到 -90之间,理论上已经是满格信号了,但是,实际上设备显示只有一格或者两格信号。
2023-11-09 23:20:25 1024
原创 [QCM6125][Android10] 系统设置隐藏搜索栏以及右上角的搜索按钮
【代码】[QCM6125][Android10] 系统设置隐藏搜索栏以及右上角的搜索按钮。
2023-11-09 08:08:59 545
原创 [MT8766][Android12] user版本默认去除usb调试授权弹框
user版本默认连接电脑的时候,会弹出一个鉴权弹框,点击允许才能够使用adb操控设备;对于我们公司的大部分产品来说,都是默认允许adb调试的;
2023-11-09 00:36:58 875
原创 [MT8766][Android12] 系统设置隐藏休眠时间和锁屏选项
最近开发的一款智能盒子,没有屏幕显示;所以,系统默认设置成永不休眠以及默认不锁屏;但是,如果去系统设置中重新设置休眠时间或者更改锁屏方式,还是会触发设备的休眠跟锁屏;所以,干脆把系统设置中的休眠时间选项和锁屏设置选项隐藏掉。
2023-11-09 00:30:44 559
原创 [MT8766][Android12] 增加应用安装白名单或者黑名单
主要就是在应用安装的那个类里面拿不到上下文,所以,只能通过构造类的时候,从上一层拿到上下文之后,再传进来。拿到上下文之后就可以获取Setting数据库,读出黑白名单列表,再跟当前安装的包名做对比,判断当前应用是否安装。在项目开发的时候,经常有一些客户,要求系统安装应用的时候需要进行验签;也就是系统默认不允许任何应用安装,应用安装的时候,会读取系统目录下存放的公钥,然后拿着公钥去解析需要安装的应用,只有匹配上签名的应用才能正常安装。
2023-11-09 00:24:20 1023
原创 [MT8766][Android12] 取消WIFI热点超过10分钟没有连接自动关闭设定
之前有个需求要设备默认开启WIFI热点,默认开启usb共享网络;而热点在原生的设定里面有个超时机制,如果在限定时间内,没有任何设备连接共享出来的网络,则会自动关闭热点。但是,客户的需求是一直保持共享网络开启。所以,改大这个默认值也可以实现默认不关闭,但是,最大也就是int类型的最大值。这个在低版本是写在framework目录下;而在Android12中,则是放在了。热点超时时间是读取config文件中。
2023-11-09 00:03:14 794
原创 [MT8766][Android12] USB共享网络固定子网掩码跟网关并且默认开启USB共享网络
客户要求设备默认开启usb共享网络,并且网络共享给PC端时,PC端动态获取到的子网掩码、网关是固定不变的。默认开启usb共享网络。
2023-11-02 22:07:08 751 2
原创 [QCM6125][Android13] 默认允许使用usb权限
设备有usb打印机,调用UsbManager进行打印时,会弹框请求使用usb权限;客户要求能够自动授权usb权限,应用打开即可使用。
2023-10-17 22:56:25 1005 1
原创 [QCM6125][Android13] 解决应用调用静态广播无法接收到的问题
祖传的系统升级服务,还是用的静态广播注册,但是,在Android8.1之后,应用向静态注册的广播发送广播,系统是无法接收到的,要么就是改为动态注册广播,要么就是使用setComponent参数。但是呢,既不想去动祖传代码,又不想让应用做做多余的操作;所以,就只能动系统,去掉静态广播无法收到的限制。
2023-10-17 22:52:02 1212
原创 [QCM6125][Android13] 屏蔽Launcher3桌面的搜索栏
【代码】[QCM6125][Android13] 屏蔽Launcher3桌面的搜索栏。
2023-10-17 22:40:45 645
原创 [SDM450][Android9.0] 禁止第一次使用谷歌拼音输入法弹出申请使用联系人弹框
国内的固件需要内置谷歌拼音输入法,而刷完机后第一次使用谷歌拼音,都会弹出一个弹框申请使用联系人权限,即使默认给了运行时权限也还会弹出这个弹框。
2023-10-12 23:27:00 481
原创 [QCM6125][Android13] 默认关闭dm-verity以及OTA升级校验vbmeta和framework matrix失败问题
在user版本增加root权限之后,每次进行remount的时候,总会提示这时候,需要先关闭dm-verify,重启,再remount;整个过程过于复杂,于是决定关闭dm-verify。
2023-10-12 23:24:19 1671
原创 [QCM6125][Android13] 解决虚拟导航栏无法显示在底部的问题
最近在调试项目,屏幕默认是竖屏的,添加竖屏切换之后,发现虚拟导航栏一直固定在左边,即使在代码中强制显示在底部,仍然还是显示在左边。通过查阅资料得知,谷歌为了是方便横屏玩游戏等场景的时候不小心误触到特意设定的;都行,这里是用overlay的方式,所以选择在config.xml中修改。修改config参数为false或者在源码里面直接将。方法的返回值,现在已经强制显示在底部了。
2023-10-12 23:21:12 672 1
原创 [QCM6125][Android13] 解决framework引用第三方jar包编译不通过的问题
方法是判断文本是否包含大写字母,如果全部为小写字母则返回false,如果包含至少一个大写字母,则返回TRUE。,不然就抛出异常编译出错;模块厂商给的建议是找厂家重新适配安卓13的jar包,但是,像一些开源的jar包,不可能去做兼容,既然是编译规则引发的错误,那么就修改编译规则。从报错日志的最后一句话可以看出来,解包jar的类名为a,应该是混淆导致的,而编译规则要求必须为大写,一般编译规则都在。有个自己添加的服务需要引用第三方jar库支持,而在安卓13的编译规则里面,jar解包出来的类名都必须是。
2023-10-12 23:18:33 950
原创 [QCM6125][Android13] 大屏显示时任务栏以及虚拟按键靠右问题
在安卓12以上版本引入了Taskbar,在大屏显示的情况下用Taskbar代替NavigationBar;Taskbar的加载流程可以参考。属性来控制要不要显示Taskbar。
2023-10-12 23:13:33 868 1
原创 [MT8766][Android12] 修改WIFI热点默认名称、密码、IP地址以及默认开启热点
最近做了一款没有屏幕显示的智能盒子,要想操控这款设备就只能通过adb投屏,如果默认不允许有线连接,那么要怎么实现adb投屏呢?安卓是支持WIFI adb连接投屏的,只要盒子启动热点,然后用手机或者其他有屏幕的设备连接盒子的热点,这样就可以通过IP地址在有屏幕的设备操纵智能盒子。设备默认开启热点,固定热点的名称、密码以及IP地址,然后手机或者电脑,连接设备的热点,这样电脑跟设备就处于同一个局域网内,通过固定IP就能连接、操作设备。
2023-10-12 23:07:42 1667 6
原创 [MT8766][Android12] 使用谷歌LPA实现ESIM功能的流程
客户需要我们设备支持ESIM功能,5月份的时候在高通6125上面预研过ESIM功能,当时ESIM供应商是Links field,集成流程只是内置了ESIM厂商的apk,并且开启了feature以及默认给了一些权限,具体ESIM功能的实现都是在厂商的apk中,所以就没去深入研究ESIM功能。后面的esim是虚拟sim卡,psim是物理sim卡,ids的值分别是对应的卡槽,比如P8KR在SIM 1卡槽接了ESIM,这里就配成0,不过实际测试,不过怎么配置ids,都能使用ESIM。
2023-10-11 21:25:00 3748 1
原创 [QCM6125][Android13] 动态显示或隐藏电池选项
Android原生代码是默认支持电池功能的,所以原生设置与SystemUI也都是显示电池选项与图标的,而且并没有提供统一的属性或者接口去动态控制电池选项的显示与隐藏。这时候,就需要增加一个属性,通过属性判断当前产品是否需要显示电池选项。来控制电池的显示与隐藏。
2023-08-10 22:09:51 1049
原创 [QCM6125][Android13] 去除屏幕四边圆角
Android13默认在屏幕的四个角设置为圆角,对于我们这些直屏智能硬件设备圆角反而没有那么美观,所以,选择去掉四边圆角,显示为直角。
2023-08-10 00:04:32 873
原创 [QCM6125][Android13] user版本默认允许root
智能硬件设备,客户应用往往都是有系统签名的高权限应用,甚至有时候要求有root跟su;而我们内部为了调试方便,一般非金融产品也都会选择user版本允许adb root跟apk root。
2023-08-09 23:58:59 1122
原创 [QCM6125][Android13] 解决应用编译到priv-app目录导致无法开机问题
这个文件中,如果有多个应用,那么所有应用的权限都得添加;这样太过于繁琐,并且这种操作没有什么实质的意义。所以,我们选择关闭权限校验白名单,这样就不需要再去framework增加权限,直接编译到priv-app目录也能正常开机。设备如果是销往国外的话,一般都会要求在系统中内核GMS套件,而参考谷歌提供的Android.bp,最终会将谷歌套件编译到priv-app目录底下;这时候需要将应用AndroidManifest.xml中申请的权限添加到。
2023-08-09 23:49:32 733
原创 [QCM6125][Android13] 默认授予所有应用运行时权限
中声明,还需要在JAVA文件中进行动态申请权限。而对于我们这种智能硬件设备,客户应用几乎都是霸屏并且具有系统签名的高权限应用,这时候运行权限机制就显得有点多余;所以一般我们拿到一套新的代码,除了与支付相关或者一些认证相关,例如GMS认证等特殊设备,正常都是会默认授予应用运行时权限以及开发SELinux权限。Android6.0以上增加了运行时权限,应用要想使用例如相机、存储等权限,除了在。
2023-08-09 23:35:05 1154 2
原创 [QCM6125][Android13] 关闭救援模式
安装系统在未响应5分钟的时候,系统会自动进入救援模式,这时候需要通过音量键和电源键进行操作才能再次进入系统。对于无人值守的设备来说,救援模式是个很鸡肋的功能,所以,我们选择在系统中关闭救援模式。
2023-08-09 22:59:04 861
原创 [QCM6125][Android13] 解除java反射限制
之前Android10有解决过JAVA反射机制,但是,随着安卓版本的迭代,对于反射机制也控制得越来越严格,相比Android10,Android13解除JAVA反射机制,新增了几处修改。
2023-08-09 22:54:40 572
原创 [QCM6125][Android13] 修复PRODUCT_COPY_FILES无法拷贝so
在进行系统移植时,经常会把一些自己开发的c或者c++程序编译成so库,然后在系统服务中去调用这些库。所以在进行新代码开发时,会在device目录下将so库通过。在Android13中进行拷贝时,会报。
2023-08-09 22:48:58 2714 1
原创 [QCM6125][Android13] 默认关闭SELinux权限
正常智能硬件设备源码开发,到手的第一件事就是默认关闭SELinux权限,这样能够更加方便于调试功能。
2023-08-09 22:37:37 910 4
原创 [MSM8953][Android10] 屏蔽所有应用通知
最近有个客户提出个定制需求,要求禁止所有应用的下拉通知;于是,在framework中,对通知管理类进行拦截,禁止应用通知。这里读取通过Setting数据库来判断是否禁止通知。
2023-05-09 22:47:17 469
原创 [MSM8953][Android10]修改默认电量为100%
最近开发了一款设备是不带电池的,然后在OTA升级的时候,检测到电量过低于是弹框提示不允许进行OTA升级;所以需要将默认电量修改为100%。
2023-05-09 22:41:58 845 1
原创 [高通MSM8953][Android10]修改默认蓝牙名称
有个客户要求产品型号、蓝牙等名称都修改为客户公司的名称;属性来定义客户定制的型号,所以,将蓝牙型号改为读取。
2023-05-07 21:24:32 871
原创 [高通MSM8953][Android10]开机强制横屏以及第二帧动画横屏
设备硬件的LCD屏幕是竖屏的,而实际产品是横屏设备,于是需要将设备强制横屏显示。我这套代码只用了一款产品,所以我这里就直接写死横屏了,如果有多产品的,要做好横竖屏适配。通过上面的修改,动画跟系统都能正常横屏显示了,但是,在动画快结束即将进入桌面的时候,最后一帧动画会变得异常,既不是横屏,也不是竖屏。增加以下修改即可解决问题。
2023-05-07 21:05:09 947
原创 [高通MSM8953][Android10]user版本背光亮度无法调节
在开发时候遇到了我编译的固件无法调节背光,而驱动编译的固件可以调节;对比了两份代码的本地差异并没看出什么问题,唯一的差异就是我编译的是user版本,而驱动编译的是debug版本。为了验证猜想,我重新拉了一份代码编译debug版本,果然亮度调节就可以了。对比了两份config,慢慢筛选发现只要加多一个宏即可。
2023-05-07 20:53:06 595
原创 [高通SDM450][Android9.0]进入救援模式自动选择try again
Android系统无响应五分钟就会进入救援模式,而进入救援模式之后即使重新刷机仍然会一开机就进入救援模式,如果遇到设备没有power跟音量键,无法选择try again就会一直卡在救援模式界面。虽然救援模式能够关闭,但是,还是有时候会有客户反馈会莫名其妙进入救援模式;为了增加容错,于是在进入救援模式的时候,直接选择try again跳出救援模式。
2023-05-07 20:46:03 506
原创 [高通SDM450][Android9.0]将谷歌原生的testkey换成自己的releasekey
目录底下放了各个key,有关乎OTA的testkey、有影响应用系统签名的platformkey。在国际市场有很多政府类型的客户用的应用都是直接在Google play下载的,而且经常有客户反馈我们的设备无法下载安装应用,原因是设备已经root,而这些应用的检测机制之一就是会校验系统是否仍然使用Android原生的testkey,这时候就需要换掉key;直接用自己的key改为testkey也是可以的,我这里是增加了releasekey,然后通过修改编译脚本默认使用releasekey。
2023-05-07 20:38:42 499
原创 [高通SDM450][Android9.0]默认取消dm-verity以及解决OTA校验vbmeta失败问题
上面关闭dm-verify之后,终于可以直接执行remount了;但是,再打包输入正式固件的时候却发现OTA升级失败了,不管是全量包还是差分包都无法升级,通过cache目录下的日志可以看到报错。从上面的报错可以看到vbmeta跟framework matrix校验失败了,那么就干脆一点,OTA升级的时候,直接关闭校验。这时候,需要先关闭dm-verify,重启,再remount;整个过程过于复杂,于是决定关闭dm-verify。在user版本增加root权限之后,每次进行remount的时候,总会提示。
2023-05-07 20:26:16 2875
原创 [高通MSM8909][Android8.1]默认启用第三方输入法
Android原生系统默认的输入法只支持英语输入,而经常有客户要求内置其他语言的输入法,比如中文拼音、韩语、法语等等。为了维护固件的统一性,第三方输入法我一般不会编译到内核中,都是后续通过oem镜像或者静默安装内置的;将输入法安装进系统发现第三方输入法不会默认启用,需要到系统设置的输入法中进行启用。
2023-05-07 20:12:25 1218
原创 [高通MSM8953_64][Android10]解决制作差分包不生成system_manifest.xml的问题
解决制作差分包不生成system_manifest.xml的问题
2022-09-07 20:25:29 3009
原创 [高通SDM450][Android9.0]USB摄像头默认角度可动态配置
[高通SDM450][Android9.0]USB摄像头默认角度可动态配置
2022-09-07 19:54:02 894
原创 [高通SDM450][Android9.0]设备默认支持连接WPA3-SAE加密协议的WIFI
前段时间,有个医院的客户反馈我们的设备无法连接上他们医院路由器的WIFI,并且设备显示wifi已保存,但就是连接不上。而且,连接手机的热点却是能正常连接并且能够上网的。
2022-09-07 19:11:54 2833 3
自定义view之用Canvas画带动画的环形增长数字
2016-04-21
渐变圆环百分比
2016-04-21
渐变圆形数字
2016-04-20
环形增长数字
2016-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人