尝试过别的桌面app,使用起来效果一般还让本来就不富裕的内存雪上加霜,于是想着把桌面app逆向一下看能不能解决这个问题
pass: 自己对安卓app是一窍不通,只懂点js,只能找资料现学现试,而且不知道这个app做了什么限制在模拟器上和手机均无法运行,每次都只能到车上去试,很麻烦
先说一下目前的进度,apk反编译之后通过观察,发现桌面的图标在res/layout目录下都有对应的xml文件
[XML] 纯文本查看 复制代码
[I]
通过搜索id找到了下面这个
[Java] 纯文本查看 复制代码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] 纯文本查看 复制代码 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