3399源碼修改

目錄

1、編譯

2、修改logo

3、添加luancher,添加mei_vod

4、修改heapsize

5、去掉 無用系統(tǒng)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.7z
docker鏡像已安裝編譯:
1、docker安裝(略)
2、docker鏡像還原(略)
3、su到root權(quán)限
4、docker start ec7e510963fb f4c2180bbbe3 f4c2180bbbe3(docker容器)
雙屏版本 容器 ec7e510963fb
5、docker exec -it ec7e510963fb bin/bash
編譯:
1、cd /root/meiktvandroid/OK3399-android 進(jìn)入對(duì)應(yīng)目錄
2、export USER=$(whoami)
3、source build/envsetup.sh
4、lunch rk3399_all-userdebug
5、./build-rk3399-all.sh -u

安卓編譯--USER: unbound variable
由于docker沒有設(shè)置USER環(huán)境變量導(dǎo)致,手動(dòng)添加后繼續(xù)編譯即可
手動(dòng)添加:export USER=$(whoami)

編譯時(shí)可能遇到j(luò)ack server未啟動(dòng) jack server 內(nèi)存不足的問題

2、更改開機(jī)logo和動(dòng)畫:
logo: kernel/logo_kernel.bmp
動(dòng)畫:device/rockchip/rk3399/rk3399_all/bootanimation.zip

3、添加luancher
系統(tǒng)權(quán)限簽名:
Android 平臺(tái)中 SELinux 將 App 劃分為三種,包括沒有 platform 簽名和系統(tǒng)權(quán)限的 untrusted_app,
擁有 platform 簽名沒有系統(tǒng)權(quán)限的 platform_app,和擁有 platform 簽名和系統(tǒng)權(quán)限的 system_app。本節(jié),
將介紹如何給 apk 簽名獲得 system 權(quán)限。

  1. 制作簽名文件
    Android_7.1.2_UM
    FET3399-C、OK3399-C
  • 88 - www.fo+rlinx.com
    將 Android 系統(tǒng)中 build/target/product/security/platform.x509.pem 以及
    build/target/product/security/platform.pk8 拷貝到 windows 中。
    打開命令行窗口執(zhí)行:
    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 您可以根據(jù)需求修改為其它內(nèi)容。將簽名文件 debug.keystore 文
    件保存到您的常用目錄中。
    注意:如果您的 windows 系統(tǒng)中沒有 openssl 命令,請(qǐng)前往 http://slproweb.com/products/Win32O
    penSSL.html 下載安裝,并設(shè)置環(huán)境變量。
  1. 設(shè)置 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" >
    點(diǎn)擊“File”->“project structure”:
    image.png

系統(tǒng)預(yù)裝 Apk 的方法

  1. 在 android 系統(tǒng)中新建目錄:
    mkdir packages/apps/serialporttest
    將需要預(yù)裝的 apk(無需簽名)拷貝到目錄中以 serialporttest.apk 為例:
    cp serialporttest.apk packages/apps/serialporttest
  2. 在 packages/apps/serialporttest 新建 Android.mk
    Android_7.1.2_UM
    FET3399-C、OK3399-C
  • 91 - www.forlinx.com
    LOCAL_PATH := (call my-dir) include(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)
  1. 同時(shí)修改 device/rockchip/rk3399/device.mk 添加
    PRODUCT_PACKAGES += \
    serialporttest
  2. 重新編譯鏡像。

4、修改heapsize
frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk
查看heapsize
adb shell getprop dalvik.vm.heapsize

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、在源碼目錄的根目錄下,make clean;

2、進(jìn)到源碼的\linux\kernel\目錄下,執(zhí)行make mrproper;

3、再退回到根目錄,執(zhí)行sourcebuild/envsetup.sh,lunch,make.

11、修改龍訊口分辨率為1920x1080 以及時(shí)鐘頻率,30hz不黑屏
kernel/arch/arm64/boot/dts/rockchip/ok3399.dts 文件第749-757行:

     clock-frequency = <83764800>;
                 hactive = <1280>;
                 vactive = <800>;
                 hback-porch = <200>;
                 hfront-porch = <72>;
                 vback-porch = <22>;
                 vfront-porch = <3>;
                 hsync-len = <128>;
                 vsync-len = <6>;

改成

         clock-frequency = <74250000>;
                 hactive = <1920>;
                 vactive = <1080>;
                 hback-porch = <148>;
                 hfront-porch = <88>;
                 vback-porch = <36>;
                 vfront-porch = <4>;
                 hsync-len = <44>;
                 vsync-len = <5>;

11、修改北京雙音頻空板子 音頻取反(2023-2-23修改,不用取反,取反后音頻輸出只走HDMI)
kernel/arch/arm64/boot/dts/rockchip/ok3399.dts 文件第551行:

headset_gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;

改成

headset_gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;

硬件上R200電阻短路

12、去除調(diào)節(jié)到最大音量有彈框問題
/frameworks/base/core/res/values/config.xml

<bool name="config_safe_media_volume_enabled">true</bool>

改成

<bool name="config_safe_media_volume_enabled">false</bool>

13、修改HDMI原生口超時(shí)時(shí)間
kernel/drivers/iommu/rockchip-iommu.c

read_wa:
    rk_iommu_command(iommu, RK_MMU_CMD_ENABLE_STALL);
    if (iommu->skip_read)
        return 0;
        /* modify by xingchun 1 modify 5 2022-9-30 */
    ret = rk_wait_for(rk_iommu_is_stall_active(iommu), 1);
    if (ret)
        for (i = 0; i < iommu->num_mmu; i++)
            dev_err(iommu->dev, "Enable stall request timed out, status: %#08x\n",
                rk_iommu_read(iommu->bases[i], RK_MMU_STATUS));

    return ret;
}

改成

read_wa:
    rk_iommu_command(iommu, RK_MMU_CMD_ENABLE_STALL);
    if (iommu->skip_read)
        return 0;
        /* modify by xingchun 1 modify 5 2022-9-30 */
    ret = rk_wait_for(rk_iommu_is_stall_active(iommu), 5);
    if (ret)
        for (i = 0; i < iommu->num_mmu; i++)
            dev_err(iommu->dev, "Enable stall request timed out, status: %#08x\n",
                rk_iommu_read(iommu->bases[i], RK_MMU_STATUS));

    return ret;
}

12、修改型號(hào)
/device/rockchip/rk3399/rk3399.mk
device/rockchip/rk3399/rk3399_all/buildspec.mk
修改gpu 版本號(hào)

device/rockchip/rk3399/rk3399_all.mk
修改
persist.sys.framebuffer.aux=5760x1080@60
改成
persist.sys.framebuffer.aux=5760x2160@60 \

PRODUCT_NAME := rk3399_all

PRODUCT_DEVICE := rk3399_all

PRODUCT_MODEL := rk3399-all

改成
PRODUCT_NAME := AM-001A
PRODUCT_DEVICE := AM-001A
PRODUCT_MODEL := AM-001A

device/rockchip/common/common.mk:PRODUCT_BRAND := AM010
device/rockchip/common/common.mk:PRODUCT_MANUFACTURER := AM010
device/rockchip/rk3399/BoardConfig.mk:PRODUCT_DEVICE := AM010
device/rockchip/rk3399/BoardConfig.mk:PRODUCT_NAME := AM010
device/rockchip/rk3399/BoardConfig.mk:PRODUCT_MODEL := AM010

device/rockchip/common/common.mk:PRODUCT_DEVICE := meisdk
device/rockchip/common/common.mk:PRODUCT_NAME := meisdk
device/rockchip/common/common.mk:PRODUCT_MODEL := meisdk
13、修改版本號(hào)
14、unbutu啟動(dòng)不了,磁盤空間不夠 解決方案
參考:https://blog.csdn.net/xiaotaiyangzuishuai/article/details/118143508
15、修改uboot 修復(fù)龍訊口概率黑屏問題 uboot飛凌未開源 2023-2-23
賬號(hào) root 密碼ktvmei

16、
想要多個(gè)網(wǎng)卡同時(shí)使用,首先就要解決多網(wǎng)卡共存問題。Android系統(tǒng)默認(rèn)會(huì)將不需要的網(wǎng)絡(luò)給關(guān)閉的,以降低功耗。所以要解決以太網(wǎng)與Wi-Fi共存問題,需要做如下改動(dòng):

--- a/frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetNetworkFactory.java

+++ b/frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetNetworkFactory.java

@@ -146,7 +146,8 @@ class EthernetNetworkFactory {

*/

private void updateInterfaceState(String iface, boolean up) {

if (!mIface.equals(iface)) {

- //return;

+ if(iface.equals("eth1")){ //增加一個(gè)判斷優(yōu)化影響wifi問題

+ mIface = iface; //更新mIface后面dhcp IP用

+ }else{

+ return;

+ }

}

Log.d(TAG, "updateInterface: " + iface + " link " + (up ? "up" : "down"));

17、修改聲卡驅(qū)動(dòng)
聲卡驅(qū)動(dòng)所在目錄:
/hardware/rockchip/audio/tinyalsa_hal/codec_config/wm8960_config_h

51ba0b2d5bbf7ed40a70fad058e7967.jpg

bb1d09370affcfd63ae37386912091d.jpg

18.去掉USB彈框權(quán)限
https://blog.csdn.net/weixin_32658257/article/details/117348616

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評(píng)論 6 546
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,814評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評(píng)論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評(píng)論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,779評(píng)論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,109評(píng)論 1 330
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評(píng)論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,287評(píng)論 0 291
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,799評(píng)論 1 338
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,515評(píng)論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,750評(píng)論 1 375
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評(píng)論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,933評(píng)論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評(píng)論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,492評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,703評(píng)論 2 380

推薦閱讀更多精彩內(nèi)容