Редактирование системных ресурсов | Обсуждение способов редактирования системных ресурсов.



Реп: (351)
Редактирование системных ресурсов
Обсуждение способов редактирования системных ресурсов


Правила поведения в теме. Читать обязательно!

  • В теме ведется только обсуждение способов редактирования системных ресурсов!
  • Обращаем Ваше внимание, что для быстрого поиска информации в теме (на форуме) воспользуйтесь кнопкой "найти в этой теме" (справа вверху страницы). Как пользоваться поиском
    Если контент, который Вы хотите опубликовать в данной теме, был выложен ранее на форуме, достаточно дать ссылку на оригинальное сообщение с коротким описанием. В случае повтора, файлы будут удалены без предупреждения.
  • Заказы на редактирование оставляем в Стол заказов на компилирование и редактирование системных ресурсов и приложений
    В этой теме заказы будут удаляться без предупреждений!
  • Мануалы, уроки и т.д. публикуем в соответствующей теме Инструкции по редактированию системных ресурсов в эту тему, при необходимости, даем только ссылку.
    Сообщения пользователей, проигнорировавших данное требование, будут удаляться без предупреждений!
  • Флуд и оффтоп запрещены и наказуемы!
  • Ссылки на платные и требующие обязательной регистрации файлообменники недопустимы и будут удаляться! Файлы до 128Мб рекомендуется загружать на форум, свыше 128 Мб - на бесплатные файлообменники (Яндекс.Диск; Облако Mail.ru и др.).
  • Все изображения прячем под спойлер! Не стоит размещать изображения, отснятые на современных фотоаппаратах, без существенного их уменьшения. Не забывайте о том, что многие просматривают форум с мобильных устройств, трафик на которых стоит существенно выше. В случае необходимости размещения оригинального, большого изображения, размещайте только ссылку на него. Использование формата BMP для скриншотов запрещено!
  • В теме в полной мере действуют все правила форума. Их соблюдение не подлежит обсуждению!


Оформление сообщений. Читать обязательно!
  • При написании сообщений, которые содержат описание проблем, используйте шаблон (см. ниже).
  • Если у вас проблемы с декомпиляцией/компиляцией приложений в апктуле, то обязательно выкладывайте лог декомпиляции/компиляции!
  • Если приложение собирается, но не работает, то обязательно выкладывайте логкат!

Logcat
Logcat можно создать через терминал с помощью следующих команд:
su
logcat >/sdcard/ logcat .txt

Файл logcat.txt будет лежать в корне sdcard.
Также можно использовать эту программу:
CatLog - Logcat Reader


Шаблон оформления сообщений

[b]Андроид:[/b] Здесь пишем версию андроид
[b]Версия ApkTool:[/b] Здесь пишем версию ApkTool
[b]Описание:[/b]
Здесь пишем описание вашей проблемы
[spoiler=Скриншоты]При необходимости добавляем скриншоты[/spoiler]
[spoiler=Лог]Здесь при необходимости оставляем лог (либо файлы, либо код)[/spoiler]

При несоблюдении правил написания сообщений пост будет удалён!


Инструкции, полезные ссылки



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




Куратор темы sasha9182: профиль | QMS


Сообщение отредактировал sasha9182 - 13.08.23, 23:49
Причина редактирования: Изменено название темы



Реп: (467)
Мужики , помогите с редактированием Settings.apk , пол инструкции сделал нормально , а при сборке сетингса валятся ошибки :
Ошибка
\Users\Жека\Desktop\jBART-master\Settings.apk.bzprj\decompiled\Settings.apk\res, -M, C:\Users\Жека\Desktop\jBART-master\Settings.apk.bzprj\decompiled\Settings.apk\AndroidManifest.xml]

То, что не могу собрать
Далее разбираем Settings.apk
Далее в res/values/strings.xml добавляем

<string name="visualizer_settings">Visualizer settings</string>

Далее в res/values-ru/strings.xml добавляем

<string name="visualizer_settings">Настройка визуализатора</string>

и далее в res/xml/куда вам хочется прописываем ( Желательно в настройки экрана )

<PreferenceScreen android:title="@string/visualizer_settings" android:key="visualizer">
<intent android:targetPackage="com.adi.rom.interface" android:action="android.intent.action.MAIN" android:targetClass="com.adi.rom.interface.Visualizer" />
</PreferenceScreen>

Собираем обратно Settings.apk

Прикрепленный файлФрейм и сеттингс.rar ( 15.33 МБ )

И что вообще значит -M ?
Буду очень признателен за помощь !

Сообщение отредактировал Jeka061288 - 06.11.15, 01:47



Реп: (775)
* Jeka061288,
Фрейма не хватало, добавил mediatek-res.apk (с 4.2.2) разобрал и собрал без ошибок
--------------------------------------------------
Batch ApkTool : 3.3.3
SMALI : smali-2.0.7.jar
Уровень API : 17
APKTOOL : apktool_2.0.2_a19.jar
Экспертный режим : НЕТ
Подпись : НЕТ
--------------------------------------------------

[*] Установка фреймворка framework-res.apk
I: Framework installed to: ..\bin\framework\1.apk
[*] Установка фреймворка mediatek-res.apk
I: Framework installed to: ..\bin\framework\2.apk

[*] Рекомпиляция Settings
I: Using Apktool 2.0.2_0821
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...

ГОТОВО


Еслу нужен то вот файл с правками - Прикрепленный файлSettings.apk ( 15.88 МБ )



Реп: (467)
* YMATOBbli,
Конечно нужен ! ) Благодарю тебя за помощь - выручил ! А подскажи , что значит -М ( бывает открываю xml , а там на всех строчках -М ) ?



Реп: (1535)
Чего-то я не понимаю, разъясните кто знает.
Сделал меню в Settings.apk из этой инструкции.
Меню работает, но название пункта в общем списке настроек дисплея, и заголовка самого подменю не то, что прописано в xml и strings.
Должно быть "Динамический статусбар", а выводит "Динамический цвет статусбара" - название первого пункта этого меню.
Вот что добавлено в res/xml/display-settings.xml:
<PreferenceScreen android:title="@string/dynamic_status_bar_title" android:fragment="com.android.settings.oplosandev.DSBSettings" />

Вот содержание res/xml/deuge_dsb_settings.xml, из которого берутся настройки для DSBSettings.smali:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/dynamic_status_bar_title"
xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference android:title="@string/dynamic_status_bar_color_title" android:key="dynamic_status_bar_color" android:summary="@string/dynamic_status_bar_color_summary" />
<CheckBoxPreference android:title="@string/dynamic_status_bar_gradient_title" android:key="dynamic_status_bar_gradient" android:summary="@string/dynamic_status_bar_gradient_summary" />
<CheckBoxPreference android:title="@string/dynamic_status_bar_filter_title" android:key="dynamic_status_bar_filter" android:summary="@string/dynamic_status_bar_filter_summary" />
</PreferenceScreen>

А вот стринги:
<string name="dynamic_status_bar_title">Динамический статусбар</string>
<string name="dynamic_status_bar_color_title">Динамический цвет статусбара</string>

Поискал по ID этих строк, они нигде кроме public.xml не встречаются.
Как исправить косяк?

Сообщение отредактировал Alex&rK - 06.11.15, 10:39



Реп: (1283)
Alex&rK @ 06.11.2015, 10:35 *
Как исправить косяк?

Чот я не совсем понял, в мануале совсем другие строки во первых, во вторых не понял зачем искать id, если у Вас в deuge_dsb_settings.xml напрямую прописано @string/dynamic_status_bar_color_title, что и является "Динамический цвет статусбара". Меняйте dynamic_status_bar_color_title, или просто поправьте перевод.



Реп: (1955)
Ребят, как добавить разделения между пунктами в Settings.apk, как на скрине(я их отметил чёрным цветом)?
Прикрепленное изображение


Сообщение отредактировал sasha9182 - 06.11.15, 12:16



Реп: (1535)
* porom, строки я переименовал немного. system_bars заменил на status_bar, так как полностью убрал Navigation Bar. И добавил _color для первого пункта. Можно было и не переименовывать, но так больше порядка. Но переименование дела не меняет. До переименования тоже было Динамический статусбар, хотя должно было быть Динамические системные панели.
А ID искал, так как не знаю как создается меню и думал может где подменяется в smali конкретно заданным ID.

Добавлено 06.11.2015, 12:17:

porom @ 06.11.2015, 11:25 *
в deuge_dsb_settings.xml напрямую прописано @string/dynamic_status_bar_color_title, что и является "Динамический цвет статусбара".
Так это же прописано для первого пункта меню. А заголовок самого меню:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/dynamic_status_bar_title"
xmlns:android="http://schemas.android.com/apk/res/android">

Почему заголовок берется из первого пункта меню?

Сообщение отредактировал Alex&rK - 06.11.15, 12:14



Реп: (1535)
Еще вопрос.
В logcate увидал такую строку D/WindowManager бла-бла-бла screenIsOn=true бла-бла.
Решил использовать эту переменную в своих целях.
Нашел где формируется эта строка. Увидел, что это значение вставляется в строку напрямую из параметра p3.
Вбил в поиск название метода interceptKeyBeforeQueueing(Landroid/view/KeyEvent;IZ)I, чтобы найти как оно определяется перед передачей в этот метод, но не смог найти ничего вразумительного. В одном методе это значение перед вызовом этого метода просто задается равным 1. Больше ничего полезного.

Так вот вопрос, как сделать проверку включен экран или нет, в смысле откуда и какую переменную считать?



Реп: (1535)
Для общего развития объясните доходчиво как запустить метод или прочитать значение field из другого класса (jar)?
Я нашел такой метод .method public isScreenOn()Z в PowerManagerService.smali из services.jar но все мои попытки (и в лоб invoke-virtual {p0} и с new-instance, а потом <init>) запустить его из своего smali крашатся вместе с SystemUI. Выдает java.lang.IllegalAccessError.
Еще нашел вот такой код проверки блокировки экрана (я так думаю)
move-object/from16 v0, p0

iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mKeyguardMediator:Lcom/android/internal/policy/impl/KeyguardViewMediator;

move-object/from16 v19, v0

if-nez v19, :cond_4b

const/4 v13, 0x0

.line 3512
.local v13, "keyguardActive":Z

Но опять же как прочитать это значение из моего smali?



Реп: (236)
Alex&rK @ 06.11.2015, 13:48 *
Но опять же как прочитать это значение из моего smali?

почему не прописать в смали это поле и не скопировать метод в свой смали?

Вот код вызова метода LollipopStyle()V, который находится в смали PhoneStatusBar, из смали PhoneStatusBa$r23
move-object/from16 v0, p0

iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$23;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

move-object/from16 v16, v0

#calls: Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->repositionNavigationBar()V
invoke-static/range {v16 .. v16}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->access$3400(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)V

move-object/from16 v0, p0

iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$23;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

move-object/from16 v16, v0

invoke-virtual/range {v16 .. v16}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->LollipopStyle()V


Сообщение отредактировал DuToM - 06.11.15, 15:17



Реп: (1535)
DuToM @ 06.11.2015, 15:10 *
почему не прописать в смали это поле и не скопировать метод в свой смали?

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

Надо будет попробовать через this$0 и access.



Реп: (82)
* sasha9182,
В стиль главного экрана настроек добавить
<item name="android:listSeparatorTextViewStyle">@style/Theme.Settings.ListSeparator</item>

и в самый низ добавить это
<style name="Theme.Settings.ListSeparator" parent="@android:style/Widget.Holo.Light.TextView.ListSeparator">
<item name="android:background">@drawable/list_section_divider_holo_light</item>
</style>

потом в drawable добавить разделитель list_section_divider_holo_light



Реп: (35)
Доброе время суток
подскажите люди добрые а как можно изменить цвет индикаторов сети на андроид 5.1

или подскажите какие файлы за это отвечают

Сообщение отредактировал aleksvag - 06.11.15, 20:01



Реп: (230)
* aleksvag, картинки поменять



Реп: (439)
Редактирую gemini_status_bar_expanded.xml, хочу удалить панель переключателей, что б заменить на Инструкции по редактированию системных ресурсов (Пост the_vanya1 #36318507)
Lenovo 4.4
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.NotificationPanelView android:id="@id/notification_panel" android:background="#ff232323" android:paddingTop="@dimen/notification_panel_padding_top" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginStart="@dimen/notification_panel_margin_left"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android…s/com.android.systemui">
<View android:id="@id/handle" android:background="@drawable/status_bar_close" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="@dimen/close_handle_height" />
<include android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/carrier_label_height" android:layout_marginBottom="@dimen/close_handle_height" layout="@layout/gemini_carrier_label" />
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="@dimen/close_handle_underlap" android:animateLayoutChanges="false">
<include android:layout_width="fill_parent" android:layout_height="@dimen/notification_panel_header_height" layout="@layout/status_bar_expanded_header" />
<FrameLayout android:id="@id/toolBarSwitchPanel" android:background="#ff232323" android:layout_width="fill_parent" android:layout_height="103.0dip">
<include layout="@layout/toolbar_view" />
<include layout="@layout/toolbar_indicator" />
<include layout="@layout/toolbar_divider" />
</FrameLayout>
<FrameLayout android:background="#ff232323" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="24.0dip">
<ViewStub android:id="@id/flip_settings_stub" android:layout="@layout/flip_settings" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:animateLayoutChanges="false">
<android.support.v4.view.ViewPager android:id="@id/viewpager" android:layout_width="fill_parent" android:layout_height="85.0dip" />
<RelativeLayout android:id="@id/notification_list" android:background="@drawable/notification_list_bg" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="5.0dip" android:layout_marginRight="5.0dip" android:animateLayoutChanges="false">
<RelativeLayout android:id="@id/title_clean" android:clickable="true" android:layout_width="fill_parent" android:layout_height="32.0dip">
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="32.0dip" android:animateLayoutChanges="false">
<TextView android:textSize="15.0sp" android:textColor="#ff999999" android:layout_gravity="center_vertical" android:id="@id/notification_title" android:paddingLeft="16.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/notification_title" />
<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
<ImageView android:layout_gravity="center_vertical" android:id="@id/notification_button_clean" android:clickable="true" android:layout_width="28.0dip" android:layout_height="28.0dip" android:src="@drawable/clean" />
<Space android:layout_width="15.0dip" android:layout_height="0.0dip" />
</LinearLayout>
<View android:background="@drawable/list_divider_holo_dark" android:layout_width="fill_parent" android:layout_height="1.0px" android:layout_alignParentBottom="true" />
</RelativeLayout>
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="25.0dip" android:layout_below="@id/title_clean" android:overScrollMode="ifContentScrolls">
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_row_min_height" />
</ScrollView>
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="25.0dip" android:layout_below="@id/scroll" android:animateLayoutChanges="false" />
</RelativeLayout>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</com.android.systemui.statusbar.phone.NotificationPanelView>

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

Ну при удалении красной строчки вылитает графический интерфейс.

Прикрепленные файлы

Прикрепленный файл2015-11-06_192413_logcat.txt ( 501.36 КБ )


Сообщение отредактировал PAraBelllum - 06.11.15, 20:38



Реп: (2485)
* PAraBelllum,
попробуйте так
<android.support.v4.view.ViewPager android:id="@id/viewpager" android:layout_width="0.0dip" android:layout_height="0.0dip" />



Реп: (11)
Кто знает как перейти от 1 варианта настроек ко 2?

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

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



Реп: (535)
делаю 30 уровней громкостей для музыки по инструкциям тут, в итоге все хорошо, за исключением того, что 1 уровень такой же как и 0 уровень без звука, может кто помочь сделать 1 уровень работающим?андройд 5.0.1



Реп: (95)
XRay95 @ Сегодня, 21:49 *


<bool name="preferences_prefer_dual_pane">false</bool>
в framework-res/values/bools



Реп: (693)
Приветствую, не подскажите где может прятаться затемнение заднего фона в меню выключения? хотел сделать темнее чем сейчас
Прикрепленное изображение
Прикрепленное изображение


Сообщение отредактировал Goodzila - 07.11.15, 01:19

Куратор: sasha9182

Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 29.03.24, 10:06