Fix shell issues

This commit is contained in:
Timmy Welch 2025-02-16 13:34:52 -08:00
parent ff422dbc23
commit 195b558057
4 changed files with 25 additions and 17 deletions

View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/system/bin/sh
$BOOTMODE || abort "! must be installed in the running system"
if [[ -e /proc/config.gz ]]; then
zcat /proc/config.gz | grep -Eq 'CONFIG_USB_(CONFIGFS_)?F_HID=[my]' || abort "! kernel does not have the required modules"
@ -8,7 +8,8 @@ else
mkdir /config/usb_gadget/g1/functions/hid.usb0 || abort "! kernel does not have the required modules"
fi
chmod 755 "$MODPATH/system/bin/ghid.sh"
sed -i -e "s@\[MODDIR\]@${MODPATH%_update}@g" "$MODPATH/system/bin/ghid.sh"
chmod 755 "$MODPATH/service.sh"
sed -i -e "s@\[MODDIR\]@${MODPATH%_update/ghid}/ghid@g" "$MODPATH/system/bin/ghid.sh"
mkdir -p "$MODPATH/system/system_ext/etc/selinux/" "$MODPATH/system/etc"
{

View File

@ -1,6 +1,6 @@
id=ghid
name=ghid
version=0.12.69
versionCode=69
version=0.12.78
versionCode=78
author=lordwelch
description=creates ghid device files in /dev
description=creates hidg device files in /dev

2
service.sh Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/system/bin/sh
ueventd=$(getprop init.svc.ueventd)
if [ "$ueventd" = "running" ]; then
# ueventd ensures that the correct permissions get applied, it may also apply the correct selabel, not sure

29
system/bin/ghid.sh Normal file → Executable file
View File

@ -3,16 +3,16 @@
controller=$(getprop sys.usb.controller)
moddir=[MODDIR]
exec >>$moddir/ghid.log
exec 2>>$moddir/ghid.log
exec >>"$moddir"/ghid.log
exec 2>>"$moddir"/ghid.log
date
set -o xtrace
set -o nohup
set +o errexit
set +o sh
set +o posix
exec >>$moddir/oghid.log
exec 2>>$moddir/oghid.log
exec >>"$moddir"/oghid.log
exec 2>>"$moddir"/oghid.log
remove_ghid() {
echo "disabling ghid"
@ -29,7 +29,7 @@ enable_ghid() {
current_subclass="$(cat /config/usb_gadget/g1/functions/hid.usb0/subclass)"
current_report_length="$(cat /config/usb_gadget/g1/functions/hid.usb0/report_length)"
if [ -e /config/usb_gadget/g1/functions/hid.usb0 -a "$current_protocol" == "$protocol" -a "$current_subclass" == "$subclass" -a "$current_report_length" == "$report_length" ] && diff "$moddir/reports/$report_name" /config/usb_gadget/g1/functions/hid.usb0/report_desc; then
if [ -e /config/usb_gadget/g1/functions/hid.usb0 ] && [ "$current_protocol" = "$protocol" ] && [ "$current_subclass" = "$subclass" ] && [ "$current_report_length" = "$report_length" ] && diff "$moddir/reports/$report_name" /config/usb_gadget/g1/functions/hid.usb0/report_desc; then
echo nothing to update
cd /config/usb_gadget/g1/configs/b.1/
/data/adb/magisk/busybox ln -nsf ../../../../usb_gadget/g1/functions/hid.usb0 ./fhid
@ -38,17 +38,24 @@ enable_ghid() {
echo new ghid
echo protocol: $protocol
echo subclass: $subclass
echo report_length: $report_length
echo protocol: "$protocol"
echo subclass: "$subclass"
echo report_length: "$report_length"
echo $protocol >/config/usb_gadget/g1/functions/hid.usb0/protocol
echo $subclass >/config/usb_gadget/g1/functions/hid.usb0/subclass
echo $report_length >/config/usb_gadget/g1/functions/hid.usb0/report_length
echo "$protocol" >/config/usb_gadget/g1/functions/hid.usb0/protocol
echo "$subclass" >/config/usb_gadget/g1/functions/hid.usb0/subclass
echo "$report_length" >/config/usb_gadget/g1/functions/hid.usb0/report_length
cat "$moddir/reports/$report_name" >/config/usb_gadget/g1/functions/hid.usb0/report_desc
cd /config/usb_gadget/g1/configs/b.1/
/data/adb/magisk/busybox ln -nsf ../../../../usb_gadget/g1/functions/hid.usb0 ./fhid
# Normally we would let init take care of this but if we are connected when we boot up,
# init will have already set this before we can setup the hid device
if [ "$(getprop sys.boot_completed)" != "1" ]; then
echo none >/config/usb_gadget/g1/UDC
echo "$controller" >/config/usb_gadget/g1/UDC
fi
}
echo success ghid was run with: "$@"