有谷歌框架。刷機後使用apkmirror安裝器安裝新版市場 (com.android.vending)。
最新的固件是 YT3-X90F_USR_S200400_2108170402_WW17_BP_ROW,Android 6.0.1。
帶ENG字樣的是工程版,很卡,不建議用。
S1xxxx開頭的是Android 5.1系統。
開發者模式勾選OEM解鎖後,進fastboot線刷。
有谷歌框架。刷機後使用apkmirror安裝器安裝新版市場 (com.android.vending)。
最新的固件是 YT3-X90F_USR_S200400_2108170402_WW17_BP_ROW,Android 6.0.1。
帶ENG字樣的是工程版,很卡,不建議用。
S1xxxx開頭的是Android 5.1系統。
開發者模式勾選OEM解鎖後,進fastboot線刷。
Recently I found module list in Xposed become empty after I upgrade my Nexus5 to 6.0.1 (M4B30Z, Dec 2016). And all the modules are not activating. So I open logcat and see the following:
1 |
01-10 21:35:02.682 294 294 E Xposed : Cannot load any modules because /data/data/de.robv.android.xposed.installer/conf/modules.list was not found |
Rovo89 said on a xda post that this file should be created if any module is activated. But somehow it didn’t do so on my Nexus5. So I create one myself and set correct permission (0644) and uid (you can run the Xposed Installer app and check the uid through ps |grep xposed). Then I reboot and check logcat again:
1 2 |
01-10 21:29:39.485 295 295 E Xposed : Errors during Xposed initialization 01-10 21:29:39.485 295 295 E Xposed : java.io.IOException: Permission denied while reading /data/data/de.robv.android.xposed.installer/conf/modules.list |
Looks like it’s still not working.
Then I realise that Android started to set SELinux to enforce from Lollipop (5.0) so this should be the problem. (We can use dmesg|grep audit to check if the problem really related to SELinux. ) I compared a random file under /data/data to the file we just created:
1 2 3 4 |
root@hammerhead:/ # ls -Z /data/data/de.robv.android.xposed.installer/cache/repo_cache.db -rw-rw---- u0_a379 u0_a379 u:object_r:app_data_file:s0:c512,c768 repo_cache.db root@hammerhead:/ # ls -Z /data/data/de.robv.android.xposed.installer/conf/modules.list -rw------- root root u:object_r:app_data_file:s0 modules.list |
So all we need to do is to change this conf/modules.list to u:object_r:app_data_file:s0:c512,c768 as well
1 |
root@hammerhead:/ # restorecon /data/data/de.robv.android.xposed.installer/conf/modules.list |
restorecon is a applet shipped with toybox, we can also use chcon to manually set SELinux context.
升級Nexus5 到6.0.1 (M4B30Z, Dec 2016)之後,Xposed的模塊列表變成空的了,所有的模塊也都失效了。沒有xposed,怎麼種莊稼。於是我打開logcat看了一眼。
1 |
01-10 21:35:02.682 294 294 E Xposed : Cannot load any modules because /data/data/de.robv.android.xposed.installer/conf/modules.list was not found |
rovo89在xda的QA帖中說一般情況下這個文件會在啟用任意一個模塊後創建。然而現在它並沒有被創建。於是我去建了一個,然後chmod 644以及chown到應用到uid(可以通過啟動應用之後ps|grep xposed查看uid,形如u0_a??),重啟了一下,再瞄了一眼logcat。
1 2 |
01-10 21:29:39.485 295 295 E Xposed : Errors during Xposed initialization 01-10 21:29:39.485 295 295 E Xposed : java.io.IOException: Permission denied while reading /data/data/de.robv.android.xposed.installer/conf/modules.list |
好像哪裡不對
想起來Android從蘿莉棒開始SELinux就是enforce了,所以大概是這個問題。(我們可以通過dmesg|grep audit來查看被SELinux過濾的各種奇怪操作。)於是看了一下默認的文件context和我們剛創建的文件的context:
1 2 3 4 |
root@hammerhead:/ # ls -Z /data/data/de.robv.android.xposed.installer/cache/repo_cache.db -rw-rw---- u0_a379 u0_a379 u:object_r:app_data_file:s0:c512,c768 repo_cache.db root@hammerhead:/ # ls -Z /data/data/de.robv.android.xposed.installer/conf/modules.list -rw------- root root u:object_r:app_data_file:s0 modules.list |
那麼我們把這個conf/modules.list也改成u:object_r:app_data_file:s0:c512,c768這個context好了
1 |
root@hammerhead:/ # restorecon /data/data/de.robv.android.xposed.installer/conf/modules.list |
restorecon是toybox中帶的一個applet,我們也可以用chcon來手動更改context。
這貨貌似是賣萌黑貓的根本不是續作
我開始想不加殼就算了,java不混淆就算了,加密的so一模一樣的是來坑爹的吧www MD5都一樣的摔
後來我發現被坑了
原來那一段AES密鑰不是給遊戲通信用的233
然後我就發現了原來不是這樣的2333
但是終究還是搞定了23333
CryptoPrefs
用於加密userHash和登陸token,保存在key=md5(‘Account’)的shared_prefs中;AES-128-CBC, ZerosPadding
1 2 |
private static string sIV = "4rZymEMfa/PpeJ89qY4gyA=="; private static string sKEY = "ZTdkNTNmNDE2NTM3MWM0NDFhNTEzNzU1"; |
Cipher
1 2 |
DEFAULT_IV_128 = "=q$f]p&(K.3_#hHk"; DEFAULT_NETWORKHASH = "Y.u=M,N-!8Jd2`RXE)k!]y<w2TFg-[4Z"; |
除首次進入遊戲外,以後登陸都是用userHash做key;AES-256-CBC, PKCS7
好好好可以作死了
附:ARM F5之後的getKeySpec偽代碼,證明之前的猜想是正確的