![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android rom开发
9527xiha
聚沙成塔,集腋成裘,每天进步一点点
展开
-
Android rom开发:9.0系统上实现4G wifi 以太网共存
【代码】Android rom开发:9.0系统上实现4G wifi 以太网共存。原创 2023-09-15 14:11:11 · 735 阅读 · 3 评论 -
Android rom开发:mtk android9.0 开放预置app权限
android权限管理原创 2022-07-13 08:26:05 · 1304 阅读 · 1 评论 -
Android rom开发:recovery取消校验Vbmeta version和framework matrix
本补丁解决Android 9.0 OTA差分升级遇到的校验不通过问题。diff --git a/system/libvintf/RuntimeInfo.cpp b/system/libvintf/RuntimeInfo.cppold mode 100644new mode 100755index 63a8c186b5..ce961f51ff--- a/system/libvintf/RuntimeInfo.cpp+++ b/system/libvintf/RuntimeInfo.cpp@@ -原创 2022-05-20 10:41:12 · 1718 阅读 · 0 评论 -
Android rom开发:修改Settings源码,支持蓝牙自动配对,无需输入PIN码
--- a/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/bluetooth/BluetoothPairingDialog.java+++ b/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/bluetooth/BluetoothPairingDialog.java@@ -34,6 +原创 2022-04-08 17:09:17 · 2726 阅读 · 2 评论 -
Android rom开发:framework中wifi热点定时关闭的源码实现
--- a/frameworks/opt/net/wifi/service/java/com/mediatek/server/wifi/MtkSoftApManager.java+++ b/frameworks/opt/net/wifi/service/java/com/mediatek/server/wifi/MtkSoftApManager.java@@ -759,6 +759,11 @@ public class MtkSoftApManager extends SoftApManager {原创 2022-04-08 17:03:04 · 1789 阅读 · 0 评论 -
Android rom开发:framework中wifi热点打开/关闭的源码实现
--- a/frameworks/base/core/java/android/net/ConnectivityManager.java+++ b/frameworks/base/core/java/android/net/ConnectivityManager.java@@ -42,6 +42,7 @@ import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceMana原创 2022-04-08 16:59:35 · 2376 阅读 · 0 评论 -
Android rom开发:STM32 ISP升级
平台:MTK环境:STM32与MTK通过串口连接核心思路: 参考STM32 AN3155文档,写入对应的指令。代码流程:1.复位后进入boot0下载模式(发1F 回79)2.发送擦除全部flash指令(发43 BC 回79,发FF 00 回79)3.循环发送升级数据(发31 CE回79,发字节地址 回79,发升级数据 回79)4.升级完成后复位MCU形式:java+JNI,java对串口节点(/dev/ttyS1)进行读写,jni执行真正的串口通信,将数据给到MCU。try {原创 2021-12-08 09:34:42 · 676 阅读 · 0 评论 -
Android rom开发:MTK操作GPIO
平台:MTK6765android版本:9.0内核版本:4.9读写GPIO节点:/sys/devices/platform/1000b000.pinctrl/mt_gpio public void writeGpio(String value) { Log.d(TAG, "wjz debug writeGpio: value is " + value); if (value.isEmpty()) { return; }原创 2021-12-08 09:01:29 · 745 阅读 · 0 评论 -
Android rom开发:android9.0增加自定义系统属性注意事项
场景:在vendor/etc/init/hw/init.mt6765.rc中,通过设置自定义系统属性触发执行服务实测代码:如果这样写,属性可以设置成功,但是不会触发执行服务on property:persist.gpio_out_high.enable=1start gpioOutHigh改为persist.vendor开头,可以触发执行服务on property:persist.vendor.gpio_out_high.enable=1start gpioOutHigh注意,自定义属性不能原创 2021-11-18 09:42:26 · 2617 阅读 · 0 评论 -
Android rom开发:预置sh脚本到system/bin
采用Android.mk+PRODUCT_PACKAGES的方式//xxx.mkPRODUCT_PACKAGES += test.sh//Android.mkLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := test.shLOCAL_MODULE_CLASS := EXECUTABLESLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(LOCAL_MODUL原创 2021-11-18 09:21:34 · 1839 阅读 · 1 评论 -
Android rom开发:编译阶段设置预置文件或者文件夹的权限
修改system/core/libcutils/fs_config.cpp,加入对应的路径即可static const struct fs_path_config android_dirs[] = { // clang-format off { 00770, AID_SYSTEM, AID_CACHE, 0, "cache" }, { 00555, AID_ROOT, AID_ROOT, 0, "config" },原创 2021-11-18 09:18:02 · 2533 阅读 · 0 评论 -
Android rom开发:固定设置wifi热点的ip、ssid及密码
Android9.0起,开启wifi热点的逻辑进行了调整,ip ssid 密码均为随机生成,为便于通过wifi热点进行无线通信传输,特将固定设置wifi热点的ip、ssid及密码的方法总结如下:modified: frameworks/base/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.javaprivate boolean configureIPv4(boole原创 2021-09-15 14:06:40 · 2954 阅读 · 0 评论 -
Android rom开发:wlan认证-QRCT测试踩坑记录
近期远程协助海外客户处理wlan认证事宜,经过反复多次折腾,终于成功跑通,特此记录。机器方案:高通测试工具:QRCT测试wlan主要命令:insmod ..../wlan.ko con_mode =5ptt_socket_app入坑1.首先方案供应商提供了认证相关的指导文档,发送给客户之后,反馈说运行bat后,打开QRCT的第一步一直出错,无法开始测试。2.确认客户刷了调试版本固件,并且成功进入了usb调试模式。3.安排远程操作,将bat里面的命令,转换到adb shell里面手动执行原创 2020-11-20 13:30:47 · 1086 阅读 · 0 评论 -
Android rom开发:通过拨号使用暗码打开不显示图标的应用
修改packages/apps/Dialer下的SpecialCharSequenceMgr.java即可,不同android 版本具体路径可能不一样,笔者的修改基于android 7.1 sdk。效果:在拨号键盘输入*#1024#*,打开在launcher里面不显示图标的test app。使用场景:显示一些隐秘的系统信息,或者打开测试工具,等等patch如下:diff --git a/packages/apps/Dialer/src/com/android/dialer/SpecialChar原创 2020-08-29 16:27:28 · 372 阅读 · 0 评论 -
Android rom开发:高通平台充电-Micro_usb&&USB_VBUS
基于高通MSM8909+android 7.1,充电模块PM8909。正常情况下,充电是走micro_usb接口,数据线接入充电,DP DM通信后确定充电类型是usb还是适配器充电,具体内容本文不展开,可自行查阅内核里面的usb驱动phy-msm-usb.c。本文实现外接5V供电到USB_VBUS即可充电,无需dp dm通信。1.首先usb驱动phy-msm-usb.c中固定设置充电模式为USB_CDP_CHARGER,最大电流1500ma,即可实现快充,无需dp dm通信,也不影响数据线接入后mi原创 2020-07-25 11:09:43 · 1437 阅读 · 0 评论 -
Android rom开发:不显示系统的电池信息
frameworks packagesdiff --git a/frameworks/base/packages/SystemUI/res/values/config.xml b/frameworks/base/packages/SystemUI/res/values/config.xmlindex 010da92..01eb470 100644--- a/frameworks/base/packages/SystemUI/res/values/config.xml+++ b/frameworks/原创 2020-07-25 10:31:15 · 258 阅读 · 0 评论 -
Android rom开发:webview崩溃问题Binary XML file line #103: Error inflating class android.webkit.WebView
近期在项目上遇到了webview崩溃的问题,出现在app版本迭代之后。崩溃log如下:05-26 13:58:52.961 7085-7085/com.printer.tool E/AndroidRuntime: FATAL EXCEPTION: main Process: com.printer.tool, PID: 7085 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.printer.to原创 2020-05-26 14:30:25 · 996 阅读 · 0 评论 -
Android rom开发:第三方app开放全部权限+支持静默安装卸载
开发平台:高通 android 7.1需求:app不带系统签名,仅仅以反射的方式调用PackageManager类的installPackage、deletePackage方法,实现静默安装卸载。背景知识:常规情况下,静默安装卸载需要以下2个系统级权限+系统签名<uses-permission android:name="android.permission.DELETE_PA...原创 2020-04-28 17:48:31 · 1211 阅读 · 0 评论 -
Android rom开发:最完整的截屏方案(支持全屏截屏+区域截屏)
网上很多资料都是说使用View的getDrawingCache接口,这种方式有一个问题,无法截取到状态栏,因此个人不推荐。View view = getWindow().getDecorView().getRootView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); temBitmap = view....原创 2020-04-22 15:56:24 · 630 阅读 · 0 评论 -
Android rom开发:Settings隐藏某个选项
方法1:直接在AndroidManifest.xml中屏蔽对应的activity优点:无需改动java代码,简单粗暴缺点:一刀切的做法,无法根据不同的条件灵活显示或者隐藏方法2:packages/apps/Settings/src/com/android/settings/SettingsActivity.javasetTileEnabled方法的第2个布尔值参数代表是否显示(true...原创 2020-04-20 15:38:09 · 1082 阅读 · 0 评论 -
Android rom开发:自定义序列号ro.serialno
本文基于Android 5.1版本SDK。客户需求:自定义sn,统一规则编号。第一部分:背景知识Android的sn由SystemProperties.get("ro.serialno", "");而来。ro.serialno并不像常见的其他属性一样存在于build.prop等prop文件中,而是在/system/core/init/init.c里由ro.boot.serialno转换而来...原创 2020-03-30 22:48:55 · 5322 阅读 · 8 评论 -
Android rom开发:app运行异常,报libc: Fatal signal 11 (SIGSEGV) in tid xxx错误
最近遇到了app在设备上反复挂掉的问题。log如下:2020-03-07 13:20:24.814 16858-16858/? E/SharedPreferencesImpl: Couldn't create directory for SharedPreferences file /data/user/0/com.hello.test/shared_prefs/authStatus_com.h...原创 2020-03-10 12:03:06 · 10608 阅读 · 0 评论 -
Android rom开发:动态显示隐藏底部导航栏,默认显示3s后消失
时节如流,2019年快要结束了,立个flag,2020.1.1发布2019年个人总结,今天先来一篇技术干货。项目需求要求动态显示/隐藏底部导航栏,默认显示3s后消失。设备默认是横屏显示。思路:PhoneWindowManager.java里面检测手势操作–>调用IStatusBarService.aidl里面的接口方法–>StatusBarManagerService.java...原创 2019-12-21 15:40:47 · 946 阅读 · 0 评论 -
Android rom开发:5.1系统默认允许特定apk的全部权限
不废话,直接贴代码!diff --git a/frameworks/base/services/core/java/com/android/server/AppOpsService.java b/frameworks/base/services/core/java/com/android/server/AppOpsService.javaindex 5675539177..ecb469c78c...原创 2019-11-01 15:17:06 · 1210 阅读 · 0 评论 -
Android系统恢复出厂设置方法-涵盖5.1 6.0 7.0 7.1 8.0 9.0
最近在8.0系统上面调试公司自主开发的setting,发现无法恢复出厂,原来在7.1 7.0 6.0 5.1上面使用的广播已经没有效果,查阅8.0的原生Settings源码之后发现恢复出厂的代码在8.0上面已经偷偷摸摸地换成了用另外一个广播android.intent.action.FACTORY_RESET。原来如此。特将恢复出厂的方法总结如下:public static void st...原创 2018-07-20 11:53:44 · 6132 阅读 · 18 评论 -
Android rom开发:安装带so库的apk后导致系统运行异常,提示其他apk stopped
项目上遇到了带so库的apk在安装了之后,启动经常导致系统异常的现象,弹出许多个弹框提示xxx has stopped。几经排查,确定是apk的so库与系统里面其他apk所使用的so库位数不一致导致的,apk里面使用的全部为32位的so,然而其他很多apk是使用64位的so。偶然得知此apk在AndroidManiFest.xml里面添加了android:sharedUserId=”android...原创 2018-08-02 09:38:15 · 1174 阅读 · 0 评论 -
Android rom开发:长按Power键关机/重启优化,告别长时间等待
写本文的缘由:项目上碰到了问题,在某个apk界面长按power键来选择关机或者重启,apk会出现重启现象。仔细研究关机/重启的相关源码后,修改了部分逻辑,问题解决。那就用一篇博客来记录下踩过的这个坑吧本文切入点为关机/重启在framework层的逻辑。我们重点关注两个类:PhoneWindowManager.java ShutdownThread.java。具体代码调用这里不作讲解,有兴趣的...原创 2018-08-15 12:19:41 · 3211 阅读 · 2 评论 -
Android rom开发:配置时间服务器+亚洲主要的授时服务器
我们知道,android是通过连接指定的ntpServer来获取网络时间,而不同的服务器带来的延迟也不尽相同,通常情况下,我们自然是期望尽快获取时间,那么我们就需要对ntpServer有一定的筛选,尤其是在选择默认的ntpServer的时候。android中配置ntpServer的源文件:frameworks/base/core/res/res/values/config.xml此外,...原创 2015-09-18 09:31:41 · 1782 阅读 · 0 评论 -
Android rom开发:GMS xml属性详解
众所周知,google play store存在根据apk的所使用到的功能来过滤的机制,这个机制会控制在不同的硬件设备上显示的apk数量。在盒子开发上,很多硬件功能没有,比如说:摄像头、加速度传感器、指南针、陀螺仪等等。如果不添加相应的属性在gms中的话,play store商店里面很多apk就无法显示。针对这些硬件属性,特有此博客。硬件功能指出应用使用或需要某项硬件功能,请在 and...原创 2018-09-10 17:38:43 · 5201 阅读 · 0 评论 -
Android rom开发:监听HDMI状态能实现控制盒子的网络?
新年好!本年度定一个小目标:笔耕不辍,每月至少更新一篇博客。发车发车!============================= 华丽丽的分割线 =============================2019年第一篇博客,竟然是记录一个略微egg pain的需求…问题场景:在上网流量有限的情况下,为了节省流量,电视机待机或者关机之后,盒子自动断网,电视机唤醒或者开机之后,盒子自动恢...原创 2019-01-03 15:18:04 · 2177 阅读 · 4 评论 -
Android驱动开发:应用层读写GPIO
本文用于简单总结近期调试应用层读写gpio。应用层操作gpio的主要思路:编写驱动->驱动编译进内核->创建设备节点,赋予读写权限->应用层以文件读写的方式对设备节点进行读写操作。需要修改的地方:1.内核设备树里面增加gpio节点/ { gpio_usb_otg_host { compatible = "qcom,usb_otg_host"; ...原创 2019-09-04 09:58:12 · 2862 阅读 · 0 评论 -
Android时区列表+编译固件的时候设置系统默认时区
Pacific/Majuro----马朱罗Pacific/Midway----中途岛Pacific/Honolulu----檀香山America/Anchorage----安克雷奇America/Los_Angeles----美国太平洋时间 (洛杉矶)America/Tijuana----美国太平洋时间 (提华纳)America/Phoenix----美国山区时间 (凤凰城)Amer...原创 2018-08-02 16:03:22 · 3849 阅读 · 0 评论