Устранение неполадок скрипта init.d

Я пытаюсь запустить скрипт init.d, когда мой ром загружается, чтобы отключить системные службы, а они не работают.

Сценарий выглядит следующим образом

#!/system/bin/sh
su -c pm disable com.google.android.gms/.update.SystemupdateService
su -c pm disable com.google.android.gms/.update.SystemUpdateGcmTaskService

Я могу подтвердить, что обычные команды отключения pm работают для отключения несистемных приложений. Поэтому я подозреваю, что я что-то не так делаю с привилегиями su.

Вы установили правильные разрешения (0755, rwxr-xr-x) для сценария?
Да, кухня применяет соответствующие разрешения, а если не кухня, то сам ром при загрузке. Я могу попробовать сделать его с нуля и протестировать на своем dd. Я запускаю мультиром, но я на работе, поэтому я не могу создать новый билд.
Если вы считаете, что сам скрипт не выполняется, попробуйте добавить строку, в которой он создает файл или выводит что-то в logcat, чтобы устранить этот фактор.
Что-то вроде mkdir /system/test
В /data, если вы хотите знать, работает ли сам сценарий, и /systemесли вы хотите знать, хорошо ли он suработает в сценарии.
У вас есть другой скрипт, который работает. Если вы используете стоковую прошивку, у вас, вероятно, нет поддержки init.d.
Таким образом, сам скрипт, по-видимому, не работает. Я только что попробовал новый скрипт с правильными разрешениями с помощью mkdir /data/test и после перезагрузки проверил, и его там нет. Я знаю, что добавил поддержку init.d в загрузочный образ, так что он там есть, но почему бы ему не работать?
@user199849 user199849 хорошо, если это не работает, тогда это проблема, связанная с ОС. Я думаю, попробуйте с некоторыми приложениями из игрового магазина ядра, у которых есть эмулятор init.d.

Ответы (1)

Если вы этого не сделали, попробуйте: поместите этот скрипт в файл и сохраните его в system/bin/ (скажем, вы назовете его script1) и установите права доступа 755, затем создайте файл в system/etc/init.d / (назовите его как хотите) и в файле напишите:

#!/system/bin/sh
script1

А также выставить разрешения 755. Перезагрузиться и посмотреть, повлияет ли это. Также вы можете попробовать включить su во время загрузки, у вас есть эта опция в super su.

Будет ли это мой оригинальный скрипт, который я поместил в system/bin? Также мне нужен заголовок #!/system/bin/sh?
Да, это то, что вы написали в своем вопросе. Да, вам это нужно.
Тоже не сработало. Есть ли журнал, который я мог бы проверить, чтобы попытаться выяснить, почему он не работает? Мне никогда раньше не приходилось проверять журнал, поэтому я знаю, где они находятся, или команду adb, чтобы вытащить его.
Не знаю насчет этого, но явно что-то не так с init.d, поэтому используйте какой-нибудь эмулятор из google play. Или снова ядро ​​сборки.
Итак, я пытаюсь сделать то же самое с поддержкой su.d в своем ПЗУ. Но pm disable тоже не работает. Есть ли какая-либо другая команда для отключения пакетов/служб с помощью скрипта?
@user199849 user199849 Для этого вы хотите отключить приложение в магазине olay под названием «Отключить службу», попробуйте.
Я использовал это приложение, чтобы проверить, отключена ли служба. Однако моя главная проблема заключается в том, чтобы отключить их при первой загрузке рома, который я создаю, чтобы пользователь не получил ota. Я могу подтвердить, что su.d работает с mkdir /data/test и работает. Однако команды pm с или с su -c не работают.
Извините, я упоминаю с su -c или без него.
Когда вы создаете скрипт в system/bin/ и даете правильные разрешения (это из вашего вопроса) и запускаете его из терминала, он работает?
Да, когда я вручную запускаю скрипт, он работает нормально. Я не вызывал su из эмулятора терминала, либо su работал из скрипта.
@user199849 user199849 Готовы ли вы использовать альтернативы init.d?