E9101源码修改汇总
2024-06-23 17:11:19 0 举报
AI智能生成
Android 10
作者其他创作
大纲/内容
内置apk
/em9101/T507_android/android/vendor/aw/public/prebuild/apk/BcLauncher
em9101/T507_android/android/device/softwinner/mercury-demo/mercury_demo2.mk
问题:注意签名要一致否则无法开机:LOCAL_CERTIFICATE := platform
默认启动自定义launcher
参考链接
android ROM设置默认Launcher(主屏幕应用)
Android 设置默认应用
有效修改
方法1:frameworks\base\core\java\com\android\internal\app\ResolverActivity.java
方法2
packages\apps\Provision\src\com\android\provision\DefaultActivity.java
packages\apps\Provision\AndroidManifest.xml
无效修改
RoleManager
偶现失败,重启后成功
RoleManager
偶现失败,重启后成功
packages\apps\Provision\src\com\android\provision\DefaultActivity.java
packages\apps\Provision\AndroidManifest.xml
成功后
失败原因:RoleManager 设置是异步的,所以一般执行 addRoleHolderAsUser 后需要等一段时间才能得到回调结果,这是由于回调是基于上面代码中 Executor 进行,在添加流程完成后,对应的 Executor 线程中适当时候执行回调,视线程工作情况,时间不可控(实际中10ms-200ms延迟都遇到过)
强制横屏
fwk
systemui去除自动旋转
setting去除自动旋转
filemanager横屏后不适配
:更换ES最新版本
:更换ES最新版本
删除fileManager
修改mk增加es,删除fileManager
Android.mk
隐藏全屏显示
增大data预留空间到150M:修改#define SDCARDFS_RESERVED_MB 150
android\system\core\sdcard\sdcard.cpp
android\system\core\sdcard\sdcard.cpp
内置farm apk,预授动态权限
zygote模拟存储挂载
music crash问题
Playback.java
桌面显示原生filemanager
AndroidManifest.xml
默认跳过launcher
直接启动Farm
直接启动Farm
自动驾驶同时配合修改Farm的AndroidManifest
修改Farm为默认launcher
自定义标志位,控制开机动画:
当进入Farm界面后延迟3S再结束,
避免闪屏现象
当进入Farm界面后延迟3S再结束,
避免闪屏现象
Home按键
AMS添加保活接口
定义白名单
config.xml
symbols.xml
定义AMS的aidl接口:IActivityManager.aidl
AMS中实现aidl接口:ActivityManagerService.java
提供app调用接口:ActivityManager.java
(app通过代理类调用ams函数)
(app通过代理类调用ams函数)
调用ams接口,修改adj值,实现保活功能:
动态修改current.txt
编译时会报错,根据提示执行make update-api。动态修改frameworks/base/api/ current.txt
frameworks/base/api/ current.txt
test Demo测试
copy framework.jar包到测试项目目录libs
貌似两个路径都可以,将framework.jar拷贝到测试项目的libs目录下
将framework.jar拷贝到测试项目的libs目录下
build.gradle
搭建博创framework
接口框架:UmltechManager
接口框架:UmltechManager
App 使用方法:
import android.app.UmltechManager;
this.getSystemService(UmltechManager.class).setPersistentServiceAdj();
参考链接:Android10 Framework层添加系统服务
1、定义服务端要实现的aidl接口:IUmltechManager.aidl
2、aidl 添加到 android.bp
3、创建UmltechManagerService文件,也就是aidl的具体实现
4、创建systemServer进程服务调用接口
UmltechManagerInternal.java
UmltechManagerInternal.java
5、将UmltechManagerService添加到系统服务管理器中(即开机启动服务)
SystemServer.java
SystemServer.java
6、创建可由外部使用的接口(app中getSystemService(String serviceName)
获取的服务将调用下面UmltechManager.java中的函数)
获取的服务将调用下面UmltechManager.java中的函数)
7、在Context 配置接口名称:Context.java
8、注册服务(app中getSystemService()将调用创建服务)
SystemServiceRegistry.java
SystemServiceRegistry.java
9、OomAdjuster.java通过LocalServices.getService
调用UmltechManager中方法
调用UmltechManager中方法
10、selinux配置策略(没有配置权限的话,服务中相关api供外部调用会提示错误)
26,27,28配置同29。必须都配置,否则编译报错
26,27,28配置同29。必须都配置,否则编译报错
11、编译时会报错,根据提示执行make api-stubs-docs-update-current-api。
动态修改frameworks/base/api/ current.txt
动态修改frameworks/base/api/ current.txt
12 通过service list | grep uml_tech可查询服务是否存在
收藏
收藏
0 条评论
下一页