1. bash / Говнокод #29276

    0

    1. 1
    adb shell pm list packages -e|cut -d: -f2|sort|perl -ple '$="adb shell appops set $ AUTO_REVOKE_PERMISSIONS_IF_UNUSED ignore"' | bash

    Реальный пример с Х-ра.

    Запостил: nemyx, 15 Августа 2026

    Комментарии (5) RSS

    • И не лень было. Можно было внутри одного шелла запустить и pm, и цикл с appops. И Перл тут не особо нужен.
      Ответить
    • зачем так сложно
      Ответить
      • Я бы так написал:
        adb shell 'for d in `pm list packages -e | cut -d: -f2`; do appops set $d AUTO_REVOKE_PERMISSIONS_IF_UNUSED ignore; done'

        Нормально?

        Можно было бы через xargs, но xargs в Андроиде тупой. А если запускать xargs на компе, получится говно из поста.
        Ответить
      • Автор использовал Перл только ради того, чтобы заменить символ в шоблоне на переменное значение. А поскольку Перла в его девайсе на Андроиде не оказалось, он его вызывал на компе, к которому подключен девайс, и поэтому adb shell джва раза.

        Интересно, как выглядят его команды, когда он обращается к серверу по ssh.
        Ответить
    • Что это и для чего (безотносительно какчества кода)?

      В Андроиде по умолчанию действует автоотзыв прав доступа, если приложением не пользовались N дней (чтобы пользователь заебался снова подтверждать манифест или чесал репу, почему приложение перестало работать). Код по задумке автора должен отключить автоотзыв прав у всех установленных приложений.
      Ответить

    Добавить комментарий