Кодерская мастерская
137 subscribers
1 photo
14 files
39 links
Блог Данила Пылаева
Download Telegram
ls

Многим известно, что в Linux есть утилита ls, позволяющая просматривать содержимое директорий.
Есть она и в Android, т.к. он во многом похож на Linux.
Сегодня я творил кое-какие нехорошие вещи с Ультра-экономией энергии на своём телефоне (у меня, кажется, получилось задуманное, возможно про это будет постик).
И кое-какие манипуляции я выполнял в recovery (в моём случае twrp).
Так вот там, совершенно неожиданно, у меня получилось сломать ls!

Тут всё отлично работает:
willow:/system # ls
bin etc manifest.xml usr


Но вот тут:
willow:/system # cd /data/media/0
willow:/data/media/0 # ls
Segmentation fault
139|willow:/data/media/0 #

Оно уже не работает!

Вероятно, во внутренней памяти (/data/media/0 - как раз она) есть какой-нибудь файл, который ls обработать не может.
Пришлось содержимое просматривать autocompletion-ом, и там была какая-то папка из двух китайских иероглифов, которая походу и убила ls.
Да, autocompletion отработал нормально и ничего не упало, видать разная реализация в его механизме и в ls.

#Android #ОноСломалось
Обход ограничения на количество приложений в режиме Ультра-экономии энергии MIUI

В MIUI есть замечательная функция, режим ультра-экономии энергии, позволяющая жить телефону без подзарядки как можно дольше.
В этом режиме система глушит большинство фоновых сервисов, останавливает, кажется, все пользовательские приложения и отключает всякие энергоёмкие функции (bluetooth, точку доступа и т.п.).
Кое-что потом можно включить из шторки. А некоторые функции вообще недоступны (ту же точку оттуда включить нельзя, хотя если у вас какой-нибудь Tasker есть, то можно почти всё, что и в обычном режиме 🙂).
И в этом режиме открывается собственный Launcher, содержащий информацию о примерном времени работы, текущую дату и кнопку выход.
Ещё там имеется три приложения: Телефон, Контакты и Сообщения.
Можно добавить ещё 6 пользовательских, для этого тоже есть кнопочка, открывающая список приложений.
И вот это ограничение, как раз, мне и не понравилось.
Конечно понятно, что оно сделано для того, чтобы пользователь в режиме ультра-экономии не открыл кучу приложений и не потерял преимущества, которые в этом режиме доступны.
Но во-первых фоновые приложения можно жёстко приостанавливать (по-моему там это и происходит), а во-вторых это же Android! Какого фига кто-то что-то решил за меня?!
Сначала я думал, что мне и шести приложений хватит, но в поездке, о которой был пост выше, я понял, что такого количество мне явно не хватает.
Смотреть я решил в сторону добавления стандартного лаунчера в лаунчер ультра-экономии (из того списка приложений, разумеется, он скрыт, чтобы пользователь не добавил его и не получил неограниченный доступ к своим приложениям).
Этот путь мне показался наиболее простым и удобным, потому что во-первых я не шарю в модификации приложений, и вряд ли за приемлемое время смог бы подпатчить его, чтобы увеличить ограничение, заложенное разработчиками,
а во-вторых мне не нужно ничего делать, кроме добавления лаунчера, потому что при его запуске я получу привычный интерфейс, уже содержащий все используемые мной приложения.
И так, чтобы добавить лаунчер на экран ультра-экономии энергии, нужно сделать следующее:
1. Нужен root или twrp, так как необходимо работать в директории /data/data, куда без рут-доступа система не пустит.
2. Определить имя пакета вашего лаунчера, в моём случае это Nova Launcher, имя пакета у него com.teslacoilsw.launcher.
3. Вытащить файл /data/data/com.miui.securitycenter/shared_prefs/remote_provider_preferences.xml.
4. Открыть файл в текстовом редакторе.
5. Найти строку вида <string name="pref_key_superpower_power_save_app">...</string>.
Вместо троеточия будет список названий пакетов пользовательских приложений в определённом формате.
Список помещён в квадратные скобки.
Названия перечислены через запятую.
Каждое название помещено в кавычки, но, так как это xml, в явном виде внутри тега они записаны быть не могут и замещены на &quot;.
В моём случае эта строка выглядит так: <string name="pref_key_superpower_power_save_app">[&quot;net.dinglisch.android.taskerm&quot;,&quot;com.hb.dialer.free&quot;,&quot;ak.alizandro.smartaudiobookplayer&quot;,&quot;com.perm.kate&quot;,&quot;org.telegram.messenger&quot;,&quot;com.teslacoilsw.launcher&quot;]</string>
В самом конце, как раз, находится название пакета моего лаунчера, вам нужно проделать что-то подобное.
6. Добавить в строку название пакета вашего лаунчера, не нарушая описанный выше формат.
Также следите за тем, чтобы в списке не было более 6 приложений (все приложения после шестого не будут отображаться в режиме ультра-экономии, я проверял).
Я мог что-то упустить в процессе, но сомневаюсь, что приложение, заточенное под отображение шести иконок, вдруг начнёт показывать больше только потому, что их больше в конфиге.
7. Сохранить файл и запушить его обратно, не сломайте владельца и права (должны быть 660 system system).

Не пишу о том, как использовать adb, получать root-права и т.п, потому что пост и так вышел объёмным, а прочитать об этом можно в интернете на куче различных ресурсов. Или можете задавать вопросы в комментариях.

#Настройка #ХакВоБлаго #Android #MIUI
👍1
ru_listx
5.1 MB
Эмодзи для eSpeak на Android

Ловите второй обещанный постик, он чё-то крупноватый получился, поэтому в telegraph.
Но файлы туда нельзя заслать, так что они будут тут.
1. eSpeak.v.1.48.15_with_ru_emoji - обычный eSpeak, в русский словарь которого добавлены эмодзи.
2. eSpeak.v.1.48.15_only_ru_with_emoji - тоже с поддержкой эмодзи, и с выпиленными голосами (кроме русского), что не даёт eSpeak-у переключаться на другие языки (ему просто некуда 😉) в некоторых приложениях, где на самом деле русский интерфейс.
3. ru_listx - исходник листа, из которого был собран словарь.

#ESpeak #Android #ХакВоБлаго