成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony自定義系統應用之實踐介紹

系統 OpenHarmony
本文從文件準備、生成簽名包、系統集成幾個方面,介紹如何在OpenHarmony系統上開發自定義的系統應用,供開發者學習參考。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

前言

OpenHarmony系統應用是指預裝在OpenHarmony操作系統中的應用程序,也稱為系統應用。這些應用程序通常由操作系統開發者開發,包括系統設置、電話、短信、瀏覽器、相機、音樂、視頻等常用應用程序。這些應用程序通常具有更高的權限和更深入的系統集成,可以訪問更多的系統資源和功能。
自定義系統應用是指用戶自己開發或定制的OpenHarmony系統應用程序。用戶可以根據自己的需求和喜好,開發或定制自己的系統應用程序,如主題、鎖屏、桌面、通知欄等。這些應用程序通常具有更高的個性化和定制化,可以滿足用戶更多的需求和偏好。

本文從文件準備、生成簽名包、系統集成幾個方面,介紹如何在OpenHarmony系統上開發自定義的系統應用,供開發者學習參考。

1、文件準備

(1)未簽名應用包

選模板

在DevEco Studio中選擇自定義應用所需的模板。

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

然后選擇自定義應用所需的應用模型、SDK。

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

最后按照模板引導創建ArkTS工程。

編譯包

工程創建成功后,啟動編譯選項,生成未簽名的hap包。

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

編譯成功后,在工程目錄\entry\build\default\outputs\default路徑下,可見生成的未簽名hap包。

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

(2)簽名所需文件

為了保證OpenHarmony應用的完整性和來源可靠,在應用構建時需要對應用進行簽名。經過簽名的應用才能在真機設備上安裝、運行、和調試。
本文介紹的是使用簽名工具以命令行方式進行Hap包簽名的方法,簽名所需文件如下:

  • 簽名密鑰庫文件:OpenHarmony.p12
  • Profile簽名證書:OpenHarmonyProfileRelease.pem、OpenHarmonyProfileDebug.pem
  • Profile模板文件:UnsgnedReleasedProfileTemplate.json、UnsgnedDebugProfileTemplate.json
  • 簽名工具:hap-sign-tool.jar

以上文件可在SDK中會獲得。

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

簽名工具工具詳細說明。

2、生成簽名應用包

(1)修改profile

app1-profile-release.json中會定義當前應用名稱"bundle-name"、應用的權限等級"apl"。
權限等級有normal、system_basic、system_core三種,默認等級為normal,對于系統應用的話,需要修改權限,此處改為system_core。
應用名稱改為用戶自定義的包名即可,此處改為com.example.zjxapp。

{
  "version-name": "2.0.0",
  "version-code": 2,
  "app-distribution-type": "os_integration",
  "uuid": "5027b99e-5f9e-465d-9508-a9e0134ffe18",
  "validity": {
    "not-before": 1594865258,
    "not-after": 1689473258
  },
  "type": "release",
  "bundle-info": {
    "developer-id": "OpenHarmony",
    "distribution-certificate": "-----BEGIN CERTIFICATE-----\nMIICFTCCAZmgAwIBAgIEFRGSbjAMBggqhkjOPQQDAwUAMGMxCzAJBgNVBAYTAkNO\nMRQwEgYDVQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVh\nbTEjMCEGA1UEAxMaT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gQ0EwHhcNMjIwNDAy\nMDY1OTA4WhcNMzIwMzMwMDY1OTA4WjBKMRUwEwYDVQQDDAxpZGVfZGVtb19hcHAx\nDTALBgNVBAsTBFVuaXQxFTATBgNVBAoTDE9yZ2FuaXphdGlvbjELMAkGA1UEBhMC\nQ04wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARGc9ftjM6ncln8AqF0AhTsyphc\nhmKWktwgsZwisqy7X+clViYnbw9WpRRoxJYeZ6GL3MUiOHiM9UDpwOmjdYPOo1Iw\nUDAdBgNVHQ4EFgQUG91q9tKNxBRQgQFzfuSnhrP/mKcwDgYDVR0PAQH/BAQDAgeA\nMB8GA1UdIwQYMBaAFNuGtyIW1QuhS7fdJXu58QV9oi1HMAwGCCqGSM49BAMDBQAD\naAAwZQIweNK78cfmJdBVSMowMukZoIevBFNRNVYaUxxWpbn+X2Y9x8STmxqHhPj6\np0wKd9qnAjEAuU/AuW9NO04joHCJnM0I2PkDWJKw+eJiVc3ggLAOJTE9TfXyN0JM\nUdjqqzpQQj4u\n-----END CERTIFICATE-----\n",
    "bundle-name": "com.example.zjxapp",
    "apl": "system_core",
    "app-feature": "hos_system_app"
  },
  "acls": {
    "allowed-acls": [
      ""
    ]
  },
  "permissions": {
    "restricted-permissions": [
     
    ]
  },
  "issuer": "pki_internal"
}

(2)簽名Profile

Profile簽名流程如下圖:

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

由圖可見,根據sdk中的p12文件、2.1章節的profile文件,可以生成簽名的Profile文件,文件格式為*.p7b;命令如下

java -jar hap-sign-tool.jar  sign-profile -keyAlias "OpenHarmony Application Release" -signAlg "SHA256withECDSA" -mode "localSign" -profileCertFile "OpenHarmonyApplication.pem" -inFile "app1-profile-release.json" -keystoreFile "OpenHarmony.p12" -outFile "profile.p7b" -keyPwd "123456" -keystorePwd "123456"

(3)簽名應用

應用簽名流程如下圖:

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

由圖可見,根據1.1中未簽名的應用包以及2.2簽名的Profile文件,可以生成簽名的應用,命令如下

java -jar hap-sign-tool.jar sign-app -keyAlias "OpenHarmony Application Release" -signAlg "SHA256withECDSA" -mode "localSign" -appCertFile "OpenHarmonyApplication.pem" -profileFile "profile.p7b" -inFile "entry-default-unsigned.hap" -keystoreFile "OpenHarmony.p12" -outFile "zjxapp.hap" -keyPwd "123456" -keystorePwd "123456"

注意:entry-default-unsigned.hap為你未簽名的hap包,zjxapp.hap為簽名后生成的包

3、系統集成

(1)增加hap包

將2.3生成的包拷貝到applications\standard\hap路徑下

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

(2)修改gn文件

gn文件路徑為:\applications\standard\hap\BUILD.gn,在文件中增加如下代碼:

ohos_prebuilt_etc("zjxapp_hap") {
  source = "zjxapp.hap"
  module_install_dir = "app/com.ohos.zjxapp"
  part_name = "prebuilt_hap"
  subsystem_name = "applications"
}

修改依賴項deps,增加zjxapp_hap:

group("hap") {
deps = [
"http://applications/standard/hap:calc_demo_hap",
"http://applications/standard/hap:zjxapp_hap",
]

(3)修改預安裝配置

獲取app_signature

app_signature信息需要在系統預安裝配置中使用,故需要優先生成app_signature。

新建profiler.cer文件

任意路徑下新建一文件,命名為profiler.cer

添加profiler.cer內容

根據2.2生成的p7b文件中distribution-certificate字段的值到profiler.cer文件中,去掉回車符,示例如圖:

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

獲取app_signature

到profiler.cer路徑下,在命令行終端中根據證書文件獲取簽名信息,命令如下:

keytool -printcert -file .\profiler.cer

命令執行后結果如圖所示:

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

將SHA256值去掉冒號即可得到app_signature

修改權限配置文件

修改install_list

根據包名修改vendor\hihope\rk3568\preinstall-config\install_list.json

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

修改install_list_capability

根據包名、app_signature修改vendor\hihope\rk3568\preinstall-config\install_list_capability.json

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

修改install_list_permissions

根據包名、app_signature、以及需要的權限修改vendor\hihope\rk3568\preinstall-config\install_list_permissions.json

OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區OpenHarmony自定義系統應用之實踐介紹-開源基礎軟件社區

(4)編譯燒錄

以上修改完成后,編譯成功,進行燒錄。燒錄成功后,預置的系統應用顯示在桌面上。

4、總結

本文介紹如何在OpenHarmony系統上開發自定義的系統應用,重點介紹了如何使用打包工具命令行方式生成應用簽名包的方法,以及如何修改預置應用配置的步驟,開發者在此基礎上即可開發自定義的系統應用程序,以便更好地提高系統的定制化和個性化、增強系統的功能和競爭力、滿足用戶需求等。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2022-02-21 15:05:09

LauncherOpenHarmon鴻蒙

2011-08-11 11:51:07

iPhone鍵盤

2023-08-10 17:14:52

鴻蒙自定義彈窗

2022-04-07 14:17:15

Harmonytoast組件鴻蒙

2022-03-01 16:09:06

OpenHarmon鴻蒙單選組件

2017-05-19 10:03:31

AndroidBaseAdapter實踐

2023-12-21 09:00:21

函數React 組件useEffect

2017-05-18 12:36:16

android萬能適配器列表視圖

2009-08-04 08:58:01

C#自定義特性

2012-07-24 15:03:19

OpenStack架構

2009-12-23 14:49:46

WPF面板

2022-05-26 14:50:15

ArkUITS擴展

2022-03-21 15:19:27

鴻蒙UI組件ets自定義

2025-01-22 11:10:34

2009-08-28 17:45:19

C#自定義數據

2009-12-24 15:22:10

WPF繼承自定義窗口

2010-08-12 09:45:33

jQuery自定義事件

2022-04-11 11:07:37

HarmonyUI小型系統textarea

2023-06-20 15:45:15

服務卡片鴻蒙

2025-05-15 07:11:51

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区在线观看 | 国内精品久久久久 | 国产高清在线视频 | 91精品一区二区三区久久久久久 | 成人午夜看片 | 91色啪 | 国内av在线 | 国产操操操| 久久国内精品 | 国产精品久久久久久久久久了 | 国产1区2区3区 | 国产在线一区观看 | 欧美精品福利视频 | 天天操天天玩 | 欧美日韩久 | 日韩不卡一区二区 | 久久精品久久久 | 欧美精品福利视频 | 久久一 | 国产在线精品一区二区三区 | 久久亚洲欧美日韩精品专区 | 欧美一级二级在线观看 | 久久久久国产精品午夜一区 | 久草网免费 | 一区视频在线播放 | 视频在线日韩 | 亚洲天堂一区 | av三级| 美女福利网站 | 亚洲免费av一区 | 日本久久www成人免 成人久久久久 | 日本特黄特色aaa大片免费 | 人人爽日日躁夜夜躁尤物 | 一本一道久久a久久精品综合蜜臀 | 国产九一精品 | av中文字幕网| 国产一区三区在线 | av黄色免费在线观看 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | h视频在线免费 | 亚洲一区 中文字幕 |