LINUX.ORG.RU

shell скрипт не хочет отрабатываться

 , ,


0

1

Привет, есть скрипт

#!/system/bin/sh
p=/sys/class/leds/button-backlight/brightness
chmod 777 $p
echo 0 > $p
chmod 444 $p

Увы, почему то не хочет работать. Инит.д, бизибох, рут есть изначально в прошивке. Помню, на первом телефоне с ним были проблемы, но как то решилось и как я уже не вспомню. Через командную строку работает. Прошу помощи.



Последнее исправление: newphonebass (всего исправлений: 1)

#!/system/bin/sh

Android ? В прошивке точно есть /system/bin/sh и именно он выполняет Инит.д? (я не в курсе, поэтому и спрашиваю) Другие скрипты там есть и они точно выполняются? Если убрать переменную и заменить её на полный путь к файлу — тоже не работает?

anymouze ★★
()

Попробуйте так:

#!/system/bin/sh
set -x
p="/sys/class/leds/button-backlight/brightness"
chmod 777 $p 1>> aaa
echo 0 > $p 1>> aaa
chmod 444 $p 1>> aaa
или так:
!/system/bin/sh
set -x
p="/sys/class/leds/button-backlight/brightness"
chmod 777 $p 2>> aaa
echo 0 > $p 2>> aaa
chmod 444 $p 2>> aaa
И разглядывайте содержимое файла aaa

Bootmen ☆☆☆
()
Последнее исправление: Bootmen (всего исправлений: 1)
Ответ на: комментарий от anymouze

В прошивке точно есть init.d, кто выполняет я хз, но папка init.d изначально в роме есть, и вряд ли прошивку делал дилетант, многие пользуют. Точно не могу сказать или другие работают.

Если убрать переменную и заменить её на полный путь к файлу — тоже не работает?

А вот здесь уже тяжело для меня. Что конкретно убрать?

newphonebass
() автор топика
Ответ на: комментарий от Bootmen

Попробовал в командной строке это написать, вот что терминал ответил

u0_a3@Lenovo:/ $ su
root@Lenovo:/ # #!/system/bin/sh
root@Lenovo:/ #
root@Lenovo:/ # set -x
+ precmd
+ typeset e=0
+ let  e
root@Lenovo:/ #
+ precmd
+ typeset e=0
+ let  e
root@Lenovo:/ # p="/sys/class/leds/button-backlight/brightness"
+ p=/sys/class/leds/button-backlight/brightness
+ precmd
+ typeset e=0
+ let  e
root@Lenovo:/ #
+ precmd
+ typeset e=0
+ let  e
root@Lenovo:/ # chmod 777 $p 1>> aaa
+ chmod 777 /sys/class/leds/button-backlight/brightness
+ >>aaa
sh: can't create aaa: Read-only file system
+ precmd
+ typeset e=1
+ let  e
+ print -n 1|
1|root@Lenovo:/ #
+ precmd
+ typeset e=1
+ let  e
+ print -n 1|
1|root@Lenovo:/ # echo 0 > $p 1>> aaa
+ echo 0
+ >/sys/class/leds/button-backlight/brightness
+ >>aaa
sh: can't create aaa: Read-only file system
+ precmd
+ typeset e=1
+ let  e
+ print -n 1|
1|root@Lenovo:/ #
+ precmd
+ typeset e=1
+ let  e
+ print -n 1|
1|root@Lenovo:/ # chmod 444 $p 1>> aaa
+ chmod 444 /sys/class/leds/button-backlight/brightness
+ >>aaa
sh: can't create aaa: Read-only file system
+ precmd
+ typeset e=1
+ let  e
+ print -n 1|
1|root@Lenovo:/ #

newphonebass
() автор топика
Ответ на: комментарий от Bootmen

И что характерно, внутри файла который скрипт должен изменить стоит 0, но вот разрешения rw rw rw. Рут есть, в системе могу все воротить, не знаю почему в терминале проскакивает read only.

newphonebass
() автор топика
Ответ на: комментарий от newphonebass

Через командную строку работает.

Что именно работает?

Ну, то что задумано

Что тогда не работает?

Выключение подсветки кнопок

Ни хрена не понятно. Что то работает, но не работает.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от newphonebass

Попробовал в командной строке это написать, вот что терминал ответи

Блин я грил что с командной строки?

Bootmen ☆☆☆
()
Ответ на: комментарий от newphonebass

В терминале когда выполняете скрипт или команды – результат достигается (подсветка отключается)?

В графическом интерфейсе нет опции для отключения подсветки клавиш?

Скрипт где «лежит»? И что в терминале пишется при выполнении команды ls -l \путь_к_init.d\init.d\. Что возвращает команда ls -l \путь_к_шелл_скрипту\имя_шелл_скрипта (Вам нужно заменить \путь_к_init.d и \путь_к_шелл_скрипту\имя_шелл_скрипта на реальные значения – мне-то они неизвестны)

anymouze ★★
()
Ответ на: комментарий от anymouze

В терминале, да. В графическом интерфейсе - нет. Скрипт лежит /system/etc/init.d Мучался с кодом, а потом подумал заменить \ на / Терминал выдает вес скрипта, дату перемещения в папку и название.

newphonebass
() автор топика
Ответ на: комментарий от newphonebass

Мучался с кодом, а потом подумал заменить \ на /
заменить \ на /

Прошу прощения, это моя вина (я невнимательно писал код).

Терминал выдает вес скрипта, дату перемещения в папку и название.

пользователя, группу, права — не выдаёт?

/system/etc/init.d

Там же есть «родные» скрипты (из прошивки)? Может есть какое-то видимое различие между скриптами из прошивки и Вашим?

А нет ли там скрипта включающего подсветку?!

anymouze ★★
()

проверьте окончания строк

arto ★★
()
Ответ на: комментарий от anymouze

Перепрошился и опять произошло. Пока все тихо, но помогите, пожалуйста, все таки разобраться. Есть подозрения что может повториться.

Заметил что это происходит после перезагрузки. Более того, дважды повторяются симптомы для одного приложения, а именно слетают его настройки. Такое происходило когда отключал тело от компа и память не успевала подготовиться либо просто от того что она была монтирована. Последний раз случилось после перезагрузки тела, до перезагрузки я подключал otg флешку, опять таки, танцы с памятью.

Может это дело в медиа сканере который отключается скриптом? Какую то ошибку делает? Без него тяжеловато, ибо система постоянно сканирует себя, батарея и т.д. Либо в чем то подобном. Буду благодарен хотя бы советам куда копать.

newphonebass
() автор топика
Ответ на: комментарий от newphonebass

П.с. >происходит после перезагрузки...

Не имел ввиду после каждой, вполне нормально перезагружался обычно и через некоторое время после очередной это и случается.

newphonebass
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.