快过年了,被疫情困在家,实在无聊就给小米9换了个MIUI12_Global 的ROM。但是,每次开启USB调试,以及允许安装应用都需要等待5秒才能授权。于是楼主花费了几个钟头的时间终于搞定了五秒的等待时间,虽然只测试了小米9的V12.0.4.0.QFAMIXM,但是其他机型或者其他版本的ROM应该都差不多,感兴趣的可以测试一下。
机型 | 小米9(cepheus) |
ROM | V12.0.4.0.QFAMIXM_20210115.0000.00_10.0_global |
相关软件 | 设置(/system/product/priv-app/Settings/Settings.apk) |
手机管家(/system/priv-app/SecurityCenter/SecurityCenter.apk) |
1、定位软件:当前进程(名字就叫当前进程)
我在芥子空间找到了app【当前进程】用来查看当前窗口Activity的软件。
首先打开软件,然后开启悬浮窗进行记录Activity活动,
一看这个Activity的名字立马感觉就来了。
二话不说,把SecurityCenter.apk拿出用jd-gui来看看。
2、分析
找到com.miui.permcenter.privacymanager.SpecialPermissionInterceptActivity
有第一张图我们可以看到这个Activity的界面有两个Button,而且其中Button(Text="允许")需要计时结束后,才可点击,但是Button(Text="取消")则是随时可点击的。
用jd-gui打开com.miui.permcenter.privacymanager.SpecialPermissionInterceptActivity的源码:
package com.miui.permcenter.privacymanager;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import b.b.f.j.B;
import b.b.f.j.F;
import b.b.f.j.o;
import com.miui.permcenter.compact.SystemPropertiesCompat;
import java.lang.ref.WeakReference;
import java.util.HashMap;
import java.util.Map;
import miui.app.Activity;
public class SpecialPermissionInterceptActivity extends Activity implements View.OnClickListener {
private static final Map<String, b> a = new HashMap<String, b>();
private a b;
private String c;
private String d;
private String e;
private TextView f;
private LinearLayout g;
private TextView h;
private Button i;
private Button j;
private int k;
static {
a.put("perm_install_unknown", new b(2131757339, 2130903079, 2131757335));
a.put("perm_notification", new b(2131757336, 2130903077, 2131757337));
a.put("perm_app_statistics", new b(2131757338, 2130903078, 2131757337));
a.put("miui_open_debug", new b(2131755938, 2130903055, 2131755937));
a.put("miui_close_optimization", new b(2131757023, 2130903063, 2131757022));
a.put("oaid_close", new b(0, 2131757158, 2131757159));
}
private void a() {
try {
Window window = getWindow();
window.addFlags(-2147483648);
window.getDecorView().setSystemUiVisibility(768);
window.getClass().getMethod("setNavigationBarColor", new Class[] { int.class }).invoke(window, new Object[] { Integer.valueOf(0) });
} catch (Exception exception) {}
}
private void a(boolean paramBoolean) {
if ("miui_open_debug".equals(this.d) && paramBoolean) {
Settings.Global.putInt(getContentResolver(), "adb_enabled", paramBoolean);
} else if ("miui_close_optimization".equals(this.d) && paramB