3399源码修改

2022-03-04  本文已影响0人  Hilbert1

目录

1、编译

2、修改logo

3、添加luancher,添加mei_vod

4、修改heapsize

5、去掉 无用系统APK

6、去掉屏保

7、去掉我知道了

8、修改setting

9、支持双HDMI显示

1、编译:
解压源码:
1、合并源码 cat OK3399-android7-source.7z.00* > OK3399-android7-
source.7z
2、解压源码 有7za x OK3399-android7-source.7
docker镜像已安装编译:
1、docker安装(略)
2、docker镜像还原(略)
3、su到root权限
4、docker start ec7e510963fb f4c2180bbbe3 f4c2180bbbe3(docker容器)
双屏版本 容器 ec7e510963fb
5、docker exec -it ec7e510963fb bin/bash
编译:
1、cd /root/meiktvandroid/OK3399-android 进入对应目录
2、export USER=$(whoami)
3、source build/envsetup.sh
4、lunch rk3399_all-userdebug
5、./build-rk3399-all.sh -u

安卓编译--USER: unbound variable
由于docker没有设置USER环境变量导致,手动添加后继续编译即可
手动添加:export USER=$(whoami)

编译时可能遇到jack server未启动 jack server 内存不足的问题

2、更改开机logo和动画:
logo: kernel/logo_kernel.bmp
动画:device/rockchip/rk3399/rk3399_all/bootanimation.zip

3、添加luancher
系统权限签名:
Android 平台中 SELinux 将 App 划分为三种,包括没有 platform 签名和系统权限的 untrusted_app,
拥有 platform 签名没有系统权限的 platform_app,和拥有 platform 签名和系统权限的 system_app。本节,
将介绍如何给 apk 签名获得 system 权限。

  1. 制作签名文件
    Android_7.1.2_UM
    FET3399-C、OK3399-C
  1. 设置 andorid studio
    打开任意 android studio 工程,在 AndroidManifest.xml 中添加共享 UID 例如:
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.forlinx.serialporttest"
    android:sharedUserId="android.uid.system" >
    点击“File”->“project structure”:
    image.png

系统预装 Apk 的方法

  1. 在 android 系统中新建目录:
    mkdir packages/apps/serialporttest
    将需要预装的 apk(无需签名)拷贝到目录中以 serialporttest.apk 为例:
    cp serialporttest.apk packages/apps/serialporttest
  2. 在 packages/apps/serialporttest 新建 Android.mk
    Android_7.1.2_UM
    FET3399-C、OK3399-C
  1. 同时修改 device/rockchip/rk3399/device.mk 添加
    PRODUCT_PACKAGES += \
    serialporttest
  2. 重新编译镜像。

4、修改heapsize
frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk

6、去屏保
ok3399:do not lock screen default

diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index f4cefc2..7734cfd 100644
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -80,7 +80,7 @@
<string name="def_trusted_sound" translatable="false">/system/media/audio/ui/Trusted.ogg</string>
<string name="def_wireless_charging_started_sound" translatable="false">/system/media/audio/ui/WirelessChargingStarted.ogg</string>

源码路径:/frameworks/base/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java
修改代码去掉handleShow即可:

     @Override
     public void handleMessage(Message msg) {
         switch(msg.what) {
             case SHOW:
-           handleShow();
+           //handleShow();
                 break;
             case HIDE:
                 handleHide();
                 break;
         }
     }
 }

9、支持双HDMI显示:
kernel/arch/arm64/boot/dts/rockchip/ok3399.dts 文件第626行:
修改为:

  forlinx_control {
      status = "okay";
      primary-display = "DSI0-lvds@l";
      secondary-display = "HDMI@b";
  };
image.png

10、清理编译
1、在源码目录的根目录下,makeclean;

2、进到源码的\linux\kernel\目录下,执行makemrproper;

3、再退回到根目录,执行sourcebuild/envsetup.sh,lunch,make.

上一篇下一篇

猜你喜欢

热点阅读