From a71dfc7c0712edbf60a4ddb152bbca245757778d Mon Sep 17 00:00:00 2001 From: Ziyang Zhou Date: Sun, 16 Oct 2022 09:22:29 +0800 Subject: [PATCH] add uinputd (virtual input) --- Android.mk | 6 ++++++ prebuilts.mk | 1 + prebuilts/aarch64/bin/uinputd | Bin 0 -> 45352 bytes prebuilts/aarch64/share/uinputd/uinputd.rc | 5 +++++ prebuilts/x86_64/bin/uinputd | Bin 0 -> 46464 bytes prebuilts/x86_64/share/uinputd/uinputd.rc | 5 +++++ 6 files changed, 17 insertions(+) create mode 100755 prebuilts/aarch64/bin/uinputd create mode 100644 prebuilts/aarch64/share/uinputd/uinputd.rc create mode 100755 prebuilts/x86_64/bin/uinputd create mode 100644 prebuilts/x86_64/share/uinputd/uinputd.rc diff --git a/Android.mk b/Android.mk index dab475f..3f6c005 100644 --- a/Android.mk +++ b/Android.mk @@ -160,6 +160,7 @@ $(foreach lib,$(evdev_libs),\ # $(1): module name (and file name) # $(2): depended modules +# $(3): init.rc define define-redroid-prebuilt-bin include $$(CLEAR_VARS) LOCAL_MODULE := $1 @@ -171,6 +172,9 @@ LOCAL_MODULE_TAGS := optional LOCAL_PROPRIETARY_MODULE := true LOCAL_CHECK_ELF_FILES := false LOCAL_REQUIRED_MODULES := $2 +ifneq ($3,) +LOCAL_INIT_RC := prebuilts/$$(TARGET_ARCH)/share/$3 +endif include $$(BUILD_PREBUILT) endef @@ -183,3 +187,5 @@ $(foreach i,$(bins),\ bins:=ffmpeg ffprobe $(foreach i,$(bins),\ $(eval $(call define-redroid-prebuilt-bin,$(i),$(ffmpeg_libs)))) + +$(eval $(call define-redroid-prebuilt-bin,uinputd,$(evdev_libs),uinputd/uinputd.rc)) diff --git a/prebuilts.mk b/prebuilts.mk index 75a9d3c..8c63877 100644 --- a/prebuilts.mk +++ b/prebuilts.mk @@ -10,6 +10,7 @@ PRODUCT_PACKAGES += \ gralloc.gbm \ ffmpeg \ ffprobe \ + uinputd \ # vaapi diff --git a/prebuilts/aarch64/bin/uinputd b/prebuilts/aarch64/bin/uinputd new file mode 100755 index 0000000000000000000000000000000000000000..29788f454dc7bc2d49c39e7db6a6f1b70cbfe85d GIT binary patch literal 45352 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 bFH#jyCE5R_C@WPV0J(f%11M#xx`X}SNf4H7 literal 0 HcmV?d00001 diff --git a/prebuilts/aarch64/share/uinputd/uinputd.rc b/prebuilts/aarch64/share/uinputd/uinputd.rc new file mode 100644 index 0000000..0b76af6 --- /dev/null +++ b/prebuilts/aarch64/share/uinputd/uinputd.rc @@ -0,0 +1,5 @@ +service vendor.uinputd /vendor/bin/uinputd + disabled + +on property:ro.boot.use_redroid_stream=1 + start vendor.uinputd diff --git a/prebuilts/x86_64/bin/uinputd b/prebuilts/x86_64/bin/uinputd new file mode 100755 index 0000000000000000000000000000000000000000..f814361b3ca79572ec2e682e560140d9f4dd005b GIT binary patch literal 46464 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 V!-#}sbs|9_Pku||6Hy)M{{WUymbU-^ literal 0 HcmV?d00001 diff --git a/prebuilts/x86_64/share/uinputd/uinputd.rc b/prebuilts/x86_64/share/uinputd/uinputd.rc new file mode 100644 index 0000000..0b76af6 --- /dev/null +++ b/prebuilts/x86_64/share/uinputd/uinputd.rc @@ -0,0 +1,5 @@ +service vendor.uinputd /vendor/bin/uinputd + disabled + +on property:ro.boot.use_redroid_stream=1 + start vendor.uinputd