Плохо срабатывает сканер отпечатков на смартфонах Samsung. Как ускорить
Я никогда не любил экранные сканеры отпечатков из-за их медлительности. Несмотря на то что в последнее время ситуация изменилась в лучшую сторону, ни одному производителю до сих пор не удалось заставить их срабатывать так же быстро, как и физические дактилоскопы. Даже Galaxy S20, который имеет самый дорогой сканер, работающий по ультразвуковой технологии, во-первых, всё равно срабатывает с небольшой задержкой, а, во-вторых, время от времени наотрез отказывается распознавать палец своего владельца. Что и говорить о дешёвых моделях, использующих оптические сканеры. Однако есть способ немного увеличить скорость считывания.
Не устраивает скорость срабатывания сканера отпечатков? Её можно увеличить
Предупреждаю сразу: метод, о котором идёт речь ниже, не является официальным способом увеличения скорости срабатывания экранного сканера отпечатков. То есть сама Samsung ничего о нём не говорит, а огласке его существование было предано пользователями-энтузиастами, которые провели проверку и выяснили, что с ним распознавание отпечатка действительно происходит немного быстрее. Однако нужно понимать, что результат может отличаться от устройства к устройству, а потому может оказаться незаметным конкретно в вашем случае. Поэтому никаких гарантий. Более того, все действия вы производите на свой страх и риск.
Как разогнать сканер отпечатков
- Перейдите в «Настройки» — «Приложения» и вызовите контекстное меню (три вертикальных точки в правом верхнем углу);
Найдите системные приложения, там скрываются настройки дактилоскопа
- Нажмите «Показать системные приложения» и в поиске найдите параметр com.samsung.android.biometrics.app.settings – откройте его;
- В открывшемся окне выберите «Батарея» — «Оптимизация расхода»;
Сложно сказать, как это работает, но многие пользователи говорят, что сканер реально стал быстрее
- Включите оптимизацию для всех приложений, выбрав в выпадающем окне сверху «Все»;
- Затем в поиске найдите com.samsung.android.biometrics.app.settings и отключите его;
По умолчанию данный параметр будет включен, его надо отключить
- Перезагрузите смартфон и проверьте работу сканера – он должен начать срабатывать быстрее.
Авторы данного метода не стали вдаваться в подробности того, что именно меняется, если отключить описанный выше параметр и почему это вообще положительно влияет на работу сканера. Но, как я понял, отключая оптимизацию расхода энергии применительно к процедуре дактилоскопирования, мы как бы повышаем его чувствительность, повышая его энергопотребление. Из-за этого встроенному датчику оказывается достаточно всего каких-то долей секунды, чтобы распознать палец и снять блокировку. Вот только на всех устройствах, судя по всему, эффективность данного метода проявляется по-разному.
Настройка сканера отпечатков на Samsung
Нет никаких гарантий, что сканер будет работать быстрее. Но почему бы не попробовать?
Galaxy A51, на котором я проводил эксперимент, на все мои манипуляции отреагировал не очень благодарно. Определённо, времени на распознавание отпечатка стало уходить немного меньше – не вдвое, как обещают авторы метода, — но явно меньше. Другое дело, что, на мой взгляд, этого явно недостаточно для того, чтобы вообще со всем этим заморачиваться, поскольку интерфейс распознавания лиц тут работает и быстрее, и безотказнее. Тем не менее, возможно, в вашем случае после отключения нужного параметра скорость считывания увеличится более ощутимо, а потому рекомендую обязательно попробовать, ведь попытка – не пытка.
Лучший телефон Samsung до сих пор работает как дешевый Xiaomi
Я поискал отзывы других пользователей в интернете, которые проделали те же манипуляции со своими смартфонами Samsung, что и я, и обнаружил довольно противоречивые мнения. Среди них были как строго положительные, чьи авторы утверждали, что скорость срабатывания даклоскопа и вправду возросла в два раза от базовых показателей, так и отрицательные, описывающие полное отсутствие изменений. Не исключено, что тут имеет место эффект плацебо, когда пользователи начали видеть то, что хотели видеть. Но, главное, что хуже смартфон работать точно не будет.
Источник
Com samsung android biometrics app setting что это
Сообщение отредактировал Wlryss — 03.12.21, 08:42
Добавить по пути efs в файл factory.prop строку
ro.security.vaultkeeper.feature=0
сохранить и перезагрузить
Любая официальная прошивка через odin и
никаких манипуляций с переводом времени,
не нужно ждать 7 дней, сразу можно ставить TWRP,
в режиме разработчика OEM (Заводская разблокировка)
будет включен всегда. Никакого слова Prenormal в режиме Прошивка.
P.S. при переходе с одной версии андроида на новую
ркомендую удалить эту строку и после обновления обратно прописать!
В 11м андроиде менять через проводник TWRP
Сообщение отредактировал Wlryss — 30.09.21, 08:00
Потом помогли и стал так, DPI 560:
|
А вот если выбрать DPI 500 так:
Модель Samsung Galaxy Note 4, прошивка кастомная(порт от Note 7), андроид 6.0.1 Сообщение отредактировал MAOQ — 20.03.21, 05:00
Сообщение отредактировал Wlryss — 20.03.21, 04:50 ++++# static fields # instance fields sget-object v0, Lcom/android/systemui/SystemUIApplication;->mGearContext:Landroid/content/Context; return-object v0 .method private isConfigChanged(Landroid/content/res/Configuration;)Z ++++ sput-object p0, Lcom/android/systemui/SystemUIApplication;->mGearContext:Landroid/content/Context;++++ .method private updateBackgroundColors()V .line 384 const-string v2, «am_ubcsu» if-eq v2, v4, :cond_0 if-eq v2, v4, :cond_1 if-eq v2, v4, :cond_2 if-eq v2, v4, :cond_3 if-eq v2, v4, :cond_4 if-eq v2, v4, :cond_5 :cond_0 :cond_1 :cond_2 :cond_3 :cond_4 :cond_5 :goto_0 iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I .line 385 const-string v2, «am_ubcsu» if-eq v2, v4, :cond_6 if-eq v2, v4, :cond_7 if-eq v2, v4, :cond_8 if-eq v2, v4, :cond_9 if-eq v2, v4, :cond_a if-eq v2, v4, :cond_b :cond_6 :cond_7 :cond_8 :cond_9 :cond_a :cond_b :goto_1 iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorDisabled:I .line 386 const-string v2, «am_ubcsu» if-eq v2, v4, :cond_c if-eq v2, v4, :cond_d if-eq v2, v4, :cond_e if-eq v2, v4, :cond_f if-eq v2, v4, :cond_10 if-eq v2, v4, :cond_11 :cond_c :cond_d :cond_e :cond_f :cond_10 :cond_11 :goto_2 iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorInactive:I .method public updateResources()V .line 485 .line 486 iget-object v1, p0, Lcom/android/systemui/settings/ToggleSliderView;->mContext:Landroid/content/Context; const-string v3, «am_ubcsu» if-eq v3, v5, :cond_0 if-eq v3, v5, :cond_1 if-eq v3, v5, :cond_2 if-eq v3, v5, :cond_3 if-eq v3, v5, :cond_4 if-eq v3, v5, :cond_5 :cond_0 :cond_1 :cond_2 :cond_3 :cond_4 :cond_5 :goto_0 .line 487 iget-object v1, p0, Lcom/android/systemui/settings/ToggleSliderView;->mContext:Landroid/content/Context; const-string v3, «am_ubcsu» if-eq v3, v5, :cond_6 if-eq v3, v5, :cond_7 if-eq v3, v5, :cond_8 if-eq v3, v5, :cond_9 if-eq v3, v5, :cond_a if-eq v3, v5, :cond_b :cond_6 :cond_7 :cond_8 :cond_9 :cond_a :cond_b :goto_1 .line 488 iget-object v1, p0, Lcom/android/systemui/settings/ToggleSliderView;->mContext:Landroid/content/Context; const-string v3, «am_ubcsu» if-eq v3, v5, :cond_c if-eq v3, v5, :cond_d if-eq v3, v5, :cond_e if-eq v3, v5, :cond_f if-eq v3, v5, :cond_10 if-eq v3, v5, :cond_11 :cond_c :cond_d :cond_e :cond_f :cond_10 :cond_11 :goto_2 .line 490 .method public getNotificationNormalBgColor(I)I if-eqz p1, :cond_1 if-eq p1, v1, :cond_0 .line 105 sget p1, Lcom/android/systemui/R$color;->notification_material_background_dimmed_color:I .line 102 const-string v2, «am_ubcsu» if-eq v2, v4, :cond_2 if-eq v2, v4, :cond_3 if-eq v2, v4, :cond_4 if-eq v2, v4, :cond_5 if-eq v2, v4, :cond_6 if-eq v2, v4, :cond_7 :cond_2 :cond_3 :cond_4 :cond_5 :cond_6 :cond_7 :goto_0 :goto_1 Скачать : Сообщение отредактировал Wlryss — 30.09.21, 07:58 Алексей может действительно не смотрел скрин? 🙂 Сообщение отредактировал MAOQ — 20.03.21, 16:32
Добавлено 20.03.2021, 16:31:
Систематизация гайдов ув. zmeeed2020 для Андроид 9 — Андроид 10 и изменения для применения с Андроид 11.. Устройство : Samsung S10+ 1. Скачиваем приложенный архив и размещаем файлы из архива в декомпилированном SystemUI. Некоторые смали из архива подкорректированы для использования с Андроид 11. 2. Добавляем в SystemUI — GearUtils — Инструкции по редактированию системных ресурсов (Пост Wlryss #104889640) 3. В SystemUI/smali/com/android/systemui/qs/tileimpl/QSTileBaseView.smali добавляем в # instance fields: .field private mGrxManageImageViews:Z .field private final mGrxPredDim:Landroid/widget/ImageView; .field private final mGrxPredOff:Landroid/widget/ImageView; .field private final mGrxPredOn:Landroid/widget/ImageView; .field private mGrxTintCircle:Z — в методе .method public constructor (Landroid/content/Context;Lcom/android/systemui/plugins/qs/QSIconView;Z)V добавляем строку: .method public constructor (Landroid/content/Context;Lcom/android/systemui/plugins/qs/QSIconView;Z)V invoke-direct new-instance p3, Lcom/android/systemui/qs/tileimpl/QSTileBaseView$H; invoke-direct iput-object p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mHandler:Lcom/android/systemui/qs/tileimpl/QSTileBaseView$H; new-array p3, p3, [I iput-object p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mLocInScreen:[I sget v0, Lcom/android/systemui/R$dimen;->qs_quick_tile_padding:I new-instance p3, Landroid/widget/FrameLayout; invoke-direct iput-object p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; const v0, 0x10500b6 iput p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mStrokeWidthActive:F const v0, 0x10500b7 iput p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mStrokeWidthInactive:F sget v0, Lcom/android/systemui/R$dimen;->sec_style_qs_tile_icon_size:I iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; new-instance v1, Landroid/widget/LinearLayout$LayoutParams; invoke-direct new-instance p3, Landroid/widget/ImageView; invoke-direct iput-object p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView; new-instance p3, Landroid/graphics/drawable/shapes/OvalShape; invoke-direct new-instance v0, Landroid/graphics/drawable/ShapeDrawable; invoke-direct sget v1, Lcom/android/systemui/R$dimen;->sec_style_qs_tile_background_size:I iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView; new-instance v0, Landroid/widget/FrameLayout$LayoutParams; const/16 v1, 0x11 invoke-direct iget-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object v2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView; iget-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView; iput-object p2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIcon:Lcom/android/systemui/plugins/qs/QSIconView; new-instance p1, Landroid/widget/FrameLayout$LayoutParams; invoke-direct iget-object p2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIcon:Lcom/android/systemui/plugins/qs/QSIconView; iget-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iput-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mTileBackground:Landroid/graphics/drawable/Drawable; instance-of p2, p1, Landroid/graphics/drawable/RippleDrawable; if-eqz p2, :cond_0 check-cast p1, Landroid/graphics/drawable/RippleDrawable; :cond_0 iget-object p2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIcon:Lcom/android/systemui/plugins/qs/QSIconView; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mTileBackground:Landroid/graphics/drawable/Drawable; iget-object p2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIcon:Lcom/android/systemui/plugins/qs/QSIconView; — метод .method protected getCircleColor(I)I меняем на следующий: .method protected getCircleColor(I)I packed-switch p1, :pswitch_data_0 const-string v0, «QSTileBaseView» new-instance v1, Ljava/lang/StringBuilder; invoke-direct const-string v2, «Invalid state « :pswitch_0 if-eqz v0, :cond_0 sget v0, Lcom/mods/sac/SacSettings;->sTileCircleColorOn:I :cond_0 :pswitch_1 if-eqz v0, :cond_1 sget v0, Lcom/mods/sac/SacSettings;->sTileCircleColorOff:I :cond_1 :pswitch_2 if-eqz v0, :cond_2 sget v0, Lcom/mods/sac/SacSettings;->sTileCircleColorDim:I :cond_2 :pswitch_data_0 .method protected handleStateChanged(Lcom/android/systemui/plugins/qs/QSTile$State;)V +++iget-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxTintCircle:Z if-eqz v0, :cond_next iget v0, p1, Lcom/android/systemui/plugins/qs/QSTile$State;->state:I :cond_next if-eqz v0, :cond_next1 iget v0, p1, Lcom/android/systemui/plugins/qs/QSTile$State;->state:I :cond_next1+++ iget v0, p1, Lcom/android/systemui/plugins/qs/QSTile$State;->state:I iget v2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mCircleColor:I — в конце смали добавляем методы: .method public grxGetNewImageView()Landroid/widget/ImageView; new-instance v0, Landroid/widget/ImageView; invoke-direct sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_CENTER:Landroid/widget/ImageView$ScaleType; return-object v0 .method public grxGetPredefinedImageView(I)Landroid/widget/ImageView; new-instance v0, Landroid/widget/ImageView; invoke-direct if-eq p1, v1, :cond_0 sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_CENTER:Landroid/widget/ImageView$ScaleType; :cond_0 .method public grxSetCircleColor(I)V iget v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I packed-switch p1, :pswitch_data_0 :goto_0 :pswitch_0 :pswitch_1 :pswitch_2 :pswitch_data_0 .method public grxSetTileBackground()V iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxTintCircle:Z iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxManageImageViews:Z sget-boolean v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTilesColorsEnabled:Z if-nez v0, :cond_0 :cond_0 packed-switch v0, :pswitch_data_0 :pswitch_1 iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileCircleOff:I iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorDisabled:I sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileCircledDim:I iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorInactive:I new-instance v0, Landroid/widget/ImageView; invoke-direct iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView; sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_CENTER:Landroid/widget/ImageView$ScaleType; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView; sget v1, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileCircleBgId:I iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView; iget v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView; iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxTintCircle:Z :pswitch_2 iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView; iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView; sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTilePredefBgOffId:I iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView; iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView; sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTilePredefBgId:I iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView; iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView; iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxManageImageViews:Z :pswitch_3 sget-object v1, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileBgCustomDimDrawable:Landroid/graphics/drawable/BitmapDrawable; iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView; iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView; sget-object v1, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileBgCustomOffDrawable:Landroid/graphics/drawable/BitmapDrawable; iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView; iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView; sget-object v1, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileBgCustomDrawable:Landroid/graphics/drawable/BitmapDrawable; iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView; iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView; iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxManageImageViews:Z :pswitch_data_0 .method public grxUpdateImageViews(I)V packed-switch p1, :pswitch_data_0 :pswitch_0 iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView; :pswitch_1 iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView; :pswitch_2 iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView; iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView; :pswitch_data_0 4. В SystemUI/smali\com\android\systemui\qs\tileimpl\QSTileImpl.smali меняем метод .method public static getColorForState(Landroid/content/Context;I)I на следующий: .method public static getColorForState(Landroid/content/Context;I)I if-eqz p1, :cond_2 if-eq p1, p0, :cond_1 if-eq p1, p0, :cond_0 new-instance p0, Ljava/lang/StringBuilder; invoke-direct const-string v0, «Invalid state « const-string p1, «QSTile» :cond_0 const v4, -0xf0f0f1 :cond_1 const v4, -0xf0f0f1 :cond_2 const v4, -0xf0f0f1 5. В SystemUI/smali_classes2/com/android/systemui/statusbar/phone/StatusBar.smali [- Добавляем две строки: .class public Lcom/android/systemui/statusbar/phone/StatusBar; # interfaces # annotations — В методе .method public start()V добавляем: .method public start()V new-instance v0, Lcom/mods/grx/GrxSbStockIconsColors; iget-object v1, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mContext:Landroid/content/Context; invoke-direct iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mScreenLifecycle:Lcom/android/systemui/keyguard/ScreenLifecycle; — В конце добавляем метод: .method public sacSetUpVars()V new-instance v0, Lcom/android/systemui/statusbar/phone/StatusBar$SacObserver; new-instance v1, Landroid/os/Handler; invoke-direct invoke-direct iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mContext:Landroid/content/Context; 6. В SystemUI/smali/com/android/systemui/SystemUI.smali — удаляем строку и вместо неё прописываем другую: .class public abstract Lcom/android/systemui/SystemUI; # instance fields .field public mContext:Landroid/content/Context; ### . Добавить строку .field private mFlipfont:I # direct methods invoke-direct iput v0, p0, Lcom/android/systemui/SystemUI;->mFlipfont:I iput-object p1, p0, Lcom/android/systemui/SystemUI;->mContext:Landroid/content/Context; .method public static overrideNotificationAppName(Landroid/content/Context;Landroid/app/Notification$Builder;Z)V new-instance v0, Landroid/os/Bundle; invoke-direct if-eqz p2, :cond_0 const p2, 0x1040732 :cond_0 :goto_0 # virtual methods .method protected onBootCompleted()V .method protected onConfigurationChanged(Landroid/content/res/Configuration;)V if-eqz p1, :cond_0 iget v0, p1, Landroid/content/res/Configuration;->FlipFont:I if-lez v0, :cond_0 iget v1, p0, Lcom/android/systemui/SystemUI;->mFlipfont:I if-eq v1, v0, :cond_0 iget p1, p1, Landroid/content/res/Configuration;->FlipFont:I iput p1, p0, Lcom/android/systemui/SystemUI;->mFlipfont:I :cond_0 .method public onTrimMemory(I)V .method public abstract start()V II. Ром Контрол типа GRX 1. В нужную xml добавляем: Источник |