У меня есть требование, когда мне нужно прочитать интерфейс (например/sys/module/my_file/parameters/val), а затем на основе его значения напишите некоторое значение на другом интерфейсе. Это нужно сделать в init.rc файловой системы Android.
поток будет таким
if ( read /sys/module/my_file/parameters/val == "yes") then
write /sys/devices/platform/target_file/val 100
Может ли кто-нибудь помочь мне сделать то же самое? Является ли это возможным??
Вы можете реализовать это с помощью строфы exec:
exec <path> [ <argument> ]*
Fork and execute a program (<path>). This will block until
the program completes execution. It is best to avoid exec
as unlike the builtin commands, it runs the risk of getting
init "stuck".
Подробнее см. Https://github.com/android/platform_system_core/blob/master/init/readme.txt.
Пример. Переместите код в скрипт (my_script.sh). Добавьте это в свой init.rc
on boot:
...
exec /path/to/my_script.sh
Вы можете использовать концепцию сервиса inits для запуска скрипта. Ниже приведен пример файла сценария init script.rc.
chmod 0750 /system/bin/myscript.sh
start script
[...]
service script /system/bin/myscript.sh
class main
user root
group root
oneshot