Инженерные режимы ШГУВНИМАНИЕ! Все нижеуказанные операции вы делаете на свойс страх и риск.
Всегда помните, что инженерное меню не предназначено для пользователей и требует особенных навыков и знаний.
Если до конца не понимаете назначение меню и опций - то не входите в них. Иначе можно легко получить кирпич с отказом в гарантийном ремонте.
Новое ШГУ сейчас оценивается в 375000 рублей ! :)
В процессе изучения декомпилированного кода различных модулей ШГУ было найдено некоторое количество вариантов входа в инженерное меню.
На данный момент времени есть только один реально рабочий режим, давно опубликованный на клубных форумах.
Тем не менее в этом посте я буду собирать всю информацию об инженерных режимах, ссылки на исходный код, куски кода и некоторые описания.
Итак по порядку:
Инженерный режим. Уровень:3 (Работает).
Вход в режим осуществляется быстрым постукиванием ДВУМЯ пальцами по областям указанным цифрами 1,2 или 3,4
Обработка режима входа в режим ввода пароля производится в классе package com.lge.ivi.setting.activity;
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == 0) {
Message obtainMessage;
switch (view.getId()) {
case R.id.swinfo_firmware_ver:
case R.id.swinfo_map_ver:
this.mSecretCountByLGBasic = -1;
if (this.mSecretCountByHMCDealer != -1) {
this.mSecretCountByHMCDealer++;
if (this.mSecretCountByHMCDealer > 4) {
removeAllHandlerMessage();
this.mSecretCountByHMCDealer = -1;
break;
}
}
removeAllHandlerMessage();
this.mSecretCountByHMCDealer = 1;
obtainMessage = this.mhandler.obtainMessage();
obtainMessage.what = Constants.HANDLER_MESSAGE_ENTER_ENGINEERING_MENU2;
this.mhandler.sendMessageDelayed(obtainMessage, 3000);
break;
break;
case R.id.swinfo_firmware_ver_detail:
case R.id.swinfo_map_ver_detail:
this.mSecretCountByLGBasic = -1;
if (this.mSecretCountByHMCDealer <= 3) {
removeAllHandlerMessage();
this.mSecretCountByHMCDealer = -1;
break;
}
this.mSecretCountByHMCDealer++;
removeAllHandlerMessage();
obtainMessage = this.mhandler.obtainMessage();
obtainMessage.what = Constants.HANDLER_MESSAGE_ENTER_ENGINEERING_MENU2;
this.mhandler.sendMessage(obtainMessage);
break;
}
}
return false;
}
Как итог, получим окно приглашение ввода сервисного пароля
Действующий пароль: 1111
Проверка пароля производится в классе package com.lge.ivi.setting.activity.SecretKeypadSettingActivity;
public void onPressNumberSend() {
Log.d("SecretKeypadSetting", "onPressNumberSend()");
if (this.hQ == 3) {
if (this.hP.equals("1111")) {
B(this.hQ);
}
} else if (this.hQ == 2) {
if (this.hP.equals("15887788")) {
B(0);
} else if (this.hP.equals("7900")) {
B(4);
} else if (this.hP.equals("6292")) {
B(5);
} else {
aD();
}
} else if (this.hQ == 6) {
if (this.mProjectCode == 1 && this.hP.equals("2400")) {
B(6);
}
} else if (this.hQ == 100) {
aD();
}
finish();
}
Внешний вид Инженерного режима №3
Если перейти в раздел System и Выбрать закладку Version Info
И постучать ОДНИМ пальцем на пустой области, то пойдем в Engineering Hidden Mode.
public boolean onTouch(View view, MotionEvent motionEvent) {
this.pK = motionEvent.getPointerCount() + this.pK;
long currentTimeMillis = System.currentTimeMillis();
switch (view.getId()) {
case R.id.btn_hide:
if (currentTimeMillis - 5000 <= this.ff) {
if (this.pK > 4) {
this.pK = 0;
startActivity(new Intent(this, HideScreenActivity.class));
break;
}
} else if (this.pK != 1) {
this.pK = 0;
break;
} else {
this.ff = currentTimeMillis;
break;
}
break;
case R.id.swinfo_sw_ver:
if (currentTimeMillis - 5000 <= this.ff) {
if (this.pK > 4 && Engineering.sEngineerngMode == 0) {
this.pK = 0;
CharSequence f = f("ro.build.description");
TextView textView = (TextView) findViewById(R.id.version_sw_ver_hidden);
textView.setVisibility(0);
textView.setText(f);
break;
}
} else if (this.pK != 1) {
this.pK = 0;
break;
} else {
this.ff = currentTimeMillis;
break;
}
}
return false;
}
Толку от этого режима никакого.Его предназначение пока не понятно.
Инженерный режим. Уровень:100 (Работает)
Ввести в указанных местах код 1353135
Код вводить быстро.
Появится приглашение ввести пароль. Пароль - текущее время. Если времени на ШГУ нет, то пароль 2400
Обработка режима входа в режим ввода пароля производится в классе package com.lge.ivi.setting.activity.ScreenSaverActivity;
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == 0) {
if (this.hI.equals("")) {
this.mHandler.removeMessages(100);
this.mHandler.sendEmptyMessageDelayed(100, 3000);
}
switch (view.getId()) {
case C0196R.id.secret_cts_1:
this.hI += Constants.ILLUMINIATION_DEFAULT_VALUE;
break;
case C0196R.id.secret_cts_2:
this.hI += "2";
break;
case C0196R.id.secret_cts_3:
this.hI += "3";
break;
case C0196R.id.secret_cts_4:
this.hI += "4";
break;
case C0196R.id.secret_cts_5:
this.hI += "5";
break;
}
}
if (this.hI != null && this.hI.length() >= "1353135".length()) {
this.mHandler.removeMessages(100);
this.mHandler.sendEmptyMessage(100);
}
return false;
}
Сообщение отредактировал Alexx99 - 08.01.19, 16:03Причина редактирования: Удален пункт "Инженерный режим Уровень:2". Причина - не работает.