
Android Framework
文章平均质量分 90
Android Framework
帅得不敢出门
省略1万字
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android Framework用Activity作为原生Launcher3桌面
文章摘要: 本文介绍了原生Launcher3桌面应用的实现原理。通过分析AndroidManifest.xml文件,指出默认首页是Launcher.java,并展示了其作为主Activity的配置属性。文章重点解析了Launcher.java的布局结构,包括DragLayer、Workspace、Hotseat等核心组件的XML定义和功能说明。其中Workspace包含5个屏幕单元格,Hotseat作为快捷栏,PageIndicator用于页面指示,ScrimView提供背景遮罩效果。这些组件共同构成了An原创 2025-10-10 09:34:05 · 297 阅读 · 0 评论 -
Android电池库仑计计算、容量校准、电池曲线详解
Android设备充电过程主要分为三个阶段:预充电(低电流激活)、恒流充电(大电流快速充)和恒压充电(电流递减至满)。充电器类型包括标准SDP、专用DCP和混合CDP,系统需根据类型调整充电策略。库仑计用于精确测量电量,配合OCV电压表计算电池容量。温控采用Jeita策略,根据温度调节充放电参数,确保安全。电池容量计算通过安时积分法和开路电压法实现,并具备自学习功能以校准老化误差。充电管理还包括预充电保护、电量显示校准等机制,通过硬件检测和软件算法共同保障充电安全与效率。原创 2025-10-10 09:08:55 · 517 阅读 · 0 评论 -
安卓user版本adb不弹授权窗口
debug版本是默认开adb且,不会弹授权确认窗口user版本在代码中打开adb后,会弹出确认窗口,需要点击才能连接使用,去掉此窗口需要几个步骤原创 2022-06-09 17:12:42 · 2498 阅读 · 0 评论 -
android 11(R)预装APP到data/app目录
android高版本,默认是无法预装app到/data/app目录下的,因为用低版本的方法去修改的话烧录后会无法开机。假设是添加myapplication.apk到sdk中的, 烧录后要装到/data/区LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) 由这行来控制安装到data/app下。编译成功标志编译过程会有类似打印,说明编译进去了[ 99% 2339/2362] Install: out/target/product/ums512_1h10/data/原创 2022-07-07 17:59:40 · 7555 阅读 · 15 评论 -
【展讯】安卓修改音量等级曲线
安卓音量等级分为0-7或0-15, 有可能某段音量过大或过小,需要调整。原创 2022-11-08 15:58:58 · 2260 阅读 · 0 评论 -
android 8(O)预装APP到data/app目录
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) 由这行来控制安装到data/app下。假设是添加myapplication.apk到sdk中的, 烧录后要装到/data/区(注意此方法恢复出厂后app会消失)编译后,在out目录下能搜索到myapplication.apk,但是烧录到设备后,启动找不到这个app。在sdk下搜索PackageManagerService.java,不同的平台可能位置不一样,想内置应用到/data/用户区,让其可卸载。原创 2022-11-28 17:37:07 · 2527 阅读 · 0 评论 -
Android各版本运行时权限(Runtime Permission )表现
安卓不同版本运行时权限(Runtime Permission )表现可能会不同,为了安全,目前大部分安卓版本某些敏感权限比如:录音,摄像头,发送短信等都,APP调用前都需要先申请对应权限,用户选择“同意”则可正常使用否则对应功能将不能使用。CTA认证要求低版本的如Android5的apk必须要支持运行时权限,但是其功能是Android6才引入的,需要对Runtime Permission不同版本的表现有个初步认识,好方便针对CTA要求进行修改。原创 2023-02-07 11:32:49 · 1773 阅读 · 0 评论 -
Android使能volte高清视频通话功能
Android 8.1.0, 在过CTA认证,实验室要求在打电话的同时能上网,但是联通的不行,需使能联通volte高清视频通话功能。原创 2023-02-24 17:08:14 · 2243 阅读 · 0 评论 -
Android运行时权限Runtime Permission源码分析
应用使用requestPermissions申请权限时,系统会弹出一个选择窗口,可进行允许。源码在packages/apps/PackageInstaller/文件下GrantPermissionsActivity.java是进行权限分配的弹出窗口,通过GrantPermissionsDefaultViewHandler来控制GrantPermissionsActivity的ui视图,原创 2023-02-25 18:47:13 · 1494 阅读 · 0 评论 -
Android SDK删除内置的触宝输入法
展锐平台。过CTA认证,内置的触宝输入法会连接网络,且默认就获取到访问网络的权限,没有弹请求窗口访问用户,会导致过不了认证。对应方法:禁用触宝输入法。改用原生google输入法常见输入法的包名和类名百度:com.baidu.input/.ImeService讯飞:com.iflytek.inputmethod/.FlyIME腾讯:com.tencent.qqpinyin/.QQPYInputMethodService。原创 2023-02-25 19:43:32 · 1227 阅读 · 0 评论 -
Android修改特定内置系统应用的签名
过CTA认证,实验室要求某些应用的签名不能是默认的platform系统签名,但是由于一些原因此应用又不能是自签名的用户应用,必须是系统应用。原创 2023-02-25 19:33:28 · 823 阅读 · 0 评论 -
MTK Android串口权限配置
Android11设备中添加串口应用,遇到打开串口时报错问题:System.err: Caused by: java.io.IOException: error=13, Permission denied系统级应用AndroidManifest.xml添加android.uid.system这里只介绍system应用配置,如果是普通应用,改法不一样。根据avc打印提示修改,不同的平台修改的地方不一样,这里介绍的是mtk平台device/mediatek/sepolicy/basic/non_原创 2023-03-14 17:13:09 · 1668 阅读 · 0 评论 -
MTK Android为某个APP单独添加selinux配置文件
test是一个system APP, 涉及到许多个selinux的权限,不想影响所有的system APP的权限,需要单独为test设定selinux。原创 2023-03-15 12:25:23 · 1645 阅读 · 0 评论 -
MTK Android修改selinux允许system APP可读写sys与proc
MTKAndroid 11需要为内置的APP打开读写/sys与/proc的权限。原创 2023-03-17 18:04:40 · 1143 阅读 · 2 评论 -
Android修改默认语言时区
不同平台或芯片,修改目录不一样,展锐, mtk, RK修改方法都不一样,安卓版本不一样也可能修改方法也不一样.原创 2023-08-03 12:13:18 · 1074 阅读 · 1 评论 -
MTK Android隐藏NavigationBar
安卓MTK屏蔽NavigationBar, 在SDK中通过搜索关键字修改,可适用大部分MTK及安卓版本.原创 2023-08-12 22:03:21 · 869 阅读 · 0 评论 -
MTK Android修改开机动画与Logo
需求是修改MTK Android的开机动画与Logo原创 2023-08-14 14:12:07 · 1858 阅读 · 0 评论 -
MTK Android非常用分辨率修改充电动画
非标准分辨率的屏,配置MTK Android的关机充电动画.。原创 2023-08-15 23:34:29 · 814 阅读 · 0 评论 -
Android获取selinux的setprop权限修改SystemProperties
自定义了个SystemProperties的属性,需要在system应用中修改它,介绍MTK及展锐的设置方法,可扩展到其他平台.比如代码中要这么设置```javaSystemProperties.set("property_name", "value");```默认会引发selinux无权限的报错.原创 2023-08-23 11:34:48 · 2435 阅读 · 0 评论 -
Android 11添加所有特许权限白名单
Android 11 SDK修改了一些内置的系统APP,添加了些权限后,会有可能导致烧录固件后一起重启问题,打logcat会有类似下面的错误打印:023-11-08 11:36:23.854 4173-4173/system_process E/AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: mainjava.lang.IllegalStateException: Signature|privileged permissions not in原创 2023-11-08 14:19:12 · 1851 阅读 · 0 评论 -
安卓8预装可卸载应用
系统:Android 8CPU:MTK理论上改法适用于其他平台,比如展讯。不适用于安卓11。安卓11请参照。原创 2023-11-30 19:47:38 · 1316 阅读 · 0 评论 -
Android 13 内置可卸载的搜狗输入法
默认只有英文输入法,没有中文,需要中文输入法,且可以卸载的。实测为搜狗输入法,百度等其它输入法也同样适用。原创 2023-12-22 19:29:07 · 2166 阅读 · 3 评论 -
Android 13屏蔽Activity或包的手势禁止滑动退出
在Android设备中,左/右滑两次会出现一个箭头然后退出Activity页面,有些Activity页面不想出现箭头及退出.以下是对项目中的别人已实现的代码解析.。原创 2023-12-26 16:05:14 · 4098 阅读 · 1 评论 -
Android13配置selinux让system应用可读sys,proc,SN号
Android13预置的system应用,需要读/sys, /proc目录,读(SN)serial number号, 需要修改selinux配置,否则会报avc错.其修改方法会比Android11复杂一些.。原创 2024-01-08 15:10:01 · 2174 阅读 · 1 评论 -
Android13预装APP到data分区
Android13内置应用到userdata,修改步骤与Android11是差不多的,只是有部分代码所在位置不一样。原创 2024-01-18 10:42:18 · 2237 阅读 · 2 评论 -
Android8.1高通平台修改默认输入法
本文介绍了在安卓8.1 SDK中替换原生英文输入法为中文输入法的方法。首先通过adb命令查看当前输入法配置,然后修改SettingsProvider相关文件(包括defaults.xml和DatabaseHelper.java)来设置默认中文输入法(如百度、讯飞等)。文章还提供了将输入法内置到系统镜像的步骤,包括修改mk文件、添加APK和编写Android.mk。最后给出了相关技术文章的参考链接,详细说明了从配置修改到系统集成的完整流程。该方法适用于高通等平台,通过修改系统配置实现中文输入法的默认启用。原创 2024-05-30 14:54:22 · 1304 阅读 · 0 评论 -
安卓制作logo与开机动画bootanimation.zip并解决不显示问题
替换安卓logo与开机动画bootanimation.zip,解决画面是花的或黑的问题。原创 2024-07-30 15:47:45 · 740 阅读 · 0 评论 -
Android编译curl并内置到设备固件
摘要:本文介绍了curl工具的基本功能及在Android平台上的编译与集成方法。curl作为支持多种协议的强大命令行工具,可用于数据传输、接口测试等场景。文章详细说明了在展锐平台单独编译curl的步骤(环境设置、编译、adb推送),以及将curl集成到固件中的方法(修改mk文件)。同时提供了常用curl命令参数示例,如显示响应头(-i)、POST请求(-d)、保存文件(-o)等。编译完成后生成的可执行文件curl可通过adb指令在设备上运行,为Android开发调试提供便利。原创 2025-06-11 11:46:03 · 1014 阅读 · 0 评论 -
Android OTA升级更新SettingsProvider值修改默认输入法
OTA升级后默认输入法不会自动更新,需通过修改系统配置实现。Android系统通过Settings.Secure存储默认输入法配置,其中default_input_method和enabled_input_methods两个值决定当前输入法。正确的OTA升级修改方法包括:1) 在defaults.xml中更新输入法配置;2) 修改SettingsProvider.java中的SETTINGS_VERSION版本号;3) 在onUpgradeLocked函数中插入新的输入法配置。注意直接修改数据库版本号或Da原创 2025-07-09 10:53:18 · 1046 阅读 · 0 评论 -
Android哪些权限属于Privileged Permissions特许权限许可名单
摘要: Android特许权限是安全级别最高的系统权限,包括signature和signatureOrSystem两种级别。这些权限默认授予由平台密钥签名并安装在特定目录(如/system/priv-app)的应用。Android 10引入了强制白名单机制(privapp-permissions.xml),要求显式授权,取代了Android 8.1及之前版本的隐式授权方式。特许应用需满足签名、安装位置及白名单要求,不同Android版本在授权机制上存在差异。signatureOrSystem权限因安全隐患在原创 2025-09-29 14:30:46 · 826 阅读 · 0 评论 -
Android Framework默认给应用添加dangerous级别权限
摘要:本文分析了Android系统中系统应用获取权限的机制。系统应用安装在/system/app目录下时,需满足特定条件才能获得不同级别权限:signature权限需平台密钥签名;signatureOrSystem权限需同时满足特权目录和平台签名;normal权限自动授予。dangerous权限涉及用户隐私,需通过修改DefaultPermissionGrantPolicy.java源码手动授予。文章还指出Android 10引入的特许权限白名单机制,并提供了在源码中实现权限授予的具体方法,包括修改原创 2025-09-29 14:28:59 · 844 阅读 · 0 评论 -
Android Framework打电话禁止播放运营商视频彩铃
本文介绍了在展锐平台安卓13系统中屏蔽运营商视频彩铃的方法。通过分析Dialer应用的logcat日志和源代码,定位到视频彩铃控制的关键变量isSupportVideoRingTone。研究发现该变量由UniCarrierConfigManager管理,通过修改vendor/sprd/platform/packages/apps/SprdDialer中InCallPresenter.java的代码,将isSupportVideoRingTone数组值强制设为false,即可实现屏蔽视频彩铃广告的功能。该方法原创 2025-09-01 10:21:16 · 779 阅读 · 0 评论 -
Android Framework代码拦截陌生人来电
Android 7.0引入的BlockedNumberProvider为系统提供了统一管理骚扰电话和短信的解决方案。文章介绍了该内容提供程序的核心功能,包括号码的增删查改操作,并通过adb命令演示了具体使用方法。针对屏蔽陌生号码需求,提出了两种实现方案:一是修改BlockedNumberProvider中的isBlocked函数,增加对通讯录的检查逻辑;二是通过修改DialpadFragment来阻止拨打非联系人号码。此外还介绍了BlockChecker类的功能,它是系统底层用于管理黑名单和拦截通话的重要组原创 2025-08-27 10:57:53 · 808 阅读 · 0 评论 -
Android Framework微信保活后台收消息设置
本文介绍了Android系统下防止微信被后台杀死的保活方案。主要通过修改系统配置实现:1)将微信加入省电模式白名单(allow-in-power-save-except-idle);2)配置系统黑名单防止被终止;3)设置第三方持久化进程和服务。修改涉及platform.xml和arrays_ex.xml文件,添加微信包名"com.tencent.mm"。成功保活后,关键的微信推送服务(com.tencent.mm:push)将保持运行,确保能接收离线消息。该方案需要系统级权限修改,会带来原创 2025-08-26 11:23:47 · 926 阅读 · 0 评论 -
Android12 Framework读写prop属性selinux报错解决
Android系统应用读取属性值时需SELinux权限,否则会报denied错误。解决方案为:1)在system_app.te中添加allow规则(不同平台策略不同);2)修改property.te中的neverallow规则,添加system_app例外;3)处理treble_sysprop_neverallow冲突。需注意修改多个相关文件,包括system/sepolicy下的property.te及对应版本的prebuilts文件。编译报错需根据具体提示调整策略,逐步解决neverallow冲突问题。原创 2025-08-23 01:00:00 · 585 阅读 · 0 评论 -
Android Framework定制长按电源键关机的窗口
Android系统长按关机流程解析:通过config.xml配置长按电源键行为(0-5对应不同操作),默认显示全局操作菜单。系统通过PhoneWindowManager处理按键事件,最终调用GlobalActions显示关机对话框。实现分为SystemUI和Legacy两种方式,其中SystemUI通过GlobalActionsDialog加载布局文件global_actions_grid_v2.xml,并根据config_globalActionsList数组动态添加功能按钮(如关机、飞行模式等)。开发者原创 2025-08-13 15:50:11 · 775 阅读 · 0 评论 -
Android12 Framework电话功能UI定制
Android 12展锐平台通话界面分析,重点介绍了InCallActivity及其核心Fragment(VideoCallFragment、InCallFragment、DialpadFragment)的功能与交互逻辑。通过代码定位,发现通话录音按钮在VideoCallFragment.java中实现,根据录音状态动态更新按钮文本("通话录音"/"录音中")。InCallActivity通过InCallPresenter管理不同Fragment的显示状态,根据通话场原创 2025-08-12 18:27:25 · 953 阅读 · 0 评论 -
Android Framework不弹窗直接关机
Android长按电源键直接关机实现方案 本文分析了Android系统长按电源键的处理逻辑,通过修改PhoneWindowManager.java中的powerLongPress()方法实现直接关机功能。关键修改是将长按行为直接设置为LONG_PRESS_POWER_SHUT_OFF_NO_CONFIRM常量,绕过系统默认的弹窗确认流程。该方法会触发触觉反馈后直接执行关机操作,无需用户二次确认。文章详细解析了原始代码中各case分支的处理逻辑,包括全局操作菜单显示、语音助手启动等不同行为,并提供了具体的代码原创 2025-08-08 10:16:40 · 681 阅读 · 0 评论 -
Android12 Framework Sim卡pin与puk码解锁
本文分析了Android 12系统中SIM卡PIN码输入界面的实现机制。当插入启用PIN码的SIM卡时,系统会弹出包含顶部提示文本和底部输入框的锁定窗口。顶部提示文本(如"请输入SIM 1 PIN")由KeyguardSimPinViewController控制,通过getPinPasswordErrorMessage方法动态生成提示信息,内容来自系统资源文件strings_ex.xml中定义的字符串模板。该界面分为KeyguardMessageArea(顶部提示)和KeyguardSi原创 2025-08-08 09:46:28 · 806 阅读 · 0 评论 -
Android Framework代码屏蔽未接来电振动及声音通知
本文介绍了屏蔽安卓设备未接来电通知的两种方法。第一种是通过广播方式清除通知,但普通应用缺乏必要权限且adb指令在Android11上报错。第二种是直接修改Framework代码,通过分析logcat定位到通知来源(com.android.dialer包),找到MissedCallNotifier.java中创建通知的代码位置。建议修改该处代码,将未接来电通知改为不发出。该方法在展锐平台的Android11和12上验证有效。原创 2025-08-05 15:20:52 · 957 阅读 · 0 评论