Перейти к содержанию
View in the app

A better way to browse. Learn more.

AUTO-BK.RU FORUM

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Toyota Rav4 Китай русификация приборки и мультимедиа.

Featured Replies

  • Ответов 166
  • Просмотры 34,1 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Most Popular Posts

  • reprogservice
    reprogservice

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

  • reprogservice
    reprogservice

    загружать ПО через флешку в Мультимедиа.

  • Решил поделится не большой информацией о Китайских мультимедиа от фирмы (Desaysv). ну в общем завладел я на днях файлами заводского апдейта Мультимедиа RAV4 и Camry, файлы: Camry update: G

Изображения в теме

В 24.11.2025 в 16:14, Nkha сказал:

У меня приложения без gms, я в целом установил приложение только не пойму как вывести ярлык на главный экран лаунчера. Пока что через adb могу его запустить

ищите приложение у себя в системе HuaweiLauncher.APK
путь: \system\priv-app
разбираете в приложении файл DEX, имя classes.dex
в нем то все плюшки, хотите просто его патчите что бы все приложения отображал, хотите добавляете свой список.
и заливаете обратно в ГУ свой новый APK Launcher и пользуетесь.

еще как вариант Метод «Кукушки» (Без модификации кода)

Магнитола выведет иконку на экран, если имя пакета приложения совпадет с одним из этого списка.

  1. Берете нужное вам стороннее приложение (например, другой плеер).

  2. Меняете его имя пакета на ru.rutube.app или air.StrelkaHUDPREMIUM (если вы ими не пользуетесь в машине).

  3. Ставите приложение в систему. Лаунчер увидит знакомое имя из списка MoreAppSubViewHolder_c, подтянет его и создаст иконку в меню «Еще приложения». При нажатии сработает метод MainActivity.f и успешно запустит его.

вот функция с доп приложениями:

CODE:0057ED4C public void com.huawei.hmsforcar.launcher.adapter.MoreAppSubAdapter$MoreAppSubViewHolder.<init>(

CODE:0057ED4C com.huawei.hmsforcar.launcher.databinding.ItemMoreAppSubBinding p0)

CODE:0057ED4C this = v3 # CODE XREF: MoreAppSubAdapter_onCreateViewHolder@LLI+F2↓p

CODE:0057ED4C p0 = v4

CODE:0057ED4C invoke-virtual {p0}, <ref ViewDataBinding.getRoot() ViewDataBinding_getRoot@L>

CODE:0057ED52 move-result-object v0

CODE:0057ED54 invoke-direct {this, v0}, <void RecyclerView$ViewHolder.<init>(ref) RecyclerView$ViewHolder__init_@VL>

CODE:0057ED5A iput-object p0, this, MoreAppSubAdapter$MoreAppSubViewHolder_a

CODE:0057ED5E .line 1

CODE:0057ED5E sget-object p0, LauncherApplication_c

CODE:0057ED62 .line 2

CODE:0057ED62 new-instance v0, <t: HashMap>

CODE:0057ED66 invoke-direct {v0}, <void HashMap.<init>() imp. @ defHashMap__init_@V>

CODE:0057ED6C sput-object v0, MoreAppSubAdapter$MoreAppSubViewHolder_b

CODE:0057ED70 invoke-virtual {p0}, <ref Context.getResources() imp. @ defContext_getResources@L>

CODE:0057ED76 move-result-object v1

CODE:0057ED78 const v2, 0x7F1000E3

CODE:0057ED7E invoke-virtual {v1, v2}, <ref Resources.getString(int) imp. @ defResources_getString@LI>

CODE:0057ED84 move-result-object v1

CODE:0057ED86 const-string v2, aComDesaysvDsvm_2 # "com.desaysv.dsvmusicmanager.Radio"

CODE:0057ED8A invoke-virtual {v0, v1, v2}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057ED90 sget-object v0, MoreAppSubAdapter$MoreAppSubViewHolder_b

CODE:0057ED94 invoke-virtual {p0}, <ref Context.getResources() imp. @ defContext_getResources@L>

CODE:0057ED9A move-result-object v1

CODE:0057ED9C const v2, 0x7F100032

CODE:0057EDA2 invoke-virtual {v1, v2}, <ref Resources.getString(int) imp. @ defResources_getString@LI>

CODE:0057EDA8 move-result-object v1

CODE:0057EDAA const-string v2, aComDesaysvDsvm_0 # "com.desaysv.dsvmusicmanager.BtMusic"

CODE:0057EDAE invoke-virtual {v0, v1, v2}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EDB4 sget-object v0, MoreAppSubAdapter$MoreAppSubViewHolder_b

CODE:0057EDB8 invoke-virtual {p0}, <ref Context.getResources() imp. @ defContext_getResources@L>

CODE:0057EDBE move-result-object p0

CODE:0057EDC0 const v1, 0x7F100111

CODE:0057EDC6 invoke-virtual {p0, v1}, <ref Resources.getString(int) imp. @ defResources_getString@LI>

CODE:0057EDCC move-result-object p0

CODE:0057EDCE const-string v1, aComDesaysvDsvm_3 # "com.desaysv.dsvmusicmanager.UsbMedia"

CODE:0057EDD2 invoke-virtual {v0, p0, v1}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EDD8 new-instance p0, <t: HashMap>

CODE:0057EDDC invoke-direct {p0}, <void HashMap.<init>() imp. @ defHashMap__init_@V>

CODE:0057EDE2 sput-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EDE6 const/4 v0, 0

CODE:0057EDE8 invoke-static {v0}, <ref Integer.valueOf(int) imp. @ defInteger_valueOf@LI>

CODE:0057EDEE move-result-object v0

CODE:0057EDF0 const-string v1, aRuYandexWeathe # "ru.yandex.weatherplugin"

CODE:0057EDF4 invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EDFA sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EDFE const-string v1, aComGtmcAppFeng # "com.gtmc.app.fengyunyx.car"

CODE:0057EE02 invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE08 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE0C const-string v1, aComDesaysvDsvs # "com.desaysv.dsvsettings"

CODE:0057EE10 invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE16 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE1A const-string v1, aComYandexBrows # "com.yandex.browser"

CODE:0057EE1E invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE24 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE28 const-string v1, aComHuaweiHmsfo_0 # "com.huawei.hmsforcar.intelligentscene"

CODE:0057EE2C invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE32 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE36 const/4 v0, 1

CODE:0057EE38 invoke-static {v0}, <ref Integer.valueOf(int) imp. @ defInteger_valueOf@LI>

CODE:0057EE3E move-result-object v0

CODE:0057EE40 const-string v1, aComVkVkvideo # "com.vk.vkvideo"

CODE:0057EE44 invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE4A sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE4E const-string v1, aRuYandexMusic # "ru.yandex.music"

CODE:0057EE52 invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE58 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE5C const-string v1, aAirStrelkahudp # "air.StrelkaHUDPREMIUM"

CODE:0057EE60 invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE66 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE6A const-string v1, aRuDublgisDgism # "ru.dublgis.dgismobile"

CODE:0057EE6E invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE74 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE78 const-string v1, aRuYandexYandex # "ru.yandex.yandexnavi"

CODE:0057EE7C invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE82 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE86 const-string v1, aRuRutubeApp # "ru.rutube.app"

CODE:0057EE8A invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EE90 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EE94 const/4 v0, 2

CODE:0057EE96 invoke-static {v0}, <ref Integer.valueOf(int) imp. @ defInteger_valueOf@LI>

CODE:0057EE9C move-result-object v0

CODE:0057EE9E const-string v1, aComDesaysvDsvm # "com.desaysv.dsvmusicmanager"

CODE:0057EEA2 invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EEA8 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EEAC const-string v1, aComDesaysvDsvb # "com.desaysv.dsvbluetoothphone"

CODE:0057EEB0 invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EEB6 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EEBA const-string v1, aComDesaysvVehi # "com.desaysv.vehiclemonitor"

CODE:0057EEBE invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EEC4 sget-object p0, MoreAppSubAdapter$MoreAppSubViewHolder_c

CODE:0057EEC8 const-string v1, aComAndroidSett # "com.android.settings"

CODE:0057EECC invoke-virtual {p0, v1, v0}, <ref HashMap.put(ref, ref) imp. @ defHashMap_put@LLL>

CODE:0057EED2

CODE:0057EED2 locret:

CODE:0057EED2 return-void

CODE:0057EED2 Method End


а вот функция с основными приложениями:

CODE:0057B310 public final void com.huawei.hmsforcar.launcher.activity.MainActivity.f(

CODE:0057B310 java.lang.String p0,

CODE:0057B310 java.lang.String p1,

CODE:0057B310 java.lang.String p2)

CODE:0057B310 this = v7 # CODE XREF: MainActivity_e@VL+1F8↑p

CODE:0057B310 p0 = v8

CODE:0057B310 p1 = v9

CODE:0057B310 p2 = v10

CODE:0057B310 new-instance v0, <t: StringBuilder>

CODE:0057B314 invoke-direct {v0}, <void StringBuilder.<init>() imp. @ defStringBuilder__init_@V>

CODE:0057B31A const-string v1, aPackagename_3 # "packageName "

CODE:0057B31E invoke-virtual {v0, v1}, <ref StringBuilder.append(ref) imp. @ defStringBuilder_append@LL_1>

CODE:0057B324 invoke-virtual {v0, p1}, <ref StringBuilder.append(ref) imp. @ defStringBuilder_append@LL_1>

CODE:0057B32A const-string v1, aClassname # " className "

CODE:0057B32E invoke-virtual {v0, v1}, <ref StringBuilder.append(ref) imp. @ defStringBuilder_append@LL_1>

CODE:0057B334 invoke-virtual {v0, p2}, <ref StringBuilder.append(ref) imp. @ defStringBuilder_append@LL_1>

CODE:0057B33A invoke-virtual {v0}, <ref StringBuilder.toString() imp. @ defStringBuilder_toString@L>

CODE:0057B340 move-result-object v0

CODE:0057B342 const-string v1, aMainactivity # "MainActivity"

CODE:0057B346 invoke-static {v1, v0}, <void o.c(ref, ref) o_c@VLL>

CODE:0057B34C .line 1

CODE:0057B34C invoke-static {p1}, <boolean TextUtils.isEmpty(ref) imp. @ defTextUtils_isEmpty@ZL>

CODE:0057B352 move-result v0

CODE:0057B354 const/4 v2, 0

CODE:0057B356 if-nez v0, loc_57B3CE

CODE:0057B35A invoke-static {p2}, <boolean TextUtils.isEmpty(ref) imp. @ defTextUtils_isEmpty@ZL>

CODE:0057B360 move-result v0

CODE:0057B362 if-eqz v0, loc_57B368

CODE:0057B366 goto loc_57B3CE

CODE:0057B368 # ---------------------------------------------------------------------------

CODE:0057B368

CODE:0057B368 loc_57B368: # CODE XREF: MainActivity_f@VLLL+52↑j

CODE:0057B368 new-instance v0, <t: a>

CODE:0057B36C .line 2

CODE:0057B36C sget-object v3, LauncherApplication_c

CODE:0057B370 .line 3

CODE:0057B370 invoke-direct {v0, v3}, <void a.<init>(ref) a__init_@VL_24>

CODE:0057B376 invoke-virtual {v0}, <ref a.e() a_e@L_0>

CODE:0057B37C move-result-object v0

CODE:0057B37E new-instance v3, <t: StringBuilder>

CODE:0057B382 invoke-direct {v3}, <void StringBuilder.<init>() imp. @ defStringBuilder__init_@V>

CODE:0057B388 const-string v4, aDefaultConfigI # "default config is: "

CODE:0057B38C invoke-virtual {v3, v4}, <ref StringBuilder.append(ref) imp. @ defStringBuilder_append@LL_1>

CODE:0057B392 invoke-virtual {v3, v0}, <ref StringBuilder.append(ref) imp. @ defStringBuilder_append@LL_0>

CODE:0057B398 invoke-virtual {v3}, <ref StringBuilder.toString() imp. @ defStringBuilder_toString@L>

CODE:0057B39E move-result-object v3

CODE:0057B3A0 invoke-static {v1, v3}, <void o.c(ref, ref) o_c@VLL>

CODE:0057B3A6 invoke-interface {v0}, <ref List.stream() imp. @ defList_stream@L>

CODE:0057B3AC move-result-object v0

CODE:0057B3AE sget-object v3, stru_CDCD8

CODE:0057B3B2 invoke-interface {v0, v3}, <ref Stream.flatMap(ref) imp. @ defStream_flatMap@LL>

CODE:0057B3B8 move-result-object v0

CODE:0057B3BA new-instance v3, <t: h>

CODE:0057B3BE invoke-direct {v3, p2, p1}, <void h.<init>(ref, ref) h__init_@VLL_3>

CODE:0057B3C4 invoke-interface {v0, v3}, <boolean Stream.anyMatch(ref) imp. @ defStream_anyMatch@ZL>

CODE:0057B3CA move-result v0

CODE:0057B3CC goto loc_57B3DA

CODE:0057B3CE # ---------------------------------------------------------------------------

CODE:0057B3CE

CODE:0057B3CE loc_57B3CE: # CODE XREF: MainActivity_f@VLLL+46↑j

CODE:0057B3CE # MainActivity_f@VLLL+56↑j

CODE:0057B3CE const-string v0, aInvalidPackage # "invalid packageName or className, retur"...

CODE:0057B3D2 invoke-static {v1, v0}, <void o.c(ref, ref) o_c@VLL>

CODE:0057B3D8 move v0, v2

CODE:0057B3DA

CODE:0057B3DA loc_57B3DA: # CODE XREF: MainActivity_f@VLLL+BC↑j

CODE:0057B3DA if-nez v0, loc_57B3EA

CODE:0057B3DE const-string p0, aNotAllowStartC # "not allow start component not in defaul"...

CODE:0057B3E2 .line 4

CODE:0057B3E2 invoke-static {v1, p0}, <void o.c(ref, ref) o_c@VLL>

CODE:0057B3E8

CODE:0057B3E8 locret:

CODE:0057B3E8 return-void

CODE:0057B3EA # ---------------------------------------------------------------------------

CODE:0057B3EA

CODE:0057B3EA loc_57B3EA: # CODE XREF: MainActivity_f@VLLL:loc_57B3DA↑j

CODE:0057B3EA const-string v0, aRuYandexMusic # "ru.yandex.music"

CODE:0057B3EE invoke-virtual {v0, p1}, <boolean String.equals(ref) imp. @ defString_equals@ZL>

CODE:0057B3F4 move-result v0

CODE:0057B3F6 if-eqz v0, loc_57B428

CODE:0057B3FA .line 5

CODE:0057B3FA new-instance p0, <t: Intent>

CODE:0057B3FE const-class p1, <t: MoreAppActivity>

CODE:0057B402 invoke-direct {p0, this, p1}, <void Intent.<init>(ref, ref) imp. @ defIntent__init_@VLL>

CODE:0057B408 new-instance p1, <t: SafeIntent>

CODE:0057B40C invoke-direct {p1, p0}, <void SafeIntent.<init>(ref) SafeIntent__init_@VL_0>

CODE:0057B412 const-string p0, aGo # "go"

CODE:0057B416 const-string p2, aWechat # "wechat"

CODE:0057B41A invoke-virtual {p1, p0, p2}, <ref SafeIntent.putExtra(ref, ref) SafeIntent_putExtra@LLL_3>

CODE:0057B420 invoke-static {this, p1}, <boolean a.b(ref, ref) a_b@ZLL_1>

CODE:0057B426 return-void

CODE:0057B428 # ---------------------------------------------------------------------------

CODE:0057B428 # try 0x57B428-0x57B45E:

CODE:0057B428

CODE:0057B428 loc_57B428: # CODE XREF: MainActivity_f@VLLL+E6↑j

CODE:0057B428 # DATA XREF: CODE:0057B65C↓i

CODE:0057B428 .line 6

CODE:0057B428 invoke-virtual {this}, <ref AppCompatActivity.getResources() AppCompatActivity_getResources@L>

CODE:0057B42E move-result-object v0

CODE:0057B430 if-nez v0, loc_57B440

CODE:0057B434 const-string p0, aMainactivityMc # "MainActivity.mContext.getResources() is"...

CODE:0057B438 invoke-static {v1, p0}, <void o.d(ref, ref) o_d@VLL>

CODE:0057B43E return-void

CODE:0057B440 # ---------------------------------------------------------------------------

CODE:0057B440

CODE:0057B440 loc_57B440: # CODE XREF: MainActivity_f@VLLL+120↑j

CODE:0057B440 invoke-virtual {this}, <ref AppCompatActivity.getResources() AppCompatActivity_getResources@L>

CODE:0057B446 move-result-object v0

CODE:0057B448 const v3, 0x7F1000E3

CODE:0057B44E invoke-virtual {v0, v3}, <ref Resources.getString(int) imp. @ defResources_getString@LI>

CODE:0057B454 move-result-object v0

CODE:0057B456 invoke-virtual {v0, p0}, <boolean String.equals(ref) imp. @ defString_equals@ZL>

CODE:0057B45C move-result v0

CODE:0057B45E const/high16 v3, 0x10000000

CODE:0057B462 const-string v4, aAndroidIntentC # "android.intent.category.LAUNCHER"

CODE:0057B466 const-string v5, aAndroidIntentA_4 # "android.intent.action.MAIN"

CODE:0057B46A if-eqz v0, loc_57B4B2

CODE:0057B46E # try 0x57B46E-0x57B634:

CODE:0057B46E

CODE:0057B46E loc_57B46E: # DATA XREF: CODE:0057B664↓i

CODE:0057B46E new-instance p0, <t: SafeIntent>

CODE:0057B472 new-instance v0, <t: Intent>

CODE:0057B476 invoke-direct {v0, v5}, <void Intent.<init>(ref) imp. @ defIntent__init_@VL_0>

CODE:0057B47C invoke-direct {p0, v0}, <void SafeIntent.<init>(ref) SafeIntent__init_@VL_0>

CODE:0057B482 invoke-virtual {p0, v4}, <ref Intent.addCategory(ref) imp. @ defIntent_addCategory@LL>

CODE:0057B488 new-instance v0, <t: ComponentName>

CODE:0057B48C invoke-direct {v0, p1, p2}, <void ComponentName.<init>(ref, ref) imp. @ defComponentName__init_@VLL_1>

CODE:0057B492 invoke-virtual {p0, v0}, <ref Intent.setComponent(ref) imp. @ defIntent_setComponent@LL>

CODE:0057B498 const-string p1, aComDesaysvDsvm_2 # "com.desaysv.dsvmusicmanager.Radio"

CODE:0057B49C invoke-virtual {p0, p1}, <ref SafeIntent.setAction(ref) SafeIntent_setAction@LL>

CODE:0057B4A2 invoke-virtual {p0, v3}, <ref Intent.addFlags(int) imp. @ defIntent_addFlags@LI>

CODE:0057B4A8

CODE:0057B4A8 loc_57B4A8: # CODE XREF: MainActivity_f@VLLL+1FE↓j

CODE:0057B4A8 # MainActivity_f@VLLL+25C↓j

CODE:0057B4A8 invoke-static {this, p0}, <boolean a.b(ref, ref) a_b@ZLL_1>

CODE:0057B4AE goto/16 locret_57B65A

CODE:0057B4B2 # ---------------------------------------------------------------------------

CODE:0057B4B2

CODE:0057B4B2 loc_57B4B2: # CODE XREF: MainActivity_f@VLLL+15A↑j

CODE:0057B4B2 invoke-virtual {this}, <ref AppCompatActivity.getResources() AppCompatActivity_getResources@L>

CODE:0057B4B8 move-result-object v0

CODE:0057B4BA const v6, 0x7F100032

CODE:0057B4C0 invoke-virtual {v0, v6}, <ref Resources.getString(int) imp. @ defResources_getString@LI>

CODE:0057B4C6 move-result-object v0

CODE:0057B4C8 invoke-virtual {v0, p0}, <boolean String.equals(ref) imp. @ defString_equals@ZL>

CODE:0057B4CE move-result v0

CODE:0057B4D0 if-eqz v0, loc_57B510

CODE:0057B4D4 new-instance p0, <t: SafeIntent>

CODE:0057B4D8 new-instance v0, <t: Intent>

CODE:0057B4DC invoke-direct {v0, v5}, <void Intent.<init>(ref) imp. @ defIntent__init_@VL_0>

CODE:0057B4E2 invoke-direct {p0, v0}, <void SafeIntent.<init>(ref) SafeIntent__init_@VL_0>

CODE:0057B4E8 invoke-virtual {p0, v4}, <ref Intent.addCategory(ref) imp. @ defIntent_addCategory@LL>

CODE:0057B4EE new-instance v0, <t: ComponentName>

CODE:0057B4F2 invoke-direct {v0, p1, p2}, <void ComponentName.<init>(ref, ref) imp. @ defComponentName__init_@VLL_1>

CODE:0057B4F8 invoke-virtual {p0, v0}, <ref Intent.setComponent(ref) imp. @ defIntent_setComponent@LL>

CODE:0057B4FE const-string p1, aComDesaysvDsvm_0 # "com.desaysv.dsvmusicmanager.BtMusic"

CODE:0057B502 invoke-virtual {p0, p1}, <ref SafeIntent.setAction(ref) SafeIntent_setAction@LL>

CODE:0057B508 invoke-virtual {p0, v3}, <ref Intent.addFlags(int) imp. @ defIntent_addFlags@LI>

CODE:0057B50E goto loc_57B4A8

CODE:0057B510 # ---------------------------------------------------------------------------

CODE:0057B510

CODE:0057B510 loc_57B510: # CODE XREF: MainActivity_f@VLLL+1C0↑j

CODE:0057B510 invoke-virtual {this}, <ref AppCompatActivity.getResources() AppCompatActivity_getResources@L>

CODE:0057B516 move-result-object v0

CODE:0057B518 const v6, 0x7F100111

CODE:0057B51E invoke-virtual {v0, v6}, <ref Resources.getString(int) imp. @ defResources_getString@LI>

CODE:0057B524 move-result-object v0

CODE:0057B526 invoke-virtual {v0, p0}, <boolean String.equals(ref) imp. @ defString_equals@ZL>

CODE:0057B52C move-result v0

CODE:0057B52E if-eqz v0, loc_57B56E

CODE:0057B532 new-instance p0, <t: SafeIntent>

CODE:0057B536 new-instance v0, <t: Intent>

CODE:0057B53A invoke-direct {v0, v5}, <void Intent.<init>(ref) imp. @ defIntent__init_@VL_0>

CODE:0057B540 invoke-direct {p0, v0}, <void SafeIntent.<init>(ref) SafeIntent__init_@VL_0>

CODE:0057B546 invoke-virtual {p0, v4}, <ref Intent.addCategory(ref) imp. @ defIntent_addCategory@LL>

CODE:0057B54C new-instance v0, <t: ComponentName>

CODE:0057B550 invoke-direct {v0, p1, p2}, <void ComponentName.<init>(ref, ref) imp. @ defComponentName__init_@VLL_1>

CODE:0057B556 invoke-virtual {p0, v0}, <ref Intent.setComponent(ref) imp. @ defIntent_setComponent@LL>

CODE:0057B55C const-string p1, aComDesaysvDsvm_3 # "com.desaysv.dsvmusicmanager.UsbMedia"

CODE:0057B560 invoke-virtual {p0, p1}, <ref SafeIntent.setAction(ref) SafeIntent_setAction@LL>

CODE:0057B566 invoke-virtual {p0, v3}, <ref Intent.addFlags(int) imp. @ defIntent_addFlags@LI>

CODE:0057B56C goto loc_57B4A8

CODE:0057B56E # ---------------------------------------------------------------------------

CODE:0057B56E

CODE:0057B56E loc_57B56E: # CODE XREF: MainActivity_f@VLLL+21E↑j

CODE:0057B56E invoke-virtual {this}, <ref AppCompatActivity.getResources() AppCompatActivity_getResources@L>

CODE:0057B574 move-result-object v0

CODE:0057B576 const v3, 0x7F100029

CODE:0057B57C invoke-virtual {v0, v3}, <ref Resources.getString(int) imp. @ defResources_getString@LI>

CODE:0057B582 move-result-object v0

CODE:0057B584 invoke-virtual {v0, p0}, <boolean String.equals(ref) imp. @ defString_equals@ZL>

CODE:0057B58A move-result p0

CODE:0057B58C if-eqz p0, loc_57B62E

CODE:0057B590 invoke-virtual {this}, <ref Activity.getContentResolver() imp. @ defActivity_getContentResolver@L>

CODE:0057B596 move-result-object p0

CODE:0057B598 const-string v0, aDsvPhoneServic # "dsv_phone_service_name"

CODE:0057B59C const/4 v3, -1

CODE:0057B59E invoke-static {p0, v0, v3}, <int Settings$System.getInt(ref, ref, int) imp. @ defSettings$System_getInt@ILLI>

CODE:0057B5A4 move-result p0

CODE:0057B5A6 invoke-virtual {this}, <ref Activity.getContentResolver() imp. @ defActivity_getContentResolver@L>

CODE:0057B5AC move-result-object v0

CODE:0057B5AE const-string v3, aDsvPhoneServic_0 # "dsv_phone_service_status"

CODE:0057B5B2 invoke-static {v0, v3, v2}, <int Settings$System.getInt(ref, ref, int) imp. @ defSettings$System_getInt@ILLI>

CODE:0057B5B8 move-result v0

CODE:0057B5BA new-instance v2, <t: StringBuilder>

CODE:0057B5BE invoke-direct {v2}, <void StringBuilder.<init>() imp. @ defStringBuilder__init_@V>

CODE:0057B5C4 const-string v3, aLocalservicena # "localServiceName = "

CODE:0057B5C8 invoke-virtual {v2, v3}, <ref StringBuilder.append(ref) imp. @ defStringBuilder_append@LL_1>

CODE:0057B5CE invoke-virtual {v2, p0}, <ref StringBuilder.append(int) imp. @ defStringBuilder_append@LI>

CODE:0057B5D4 const-string v3, aLocalservicest # ", localServiceStatus = "

CODE:0057B5D8 invoke-virtual {v2, v3}, <ref StringBuilder.append(ref) imp. @ defStringBuilder_append@LL_1>

CODE:0057B5DE invoke-virtual {v2, v0}, <ref StringBuilder.append(int) imp. @ defStringBuilder_append@LI>

CODE:0057B5E4 invoke-virtual {v2}, <ref StringBuilder.toString() imp. @ defStringBuilder_toString@L>

CODE:0057B5EA move-result-object v2

CODE:0057B5EC invoke-static {v1, v2}, <void o.c(ref, ref) o_c@VLL>

CODE:0057B5F2 const/4 v2, 1

CODE:0057B5F4 if-ne p0, v2, loc_57B620

CODE:0057B5F8 const/4 p0, 2

CODE:0057B5FA if-ne v0, p0, loc_57B620

CODE:0057B5FE new-instance p0, <t: SafeIntent>

CODE:0057B602 new-instance v0, <t: Intent>

CODE:0057B606 invoke-direct {v0}, <void Intent.<init>() imp. @ defIntent__init_@V>

CODE:0057B60C invoke-direct {p0, v0}, <void SafeIntent.<init>(ref) SafeIntent__init_@VL_0>

CODE:0057B612 invoke-virtual {p0, p1, p2}, <ref Intent.setClassName(ref, ref) imp. @ defIntent_setClassName@LLL>

CODE:0057B618 invoke-virtual {this, p0}, <ref Activity.startService(ref) imp. @ defActivity_startService@LL>

CODE:0057B61E goto locret_57B65A

CODE:0057B620 # ---------------------------------------------------------------------------

CODE:0057B620

CODE:0057B620 loc_57B620: # CODE XREF: MainActivity_f@VLLL+2E4↑j

CODE:0057B620 # MainActivity_f@VLLL+2EA↑j

CODE:0057B620 const p0, 0x7F10003C

CODE:0057B626 invoke-static {p0}, <void b0.a(int) b0_a@VI>

CODE:0057B62C goto locret_57B65A

CODE:0057B62E # ---------------------------------------------------------------------------

CODE:0057B62E

CODE:0057B62E loc_57B62E: # CODE XREF: MainActivity_f@VLLL+27C↑j

CODE:0057B62E invoke-static {this, p1, p2}, <void f.h(ref, ref, ref) f_h@VLLL>

CODE:0057B634 goto locret_57B65A

CODE:0057B636 # ---------------------------------------------------------------------------

CODE:0057B636 # catch IllegalStateException:

CODE:0057B636

CODE:0057B636 loc_57B636: # DATA XREF: CODE:0057B678↓i

CODE:0057B636 move-exception p0

CODE:0057B638 goto loc_57B640

CODE:0057B63A # ---------------------------------------------------------------------------

CODE:0057B63A # catch SecurityException:

CODE:0057B63A

CODE:0057B63A loc_57B63A: # DATA XREF: CODE:0057B674↓i

CODE:0057B63A move-exception p0

CODE:0057B63C goto loc_57B640

CODE:0057B63E # ---------------------------------------------------------------------------

CODE:0057B63E # catch ActivityNotFoundException:

CODE:0057B63E

CODE:0057B63E loc_57B63E: # DATA XREF: CODE:0057B670↓i

CODE:0057B63E move-exception p0

CODE:0057B640

CODE:0057B640 loc_57B640: # CODE XREF: MainActivity_f@VLLL+328↑j

CODE:0057B640 # MainActivity_f@VLLL+32C↑j

CODE:0057B640 invoke-virtual {p0}, <ref RuntimeException.toString() imp. @ defRuntimeException_toString@L>

CODE:0057B646 move-result-object p0

CODE:0057B648 invoke-static {v1, p0}, <void o.d(ref, ref) o_d@VLL>

CODE:0057B64E const p0, 0x7F100105

CODE:0057B654 invoke-static {p0}, <void b0.a(int) b0_a@VI>

CODE:0057B65A

CODE:0057B65A locret_57B65A: # CODE XREF: MainActivity_f@VLLL+19E↑j

CODE:0057B65A # MainActivity_f@VLLL+30E↑j ...

CODE:0057B65A return-void

CODE:0057B65A Method End

В 13.06.2026 в 20:23, sa4hnd сказал:

3. Есть ли способ обойти "unauthorized" на SWX059 без даунгрейда?

так пробуйте,
# 1. Включаем глобальный флаг режима разработчика в системе

adb shell settings put global development_settings_enabled 1

# 2. Разрешаем отладку (если она частично ограничена)

adb shell settings put global adb_enabled 1

# 3. Принудительно открываем это скрытое меню на экране автомобиля

adb shell am start -n com.android.settings/.DevelopmentSettingsActivity

ну и вишенка на торте, как оказалось Спидометр с ГУ общается по сети,
вот из настройки ГУ: #Packets from/to 192.168.30.30/32 is talking to Meter directly, do not enforce rules of Internet on it
это из файла настроек: g6sa-iptables-firewall
из образа vendor.img

ну и Самое главное: Лазейка для беспроводного ADB!
закомментированные строчки:
#iptables -I INPUT -j SECURITY_CHECK
#iptables -I OUTPUT -j SECURITY_OUTCHECK

В 27.12.2025 в 17:03, asp777 сказал:

Проблема с навигатором решена, все работает. Вот теперь осталась проблема с постоянно всплывающими уведомлениями, есть люди, которые утверждают что у них есть некий .bat файл, после запуска которого проблема с уведомлениями уходит, продают его, но гарантий не дают)) Подскажите, может кто сталкивался с таким файлом к этой прошивке? Действительно ли работает?

самый простой вариант переписать инородный скрипт в файловой системе, назовем его Вирус.
Этот скрипт — самая настоящая «бомба замедленного действия» и кастомный механизм активации лицензии (взлома/активации), который кто-то внедрил в эту прошивку. Он выполняет две абсолютно противоположные функции: активацию скрытых возможностей ШГУ через обычную флешку и жесткую защиту от удаления определенных файлов (защиту от «жадности» или попыток скопировать чужое решение).

Скрипт логирует свои действия в системный журнал.

🔑 ЧАСТЬ 1: Механизм активации (Как работает флешка)

Скрипт создан для того, чтобы ГУ могло автоматически считывать файлы лицензии с флешки без использования компьютера или ADB.

  1. Ожидание стабилизации (ждет 280 и ждет 30):
    После включения зажигания скрипт ждет почти 5 минут (280 секунд), чтобы магнитола полностью загрузилась, инициализировала все процессы и только потом приступает к махинациям.

  2. Перемонтирование системы в Read-Write:
    Скрипт настойчиво (до 10 попыток в цикле
    while) пытается перевести системные разделы /vendor и /data в режим записи.

  3. Обновление/Замена лицензии:
    Если на флешке лежит файл
    lic, скрипт удаляет старый лицензионный файл /vendor/, копирует туда новый, создает на флешке файл-маркер DONE и принудительно перезагружает магнитолу (reboot).

  4. Первичная установка лицензии (lic):
    Если на флешке лежит обычный файл
    lic, скрипт копирует его в /vendor/lic. После этого он делает полный сброс магнитолы к заводским настройкам (Wipe data/cache), чтобы изменения вступили в силу.

  5. Флаг успешной работы (ok):
    Если лицензия успешно встала на место, в системе создается файл-маркер /data/system/ok. Если этот маркер на месте, скрипт при следующих загрузках просто мгновенно завершает работу (exit 0), чтобы не тратить ресурсы ГУ на опрос флешки.

    💀 ЧАСТЬ 2: Защита автора («Кирпич» для магнитолы)

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

    Что здесь происходит:

    • Скрипт проверяет наличие конкретного приложения..

    • Если этот APK-файл будет удален, переименован или поврежден (например, если вы решите почистить прошивку или случайно сотрете его в процессе русификации), скрипт мгновенно сотрет критически важные системные папки /vendor/lib, /vendor/lib64 и /vendor/etc.

    • После этого магнитола уходит в перезагрузку (reboot) и превращается в «кирпич», который больше никогда не загрузится, так как в разделе vendor физически не останется ни одного драйвера процессора Renesas для инициализации экрана и Android-сервисов.

      делайте выводы от кастомной прошивки ГУ.

58 минут назад, reprogservice сказал:

Спидометр с ГУ общается по сети

удалось подключится и сделать лог общения?
прошивку бы со спидометра кто слил, я бы поковырял в свободное время.

В 27.12.2025 в 17:03, asp777 сказал:

утверждают что у них есть некий .bat файл

не, думаю он не поможет,
там система сбора данных, на их основе генерируется ответный ключ, можно конечно ключ подменить в головном устройстве, и генерировать свои ключи, но в любом случае ключ для каждого авто свой, так как там и VIN задействован, а так проще пропатчить приложение, что бы отключить полную проверку файла ключа, а так вариантов полно что можно с этим сделать, было бы желание.
ниже привел код сбора данных для генерации ключа.
puVar4 = (*puVar3->get)(puVar3,(undefined4 *)"signature");

checkCast(puVar4,undefined4);

*unaff_v11->hex_signature = puVar4;

psVar2 = (*License.fromHexString)(puVar4);

*unaff_v11->signature = psVar2;

puVar4 = (*puVar3->get)(puVar3,(undefined4 *)"VIN");

checkCast(puVar4,undefined4);

*unaff_v11->VIN = puVar4;

puVar4 = (*puVar3->get)(puVar3,(undefined4 *)"serial");

checkCast(puVar4,undefined4);

*unaff_v11->serial = puVar4;

puVar3 = (*puVar3->get)(puVar3,(undefined4 *)"BTMac");

checkCast(puVar3,undefined4);

Для публикации сообщений создайте учётную запись или авторизуйтесь

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу
Яндекс цитирования

Account

Navigation

Поиск

Поиск

Настройте push-уведомления браузера

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.