Как прочитать и запустить условный оператор в Android init.rc

1

У меня есть требование, когда мне нужно прочитать интерфейс (например/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

Может ли кто-нибудь помочь мне сделать то же самое? Является ли это возможным??

Теги:
conditional
init
filesystems
conditional-statements

2 ответа

1

Вы можете реализовать это с помощью строфы 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
0

Вы можете использовать концепцию сервиса 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню