- 博客(128)
- 资源 (23)
- 收藏
- 关注
原创 android google tts如何不联网内部预置多国语音包
本文介绍了一种为未通过GMS认证设备预置Google TTS语音包的方法。通过反编译Google TTS APK获取语音包下载链接,下载所需语音资源后重新打包,并通过系统签名将其集成到Android系统中。该方法解决了非认证设备无法下载多国语言包的问题,详细步骤包括APK反编译、语音包获取与预置、重新打包及系统签名等流程。最终实现未认证设备也能使用多国语言TTS功能,为开发者提供了一种替代解决方案。
2025-06-19 13:42:27
446
原创 android下拉栏添加媒体音量调节
本文介绍了在Android 9系统下拉通知栏中实现媒体音量调节功能的开发过程。主要内容包括: 添加了新的布局文件quick_settings_media_volume_dialog.xml,包含音量图标和滑动条控件; 设计了媒体音量图标ic_media_stream.xml; 在QSPanel.java中通过AudioManager获取当前媒体音量值,并实现音量调节逻辑。该功能参考了系统亮度调节的实现方式,通过SeekBar控件和广播接收器来同步系统媒体音量状态。
2025-06-17 14:20:11
265
原创 android通过adb push apk放置目录/sdcard/Download/下无法安装
摘要:研究发现Android系统通过adb push将APK放置到/sdcard/Download目录后无法直接安装,是因系统设计需要验证APK来源权限。通过chrome下载的APK因来源明确可安装,而adb push的APK来源为shell进程,未申请安装权限会被拦截。解决方案有两种:1)修改系统框架不拦截来源不明的APK安装;2)强制允许未知来源安装。建议避免将非下载来源的APK存放在Download目录。
2025-06-16 15:46:28
701
原创 android设计——功能临时开启与永久管控
本文设计并实现了一种基于Android平台的功能管控框架,支持永久和临时开启功能。通过SharedPreferences持久化存储默认状态,确保设备重启后状态恢复。框架使用BroadcastReceiver监听广播,解析并校验参数,根据默认状态和接收到的参数执行相应逻辑。临时任务通过CountDownTimer管理,设备重启或掉电后恢复默认状态,临时任务取消。框架支持在功能处于临时开启状态时刷新计时时间,并在收到永久开启/关闭请求时直接切换状态。
2025-05-23 10:20:04
496
原创 android双屏之副屏待机显示图片
本文介绍了在基于芯发8766芯片已实现底层双屏适配的基础上,通过改造Android Launcher的上层部分,实现在开机后副屏显示待机图片的功能。具体实现包括:1)在Launcher3的布局文件中添加ImageView用于显示图片;2)准备一张符合副屏分辨率的图片;3)新增ImagePresentation类管理副屏图片,支持替换图片功能;4)在Launcher.java中实现开机后副屏显示待机图片的逻辑。通过以上步骤,成功实现了副屏在开机后显示待机图片的功能,并支持动态替换图片。
2025-05-19 11:33:41
419
原创 android为第三方提供部分系统接口
摘要:本文对系统模块进行改造,提供广播等形式的接口对外提供无法直接调用的系统级别接口,实现部分功能的集合。如果是广播形式,需要后台允许,避免被系统拦截。不定期更新。
2025-03-05 14:36:27
647
原创 android launcher拖动图标释放错位
由于为了设备流畅把所有动画效果设置为0.5,不设置为0是因为锁屏在开机时会有闪黑屏的现象。在此背景下,测试发现在拖动桌面图标时,在图标动画过程中错位时释放图标,则图标会留在错位的位置,不会自动对齐。原因就是动画导致的,追踪动画的代码非常困难,只能通过各种anima关键词添加log,找到触发的位置进行逻辑修改。标志位FeatureFlags.REMOVE_DRAWER控制,默认true。最终发现是拖动时会有上下振动的动画效果,去掉即可。
2025-02-12 10:42:13
494
原创 android 安装第三方apk自动赋予运行时权限
摘要:行业机使用场景点击运行时权限很麻烦,而随着android的演进,对于权限的管控越发严格。故本文通过对系统的修改实现第三方app在运行时直接获取全部权限。通过属性ro.perms.force_grant控制功能开关。
2025-02-12 10:00:49
481
1
原创 GMS认证相关问题汇总
解决方案:此项是google issue: https://android-review.googlesource.com/c/platform/prebuilts/sdk/+/3035932。解决方案:chmod +x prebuilts/module_sdk/art/go/current/host-exports/x86_64/bin/*1、检查[ro.build.version.security_patch]和[ro.vendor.build.security_patch]值是否一致。
2025-02-11 16:08:15
1481
原创 android裁剪系统app
摘要:行业设备不需要过多的原生app,同时为了使内存得到合理的使用,因为需要裁剪掉部分系统app和组件。本文通过对于makefile的改造,将需要删除的app归类为一类TARGET,在编译全版本时过滤掉,实现裁剪的效果。注意,我们将TARGET_REMOVE_PACKAGES放在PRODUCT_PACKAGES之后,是因为删除后续添加的操作,在开发者把控范围之内。完成后,我们就可以在项目makefile中,通过TARGET_REMOVE_PACKAGES添加需要删除的模块名。
2025-02-10 10:41:06
354
原创 android 默认开启位置信息中WLAN扫描和蓝牙扫描
默认开启位置信息中WLAN扫描和蓝牙扫描有助于在Wi-Fi或者蓝牙关闭状态下,app或者services同样可以扫描Wi-Fi与蓝牙从而改善位置信息的精准度。
2025-02-10 10:06:09
443
原创 android动态设置是否允许应用卸载
通过广播设置全局参数控制应用是否允许卸载,全局参数在Launcher和PackageInstaller两个模块中使用到。此功能可用于MDM后台控制是否允许设备卸载应用。
2025-02-08 16:57:51
333
原创 android framework原生功能配置改动
这篇blog会不定期更新关于framework层比较小的改动,多是基于已有的android原生代码配置。
2025-02-08 15:40:47
258
原创 android设置添加设备QR码信息
摘要:客户衍生需求,通过扫QR码快速获取设备基础信息,并且基于POS SDK进行打印。2. preference布局3. 实现QR码的生成使用的是google公开的com.google.zxing
2025-02-08 15:16:41
958
原创 android隐藏虚拟按键recents button
通过android sdk工具monitor定位recents button id并全局搜索SystemUI模块,找到定义位置,然后根据逻辑找到相关功能的方法进行逻辑修改。
2025-02-08 14:41:40
312
原创 android user版本默认usb模式为充电模式
默认为充电模式如果按照同样的方式修改后,虽然插入usb后确实不会弹出mtp,但是在设置中-连接的设备将无法显示usb切换选项。本文通过mtpservice的角度,将默认usb模式设置为充电时可以在设置中正常显示usb切换菜单。一般客户会需要user和debug版本的状态保持一致,即同时为mtp或者同时为充电(none)。android插入usb时会切换至默认设置的模式,debug版本为adb,user版本为mtp。如果没有实际进入存储模式,则不进入mtp模式。默认为mtp模式网上资源很多,不作赘述。
2024-11-29 11:19:46
579
原创 android通过广播设置默认启动器
-- packages/apps/PermissionController/AndroidManifest.xml (版本 1951)+++ packages/apps/PermissionController/AndroidManifest.xml (版本 1965)后台允许广播收发权限可以自行定位代码,此处仅做记录。
2024-11-18 11:12:40
516
2
原创 android 10 后台启动activity
Android 10(API 级别 29)及更高版本会限制应用何时可以启动 activity 背景。这些限制有助于最大限度地减少对用户的干扰, 让用户能够更好地控制其屏幕上显示的内容。本文以此为出发点,基于展锐平台对系统代码进行改造,通过白名单的方式允许部分应用可以从后台启动activity。
2024-10-28 10:38:57
599
原创 android广播实现PIN码设置
广播action:android.intent.action.LOCKDEVICEboolean extra: lock (true:锁机/false:解锁)String extra: password (6位数字密码,后续代码会进行合法性检测)
2024-10-10 13:55:19
669
原创 android mtk camera修改default picture size & video size
示例中为720x1280,对应的比例为16:9,此时获取模组支持的size后,会选取16:9中最大的值为默认值,博主的设备选择的是2M(16:9) 1920x1088的,这样打开相机时,预览全屏。出于用户体验,全面预览比较合适,但是客户的使用场景需要默认最大,故产生此需求,修改patch如下。但是实际最大为5M(4:3) 2560x1920,选择此尺寸,预览并不会全屏,上下会有黑条。MTK的Camera app会根据屏幕尺寸适配最合适的拍照和录像尺寸。
2024-05-27 11:37:05
819
原创 android通过广播打印ram使用信息
在内存非常吃紧的情况下,android设备会开始kill部分非系统进程甚至系统进程来保证基本的系统运行。在这种情况下如何获取设备过去某段时间的ram使用情况至关重要。我们可以通过此途径,设计一套通过广播打印内存信息的方式以应对各种调试情况,此文仅将内存信息通过log的形式后台打印获取。1.发送的广播需要在BroadcastQueue.java特别处理,避免被系统拦截。3.RamInfo参考开发者模式中的方式获取过去某段时间的内存使用情况。通过开发者模式中的“内存”可以完美得知设备内存使用信息。
2024-02-20 10:18:14
461
原创 Android状态栏/通知栏图标白底问题
从android L版本开始,为了统一图标样式,会将通知栏、状态栏等显示图标处统一为白底或黑底,以促使开发人员规范图标设计。从现象看,状态栏会显示一个白底的方框;下拉通知栏展开时的图标为白底方框加圆框,不展开时为黑底方框。
2024-02-01 13:49:23
1895
1
原创 android通过广播打印RAM信息
int型参数index:0 - 3h, 1 - 6h, 2 - 12h, 3 - 24h。广播:com.android.settings.action.RAM_INFO。代表过去时间app使用ram情况(平均/最大占用)通过广播打印ram相关log。
2023-12-04 11:23:10
353
原创 android高版本适配使用Tools.java
注意:请更新对应平台的api和sepolicy,笔者使用展锐T606 android 13平台,对应修改如下。
2023-12-04 09:59:53
334
原创 android 11安装apk自动获取权限
为获取除android.permission.MANAGE_EXTERNAL_STORAGE外的所有权限。为了解决android.permission.MANAGE_EXTERNAL_STORAGE,需要额外添加enableManageExternalStorage(packageName, resAppId);由于android 11以上版本对于读写权限的进一步限制,安装的apk获取权限的流程又加了一步,对于客户来说多半步也算复杂,根据之前的经验,在安装流程后打开全部权限即可。
2023-11-16 14:45:54
2181
原创 android 禁止拖动桌面时钟小组件
本文将介绍一种禁止拖动桌面时钟小组件的方案。首先,通过添加trace log追踪至拖动的唯一入口;其次,获取拖动对象的详细信息并区分是否是对应的小组件;最后,禁止进入拖动流程。
2023-09-21 15:24:18
430
原创 android 默认开启谷歌定位精准度
本文主要提供一种默认开启谷歌定位精准度开关的方案。通过调试时打开/关闭开关对比SettingsProvider的数据变化,在开机收到ACTION_BOOT_COMPLETED广播后,主动修改并填充数据,实现默认打开的需求。
2023-09-19 11:19:36
1647
原创 android 定时重启设备
本文主要介绍一种定时重启设备的方案,目的是对于低内存设备,防止其由于长时间不关机且应用消耗过多RAM导致卡顿甚至无法开机的现象。基本方案是通过AlarmManager设置定时闹钟唤醒系统并且判断是否符合重启条件,从而进行弹框提醒和倒计时重启。
2023-07-18 16:37:10
1242
原创 android 禁止状态栏下拉
认证为了防止误操作与客户霸屏应用需求产生了此需求。禁止状态栏下拉从UI的角度进行分析,即难又容易。难的是android的SystemUI设计层层嵌套,即使使用工具进行分层分析,也需要耐心;容易很好理解,只要是UI界面的代码,总是能修改的。不同的android版本,不同的芯片厂商,对于SystemUi的改造大相径庭,从UI变化的角度切入很容易破题。
2023-03-13 14:14:50
1292
原创 ubuntu16.04LTS安装kdesvn
摘要:本文主要介绍了ubuntu16.04LTS安装kdesvn1.6.0版本的过程。由于编译环境的更新,ubuntu 14.04已经无法继续编译android 12的系统,在更新至16.04后,svn这个常用的工具自然也需要重新安装,但是16.04的应用商店只有rapidsvn,没有kdesvn,搜索许多博客也并没有完整的安装教程,此文章由此而来。...
2022-06-07 13:51:00
763
原创 android系统侧修改控件焦点属性
问题:客户外包开发的apk团队解散了,使用场景只使用实体按键,通过Enter进入apk后,会自动将焦点锁定在返回键上,导致操作不便捷,操作快会直接退出apk。要求强制不要将焦点自动锁定至返回键。按键焦点的详解可以参考:Android强行进阶—按键事件&焦点事件攻略根据抓log排查,找到一个必经之路,直接上patch:Index: frameworks/base/core/java/android/view/View.java================================
2021-08-13 14:35:12
319
4
原创 android 9 申请动态权限android.permission.WRITE_EXTERNAL_STORAGE 允许后应用闪退
问题描述:如题,在调试android 9 高通msm8953平台时,客户反馈应用在允许Manifest.permission.WRITE_EXTERNAL_STORAGE权限后,应用闪退。从log分析是07-22 09:56:02.331 I/ActivityManager( 1658): Killing 9824:com.xxx.xxx/u0a123 (adj 100): permission grant or revoke changed gids系统认为gids变了就要杀掉应用参考:Andro
2021-08-03 15:01:56
3038
原创 android sd卡权限
把android P上被谷歌架空的media write权限补回来,解决外置存储卡复制、移动等操作,提示需要root权限的问题。frameworks/base/data/etc/platform.xml <permission name="android.permission.WRITE_MEDIA_STORAGE" > <group gid="sdcard_r" /> <group gid="sdcard_rw" />
2021-06-07 11:50:52
647
1
原创 Java与模式学习笔记 —— 策略(Strategy)模式
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。...
2021-05-11 11:33:51
292
原创 Java与模式学习笔记 —— 桥梁(Bridge)模式
将抽象化与实现化脱偶,使得二者可以独立地变化。桥梁模式的结构桥梁模式是对象的结构模式。如上图所示,系统含有两个等级结构:由抽象化角色和修正抽象化角色组成的抽象化等级结构。由实现化角色和两个具体实现化角色所组成的实现化等级结构。桥梁模式所涉及的角色有:抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。修正抽象(Refined Abstraction)化角色:扩展抽象化角色,改变和修正父类对抽象化的定义。实现化(Implementor)角色:这个角色
2021-05-06 14:16:52
475
2
SC60 LCD 屏幕旋转方向(固定)、像素密度修改_Solution_v02.docx
2019-11-08
How_to_get_GMS_apps_from_GAPPs_and_integrate_them_into_AOSP.pdf
2019-12-30
android_bluetooth_profiles_feature.txt
2020-06-30
kba-170829000612_8_how_to_pass_bqb_tests_with_pts.pdf
2020-10-16
presentation__changes_in_android_l
2017-08-31
跟我一起写Makefile
2017-08-31
80-p3580-1_a_cookie_for_android_build.pdf
2019-05-27
android multimedia framework overview
2017-08-31
android原生设置休眠添加永不休眠选项
2020-09-08
WifiHotpot.zip
2020-12-07
高通平台camera HAL3添加raw12数据流传输
2020-08-26
android P高通平台支持google nlp定位
2020-08-26
android 5.1全按键背光
2020-08-26
android 5.1静默安装、卸载patch
2020-08-26
android P静默安装、卸载patch
2020-08-26
Integrate_gapps_for_Android9.0_klein_20181219.pdf
2019-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人