diff options
| author | LuK1337 <priv.luk@gmail.com> | 2018-12-21 00:59:16 +0100 |
|---|---|---|
| committer | LuK1337 <priv.luk@gmail.com> | 2018-12-21 01:24:17 +0100 |
| commit | 40dec77c66061f142e84dae7a5c6fa9dda1dcfe7 (patch) | |
| tree | 30783eeb361725876d4bb53668d9a6d7240077f2 | |
| parent | 814853d9886408aaaaf5109f0e8f9e0869f9737d (diff) | |
kirin970-common: Convert odm-init to libinit extension
* This way we aren't violating any neverallow.
Change-Id: I29cd06b4c69e7be9e747e9929eb8162d82243a42
| -rw-r--r-- | BoardConfigCommon.mk | 4 | ||||
| -rw-r--r-- | init/Android.mk (renamed from odm-init/Android.mk) | 10 | ||||
| -rw-r--r-- | init/init_kirin970.cpp (renamed from odm-init/odm-init.cpp) | 19 | ||||
| -rw-r--r-- | kirin970.mk | 4 | ||||
| -rw-r--r-- | rootdir/etc/init.kirin970.rc | 3 | ||||
| -rw-r--r-- | sepolicy/private/file_contexts | 1 | ||||
| -rw-r--r-- | sepolicy/private/odm-init.te | 18 |
7 files changed, 16 insertions, 43 deletions
diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk index 0684787..929d82f 100644 --- a/BoardConfigCommon.mk +++ b/BoardConfigCommon.mk @@ -66,6 +66,10 @@ TARGET_BOARD_INFO_FILE := $(VENDOR_PATH)/board-info.txt # Display TARGET_USES_HWC2 := true +# Init +TARGET_INIT_VENDOR_LIB := libinit_kirin970 +TARGET_RECOVERY_DEVICE_MODULES := libinit_kirin970 + # Lineage hardware JAVA_SOURCE_OVERLAYS := \ org.lineageos.hardware|$(VENDOR_PATH)/lineagehw|**/*.java diff --git a/odm-init/Android.mk b/init/Android.mk index 61fc7a8..b1000a9 100644 --- a/odm-init/Android.mk +++ b/init/Android.mk @@ -18,11 +18,13 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_SRC_FILES := odm-init.cpp +LOCAL_SRC_FILES := init_kirin970.cpp -LOCAL_MODULE := odm-init +LOCAL_C_INCLUDES := system/core/init + +LOCAL_MODULE := libinit_kirin970 LOCAL_MODULE_TAGS := optional -LOCAL_SHARED_LIBRARIES := libbase +LOCAL_STATIC_LIBRARIES := libbase -include $(BUILD_EXECUTABLE) +include $(BUILD_STATIC_LIBRARY) diff --git a/odm-init/odm-init.cpp b/init/init_kirin970.cpp index 86f03ee..ea5b740 100644 --- a/odm-init/odm-init.cpp +++ b/init/init_kirin970.cpp @@ -14,26 +14,21 @@ * limitations under the License. */ -#define LOG_TAG "odm-init" - #include <android-base/file.h> #include <android-base/logging.h> -#include <android-base/properties.h> #include <android-base/strings.h> -#include <algorithm> -#include <cstring> #include <fstream> #include <map> -#include <vector> +#include <property_service.h> constexpr auto CMDLINE_PATH = "/proc/cmdline"; constexpr auto CMDLINE_PRODUCT_ID = "productid"; constexpr auto PHONE_PROP_PATH = "/odm/phone.prop"; using android::base::ReadFileToString; -using android::base::SetProperty; using android::base::Split; using android::base::Trim; +using android::init::property_set; using PropertyPair = std::pair<std::string, std::string>; using PropertiesVector = std::vector<PropertyPair>; @@ -94,28 +89,26 @@ bool GetPropertiesFromPhoneProp(std::map<std::string, PropertiesVector>& out) { return true; } -int main() { +void vendor_load_properties() { std::string productId; if (!GetProductId(productId)) { - return -1; + return; } std::map<std::string, PropertiesVector> properties; if (!GetPropertiesFromPhoneProp(properties)) { - return -1; + return; } auto it = properties.find(productId); if (it != properties.end()) { for (const auto& prop : properties.at(productId)) { - if (!SetProperty(prop.first, prop.second)) { + if (!property_set(prop.first.c_str(), prop.second.c_str())) { LOG(ERROR) << "Unable to set property " << prop.first << " to " << prop.second; } } } - - return 0; } diff --git a/kirin970.mk b/kirin970.mk index d36b217..65c5208 100644 --- a/kirin970.mk +++ b/kirin970.mk @@ -57,10 +57,6 @@ PRODUCT_PACKAGES += \ PRODUCT_COPY_FILES += \ device/generic/common/nfc/libnfc-nci.conf:system/etc/libnfc-nci.conf -# odm-init -PRODUCT_PACKAGES += \ - odm-init - # Permissions PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.fingerprint.xml:system/etc/permissions/android.hardware.fingerprint.xml \ diff --git a/rootdir/etc/init.kirin970.rc b/rootdir/etc/init.kirin970.rc index ce3e7d5..95802dd 100644 --- a/rootdir/etc/init.kirin970.rc +++ b/rootdir/etc/init.kirin970.rc @@ -13,9 +13,6 @@ on fs mount none /vendor/lost+found /vendor/etc/audio bind mount none /system/etc/audio_policy_configuration.xml /vendor/etc/audio_policy_configuration.xml bind -on post-fs - exec - root -- /system/bin/odm-init - on post-fs-data start teecd diff --git a/sepolicy/private/file_contexts b/sepolicy/private/file_contexts index fc2ecb9..0761e63 100644 --- a/sepolicy/private/file_contexts +++ b/sepolicy/private/file_contexts @@ -41,7 +41,6 @@ # Binaries /system/bin/bfm-ctl u:object_r:bfm-ctl_exec:s0 /system/bin/displayengineserver u:object_r:displayengineserver_exec:s0 -/system/bin/odm-init u:object_r:odm-init_exec:s0 # Configs /system/etc/audio_policy_configuration.xml u:object_r:vendor_configs_file:s0 diff --git a/sepolicy/private/odm-init.te b/sepolicy/private/odm-init.te deleted file mode 100644 index 2d31e33..0000000 --- a/sepolicy/private/odm-init.te +++ /dev/null @@ -1,18 +0,0 @@ -type odm-init, coredomain, domain; -type odm-init_exec, exec_type, file_type; - -# Allow for transition from init domain to odm-init -init_daemon_domain(odm-init) - -# Allow odm-init to read proc_cmdline -allow odm-init proc_cmdline:file r_file_perms; - -# Allow odm-init to read vendor_file -r_dir_file(odm-init, vendor_file) - -# Allow odm-init to set various properties -set_prop(odm-init, config_prop) -set_prop(odm-init, default_prop) -set_prop(odm-init, radio_prop) -set_prop(odm-init, rild_vendor_prop) -set_prop(odm-init, vendor_default_prop) |
