吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2047|回复: 9
收起左侧

[经验求助] 求助关于车机桌面的逆向

[复制链接]
scy444888 发表于 2024-1-31 23:55
50吾爱币
本帖最后由 scy444888 于 2024-2-1 00:03 编辑

前言:我的小奇瑞搞到车机的工程密码后,可以用adb安装软件了,但是安装的软件的在桌面上不能显示,只能通过其他方式打开,很不方便
尝试过别的桌面app,使用起来效果一般还让本来就不富裕的内存雪上加霜,于是想着把桌面app逆向一下看能不能解决这个问题
pass: 自己对安卓app是一窍不通,只懂点js,只能找资料现学现试,而且不知道这个app做了什么限制在模拟器上和手机均无法运行,每次都只能到车上去试,很麻烦

先说一下目前的进度,apk反编译之后通过观察,发现桌面的图标在res/layout目录下都有对应的xml文件
[XML] 纯文本查看 复制代码
1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<com.chery.launcher.widget.IconLayout android:orientation="vertical" android:id="@id/il_kaola" style="@style/icon_layout"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <ImageButton android:background="@drawable/app_kaola_n" android:src="@drawable/selector_app_bg" style="@style/icon_button" />
    <TextView android:layout_gravity="center_horizontal" android:text="@string/kaola" style="@style/icon_text" />
</com.chery.launcher.widget.IconLayout>

通过搜索id找到了下面这个
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.chery.launcher;
/* loaded from: C:\Users\Chuny\AppData\Local\Temp\jadx-5344058567848042476.dex */
public final class R$id {
    public static final int DraggableViewPager = 2131099648;
    public static final int ViewPagerIndicator = 2131099649;
    public static final int btn_app = 2131099650;
    public static final int btn_cancel = 2131099651;
    public static final int btn_close = 2131099652;
    public static final int btn_confirm = 2131099653;
    public static final int btn_media = 2131099654;
    public static final int btn_navi = 2131099655;
    public static final int btn_ok = 2131099656;
    public static final int btn_phone = 2131099657;
    public static final int btn_yuansheng = 2131099658;
    public static final int cb_interconnect = 2131099659;
    public static final int il_aimp = 2131099728;
    public static final int il_assistance = 2131099660;
    public static final int il_auto = 2131099661;
    public static final int il_car_manual = 2131099662;
    public static final int il_carlife = 2131099663;
    public static final int il_carplay = 2131099664;
    public static final int il_carset = 2131099665;
    public static final int il_contact = 2131099666;
    public static final int il_diagnose = 2131099667;
    public static final int il_dvr = 2131099668;
    public static final int il_esfile = 2131099729;
    public static final int il_icm = 2131099669;
    public static final int il_kaola = 2131099670;
    public static final int il_maintain = 2131099671;
    public static final int il_manage = 2131099672;
    public static final int il_manual = 2131099673;
    public static final int il_map = 2131099674;
    public static final int il_message = 2131099675;
    public static final int il_music = 2131099676;
    public static final int il_personal = 2131099677;
    public static final int il_qdlink = 2131099678;
    public static final int il_setup = 2131099679;
    public static final int il_system_update = 2131099680;
    public static final int il_ting = 2131099681;
    public static final int il_update = 2131099682;
    public static final int il_violation = 2131099683;
    public static final int il_weather = 2131099684;
    public static final int iv_hour_g = 2131099685;
    public static final int iv_hour_s = 2131099686;
    public static final int iv_maohao = 2131099687;
    public static final int iv_min_g = 2131099688;
    public static final int iv_min_s = 2131099689;
    public static final int iv_tips = 2131099690;
    public static final int iv_unread_dot = 2131099691;
    public static final int iv_update_dot = 2131099692;
    public static final int iv_weather = 2131099693;
    public static final int ll_left = 2131099694;
    public static final int rl_time = 2131099695;
    public static final int rl_weather = 2131099696;
    public static final int tag_layout_id = 2131099697;
    public static final int tag_order = 2131099698;
    public static final int tv_air_quality = 2131099699;
    public static final int tv_miss_call = 2131099700;
    public static final int tv_month_day = 2131099701;
    public static final int tv_msg = 2131099702;
    public static final int tv_temp = 2131099703;
    public static final int tv_tips = 2131099704;
    public static final int tv_week = 2131099705;
    public static final int txt_air_quality = 2131099706;
}

不是很懂这些id是怎么定义的,在经过一段时间的摸索找到了这个方法,猜测应该就是在这里实现的点击打开图标的操作
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
    if (view == null) {
        return;
    }
    switch (view.getId()) {
        case 2131099660:
            startBCall();
            return;
        case 2131099661:
            startAndroidAuto();
            return;
        case 2131099662:
            startCarManual();
            return;
        case 2131099663:
            startCarLife();
            return;
        case 2131099664:
            startCarPlay();
            return;
        case 2131099665:
            startCarSet();
            return;
        case 2131099666:
            startEmegrency();
            return;
        case 2131099667:
            startDiagnose();
            return;
        case 2131099668:
            startDvr();
            return;
        case 2131099669:
        case 2131099672:
        case 2131099676:
        case 2131099682:
        default:
            return;
        case 2131099670:
            startKaoLa();
            return;
        case 2131099671:
            startMaintain();
            return;
        case 2131099673:
            startManual();
            return;
        case 2131099674:
            startMap();
            return;
        case 2131099675:
            startMessage();
            return;
        case 2131099677:
            startPersonal();
            return;
        case 2131099678:
            ActivityUtils.startActivity(this.ctx, "com.neusoft.ssp.ces.c4.car.assistant", "com.neusoft.ssp.ces.c4.car.assistant.SplashActivity");
            return;
        case 2131099679:
            startSetting();
            return;
        case 2131099680:
            startUpdate();
            return;
        case 2131099681:
            startTing();
            return;
        case 2131099683:
            startViolation();
            return;
        case 2131099684:
            startWeather();
            return;
        case 2131099728:
            TspUploadUtils tspUploadUtils = this.uploadUtils;
            tspUploadUtils.sendBroadcast(1, "Common.SK.Aimp");
            ActivityUtils.startActivity(tspUploadUtils.ctx, "com.aimp.player", "com.aimp.player.ui.activities.main.MainActivity");
            return;
        case 2131099729:
            TspUploadUtils tspUploadUtils2 = this.uploadUtils;
            tspUploadUtils2.sendBroadcast(1, "Common.SK.EsFile");
            ActivityUtils.startActivity(tspUploadUtils2.ctx, "com.estrongs.android.pop", "com.estrongs.android.pop.view.FileExplorerActivity");
            return;
    }
}


试着加了两个图标之后重新编译打包安装到车机上无法打开,选择桌面的地方识别不到车机桌面了,再不知道该怎么查了,大佬们给帮忙看看
加个未修改apk的链接:https://www.lanzv.com/iYD7b1mvkyrg

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

freelive 发表于 2024-2-1 16:35
建议替换第三方车机桌面,可以实现正常使用。

系统自带的车机桌面,应该是有些限制的版本。
他说我说 发表于 2024-2-1 17:21
 楼主| scy444888 发表于 2024-2-3 11:50
他说我说 发表于 2024-2-1 17:21
希望你早点解决,俺是21款7p,也是ADB安装

太惨了,把车机搞坏了
baikunlun 发表于 2024-2-3 22:06
我说一个思路,我在电视盒子上用过的。

先看一下原桌面上有什么用不到的APP,把它弄下来看下包名,就是 com.xxx.xxxx 这样子的。
然后自己编一个APP使用这个包名,并安装到车机上去。
这样在桌面上就可以直接启动这个APP,在自己的APP中实现其它APP的跳转。
这个方法不用动原桌面,风险较低。
晓风残雪月 发表于 2024-5-17 12:51
21虎8,车机系统安卓4.43         嘟嘟桌面悬浮高德需要会员   崩溃!~!~!氢桌面悬浮地图不收费,本地音乐DC Player  悬浮不了,布丁UI安卓4.0用着不适应
smartfrog 发表于 2024-6-20 16:59
baikunlun 发表于 2024-2-3 22:06
我说一个思路,我在电视盒子上用过的。

先看一下原桌面上有什么用不到的APP,把它弄下来看下包名,就是  ...

好主意,原来的APP是手动替换掉还是直接adb安装替换掉?
baikunlun 发表于 2024-6-21 11:28
smartfrog 发表于 2024-6-20 16:59
好主意,原来的APP是手动替换掉还是直接adb安装替换掉?

安装方法不重要,能装上去就是好办法。
重名的APP直接装应提示签名不符,需要先卸载,再安装。
coolmali 发表于 2024-6-27 11:41
###主界面显示所有app###
adb shell settings put system showallapp 1
liufangkai 发表于 2024-7-9 09:55
baikunlun 发表于 2024-2-3 22:06
我说一个思路,我在电视盒子上用过的。

先看一下原桌面上有什么用不到的APP,把它弄下来看下包名,就是  ...

试过很多方法 都不成功
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-30 00:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表