diff --git a/Android.mk b/Android.mk index 12e5b2c0b1ea07ea9a1cee266e957ffb48d3cfa3..351078ff19d82397d3262f1949eb08b54f6f8716 100644 --- a/Android.mk +++ b/Android.mk @@ -27,4 +27,15 @@ LOCAL_PATH := $(call my-dir) ifneq ($(filter beckham, $(TARGET_DEVICE)),) include $(call all-makefiles-under,$(LOCAL_PATH)) + +MODS_LIBS := libmodhw.so +MODS_SYMLINKS := $(addprefix $(TARGET_OUT)/priv-app/ModFmwkProxyService/lib/arm64/,$(notdir $(MODS_LIBS))) +$(MODS_SYMLINKS): $(LOCAL_INSTALLED_MODULE) + @echo "MODS lib link: $@" + @mkdir -p $(dir $@) + @rm -rf $@ + $(hide) ln -sf /system/lib64/$(notdir $@) $@ + +ALL_DEFAULT_INSTALLED_MODULES += $(MODS_SYMLINKS) + endif diff --git a/device.mk b/device.mk index 097797e33508349c83d9262b04e4d37aa991b5d2..d93f9c878f0350ba023925dc68abfa43b77e18f1 100644 --- a/device.mk +++ b/device.mk @@ -50,7 +50,8 @@ PRODUCT_COPY_FILES += \ # Init PRODUCT_PACKAGES += \ - init.beckham.rc + init.beckham.rc \ + init.gbmods.sh # NFC PRODUCT_PACKAGES += \ diff --git a/overlay/lineage-sdk/lineage/res/res/values/config.xml b/overlay/lineage-sdk/lineage/res/res/values/config.xml index dd3b39cc61f6bb6d528a30a0b184941ebca4e513..51b50e253fce2ffdb53ed8ab97d8689d69d0a331 100644 --- a/overlay/lineage-sdk/lineage/res/res/values/config.xml +++ b/overlay/lineage-sdk/lineage/res/res/values/config.xml @@ -58,4 +58,9 @@ config to 7. --> <integer name="config_deviceHardwareWakeKeys">64</integer> + <!-- The list of vendor package signatures that should also be considered + platform signatures, specifically for use on devices with a vendor partition. --> + <string-array name="config_vendorPlatformSignatures" translatable="false"> + <item>308203c5308202ada003020102020213ae300d06092a864886f70d01010505003076310b30090603550406130255533111300f06035504081308496c6c696e6f6973311530130603550407130c4c69626572747976696c6c653111300f060355040a13084d6f746f726f6c61310c300a060355040b13034d4d49311c301a06035504031313436f6d6d6f6e204d6f746f424c555220322d31301e170d3131303331353232343430355a170d3336303331353232343430355a3078310b30090603550406130255533111300f06035504081308496c6c696e6f6973311530130603550407130c4c69626572747976696c6c653111300f060355040a13084d6f746f726f6c61310c300a060355040b13034d4d49311e301c06035504031315436f6d6d6f6e204d6f746f424c555220322d312d3130820122300d06092a864886f70d01010105000382010f003082010a0282010100bdbc690d0a26c6c953c5900b1ebb303ee791edbad39950f1b185cfc75f9cc6268a4cb7aadf4eb87d3ba7bf982e0ede6a9e3a41b07d84a626b4bd6e37a9feb4a96add829913e7b5e7a9575616f91f22c6dcec9e0293183d419d50f62756b22cd6d8284f8be17fa1c422eac27738c3a9c937d0313e3417ab6f4bb2cdc13f2f77b160b0ff87357b8983d8ea729a7135d88020c6fbca873f78f567a4092cdf28999d459cb8943d7b1e6e35cde5b035fdb63944b78d026fd291476fc385df694e42b1db443dd1ffb427f37d26dcd8cf1d8380fe6a094c1b45c924f1addd2e90d67a32bb8de5b146f47c7bfeae5286c810fa51762b073b58dabf6494a47032595f60410203010001a35b3059301f0603551d23041830168014b3c62fe567c28d4489abc7abbdce60030ca6b62c301106096086480186f8420101040403020410300e0603551d0f0101ff0404030205e030130603551d25040c300a06082b06010505070303300d06092a864886f70d010105050003820101001384fcff397bbc871c55033830f4ca3de5c7d47116c79eb6c0ae152faec03a284c44bc39e3d3756467da60fa89cdd6546e4fd4b182faba3e833093ad8d6b975b5d72836e784f3e3a0ac34d7e83efbfa6c9601e54200415f5ccfcb2555430249ce5794e493f7a4c534b984ac3810ba09bcc9c5e7d985ff1b0902676ce1546301e91089614167b6b562c8585fea36ef6af6c350d77bad00a234755364eeb0be232d2561fb3e6535991c54a1f46f528a82139b7c62dddc53478d59aa593e79fb0f4610320072378f6101aced914e5da439e223900c46ef19d00763c4c315402ea82b14119a276fe40684bfad8c6bd16611c0b972daa5d18f2dfdd1f9bb1ca7aedfd</item> + </string-array> </resources> diff --git a/proprietary-files.txt b/proprietary-files.txt index 65cc3859a7f37eb849d0d9a0377ae044e5170f50..958ee5e9e1b510b957c2db1582121b296131174f 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -422,8 +422,29 @@ vendor/lib64/libkeymasterdeviceutils.so vendor/lib64/libkeymasterprovision.so vendor/lib64/libkeymasterutils.so +# Moto Mods +-priv-app/ModFmwkProxyService/ModFmwkProxyService.apk|36fdc66b39643433d2ffa46c986e300c6e6f7288 +etc/firmware/upd-00000126-00001001-fed70128-fffe0001-02.tftf +etc/permissions/com.motorola.aov.xml +etc/permissions/com.motorola.mod.protocols.xml +etc/permissions/com.motorola.mod.xml|b25e55275b7ecc5f4d46db52c6148fe7c75ff60b +lib64/libmodhw.so +-priv-app/ModService/ModService.apk:priv-app/ModService/ModService.apk;PRESIGNED +-priv-app/ProjectorApp/ProjectorApp.apk:priv-app/ProjectorApp/ProjectorApp.apk;PRESIGNED +vendor/bin/mods_camd +vendor/lib/libmodmanager.so +vendor/lib64/libmodmanager.so +vendor/lib64/com.motorola.mod@1.0_vendor.so +vendor/lib/com.motorola.mod@1.0_vendor.so + # NFC vendor/lib64/libpn553_fw.so +# Other Sensors +vendor/lib64/sensors.iio.so +vendor/lib/sensors.iio.so +vendor/lib64/libiio.so +vendor/lib/libiio.so + # Thermal etc/thermal-engine-beckham.conf:vendor/etc/thermal-engine.conf diff --git a/rootdir/Android.mk b/rootdir/Android.mk index b6cefd641fd3317f8c7192b95025f94cebe79f10..f18f4d872cb8d48aaec7ce8a7cc7e473f30c39bb 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -11,3 +11,11 @@ LOCAL_SRC_FILES := etc/init.beckham.rc LOCAL_VENDOR_MODULE := true LOCAL_MODULE_RELATIVE_PATH := init/hw include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.gbmods.sh +LOCAL_MODULE_TAGS := optional eng +LOCAL_MODULE_CLASS := EXECUTABLES +LOCAL_SRC_FILES := bin/init.gbmods.sh +LOCAL_VENDOR_MODULE := true +include $(BUILD_PREBUILT) diff --git a/rootdir/bin/init.gbmods.sh b/rootdir/bin/init.gbmods.sh new file mode 100755 index 0000000000000000000000000000000000000000..c692e13498de7187fff112504f1b7357f71bfa46 --- /dev/null +++ b/rootdir/bin/init.gbmods.sh @@ -0,0 +1,30 @@ +#!/vendor/bin/sh + +debug=$(getprop ro.boot.gbdebug 2> /dev/null) +bootmode=$(getprop ro.bootmode 2> /dev/null) + +# If androidboot.gbdebug is set on command line, skip inserting +# the pre-installed modules. +if [ "$debug" == "1" ]; then + return 0 +fi + +insmod /vendor/lib/modules/greybus.ko + +# Only support PTP and BATTERY in charge-only mode +if [ "$bootmode" == "charger" ]; then + insmod /vendor/lib/modules/gb-mods.ko + insmod /vendor/lib/modules/gb-battery.ko + insmod /vendor/lib/modules/gb-ptp.ko + + return 0 +fi + +gbmods="/vendor/lib/modules/gb-*" +for mod in $gbmods +do + insmod $mod +done + +insmod /vendor/lib/modules/v4l2-hal.ko +start vendor.mods_camd diff --git a/rootdir/etc/init.beckham.rc b/rootdir/etc/init.beckham.rc index 816a92382fb596f6fd0724be17e6db64631316a4..ba3ca25a596912dda04a75c4c672f0844818f4fb 100644 --- a/rootdir/etc/init.beckham.rc +++ b/rootdir/etc/init.beckham.rc @@ -38,3 +38,20 @@ on property:ro.vendor.hw.dualsim=true on property:ro.vendor.hw.dualsim=false setprop persist.radio.multisim.config "" + +on post-fs-data + # Start Loading mods kernel modules + start vendor.gbmodinstall + +service vendor.mods_camd /vendor/bin/mods_camd + class late_start + user camera + group camera system inet input graphics + disabled + rlimit 14 4 4 + ioprio rt 4 + +service vendor.gbmodinstall /vendor/bin/init.gbmods.sh + user root + oneshot + disabled