![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android系统定制方案
星空梦想plus
上九天揽月,下五洋捉鳖
展开
-
sourceinsight tab键替换成四个空格键
默认情况下sourceinsight的回车键是tab键,tab键作用就不多说了,主要是为了代码对齐,增强代码的可读性。但是在实际系统开发中如果使用tab键,会有可能使代码错位,所有很有必要将tab键替换成四个空格键,具体操作如下:1.选择菜单栏的Options2.然后按照下图以此标注顺序选择对应按钮3.最后几步在第4步选择生效的语言。第5步勾选替换,第六步那设置tab宽度,一般都是四个空格长度,最后再close就完事儿了。...原创 2020-11-08 14:27:34 · 6457 阅读 · 1 评论 -
Android 系统遥控器匹配kl文件
不同芯片对底层驱动的实现可能不同,但适配遥控器的时候,必定有一个步骤就是通过找到kl文件来匹配键值,如果kl文件有多个,如何找到自己所对应的那个呢,我的方法主要是以下两个步骤就可以确定:1.使用cat/proc/bus/input/devices命令查看所有的设备信息(root@test:/ # cat proc/bus/input/devices ...原创 2020-04-04 10:39:44 · 1947 阅读 · 0 评论 -
系统编译中LOCAL_CFLAGS的用法
LOCAL_CFLAGS += -DXXX ,相当于在所有源文件中增加一个宏定义#define XXXeg:在Android.mk中增加ifeq ($(PRODUCT_MODEL),XXX_A)LOCAL_CFLAGS += -DBUILD_MODELendif即能在所编译的Cpp文件中使用:#ifdef BUILD_MODEL....#endif...原创 2020-04-03 00:44:47 · 6379 阅读 · 0 评论 -
进入Recover后升级失败,提示unknown volume for path错误探索
为了实现u盘升级功能,但每次进入recovery升级都提示的是升级失败,最终我通过找到位于cache/recovery下的升级日志进行分析,摘取关键日志如下:I:no boot messages I:Got arguments from /cache/recovery/commandlocale is [zh_CN]can't open /dev/tty0: No such file or...原创 2020-03-29 13:44:04 · 2448 阅读 · 0 评论 -
常见网络故障排查方法
1. 无法获取ip查看系统中实际是否有ip地址使用系统查询命令:busybox ifconfig下图是从网上找的,只是里面在比较重要的地方已标记:如果存在有地址,则不是底层问题,可往上层软件分析2. 服务端异常最常见的方式有如下几个:a.抓包,分析报文b.直接ping,tracert地址,看服务器是否返回,前提是服务器防火墙没有限制icmp报文c.系统命令busybox wge...原创 2020-03-29 10:40:57 · 2735 阅读 · 0 评论 -
系统预制版本
系统通常会有预制版本号需求,简单记录一下,以mk文件添加版本号为例:VERSION_NUMBER=$(productname)_$(modulename)_1.1.1$(shell date +%Y%m%d%H%M)PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.version=$(VERSION_NUMBER)...原创 2020-03-28 01:56:22 · 156 阅读 · 0 评论 -
系统处理重复点击
处理短按重复可参考下面伪代码:private Button btn;private long lastClick = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activ...原创 2020-03-27 22:23:12 · 127 阅读 · 0 评论 -
新apk加入源码整编
第一步:编写Android.mk LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := Bluetooth LOCAL_...原创 2020-03-23 21:13:18 · 285 阅读 · 0 评论 -
usb调试与adb调试
之前没有太注意二者的区别,这里简单记录一下。usb调试,android应用开发或许经常会用到,之前我也是用这个方式来调试程序的,android设备如果是手机的话就很方便,设备打开usb调试,并用数据线连接电脑与android手机,你的android studio就能看到控制台有手机的日志输出了。如果android设备不是手机的话,就像android手表的话,或许就不支持usb这种方式了,这就需要...原创 2020-03-22 17:18:50 · 6665 阅读 · 0 评论 -
android系统打开adb调试
一般情况下android系统用户的adb是被被关了的,打开的话会有安全隐患,但是对于开发者来说,还是很有必要的,方便调试程序,发现并解决问题用的,这是写这篇文章的背景。打开adb肯定要将adb这个服务进程打开,adb服务是写在init.rc里面的,默认disable,,init.rc里面会有一定的判断条件决定是否启动,其实就是由一条属性的值控制的,我们将这个属性打开就行了。即使你发现系统重启之...原创 2020-03-18 22:29:42 · 6111 阅读 · 0 评论 -
修改开机launcher
修改位置:frameworks/base/services/java/com/android/server/am/ActivityManagerService.java Intent getHomeIntent() { if(mFirstStart) { //需定制Intent代码处 } Intent intent = new Intent(mT...原创 2020-03-10 23:23:29 · 668 阅读 · 0 评论 -
浅谈framework之ConnectivityService
文章目录1. 前言2. 服务的启动3. ConnectivityService3.1 runDhcp3.2 runPppoe3.3 configureInterface1. 前言这篇文章,主要是对之前学习ConnectivityService的再一次回顾与加深理解。2. 服务的启动frameworks/base/services/java/com/android/server/Syste...原创 2020-03-08 01:41:12 · 1402 阅读 · 0 评论 -
拨号键接收广播特殊使用用法
拨号键使用暗码进行相关调试用例:1 在AndroidManifest.xml中添加:<receiver android:name="com.android.settings.MyReceiver" > <intent-filter> <action android:name="android.provider.Telephony.SECRE...原创 2020-03-07 14:55:59 · 853 阅读 · 0 评论 -
静默安装应用方法
public void SilentInstall(String paramString){ Runtime runtime = Runtime.getRuntime(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("pm install -r "); stringBuilder.appe...原创 2020-03-02 23:13:45 · 917 阅读 · 0 评论 -
android系统第一次开机或者恢复出厂设置后不显示正在升级apk提示
代码修改位置:/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.javapublic void showBootMessage(final CharSequence msg, final boolean always) { //可在return之前做一些适当判断 return; ......}...原创 2020-02-19 10:29:55 · 436 阅读 · 0 评论 -
android系统定制硬件加速
代码位置framworks/base/core/java/android/content/pm/PackageParser.javaprivate boolean parseApplication(Package owner, Resources res, XmlPullParser parser, AttributeSet attrs, int flags, Stri...原创 2020-02-14 15:44:18 · 256 阅读 · 0 评论 -
andorid系统定制白名单
修改路径:framworks/base/services/java/com/android/server/am/ActivityManagerService.java初始化白名单集合:ArrayList<String> mWhitelist = new ArrayList<String>();更新集合: private void readApplicati...原创 2020-03-08 01:36:10 · 981 阅读 · 0 评论 -
解决编译AIDL模块出现的couldn't find import for class错误
编译Android系统源码,在package目录下新建了一个目录单独编译一个模块,里面还有AIDL接口声明,并且声明中用到了自定义的JAVA类,写入import代码后编译却报错couldn’t find import for class。这里找到的最终解决方法如下:在同目录下新建一个Test.aidl文件,并且文件中需要填写如下格式代码:package com.xxxx.xxxx;parc...原创 2020-01-06 14:33:02 · 4756 阅读 · 0 评论 -
精简OTA包(一)
一. 编译源码不要生成odex 问题:1、 禁止apk生成odex:修改…/build/core/package.mkLOCAL_DEX_PREOPT := false2、 禁止jar包生成odex: 修改/build/core/java_library.mkLOCAL_DEX_PREOPT:= false 3、禁止当前apk编译生成odex,在android.mk内增加:LO...原创 2019-12-24 10:57:36 · 388 阅读 · 0 评论 -
Android系统去掉 USB插入调试确认框
修改位置:frameworks\base\packages\SystemUI\src\com\android\systemui\usb\UsbDebuggingActivity.java @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); if (Sys...原创 2019-12-24 10:32:49 · 1131 阅读 · 0 评论 -
Android系统签名
Android中的签名系统默认的四种签名类型:四组默认签名供Android.mk在编译APK使用:1、testkey:普通APK,默认情况下使用。2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。3、shared:该APK需要和home/contacts进程共享数据。4、media:该APK...原创 2019-12-22 14:20:46 · 325 阅读 · 0 评论 -
android系统开机默认设置修改记录
文章目录1. 前言2. 默认关闭数据3. 默认关闭蓝牙4. 默认关闭定位5. 默认关闭飞行模式6. 默认关闭wifi1. 前言简单系统设置默认系统修改,仅为做个记录。2. 默认关闭数据主要修改点:frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java...原创 2019-11-29 21:19:20 · 677 阅读 · 0 评论 -
解读framwork/base/cmd目录下的Android.mk
代码位置:/frameworks/base/cmds/input/Android.mkLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_MODULE := inputinclude $(BUILD_JAVA_LIBRARY) /...原创 2019-11-23 10:59:56 · 337 阅读 · 0 评论 -
android系统recovery修改误区记录
这个主要是一个误区说明,recovery中的代码修改编译之后如果单纯将生成的bin文件拷贝到main system下的system/bin的目录下,实际上是不生效的,原因是main system和recovery是两个系统,所以要想recovey中的修改生效,应该重新烧写recovery.img这个镜像。另外需要提一点的是最后镜像是一个文件,然后烧写到android设备的固定分区上,这个的话可以...原创 2019-11-20 20:18:35 · 462 阅读 · 0 评论 -
android系统添加新键值流程
文章目录1. 前言2. 驱动层3. native层3. java层4. 添加到资源文件5. 消费键值1. 前言android系统有时候会有添加新键值的需求,底层方面和上层方面可能会由于发行平台,芯片厂商和系统版本的原因会存在一定差异,但原理基本相同,个人理解就是收到原始信号之后,底层键值与上层键值进行一一映射,然后在上层处理相应键值。下面就举例一个新键值首页键的添加过程。2. 驱动层驱动层...原创 2019-11-20 00:16:55 · 651 阅读 · 0 评论