diff --git a/recipes-openharmony/openharmony/files/openharmony-preinit b/recipes-openharmony/openharmony/files/openharmony-preinit new file mode 100644 index 0000000000000000000000000000000000000000..9501a150d36a260b01d1493ac7aa3efec7832524 --- /dev/null +++ b/recipes-openharmony/openharmony/files/openharmony-preinit @@ -0,0 +1,84 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +#!/bin/sh + +mkdir -p /data/backup +mkdir -p /data/bootchart +mkdir -p /data/cache +mkdir -p /data/cache/backup +mkdir -p /data/cache/backup_stage +mkdir -p /data/cache/recovery +mkdir -p /data/data/.pulse_dir +mkdir -p /data/dhcp +mkdir -p /data/drm +mkdir -p /data/local/tmp +mkdir -p /data/local/traces +mkdir -p /data/lost +mkdir -p /data/mediadrm +mkdir -p /data/media/obb +mkdir -p /data/misc/apns +mkdir -p /data/misc/audioserver +mkdir -p /data/misc/bluedroid +mkdir -p /data/misc/bluetooth/logs +mkdir -p /data/misc/boottrace +mkdir -p /data/misc/cameraserver +mkdir -p /data/misc/carrierid +mkdir -p /data/misc_ce +mkdir -p /data/misc_de +mkdir -p /data/misc/dhcp +mkdir -p /data/misc/ethernet +mkdir -p /data/misc/gatekeeper +mkdir -p /data/misc/gcov +mkdir -p /data/misc/keychain +mkdir -p /data/misc/keystore +mkdir -p /data/misc/media +mkdir -p /data/misc/net +mkdir -p /data/misc/network_watchlist +mkdir -p /data/misc/perfprofd +mkdir -p /data/misc/profiles/cur +mkdir -p /data/misc/profiles/ref +mkdir -p /data/misc/profman +mkdir -p /data/misc/radio +mkdir -p /data/misc/recovery/proc +mkdir -p /data/misc/shared_relro +mkdir -p /data/misc/sms +mkdir -p /data/misc/systemkeys +mkdir -p /data/misc/textclassifier +mkdir -p /data/misc/trace +mkdir -p /data/misc/update_engine +mkdir -p /data/misc/update_engine_log +mkdir -p /data/misc/user +mkdir -p /data/misc/vold +mkdir -p /data/misc/vpn +mkdir -p /data/misc/wifi/sockets +mkdir -p /data/misc/wifi/wpa_supplicant +mkdir -p /data/misc/wmtrace +mkdir -p /data/misc/zoneinfo +mkdir -p /data/nfc/param +mkdir -p /data/ota +mkdir -p /data/ota_package +mkdir -p /data/preloads +mkdir -p /data/resourcefoundation.xml +mkdir -p /data/ss +mkdir -p /data/system_ce +mkdir -p /data/system_de +mkdir -p /data/system/dropbox +mkdir -p /data/system/heapdump +mkdir -p /data/system/users +mkdir -p /data/user +mkdir -p /data/user_de +mkdir -p /data/vendor_ce +mkdir -p /data/vendor_de +mkdir -p /data/vendor/hardware +mkdir -p /data/weston +mkdir -p /usr/lib/dri + +# /dev/binder needs to be rw for all users +chmod 666 /dev/binder + +# /dev/dri/card0 needs to be rw for all users +if [ -c /dev/dri/card0 ]; then + chmod 666 /dev/dri/card0 +fi diff --git a/recipes-openharmony/openharmony/files/openharmony-preinit.service b/recipes-openharmony/openharmony/files/openharmony-preinit.service new file mode 100644 index 0000000000000000000000000000000000000000..873db0daf2c3f59ade21ac51709cc688722762e5 --- /dev/null +++ b/recipes-openharmony/openharmony/files/openharmony-preinit.service @@ -0,0 +1,9 @@ +[Unit] +Description=OpenHarmony pre-init setup + +[Service] +Type=oneshot +ExecStart=/bin/sh /usr/sbin/openharmony-preinit + +[Install] +WantedBy=multi-user.target diff --git a/recipes-openharmony/openharmony/files/openharmony-preinit.service.license b/recipes-openharmony/openharmony/files/openharmony-preinit.service.license new file mode 100644 index 0000000000000000000000000000000000000000..98a0b3f4a5b8db268215a128c7d06e0a10897e73 --- /dev/null +++ b/recipes-openharmony/openharmony/files/openharmony-preinit.service.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 diff --git a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb index 6f6bece3b9cd5dee91d504ddc938038224df47cd..e66ae5486f44cbb3d8306ddeae4c4a57dbab5651 100644 --- a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb +++ b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb @@ -347,6 +347,24 @@ copy_subsystem_config_json_file() { inherit systemd SYSTEMD_AUTO_ENABLE = "enable" +# OpenHarmony pre-init package and its systemd service +# Used to create folders needed by OH services and components +PACKAGES =+ "${PN}-openharmony-preinit" +SYSTEMD_PACKAGES = "${PN}-openharmony-preinit" +SYSTEMD_SERVICE:${PN}-openharmony-preinit = "openharmony-preinit.service" +FILES:${PN}-openharmony-preinit = " \ + ${libdir}/openharmony-preinit \ +" +SRC_URI += "file://openharmony-preinit file://openharmony-preinit.service" +do_install:append() { + install -d ${D}/${sbindir} + install -m 755 ${WORKDIR}/openharmony-preinit ${D}/${sbindir} + + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/openharmony-preinit.service ${D}${systemd_unitdir}/system/ +} +RDEPENDS:${PN} += "${PN}-openharmony-preinit" + # //utils/native component PACKAGES =+ "${PN}-libutilsecurec ${PN}-libutils" FILES:${PN}-libutilsecurec = "${libdir}/libutilsecurec*${SOLIBS}" @@ -370,7 +388,7 @@ RDEPENDS:${PN}-ptest += "${PN}-libutils-ptest" # //base/hiviewdfx/hilog component PACKAGES =+ "${PN}-hilog" -SYSTEMD_PACKAGES = "${PN}-hilog" +SYSTEMD_PACKAGES += "${PN}-hilog" SYSTEMD_SERVICE:${PN}-hilog = "hilogd.service" SRC_URI += "file://hilogd.service" do_install:append() {