3399源码修改
目录
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 权限。
- 制作签名文件
Android_7.1.2_UM
FET3399-C、OK3399-C
- 88 - www.forlinx.com
将 Android 系统中 build/target/product/security/platform.x509.pem 以及
build/target/product/security/platform.pk8 拷贝到 windows 中。
打开命令行窗口执行:
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name
androiddebugkey
输入密码:android
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore
debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias
androiddebugkey
其中 key-alias 以及 password 您可以根据需求修改为其它内容。将签名文件 debug.keystore 文
件保存到您的常用目录中。
注意:如果您的 windows 系统中没有 openssl 命令,请前往 http://slproweb.com/products/Win32O
penSSL.html 下载安装,并设置环境变量。
- 设置 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 的方法
- 在 android 系统中新建目录:
mkdir packages/apps/serialporttest
将需要预装的 apk(无需签名)拷贝到目录中以 serialporttest.apk 为例:
cp serialporttest.apk packages/apps/serialporttest - 在 packages/apps/serialporttest 新建 Android.mk
Android_7.1.2_UM
FET3399-C、OK3399-C
- 91 - www.forlinx.com
LOCAL_PATH := (CLEAR_VARS)
LOCAL_MODULE := serialporttest
LOCAL_SRC_FILES := serialporttest.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := .apk
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_CERTIFICATE := platform
LOCAL_DEX_PREOPT := false
LOCAL_PRIVILEGED_MODULE := true
include $(BUILD_PREBUILT)
- 同时修改 device/rockchip/rk3399/device.mk 添加
PRODUCT_PACKAGES += \
serialporttest - 重新编译镜像。
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>
- <bool name="def_lockscreen_disabled">false</bool>
-
<bool name="def_lockscreen_disabled">true</bool>
<bool name="def_device_provisioned">false</bool>
<integer name="def_dock_audio_media_enabled">1</integer>
7、去掉我知道了:
91f421fb2a18f884999fc0ccc5a7073d.jpg
源码路径:/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.