Как сделать скрин с планшета престижио


Как сделать скрин с планшета престижио

Как сделать скрин с планшета престижио

Как сделать скрин с планшета престижио



Сообщение

23.11.10, 23:27


[offline]

Группа: Почетные форумчане
Сообщений: 3497
Регистрация: 24.05.10

Репутация: -    +


Инструкции по редактированию системных ресурсов Android

Собираем знания по редактированию графической части Android

Ссылки на смежные темы;
| |
Правила поведения в теме, рекомендации по оформлению постов! Читать обязательно!

  1. Обсуждения и вопросы в этой теме запрещены и наказуемы
    За игнорирование данного пункта правил - РО 2 дня без предупреждений!

    Публикуются только мануалы, уроки и т.п. Обсуждение ведем в теме:
    Инструменты для редактирования публикуются в
  2. Перед оформлением сообщения с уроком, рекомендуется проверить, не размещался ли он ранее.
    В случае повтора, информация будет удалена.
  3. Просьба подробно описывать все тонкости метода редактирования.
  4. Публикация уроков, мануалов и т.д., разрешена только по установленному шаблону!

Шаблон оформления сообщений с мануалами, уроками и т.д.

[CENTER][COLOR=blue][SIZE=3][B]Тут пишем название урока, мануала и т.д.[/B][/SIZE][/COLOR][/CENTER]
Используемая версия apktool (1.5.2, 2.0.3 и т. д.)
[SPOILER=Описание]Описание, подробная инструкция[/SPOILER]
[SPOILER=Скриншоты]Прикрепляем скриншоты при необходимости[/SPOILER]

Помните: Все что вы делаете - вы делаете на свой страх и риск!
Авторы инструкций, представленных в этой теме, а также Администрация форума, не несут ответственности за работоспособность ваших девайсов!

Каталог инструкций и мануалов, выложенных в этой теме...


Продолжение каталога...

Будьте взаимно вежливы! На нашем форуме благодарность принято выражать путем поднятия репутации конкретного участника. Если Вы хотите отблагодарить пользователя за опубликованное украшательство, нажмите кнопку Изображение рядом с его репутацией. Если у вас нет 15 полезных постов, попросите модератора поднять репутацию оказавшему вам помощь человеку через кнопку Изображение

Сообщение отредактировал Anton 982 - 29.06.17, 13:48

Причина редактирования: куратор

Сообщение

24.11.10, 11:00

Каталог инструкций

Уроки и инструкции по работе с apk, логирование




























Кодировка smali, DEC, HEX

Видео-уроки и мануалы

Решение проблем с приложениями

Проверка подписи

Статусбар и шторка

Cтатусбар, навбар - градиент/цвет, значки, иконки

































































































































  • ,



Батарея в статусбаре


Тайлы, панель быстрых настроек, панель "header" в шторке

























  • - Перелистывалка до семи страниц (layout) в шторке



















  • Х8Ъ






























Дополнительные кнопки в шторку


Слайдер яркости, Панель громкости


Отступы по бокам в шторке

Сеть

Wi-Fi, Bluetooth, Мобильные данные. Сетевой трафик

Часы и дата, будильник















  • - все значения в одном.










































Звонки, контакты и SMS

  • [










































































Экран блокировки



























































Звук

Громкость, управление плеером и т.д.












































Сообщение отредактировал Anton 982 - 30.06.17, 19:29

Причина редактирования: обновление каталога

Сообщение

24.11.10, 17:27

Гуру


[online]

Группа: Друзья 4PDA
Сообщений: 2072
Регистрация: 04.09.10

Репутация: -    +


Настройки

Логотип, пасхалка.


Дополнительные пункты в Настройки, добавление/удаление/замена нужных пунктов





























































































Отображение RAM, пункт "Для разработчиков", данные ОЗУ

Панель недавних приложений (Recent Panel)




































Системные изменения































































  • .


























































































  • ,
























Меню перезагрузки

Стиль

Анимация


Переключатели


В стиле Android Lollipop/MarshMallow/Nougat/O





































Шрифты: цвет, тип и т. п.


Замена/добавление своей картинки, изменение цвета, фона

  • [url="//4pda.ru/forum/index.php?s=&showtopic=540887&view=findpost&p=53639498"]Цвет фона иконок уведомлений/url]
















































Сообщение отредактировал Anton 982 - 30.06.17, 19:31

Причина редактирования: Новое в каталоге...

Сообщение

12.01.11, 15:15

Ковырятель APK


[offline]

Группа: Друзья 4PDA
Сообщений: 1935
Регистрация: 03.12.09

Репутация: -    +


Как я редактирую системные apk на примере framework-res.apk

миниFAQ

Инструкция

Для работы с apktool.jar я использую собственные инструменты.
Готовый набор, включающий всё, что нужно для разборки файлов apk
(кроме файлов из вашей прошивки) можно взять у меня в подписи
или в конце этого сообщения

Если ещё не установлена JDK и устанавливаем
Распаковываем архив ApkTools.rar в корень диска C:\ и открываем папку ApkTools
Копируем в эту папку файл framework-res.apk из своей прошивки
Теперь нужно установить фреймворк для своей прошивки, чтобы можно было разбирать все системные apk
(Эту операцию нужно проделать один раз для всякой прошивки)
Перетаскиваем файл framework-res.apk на файл apktool-if.cmd

Скрин

Прикрепленное изображение получаем такое окошко

Скрин

Прикрепленное изображение для владельцев HTC и прошивки с SENSE то-же самое нужно проделать с файлом com.htc.resources.apk, для SAMSUNG - twframework-res.apk, Motorola - blur-res.apk и moto-res.apk, LG - lge-res.apk, Sony Ericsson - SemcGenericUxpRes.apk
Проще говоря - если в папке system/framework/ кроме framework-res.apk есть ещё файлы apk - то их тоже нужно установить.
Теперь можно разбирать любые системные apk, что мы и сделаем:
Перетаскиваем файл framework-res.apk на файл apktool-d.cmd

Скрин

Прикрепленное изображение получаем такое окошко и папку framework-res

Скрин

Прикрепленное изображение В этой папке наш разобраный framework-res.apk

Скрин

Прикрепленное изображение Изменяем что нужно и перетаскиваем папку framework-res на файл apktool-b.cmd

Скрин

Прикрепленное изображение получаем такое окошко

Скрин

Прикрепленное изображение Открываем с помощью WinRARа исходный файл framework-res.apk и открываем папку framework-res/build/apk

Скрин

Прикрепленное изображение Перемещаясь по папкам, переносим изменённые файлы на окно WinRARа, выбираем в диалоге степень сжатия
Обычный или Без сжатия в зависимости от того, как файл находится в архиве

Скрин

Прикрепленное изображение Если редактировали xml в папках values, добавляли или удаляли изображения - resources.arsc менять обязательно
т.к. в нём находятся все папки values и файл public.xml, в котором присваиваются ID всем ресурсам.
Другими словами, в собранном apk все папаки начинающиеся на values находятся в файле resources.arsc, а папка smali - в файле classes.dex

Что сделать, чтоб увидеть начало лога сборки apk при ошибках

Прикрепленное изображение
Прикрепленное изображение

Часто встречающиеся ошибки

При разборке

W: Cant find 9patch chunk in file: "drawable-mdpi/status_bar_item_app_background_normal.9.png". Renaming it to .png.

При сборке куча ошибок такого плана

C:\ApkTools\framework-res\res\values\public.xml:3390: error: Public symbol drawable/usb_android declared here is not defined.

Означает, что кто-то до вас заменил в apk изображения содержащие 9patch на обычные
Решение
Самый правильный способ - разбирать стоковое(исходное), а файлы менять в своём
Если по каким-то причинам у вас отсутствует стоковое - файлы можно взять в android-sdk(C:\android-sdk-windows\platforms\android-10\data\res\drawable-hdpi)
Скопировать их в папку своего разобранного приложения и удалить такие-же файлы без 9(которые создал apktool)
Ещё можно проверить скрытые файлы .bak (создают некоторые текстовые редакторы при редактировании файлов .xml)
Немного поясню как получаются файлы 0 размера:
apktool находит в файле apk изображение status_bar_item_app_background_normal.9.png и
создаёт в конечной папке файл status_bar_item_app_background_normal.9.png размером 0 байт, чтобы
потом наполнить его раскодированным изображением с 9patch.
Потом выясняет, что изображение не содержит 9patch и пишет
W: Cant find 9patch chunk in file: "drawable-mdpi/status_bar_item_app_background_normal.9.png". Renaming it to .png.
переименовывает его в status_bar_item_app_background_normal.png и копирует в конечную папку
В итоге, в конечной папке два изображения
status_bar_item_app_background_normal.9.png - размер 0 байт и status_bar_item_app_background_normal.png - размер скока-то байт

Проблемы при сборке framework-res.apk

При сборке framework-res.apk от ICS есть проблемы такого плана

D:\system\framework\framework-res\res\values\plurals.xml:79: error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
D:\system\framework\framework-res\res\values\plurals.xml:79: error: Found tag </item> where </plurals> is expected


Решение:
79 строка это <item quantity="other">%d of %d</item>
меняем на <item quantity="other">%1$d of %2$d</item>
во всех папках
После этого всё собирается
Скрипт для автоматической замены %d of %d на %1$d of %2$d во всех plurals.xml Прикрепленный файлplurals_repl.rar ( 1,25 КБ )
Перенести папку framework-res на скрипт, дождаться таблички с подтверждением)

Проблемы при сборке Phone.apk

Ошибка Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
при сборке Phone.apk обычно означает что в указанных файлах/строках имеется не экранированный символ процентов "%"
чтоб исправить - нужно в указанном файле/строке заэкранировать значёк % (%%), но только если после него нет символов d, s, или цифры
то-есть если в этой строке есть %1$d -здесь экранировать не нужно
(%2$d %) а вот тут нужно (%2$d %%)

Пример
<string name="throttle_time_frame_subtext">"%1$d% del ciclo transcurrido.
Prуx perнodo en %2$d dнas (%3$s)"</string>

после % идёт пробел, чтоб исправить
<string name="throttle_time_frame_subtext">"%1$d%% del ciclo transcurrido.
Prуx perнodo en %2$d dнas (%3$s)"</string>

Скрипт для автоматической замены Прикрепленный файлpercent_repl.rar ( 1,27 КБ )
Перенести папку Phone на скрипт, дождаться таблички с подтверждением


Как правильно заменить системное apk на телефоне

Для этого нужен менеджер файлов с поддержкой root и возможностью назначать права, например
  • Копируем apk в телефон на карту SD
  • Копируем apk с карты SD в папку /system
  • Выставляем для apk права 644 (см. рис.)
  • Перемещаем apk в папку /system/app или /system/framework
Перемещать из /system нужно потому, что apk может использоваться в данный момент и система не даст заменить его при копировании
Прикрепленное изображение Прикрепленное изображение

Про 9-patch

9-patch - это изображение с встроенными маркерами, благодаря которым, система
понимает какую часть изображения растягивать и в какой части изображения располагать контент
Для создания 9-patch для изображения, вокруг него рисуется прозрачная рамка в 1 пиксель, в которой проставляются маркеры чёрным цветом
(В Android SDK, в папке tools, есть файл draw9patch.bat(см. рис.), который выполняет эту операцию и даёт предпросмотр растяжения)
Далее для внедрения 9-patch в изображение, его следует собрать в составе проекта в apktool или eclipse
Прикрепленное изображение

Как правильно редактировать изображения, содержащие 9-patch

Для редактирования таких изображений лучше всего использовать редактор иконок
Для начала разбираем apk вышеописанным способом
открываем интересующее изображение в редакторе иконок и выделяем часть, которая не содержит маркеров(рамка, толщиной в 1 пиксель с чёрными точками/полосками)
Прикрепленное изображение
Применяем эффект, в данном случае "Расцветка"
Прикрепленное изображение
Сохраняем, не забыв проверить наличие .9 перед png

Про odex-файлы

Apk состоит из двух частей: Интерфейса(картинки и xml) и исполняемого кода(classes.dex)
При первом запуске приложения система считывает файл classes.dex, оптимизирует его под данное устройство,
и помещает в dalvik-cache и при последующих запусках использует файл из dalvik-cache(если classes.dex не изменился).
Если же classes.dex изменился - оптимизирует и перезаписывает снова.
В odexed прошивках файл classes.dex уже оптимизирован и вынесен из apk в файл [название apk].odex,
что позволяет:
1. Сохранить место в разделе /data (dalvik-cache обычно находится там)
2. Ускорить первый запуск телефона (так как нет нужды оптимизировать системные файлы)
3. Ограничить всяким ковырятелям возможности изменения интерфейса, так как
При оптимизации файлы odex получают зависимости от других файлов odex
Цепочка зависимостей примерно выглядит так:
core.odex -> bouncycastle.odex -> ext.odex -> framework.odex -> android.policy.odex -> services.odex -> core-junit.odex -> остальные файлы odex в папках app и framework
При изменении одного из этих odex-файлов, все файлы, находящиеся справа от него, должны быть переоптимизированы
Однако есть выход: если в новом odex-файле прописать контрольную сумму от старого - система его скушает и не подавится
Ниже архив для ClockWorkMod Recovery, который из вашего jar или apk создаст правильный odex-файл
Всё что нужно сделать - открыть архив в WinRAR, перейти в папку tmp/MOD/ и положить свой jar или apk (можно и то и другое по нескольку штук)
в соответствующую папку app или framework и подписать архив
После применения архива в CWM Recovery, на карте памяти (/sdcard) появится папка odexer в которой будут уже готовые к употреблению файлы и
архивы для CWM Recovery с модифицированными файлами и файлами отката
Прикрепленный файлodexer4_update.zip ( 1,69 МБ )

За идею и начальную реализацию можно сказать спасибо мне,
За доработку и адаптацию для большинства девайсов говорим


Что ты изменил в моём apk, или как сравнить папки и файлы.

Для сравнения папок и файлов удобнее всего использовать

Скрин

Прикрепленное изображение Алгоритм простой:
- Разбираем исходный и модифицированный apk
- Открываем в одной панели папку с исходным, в другой с модифицированным apk
- Жмём в меню Инструменты -> Синхронизировать каталоги
- Проверяем, чтоб настройки были как на скрине выше
- Жмём кнопку Сравнить слева вверху
- Жмём правой кнопкой мыши на паре разных файлов и в открывшемся меню выбираем пункт Сравнить левый и правый файлы или клавиши Ctrl + F3

Скрин

Прикрепленное изображение Отличия выделяются красным цветом

Версии Apktool

.:ApkTools1.3.2:. Прикрепленный файлApkTools.zip ( 5,2 МБ )
(Для изменения фалов Android 1.6 - 2.3.7)
.:ApkTools1.4.3:. Прикрепленный файлApkTools143.rar ( 3,55 МБ )
(Для изменения фалов Android 4 ICS)15.08.2012 -исправлена ошибка "bad magic value"
.:ApkTools1.5.2:. Прикрепленный файлApkTools152.rar ( 3,27 МБ )
(Поддержка Android 4.2 JellyBean) эксперементальная версия
Поскольку многоуважаемый Brut.all очень давно не обновлял своё дивное творение - apktool.jar
товарищ с XDA под ником iBotPeaches продолжил разработку.
Посмотреть список изменений и скачать последнюю версию можно с
Седьмая бета .:ApkTools2.0.0b7:. Прикрепленный файлApkTools200b7.rar ( 7,14 МБ )

Прикрепленный файлapktool_lolly.zip ( 11,34 МБ )

Седьмая бета с модифицированным скриптом сборки .:ApkTools2.0.0b7m2:. Прикрепленный файлApkTools200b7m2.rar ( 7,36 МБ )
!!! Для apk из прошивки !!! После сборки появляется папка sys с готовым к загрузке в телефон системным apk или jar
(в apk из папки dist копируется содержимое папки original, а именно - манифест и подпись) Не рекомендуется использовать при наличии ошибок при разборке
Девятая бета .:ApkTools2.0.0b9:. Прикрепленный файлApkTools200b9.rar ( 8,13 МБ )

Девятая бета с модифицированным скриптом сборки (описание выше) .:ApkTools2.0.0b9m:. Прикрепленный файлApkTools200b9m.rar ( 8,35 МБ )


Проблемы при работе с андроид 5.0 Lollipop

Старая ссылка удалена - неактуально!

Сообщение отредактировал Артём - 28.05.16, 11:03

--------------------

Призер Шестой Премии 4PDA в номинации «Спасатель 2011»

Сообщение

13.01.11, 00:03

Ковырятель APK


[offline]

Группа: Друзья 4PDA
Сообщений: 1935
Регистрация: 03.12.09

Репутация: -    +


Меняем цвет шрифта уведомлений, часов, даты и.т.п. - на белый

Описание, инструкция

framework-res.apk/res/layout/status_bar.xml

Код

<?xml version="1.0" encoding="UTF-8"?>
<com.android.server.status.StatusBarView android:orientation="vertical" android:background="@drawable/statusbar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.server.status.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:paddingLeft="6.0dip" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentLeft="true" />
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" />
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="8.0dip">
<com.android.server.status.AnimatedImageView android:layout_width="25.0dip" android:layout_height="25.0dip" />
<com.android.server.status.AnimatedImageView android:layout_width="25.0dip" android:layout_height="25.0dip" />
</ImageSwitcher>
<com.android.server.status.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<!-- Следующие 2 строки цвет сообщений при закрытом статусбаре -->
<TextView android:textColor="#ff5babe8" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textColor="#ff5babe8" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
</com.android.server.status.TickerView>
</LinearLayout>
<!-- Следующая строка цвет даты -->
<com.android.server.status.DateView android:textSize="16.0sp" android:textStyle="bold" android:textColor="#ff5babe8" android:gravity="left|center" android:id="@id/date" android:background="@drawable/statusbar_background" android:paddingLeft="6.0px" android:paddingRight="6.0px" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</com.android.server.status.StatusBarView>


framework-res.apk/res/layout/status_bar_expanded.xml

Код

<?xml version="1.0" encoding="UTF-8"?>
<com.android.server.status.ExpandedView android:orientation="vertical" android:background="@drawable/status_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="
<LinearLayout android:orientation="horizontal" android:background="@drawable/status_bar_header_background" android:paddingTop="3.0dip" android:paddingRight="3.0dip" android:paddingBottom="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:layout_gravity="center_vertical" android:orientation="vertical" android:paddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" android:layout_weight="1.0">
<!-- Следующие 2 строки цвет оператора -->
<TextView android:textAppearance="?textAppearanceLarge" android:textColor="#ff092e4b" android:shadowColor="#ff5babe8" android:shadowRadius="1.5" android:layout_gravity="center_vertical" android:id="@id/plmnLabel" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:textAppearance="?textAppearanceLarge" android:textColor="#ff092e4b" android:shadowColor="#ff5babe8" android:shadowRadius="1.5" android:layout_gravity="center_vertical" android:id="@id/spnLabel" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
<!-- Следующая строка цвет текста на кнопке "Очистить" -->
<TextView android:textSize="14.0sp" android:textColor="#ff000000" android:layout_gravity="center_vertical" android:id="@id/clear_all_button" android:background="@drawable/btn_default_small" android:paddingLeft="15.0dip" android:paddingRight="15.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4.0dip" android:layout_marginBottom="1.0dip" android:text="@string/status_bar_clear_all_button" style="?buttonStyle" />
</LinearLayout>
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<com.android.server.status.NotificationLinearLayout android:orientation="vertical" android:id="@id/notificationLinearLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<!-- Следующая строка цвет заголовка "Нет уведомлений" -->
<TextView android:textAppearance="@style/TextAppearance.StatusBarTitle" android:textColor="#ff5babe8" android:id="@id/noNotificationsTitle" android:background="@drawable/title_bar_portrait" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_no_notifications_title" />
<!-- Следующая строка цвет заголовка "Текущие" -->
<TextView android:textAppearance="@style/TextAppearance.StatusBarTitle" android:textColor="#ff5babe8" android:id="@id/ongoingTitle" android:background="@drawable/title_bar_portrait" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_ongoing_events_title" />
<LinearLayout android:orientation="vertical" android:id="@id/ongoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<!-- Следующая строка цвет заголовка "Последние" -->
<TextView android:textAppearance="@style/TextAppearance.StatusBarTitle" android:textColor="#ff5babe8" android:id="@id/latestTitle" android:background="@drawable/title_bar_portrait" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_latest_events_title" />
<LinearLayout android:orientation="vertical" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</com.android.server.status.NotificationLinearLayout>
</ScrollView>
<ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/title_bar_shadow" android:scaleType="fitXY" />
</FrameLayout>
</com.android.server.status.ExpandedView>


Цвет часов это services.jar или services.odex смотреть

Сообщение отредактировал Димар - 16.01.16, 10:59

--------------------

Призер Шестой Премии 4PDA в номинации «Спасатель 2011»

Сообщение

06.02.11, 11:59

Старожил


[online]

Группа: Друзья 4PDA
Сообщений: 862
Регистрация: 08.07.10

Репутация: -    +


Таблица цвета в HEX.


Скриншот

Прикрепленное изображение

Сообщение отредактировал Димар - 23.01.16, 16:24

--------------------

Phone: ROM: MIUI Global Stable

Сообщение

01.04.11, 22:27

Trance Music Station


[offline]

Группа: Друзья 4PDA
Сообщений: 1836
Регистрация: 03.07.10

Репутация: -    +


Инструкция по смене цвета надписей в меню Настройки (мелкий шрифт)

Описание, инструкции

Инструкция

Идем по пути framework-res\res\layout и делаем изменения в следующих файлах:
1)preference.xml
<TextView android:textAppearance="?textAppearanceSmall" android:textColor="#ff4a9e00" android:id="@id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="4" android:layout_below="@id/title" android:layout_alignLeft="@id/title" />
Этой строчки там не будет,поэтому добавляем
2)preference_child.xml
<TextView android:textAppearance="?textAppearanceSmall" android:textColor="#ff4a9e00" android:id="@id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="2" android:layout_below="@id/title" android:layout_alignLeft="@id/title" />
3)preference_information.xml
<TextView android:textAppearance="?textAppearanceSmall" android:textColor="#ff4a9e00" android:id="@id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="2" android:layout_below="@id/title" android:layout_alignLeft="@id/title" />


Инструкция для телефонов Samsung

Инструкция немного проще.
Идем по пути: \ApkTools\framework-res\res\color
Открываем файлик: zzz_tw_secondary_text_sub.xml

<?xml version="1.0" encoding="UTF-8"?>
<selector
xmlns:android="
<item android:state_window_focused="false" android:state_enabled="false" android:color="#ffb4b4b4" />
<item android:state_window_focused="false" android:color="#ff46aeff" />
<item android:state_enabled="false" android:state_selected="true" android:color="#ffb4b4b4" />
<item android:state_enabled="false" android:state_pressed="true" android:color="#ffb4b4b4" />
<item android:state_enabled="false" android:color="#ffb4b4b4" />
<item android:state_pressed="true" android:color="#ffffffff" />
<item android:state_selected="true" android:color="#ffffffff" />
<item android:color="#ff46aeff" />
</selector>


И меняем выделенное на свой цвет,где первые 2 символа ff- это прозрачность,остальные это цвет
#ff 46aeff

Скриншот

Прикрепленное изображение

Сообщение отредактировал Димар - 23.01.16, 16:18

Причина редактирования: Шаблон

Сообщение

19.08.11, 23:54

Trance Music Station


[offline]

Группа: Друзья 4PDA
Сообщений: 1836
Регистрация: 03.07.10

Репутация: -    +


Как сделать из index картинки обычную

Инструкция

Однажды каждый из вас задаст этот вопрос : "Почему при открытии некоторых картинок из framework_res.apk мы видим какое-то пятно,отдаленно похожее на то,что нужно"
Дело в том,что некоторые картинки - индексированные (index).
Берем к примеру вот эту иконку Прикрепленное изображение (index) и если ее открыть через Photoshop CS мы увидим вот это - Прикрепленное изображение,а если открытое изображение откроется как надо,то вы не сможете его изменить.

Чтобы картинка не теряла свои первичные очертания и была пригодна для редактирования сделаем следующее:

1)Берем нужную иконку и открываем ее через Microsoft Office Pictures Manager;
2)Далее Рисунок --> Цвет и меняем к примеру интенсивность на 1 и потом на 0; (т.е мы ничего и не делаем);
3)Нажимаем Файл --> Сохранить;
4)Готово;

PS.Инструкция моя,сам искал решение данной проблемы и не ожидал что получится.Искал методом тыка ))

Сообщение отредактировал Димар - 12.11.15, 20:32

Сообщение

06.11.11, 16:07

Гуру


[offline]

Группа: Друзья 4PDA
Сообщений: 2527
Регистрация: 21.01.10

Репутация: -    +


Анимация старого телевизора (вкючение и выключение)


Актуально для Андроид 2.3, и наверняка для CyanogenMod.

Описание

Объясню почему включение и выключение.
Облазил интернет,везде упоминания только о этой строчке и видео с анимацией при выключении и включении.У меня же только при выключении и не совсем так как на видео.Включение происходит как обычно.Может дело в прошивке,не знаю.Пробуйте.


Инструкция

В настройках CyanogenMod\экран должны стоять галочки напротив анимации включения и выключения
Для включения этого эффекта необходимо в файле framework-res.apk изменить файл res\values\bools.xml
строку
<bool name="config_animateScreenLights">true</bool>
на
<bool name="config_animateScreenLights">false</bool>


Дополнение

Сообщение отредактировал Димар - 03.11.15, 21:44

Причина редактирования:

--------------------

Highscreen Explosion v27
И да,я на коне.

Сообщение

19.12.11, 13:45

Работаю,проснусь-отвечу.


[offline]

Группа: Почетные форумчане
Сообщений: 2480
Регистрация: 05.11.08

Репутация: -    +


Прозрачность шторки на android 2.2-4.0

Инструкция

В большинстве случаев, достаточно сделать прозрачную картинку status_bar_background.png , лежит во framework-res.apk.
Но, иногда, в частности у меня была проблема с Tab-ом,пришлось еще править status_bar_tracking.xml (в 2.3 лежит в SystemUI.apk; в 2.2. во framework-res.apk)
Добавлял параметр android:background="#00000000"
<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.TrackingView android:orientation="vertical" android:background="#00000000" android:paddingLeft="0.0px" android:paddingRight="0.0px" android:paddingBottom="0.0px" android:focusable="true" android:visibility="gone" android:descendantFocusability="afterDescendants"
xmlns:android="
<View android:background="#00000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
<com.android.systemui.statusbar.CloseDragHandle android:orientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="wrap_content">
<ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/status_bar_close_on" android:scaleType="fitXY" />
</com.android.systemui.statusbar.CloseDragHandle>
</com.android.systemui.statusbar.TrackingView>


Дополнение от sk0t

Если метод den339, не прокатывает (такое бывает),
Открываем файл:
для 2.3 SystemUI.apk/smali/com/android/systemui/statusbar/StatusBarService.smali
Ищем метод addStatusBarView() и в нём строку

invoke-direct/range {v0 .. v5}, Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V


перед этой строкой должна быть строка const/4 v5, 0x2, меняем на const/4 v5, -0x3

для 2.2 services.jar/smali/com/android/server/status/StatusBarService.smali
Ищем iput v7, p0, Lcom/android/server/status/StatusBarService;->mPixelFormat:I
перед этой строкой должна быть строка const/4 v7, 0x2, меняем на const/4 v7, -0x3
красная цифра может быть любой другой

Цвет в шторке, в 4 андроиде, задается в SystemUI.apk\res\values\drawables.xml <item type="drawable" name="notification_tracking_bg">#00000000</item>

Сообщение отредактировал Димар - 12.04.16, 19:49

Причина редактирования:

--------------------

Сообщение

28.12.11, 20:02

Ковырятель APK


[offline]

Группа: Друзья 4PDA
Сообщений: 1935
Регистрация: 03.12.09

Репутация: -    +


Как определить прозрачность в процентном соотношении.


Пример, #b2000000 ?
b2 = ?%
b2(hex) = 178(dec)
178/(255/100) = 69.8
примерно 70%

Таблица соответсвия DEC - HEX

Прикрепленное изображение

Сообщение отредактировал Димар - 17.02.16, 18:04

--------------------

Призер Шестой Премии 4PDA в номинации «Спасатель 2011»

Сообщение

28.01.12, 18:49

Ковырятель APK


[offline]

Группа: Друзья 4PDA
Сообщений: 1935
Регистрация: 03.12.09

Репутация: -    +


Правильное отображение часов по центру


Инструкция

Исходная раскладка такая:
Прикрепленное изображение

<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.StatusBarView android:orientation="vertical" android:background="#ff000000" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:paddingLeft="6.0dip" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentLeft="true" />
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" />
<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>


лаяут иконок уведомлений растягивается на всё доступное пространство, лаяуты иконок статуса и часов растягиваются по содержимому

Способ описанный делает раскладку такой:
Прикрепленное изображение

<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.StatusBarView android:orientation="vertical" android:background="#ff000000" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="center" android:paddingRight="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:paddingLeft="6.0dip" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentLeft="true" />
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" />
</LinearLayout>


то, есть добавляется лаяут, который растягивается на всю ширину, в который добавляются часы, выравненные по центру
иконки статуса и уведомлений выводятся поверх этого лаяута
Если иконок много - они закрывают часы

Что-бы они не закрывали часы, нужно сделать раскладку такой
Прикрепленное изображение
Сделать это можно так

<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.StatusBarView android:orientation="vertical" android:background="#ff000000" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:paddingLeft="6.0dip" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentLeft="true" />
<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/statusIcons" android:paddingRight="6.0dip" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentRight="true" />
</LinearLayout>


Перенести строку <com.android.systemui.statusbar.Clock на строку вверх, чтоб она была между строками @id/notificationIcons и @id/statusIcons
В строке @id/statusIcons изменить:
android:gravity="center_vertical" -> android:gravity="right|center"
android:layout_width="wrap_content" -> android:layout_width="0.0dip"
и добавить android:layout_weight="1.0"

Сообщение отредактировал Димар - 05.11.15, 20:12

Причина редактирования:

--------------------

Призер Шестой Премии 4PDA в номинации «Спасатель 2011»

Сообщение

03.02.12, 12:31

Ковырятель APK


[offline]

Группа: Друзья 4PDA
Сообщений: 1935
Регистрация: 03.12.09

Репутация: -    +


Панель Quicksettings в статусбаре

Вариант 1
Архив с необходимыми файламиПрикрепленный файлqs.rar ( 67,48 КБ )

Инструкция

1. Разобрать SystemUI.apk
2. Содержимое папок smali, drawable-hdpi и layout из архива добавить в соответствующие папки
3. Добавить в файл status_bar_expanded.xml строку

<include layout="@layout/quickpanel_quick_settings" />

перед строками

<LinearLayout android:orientation="horizontal" android:background="@drawable/status_bar_header_background" android:paddingTop="3.0dip" android:paddingRight="@dimen/clear_button_padding_right" android:paddingBottom="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.android.systemui.statusbar.CarrierLabel android:layout_gravity="center_vertical" android:orientation="vertical" android:id="@id/carrierLabel" android:paddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" android:layout_weight="1.0">

4. Добавить строки из strings.xml, ids.xml и colors.xml в соответствующие файлы в папках values
5. Cобрать
6. Разобрать получившийся в папке dist
7. Скопировать с заменой файл dist/SystemUI/res/values/public.xml в папку res/values/
8. Удалить папки build и dist
9. Открыть папку smali/com/android/systemui/statusbar/quickpanel/ и в файлах:
- AutoRotationSettingButton.smali
- BluetoothSettingButton.smali
- FlightSettingButton.smali
- GpsSettingButton.smali
- MobileDataSettingButton.smali
- SoundSettingButton.smali
- SyncSettingButton.smali
- VibrateSettingButton.smali
- WifiSettingButton.smali
Изменить в методах updateIconsAndTextColor и updateResources все значения "0x7f0....." на свои из res/values/public.xml
Для удобства все они обозначены как "#quickpanel_..."
10. Собрать
11. В исходном заменить файлами из папки build/apk/
- resources.arsc(без сжатия)
- classes.dex(обычное сжатие)
- res/layout/status_bar_expanded.xml(обычное сжатие)
Добавить файлы из папки build/apk/
- res/drawable-hdpi/quickpanel_.png(без сжатия)
- res/layout/quickpanel_quick_settings.xml(обычное сжатие)

Результат

Прикрепленное изображение Прикрепленное изображение

Вариант 2 с кнопкой автояркости и слайдером яркости
Необходимые файлы Прикрепленный файлqp.rar ( 81,2 КБ )

Инструкция

1. Разобрать SystemUI.apk
2. Содержимое папок smali, drawable-hdpi и layout из архива добавить в соответствующие папки
3. Добавить в файл status_bar_expanded.xml строки

<include layout="@layout/qp_quick_settings" />
<include layout="@layout/qp_brightness" />

после строк

<LinearLayout android:orientation="vertical"

4. Добавить строки из strings.xml и colors.xml в соответствующие файлы в папках values
5. Cобрать
6. Разобрать получившийся в папке dist
7. Скопировать с заменой файл dist/SystemUI/res/values/public.xml в папку res/values/
8. Удалить папки build и dist
9. Открыть папку smali/com/android/systemui/statusbar/quickpanel/ и в файлe QPids.smali
Изменить все значения "0x7f0....." на свои из res/values/public.xml

Пример

Строка в public.xml
qp_icon_wifi_on" id="0x7f020139" />
Код в smali const-string v0, "qp_icon_wifi_on"

invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

if-eqz v0, :cond_17

const v0, 0x7f020139

10. Собрать
11. В исходном заменить файлами из папки build/apk/
- resources.arsc(без сжатия)
- classes.dex(обычное сжатие)
- res/layout/status_bar_expanded.xml(обычное сжатие)
Добавить файлы из папки build/apk/
- res/drawable-hdpi/qp_.png(без сжатия)
- res/layout/qp_.xml(обычное сжатие)

Результат

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

Сообщение отредактировал Димар - 05.11.15, 20:17

--------------------

Призер Шестой Премии 4PDA в номинации «Спасатель 2011»

Сообщение

15.02.12, 22:24

Гуру


[offline]

Группа: Забанен
Сообщений: 2547
Регистрация: 06.07.10

Репутация: -    +


Как сделать прозрачный фон настроек и не только в Anroid 4.0+

Инструкция

1) Разбираем framework-res.apk
2) Движемся по пути res/values и открываем styles.xml

Ищем сектор Theme.Holo

<style name="Theme.Holo" parent="@style/Theme">

В этом секторе нам нужно найти строки:

<item name="colorBackground">@color/background_holo_dark</item>


её мы меняем на

<item name="colorBackground">@color/transparent</item>


а так же

<item name="windowShowWallpaper">false</item>


эту строку меняем на

<item name="windowShowWallpaper">true</item>

Всё с xml закончили. Теперь нужна сама картинка фона. Ею будет является подложка, которая уже есть в ICS и её не нужно создавать, нужно лишь отредактировать. Собственно перекрасить её во что угодно можно просто так, но вот чтобы добиться прозрачности нужно поковырять styles.xml.
Итак эта подложка всегда лежит в res/drawable-nodpi и называется она background_holo_dark.png. Её редактируем как хотим, делая хоть еле прозрачной, хоть прозрачной совсем.

Готово! Можно собирать framework-res.apk и закидывать на телефон, если бы не одно НО

3)Собрав framework-res и установив его на телефон можно будет обнаружить, что когда вы открываете какое-либо всплывающее окно, оно открывается не поверх существующего, а уходит как бы на новую страницу, т.е. оно будет всплывать не поверх основного, а поверх пустых обоев. Выглядит, на мой взгляд, это не особо красиво и совсем уж непривычно. Ровно та же ситуация наблюдается с клавиатурой.
Решается просто, ищем всё в том же styles.xml блок Theme.Holo.Dialog и Theme.Holo.InputMethod

<style name="Theme.Holo.Dialog" parent="@style/Theme.Holo">


<style name="Theme.Holo.InputMethod" parent="@style/Theme.Holo.Light.Panel">

В оба блока нужно добавить лишь одну строчку:

<item name="android:windowShowWallpaper">false</item>


Всё. Теперь окна будут нормально открываться поверх друг-друга:)
4)Собираем framework-res, прошиваем и радуемся.

Если в процессе сборки .apk вылезают ошибки - и , только потом задавайте вопрос
За некоторую информацию спасибо


Скриншоты того, что получилось

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

Дополнение

Сообщение отредактировал Димар - 03.11.15, 18:39

Причина редактирования:

--------------------

Galaxy Nexus: Jellybro : franco.kernel : XXLF1 : CWM
Nexus 7: Stock : M-kernel : TWRP

Сообщение

13.04.12, 19:05

Ковырятель APK


[offline]

Группа: Друзья 4PDA
Сообщений: 1935
Регистрация: 03.12.09

Репутация: -    +


Панель в статусбаре

14 настраиваемых кнопок

можно скачать пакет для выполнения нижеописанных действий в автоматическом режиме (Рекомендуется)

Архив с необходимыми файлами

Прикрепленный файлqp.rar ( 153,7 КБ )

Для Android 4 Прикрепленный файлqp4.rar ( 155,76 КБ )

Вариант без фонарика Прикрепленный файлnoflash.rar ( 177,46 КБ )


Инструкция

1. Разобрать SystemUI.apk
2. Содержимое папок drawable-hdpi(mdpi) и layout из архива добавить в соответствующие папки
3. Добавить в файл res/layout/status_bar_expanded.xml строку

<include layout="@layout/qp_layout" />

после строк

<com.android.systemui.statusbar.ExpandedView android:orientation="vertical" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">

4. Добавить строки из strings.xml и arrays.xml в соответствующие файлы в папках values
5. Cобрать
6. Разобрать получившийся в папке dist
7. Скопировать с заменой файл dist/SystemUI/res/values/public.xml в папку res/values/
8. Удалить папки build и dist
9. Содержимое папки smali из архива добавить в папку SystemUI/smali
10. Скрипт qp_repl.js из архива положить рядом с папкой SystemUI и запустить двойным кликом(как приложение)
Дождаться окончания работы скрипта(табличка "Done")
11. Собрать
12. В исходном заменить файлами из папки build/apk/
- resources.arsc(без сжатия)
- classes.dex(обычное сжатие)
- res/layout/status_bar_expanded.xml(обычное сжатие)
Добавить файлы из папки build/apk/
- res/drawable-hdpi/qp_.png(без сжатия)
- res/layout/qp_.xml(обычное сжатие)

Результат

Прикрепленное изображение Прикрепленное изображение
Прикрепленное изображениеПрикрепленное изображение Программа настройки Прикрепленный файлQuickPanelSettings.apk ( 54,36 КБ )
Русская версия программы настройки

Слайдер яркости экрана

(При автояркости скрывается)
Необходимые файлы Прикрепленный файлslider.rar ( 6,55 КБ )

Инструкция

1. Разобрать SystemUI.apk
2. Содержимое папок smali, drawable-hdpi и layout из архива добавить в соответствующие папки
3. Добавить в файл status_bar_expanded.xml строку

<include layout="@layout/qp_brightness" />

после строки

<include layout="@layout/qp_layout" />

4. Собрать
5. В исходном заменить файлами из папки build/apk/
- resources.arsc(без сжатия)
- classes.dex(обычное сжатие)
- res/layout/status_bar_expanded.xml(обычное сжатие)
Добавить файлы из папки build/apk/
- res/drawable-hdpi/qp_brightness_.png(без сжатия)
- res/layout/qp_brightness.xml(обычное сжатие)

Результат

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение
Слайдер для телефонов без датчика освещения (не скрывается) можно взять
nastor @ 08.06.2012, 09:39

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

вот доработанный Прикрепленный файлslider_btn.rar ( 7,78 КБ )

Добавил ещё кнопку Настройки (Нажатие - запуск программы настройки QuickPanelSettings.apk если она установлена иначе - запуск системных настроек, долгое нажатие - запуск системных настроек)

Скрин

Прикрепленное изображение Необходимые файлы Прикрепленный файлqp415.rar ( 158,5 КБ )

Программа настройки Прикрепленный файлQuickPanelSettings15.apk ( 55,16 КБ )
Русская версия программы настройки


дополнительно

Сообщение отредактировал Димар - 07.11.15, 15:07

Причина редактирования:

--------------------

Призер Шестой Премии 4PDA в номинации «Спасатель 2011»

Сообщение

24.04.12, 22:30

Ковырятель APK


[offline]

Группа: Друзья 4PDA
Сообщений: 1935
Регистрация: 03.12.09

Репутация: -    +


Снимаем лог ошибки через терминал

su
logcat>/sdcard/1.txt

ждёшь секунд 5, закрываешь терминал, выгружаешь его из памяти (Настройки -> приложения -> управление приложениями -> терминал -> остановить)

Сообщение отредактировал Димар - 14.02.16, 19:19

--------------------

Призер Шестой Премии 4PDA в номинации «Спасатель 2011»

Сообщение

24.05.12, 15:51

IT шаман


[offline]

Группа: Друзья 4PDA
Сообщений: 1609
Регистрация: 06.07.08

Репутация: -    +


Пакет автоматизации для внедрения панели Lidroid в статусбар ("шторку").

ПАКЕТ СКРИПТОВ ДЛЯ АВТОМАТИЗАЦИИ ИЗМЕНЕНИЯ SYSTEMUI ПОД LIDROID © SpellCaster


Автоматизирует

Описание

Поддерживает запуск не из текущей директории, а также из директорий с пробелами и нелатинскими символами
Картинки в наличии только для HDPI экранов

Требования для работы:
Установленная Java (JDK)
Требования для установки модифицированного apk:
На целевом девайсе - права рута и доступ на запись в /system/app

СОСТАВ ПАКЕТА:

Исходные данные
\qp_flash\ - модифицированный пакет замен файлов от sk0t для панели с фонариком(1)
\qp_noflash\ - модифицированный пакет замен файлов от sk0t для панели без фонарика(1)
\framework\ - пустая папка для файлов фреймворка

Инструменты
Инструменты скачиваются отдельно отсюда: . Извлечь ФАЙЛЫ в директорию пакета.

\SysUI_worker.bat - главный скрипт
\qpid_repl.js - скрипт для замены id в qpids.smali (запускается из SysUI_worker)
\xml_add.js - скрипт для манипуляций с xml (запускается из SysUI_worker)

Разное:
\README - этот файл
\QuickPanelSettings.apk - приложение для настройки отображаемых индикаторов (можно также скачать с 4pda: см. по ссылке выше)

(1) Исходные версии находятся здесь: . Модификация состоит в том, чтобы сделать из файлов qp_flash\res\values-ru\strings.xml настоящие XML (добавление корневого XML узла). Наборы файлов, выложенные sk0t, без этой модификации РАБОТАТЬ ЗДЕСЬ НЕ БУДУТ.


ПРИМЕНЕНИЕ

  1. Поместить файлы пакета в отдельную директорию.
  2. Скачать архив с инструментами (утилитами) отсюда: , извлечь файлы в директорию пакета (т.е. файлы инструментов должны лежать рядом с файлами пакета).
  3. Скачать с целевого девайса файлы /system/framework/.apk (ВСЕ файлы с расширением apk!) (поместить в папку \framework) и /system/app/SystemUI.apk, поместить рядом с файлами Пакета.
  4. Запустить SysUI_worker.bat
  5. Указать режим: с фонариком или без
  6. Для начала попробовать выполнить в автоматическом режиме (Step = 0). Пошаговый режим - для отладки, если возникают ошибки
  7. Если всё благополучно, скрипт завершится без ошибок, а итоговое приложение будет сохранено как SystemUI_mod.apk. Если всё плохо :) - будут выданы ошибки. Желательно попробовать разобраться самим (например, если ошибка при сборке - почитать, на что именно ругается, возможно, при модификации были допущены ошибки). Если не получается - надо скопировать полный лог запуска (правая кнопка мыши - Изменить - Пометить, выделить весь текст с момента запуска скрипта, нажать Enter) и запостить в указанной теме на 4pda. Можно спросить у меня в личке, но в этом не очень много смысла, т.к. я слабо разбираюсь в природе процесса, просто автоматизировал инструкцию sk0t. Т.ч. будьте готовы, к редиректу в ту же самую тему :).
  8. Записать из-под рекавери SystemUI_mod.apk на целевой девайс в /system/app (предварительно переименовать в SystemUI.apk). Перегрузить девайс.
  9. Через adb это делается так:
    • adb reboot recovery
    • смонтировать /system через интерфейс рекавери (должно как-то выполняться командой, mount что-то там, но неохота искать)
    • adb push SystemUI_mod.apk /system/app/SystemUI.apk
    • adb reboot

    Можно и "на горячую" - adb push SystemUI_mod.apk /system/app/SystemUI.apk при включённом и загруженном девайсе, но есть опасность глюков.
  10. Если возникнут ошибки запуска com.android.statusbar, посмотреть лог (выполнить в эмуляторе терминала на целевом девайсе либо через adb shell)
    • logcat
    • Сохранить лог в файл:
    • logcat > /sdcard/err.log

  11. Поставить приложение QuickPanelSettings

Примечание

ПРИМ.

По умолчанию для разборки-сборки apk файлов (в т.ч. фреймворка) используется более свежая версия aapt.exe из SDK. Версия из набора apktool не умеет обрабатывать нестандартные названия ресурсов (вроде drawable-sw600dp-mdpi - выдает ошибку вида "invalid resource directory name: ...\SystemUI\res/values-sw600dp-port"), поэтому версия из SDK более всеядна. Тем не менее, если эта версия у вас выдает ошибки при разборке или сборке, можно попробовать использовать apktool версию. Для этого откройте APK_worker.bat в текстовом редакторе и раскомментируйте строчку ":: set AAPT=aapt_Custom.exe" (просто уберите символы "::").

ПРИМ. 2

используемые бинарные файлы:
apktool.jar, aapt_Custom.exe:
7za.exe:
aapt_SDK.exe: (взято из Android SDK)
qp_flash, qp_noflash: (!!! требуют модификации - см. выше !!!)

Обновление от 28/05/2012:

  • Поддержка неограниченного количества файлов фреймворков (теперь их нужно помещать в отдельную папку)
  • Более правильный метод размещения самой панели
  • Поддержка локализаций (обрабатываются все директории \res\values - однако это потребовало мелких изменений в исходном пакете, т.ч. теперь они слегка не совместимы). Если кому интересно

    Изменения состоят в том, чтобы сделать из res\values\strings.xml настоящие xml, то бишь добавление заголовка и корневого элемента resources.


Обновление от 14/08/2012:

  • Поддержка картинок для разрешений mdpi, ldpi (!!! самих картинок в архиве НЕТУ !!!)
  • Мелкие исправления и улучшения

Обновление от 20/08/2012:

  • Поддержка модификаций без фонарика, выбор наличия фонарика - через интерфейс
  • Множество улучшений

Обновление от 20/08/2012:

  • Поддержка модификаций без фонарика, выбор наличия фонарика - через интерфейс
  • Множество улучшений

Обновление от 05/12/2012:

  • Убрана зависимость от текущей директории (работа с абсолютными путями)
  • Используется aapt из SDK вместо apktool версии (умеет обрабатывать нестандартные названия ресурсов). Вернуть использование apktool-версии можно через редактирование APK_worker.bat. Также aapt.exe теперь копируется из нужного экзешника при каждом запуске.
  • Поддержка запуска не из текущей директории (.../systemui_panel_pack/APK_worker.bat) и из директории с пробелами и нелатинскими символами

Обновление от 19/12/2012:

  • Перед выходом из скрипта удаляются фреймворки (уборка за собой)
  • Для данного пакета создан отдельный репозиторий; для сторонних утилит - ещё один. Теперь нужно будет скачать архивы из обоих репозиториев и извлечь файлы в одну директорию.

Обновление от 10/01/2013:

  • Исправлен баг: удаление папки SystemUI и инсталляция фреймов перед каждым шагом

Сообщение отредактировал Димар - 05.11.15, 21:21

Причина редактирования:

--------------------

Humanoid @ Android: путевые записки знакомства с ОС Android, прокачка Nook Simple Touch. См. профиль.

Сообщение

23.08.12, 21:31

Ковырятель APK


[offline]

Группа: Друзья 4PDA
Сообщений: 1935
Регистрация: 03.12.09

Репутация: -    +


Power Menu для Android 4 ICS


Всё, что после «#» - это мои комменты, их добавлять не нужно

Работа с framework-res.apk

1. Разбираем framework-res.apk

1.1 Добавляем в framework-res/res/drawable-hdpi три картинки
ic_lock_reboot.png
ic_lock_recovery.png
ic_lock_download.png

Добавляем в framework-res/res/values/strings.xml три строки:

Код

<string name="global_action_reboot">Reboot</string>
<string name="global_action_recovery">Recovery</string>
<string name="global_action_download">Download</string>


Добавляем в framework-res/res/values-ru/strings.xml три строки:

Код

<string name="global_action_reboot">Перезагрузка</string>
<string name="global_action_recovery">Рекавери</string>
<string name="global_action_download">Прошивка</string>

Собираем framework-res.apk
Переходим в папку framework-res/dist
И разбираем лежащий там framework-res.apk (в этом apk уже назначены правильные ID для добавленных строк/картинок)
копируем с заменой файл framework-res/dist/framework-res/res/values/public.xml
в папку framework-res/res/values/, открываем его и ищем добавленные строки/картинки

Код

<public type="string" name="global_action_reboot" id="0x01040699" />
<public type="string" name="global_action_recovery" id="0x01040697" />
<public type="string" name="global_action_download" id="0x01040698" />
...
<public type="drawable" name="ic_lock_reboot" id="0x01080995" />
<public type="drawable" name="ic_lock_recovery" id="0x01080996" />
<public type="drawable" name="ic_lock_download" id="0x01080994" />

Запоминаем найденные ID

1.2 Открываем framework-res/res/values-ru/strings.xml
Если в диалоге есть пункт «Рестарт» - ищем строку «Рестарт»
<string name="global_action_restart">Рестарт</string>
запоминаем global_action_restart
Если нет ищем строку«Выключение»
<string name="global_action_power_off">Выключение</string>
запоминаем global_action_power_off
Открываем framework-res/res/values/public.xml
Ищем запомненное global_action_restart (global_action_power_off)

<public type="string" name="global_action_power_off" id="0x0104016c" />
<public type="string" name="global_action_restart" id="0x0104016d" />


Запоминаем найденный ID 104016d (104016c)

Собираем framework-res.apk, в исходном меняем resources.arsc и добавляем картинки в res/drawable-hdpi

Работа с android.policy.jar

2. Разбираем android.policy.jar (так-же как и apk, с помощью ApkTools)

Открываем android.policy/smali/com/android/internal/policy/impl/GlobalActions.smali
Ищем запомненный в пункте 1.2 ID 104016d (104016c)

Код

.line 304
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions;

const v1, 0x10806f2

const v2, 0x104016c # это global_action_power_off (Выключение)

invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mPowerOff:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

.line 327
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions;

const v1, 0x10806f3

const v2, 0x104016d # это global_action_restart (Рестарт)

invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

Отсюда видим что за выключение у нас отвечает GlobalActions, за рестарт GlobalActions

Если есть Перезагрузка

Открываем файл android.policy/smali/com/android/internal/policy/impl/GlobalActions.smali
Ищем слово reboot
const-string v1, "GlobalActions restart"

const/4 v2, 0x1

invoke-static {v0, v1, v2}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V

Меняем const-string v1, "GlobalActions restart" на const-string v1, "recovery"
Меняем все слова GlobalActions на GlobalActions
Сохраняем под именем GlobalActions (у меня последний файл GlobalActions, то-есть на единицу больше), запоминаем
Далее в этом же файле меняем const-string v1, "recovery" на const-string v1, "download"
Меняем все слова GlobalActions на GlobalActions
Сохраняем под именем GlobalActions, запоминаем

Если нет Перезагрузки:

Открываем файл android.policy/smali/com/android/internal/policy/impl/GlobalActions.smali
Ищем слово shutdown
move-result-object v0

const/4 v1, 0x1

invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V

Меняем строку invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V так:
invoke-static {v0, v2, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
Перед этой строкой добавляем строку const-string v2, "now"
Несколько строк выше меняем .locals 2 на .locals 3
Меняем все слова GlobalActions на GlobalActions$16
Сохраняем под именем GlobalActions (у меня последний файл GlobalActions, то-есть на единицу больше), запоминаем
Далее меняем const-string v2, "now" на const-string v2, "recovery"
Меняем все слова GlobalActions на GlobalActions
Сохраняем под именем GlobalActions, запоминаем
Далее меняем const-string v2, "recovery" на const-string v2, "download"
Меняем все слова GlobalActions на GlobalActions
Сохраняем под именем GlobalActions, запоминаем
Снова открываем android.policy/smali/com/android/internal/policy/impl/GlobalActions.smali
Ищем слово new-array

Если есть строка new-array

const/4 v0, 0x5 # Кол-во пунктов

new-array v0, v0, [Lcom/android/internal/policy/impl/GlobalActions$Action;

Меняем const/4 v0, 0x5 на const v0, 0x7
после строки new-array идёт добавление пунктов
const/4 v1, 0x0 # Порядковый номер

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mAccessiblityShortcut:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

aput-object v2, v0, v1

iget-object v1, p0, Lcom/android/internal/policy/impl/GlobalActions;->mPowerOff:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

aput-object v1, v0, v9 # v9 определена в начале метода как 0х1

const/4 v1, 0x2 # Порядковый номер

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mDataModeToggle:Lcom/android/internal/policy/impl/GlobalActions$ToggleAction;

aput-object v2, v0, v1

const/4 v1, 0x3 # Порядковый номер

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mAirplaneModeOn:Lcom/android/internal/policy/impl/GlobalActions$ToggleAction;

aput-object v2, v0, v1

const/4 v1, 0x4 # Порядковый номер

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

aput-object v2, v0, v1

Копируем последние 3 строки и вставляем сразу после этого кода 2 раза
const/4 v1, 0x0

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mAccessiblityShortcut:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

aput-object v2, v0, v1

iget-object v1, p0, Lcom/android/internal/policy/impl/GlobalActions;->mPowerOff:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

aput-object v1, v0, v9

const/4 v1, 0x2

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mDataModeToggle:Lcom/android/internal/policy/impl/GlobalActions$ToggleAction;

aput-object v2, v0, v1

const/4 v1, 0x3

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mAirplaneModeOn:Lcom/android/internal/policy/impl/GlobalActions$ToggleAction;

aput-object v2, v0, v1

const/4 v1, 0x4

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

aput-object v2, v0, v1

const/4 v1, 0x5 # Замена 0x4 -> 0x5

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRecovery:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; # Замена mRestart -> mRecovery

aput-object v2, v0, v1

const/4 v1, 0x6 # Замена 0x4 -> 0x6

iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions;->mDownload:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; # Замена mRestart -> mDownload

aput-object v2, v0, v1

Ищем с начала файла строку mRestart (mPowerOff)

.field private mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

копируем её и вставляем сразу за ней-же 2 (3) раза
.field private mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

.field private mRecovery:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; # Замена mRestart -> mRecovery

.field private mDownload:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; # Замена mRestart -> mDownload

Ищем эту-же строку дальше
.line 327
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions;

const v1, 0x10806f3

const v2, 0x104016d

invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

Копируем эти строки и вставляем сразу-же за ними 2 (3) раза
.line 327
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions;

const v1, 0x10806f3

const v2, 0x104016d

invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

.line 327
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions; # Замена ->

const v1, 0x1080996 # Замена 0x10806f3 -> 0x1080996 (ic_lock_recovery)

const v2, 0x1040697 # Замена 0x104016d -> 0x1040697 (global_action_recovery)

invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V # Замена ->

iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRecovery:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; # Замена mRestart -> mRecovery

.line 327
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions; # Замена ->

const v1, 0x1080994 # Замена 0x10806f3 -> 0x1080994 (ic_lock_download)

const v2, 0x1040698 # Замена 0x104016d -> 0x1040698 (global_action_download)

invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V # Замена ->

iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mDownload:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction; # Замена mRestart -> mDownload

Если нет строки new-array

Ищем запомненный в пункте 1.2 ID 104016d (104016c) .line 163
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;

new-instance v1, Lcom/android/internal/policy/impl/GlobalActions;

const v2, 0x1080030

const v3, 0x104016d

invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

Копируем эти строки (от строки .line до строки .line), вставляем сразу за ними-же 3 раза и изменяем .line 163
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;

new-instance v1, Lcom/android/internal/policy/impl/GlobalActions;

const v2, 0x1080030

const v3, 0x104016d

invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

.line 163
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;

new-instance v1, Lcom/android/internal/policy/impl/GlobalActions; # Замена ->

const v2, 0x1080030 # Замена 0x1080030 -> 0x1080995 (ic_lock_reboot)

const v3, 0x104016d # Замена 0x104016d -> 0x1040699 (global_action_reboot)

invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V # Замена ->

invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

.line 163
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;

new-instance v1, Lcom/android/internal/policy/impl/GlobalActions; # Замена ->

const v2, 0x1080030 # Замена 0x1080030 -> 0x1080996 (ic_lock_recovery)

const v3, 0x104016d # Замена 0x104016d -> 0x1040697 (global_action_recovery)

invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V # Замена ->

invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

.line 163
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;

new-instance v1, Lcom/android/internal/policy/impl/GlobalActions; # Замена ->

const v2, 0x1080030 # Замена 0x1080030 -> 0x1080994 (ic_lock_download)

const v3, 0x104016d # Замена 0x104016d -> 0x1040698 (global_action_download)

invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V # Замена ->

invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

Всё, собираем, заменяем в теле, пользуемся

Скрин

Прикрепленное изображение

Для владельцев сони/сониэриков -

Сообщение отредактировал Димар - 05.11.15, 21:34

Причина редактирования:

--------------------

Призер Шестой Премии 4PDA в номинации «Спасатель 2011»

Сообщение

01.09.12, 22:43

Шаман


[offline]

Группа: Друзья 4PDA
Сообщений: 1279
Регистрация: 15.03.12

Репутация: -    +


Как заменить модифицированный framework-res.apk
android 2.x.x

Инструкция

В общем, вот - Прикрепленный файлframework-updater.zip ( 154,52 КБ )
Поместите свой модифицированный framework-res.apk в папку system/framework/ внутри архива и установите получившийся архив через рекавери (CWM). :)

Или, если есть:
- Root
- Установленный Busybox
- Установленный терминал в телефоне
Можно сделать так:
1. Скопировать в корень SD-карты - свой модифицированный framework-res.apk и reframe.sh из архива ниже.
2. Ввести в терминале телефона:

su
sh /sdcard/reframe.sh


3. Телефон перезагрузится.
Готово. Старый framework-res.apk будет сохранён на флэшке под именем framework-res.apk.orig
Прикрепленный файлframework-updater.zip ( 154,52 КБ )
Прикрепленный файлreframe.rar ( 510 байт )

Сообщение отредактировал Димар - 12.04.16, 19:51

Причина редактирования:

--------------------

Энтузиаст ищет занятие по душе для получения новых знаний и закрепления имеющихся на практике))
А именно интересуют разработки всяких плюшек, имеющих какое-либо отношение к андроиду. С предложениями в ЛС.
:)

Сообщение

21.10.12, 00:30

Местный


[offline]

Группа: Друзья 4PDA
Сообщений: 287
Регистрация: 25.10.09

Репутация: -    +


Прозрачный статус бар для планшета ICS 4.0.x

SystemUI.apk/smali/com/android/systemui/statusbar/StatusBar.smali
Ищем
const/16 v16, 0x4

invoke-direct/range {v11 .. v16}, Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V

Меняем на

const/16 v16, -0x3

invoke-direct/range {v11 .. v16}, Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V

SystemUI.apk/res/values-sw600dp/drawables.xml Ещё бывает values-sw720dp в зависимости от экрана..
ищем

<item type="drawable" name="status_bar_background">#ff000000</item>

Меняем на

Полностью прозрачный:
<item type="drawable" name="status_bar_background">#00FFFFFF</item>

Прозрачный на 50%:
<item type="drawable" name="status_bar_background">#7f000000</item>

SystemUI.apk\res\layout-sw600dp\status_bar.xml

Находим

android:background="#ff000000"


Меняем на

android:background="#7f000000"

- 50%

Скриншот

Прикрепленное изображение

Спасибо: sk0t, mythtrandyr

Сообщение отредактировал Димар - 03.11.15, 22:49

Причина редактирования:

--------------------

Perfeo 7123w, Ritmix RMP-450, DNS S4505M

Сообщение

08.12.12, 12:39

Перемещение QuickPanel панели вниз статус бара[Android 2.x.x]

Инструкция

1)Декомпилируем SystemUI.apk, идем по этому пути:SystemIU.apk\smali\com\android\systemui\statusbar\ и находим вот этот файл: StatusBarService.smali
2)открываем через Notepad++
3)ищем этот код:
const v7, 0x7f030002

invoke-static {p1, v7, v9}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;

move-result-object v3

.end local v3 #qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
check-cast v3, Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;

.line 352
.restart local v3 #qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
iget-object v7, p0, Lcom/android/systemui/statusbar/StatusBarService;->mExpandedView:Lcom/android/systemui/statusbar/ExpandedView;

invoke-virtual {v7, v3, v12}, Lcom/android/systemui/statusbar/ExpandedView;->addView(Landroid/view/View;I)V


4)меняем mExpandedView и ExpandedView на mCloseView и CloseDragHandle(соответственно), чтобы было так:
const v7, 0x7f030002

invoke-static {p1, v7, v9}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;

move-result-object v3

.end local v3 #qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
check-cast v3, Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;

.line 352
.restart local v3 #qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
iget-object v7, p0, Lcom/android/systemui/statusbar/StatusBarService;->mCloseView:Lcom/android/systemui/statusbar/CloseDragHandle;

invoke-virtual {v7, v3, v12}, Lcom/android/systemui/statusbar/CloseDragHandle;->addView(Landroid/view/View;I)V


5)компилируем SystemUI.apk
6)устанавливаем удобным для вас способом

Скриншоты

Прикрепленное изображениеПрикрепленное изображение

Тест проводился на девайсе Samsung Galaxy Y GT-S5360 и на Samsung Galaxy Ace GT-S5830i. Все прошло успешно!

Сообщение отредактировал Димар - 05.11.15, 22:15

Причина редактирования:

--------------------

Fly Tornado One + CyanogenMod 12.1


Источник: http://4pda.ru/forum/index.php?showtopic=540887


Как сделать скрин с планшета престижио

Как сделать скрин с планшета престижио

Как сделать скрин с планшета престижио

Как сделать скрин с планшета престижио

Как сделать скрин с планшета престижио

Как сделать скрин с планшета престижио

Как сделать скрин с планшета престижио

Как сделать скрин с планшета престижио