今天無意發現了一款軟體,進去點了兩下,竟然直接跳到了微信二維碼掃描介面,喜悅之情難以掩飾,終於等到你...
昨夜西風凋碧樹
沒錯,三個月之前,我需要這個技能,網上搜尋了一番,得到如下程式碼:
public static void toWeChatScan(Context context) {
try {
Uri uri = Uri.parse("weixin://");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
context.startActivity(intent);
} catch (Exception e) {
}
}複製程式碼
然而新版本微信已經失效,只能進入到微信介面,不能開啟二維碼.獨上高樓,望盡天涯路.
衣帶漸寬終不悔
時間如流水般飛逝了兩週,忽然開啟了小米的掃一掃,這個軟體技能真多,不僅可以掃碼,還可以掃題,掃名片,掃文件,掃字翻譯,這都不是重點,關鍵能直接進入微信和支付寶掃一掃.
於是提取了這個apk(怎麼提取呢,後面會寫個文章,專門介紹那些安卓開發神器APP,顫抖吧...).反編譯了下,這個app也沒混淆,也沒加固,哈哈哈,最新版不知道啥情況,不過可悲的是去掉了微信和支付寶掃一掃入口...
反編譯得到了如下程式碼:
public static void toWechatScanFromMIUI(Context context) {
String packageName = "com.tencent.mm";
String activityName = "com.tencent.mm.plugin.scanner.ui.BaseScanUI";
Intent intent;
try {
intent = new Intent();
intent.setClassName(packageName, activityName);
intent.setFlags(268435456);
intent.setComponent(new ComponentName(packageName, activityName));
context.startActivity(intent);
} catch (Exception e) {
}
}複製程式碼
這個可以直接進入微信掃一掃二維碼 Activity
, 怎麼知道是這個 Activity
呢,期待神器祭出吧.然鵝,我的APP使用這個程式碼,同樣只開啟了微信介面,並沒有卵.
發生了什麼,谷歌了一下,發現只有兩種情況可以開啟其他軟體的 Activity
:
- 目標
Activity
有exported
標籤 - 需要許可權
android.permission.START_ANY_ACTIVITY
發現微信掃一掃這個 Activity
並沒有 exported
標籤,然後在小米掃一掃的清單檔案裡發現了上面那個神一般的許可權,然而這個許可權和系統有關係,不同的系統處理有些差異,具體未測試,在miui上不好使,有了系統許可權肯定好使,而這個掃一掃就具有系統許可權,為伊消得人憔悴.
眾裡尋他千百度
時間轉眼就來到了七月份的前頭,一切仍在他合適的軌道上運轉,不偏不倚,不快不慢.
今天,一個普通應用開啟了你,原來這就是你的樣子.
- 使用反編譯神器
jadx
破解,還好沒加固,只是混淆了一下,希望還是有的 - 用顯示任意
Activity
的神器找到該Activity
- 還好程式碼不多,點選事件處理裡跳轉了一下,找到了下面的程式碼:
public static void toWeChatScanDirect(Context context) {
try {
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI"));
intent.putExtra("LauncherUI.From.Scaner.Shortcut", true);
intent.setFlags(335544320);
intent.setAction("android.intent.action.VIEW");
context.startActivity(intent);
} catch (Exception e) {
}
}複製程式碼
測試了下,完美展現了你的樣子.驀然回首,原來,你在這裡.