Добавил скрипт на телефон /system/etc/init.fairnet.sh :
#!/system/bin/sh
insmod /system/lib/modules/xt_HL.ko
lsmod > /system/etc/curlsmod
/system/bin/iptables -t mangle -L > /system/etc/preiptables
/system/bin/iptables -t mangle -A POSTROUTING -o rmnet+ -j TTL --ttl-set 64
/system/bin/iptables -t mangle -L > /system/etc/postiptables
Прошил телефон пересобранным образом ядра, изменив init.sony.rc - по триггеру завершения загрузки добавил свой сервис fairnet :
on property:dev.bootcomplete=1
start fota-snoop # системный сервис
start fota-trigger # системный сервис
start startup-prober # системный сервис
start fairnet # мой сервис
сам сервис:
service fairnet /system/bin/sh /system/etc/init.fairnet.sh
user root
group root
disabled
oneshot
права и пользователь скрипта:
-rw-r--r-- root root 280 2018-01-09 01:03 init.fairnet.sh
Самая интересная штука, что при запуске вроде скрипт действительно исполняется, но только частично, т.к. модуль xt_HL.ko действительно загружается, а вот файлы вывода не создаются, и правила iptables также не меняются. Если выполнить скрипт вручную после запуска системы, то все ок, но при загрузке выполняется только первая команда скрипта, я в недоумении как вообще это возможно, чтобы скрипт выполнялся частично. Скорее всего остальные команды просто не валидны при выполнении из загрузки, но я не могу понять почему.
init, iptables, shell