Open lqzhgood opened 2 years ago
貌似在源码的这个类 EmotcationConstants.java
里面
https://github.com/tsuzcx/qq_apk/blob/main/com.tencent.mobileqq/classes.jar/com/tencent/mobileqq/text/EmotcationConstants.java
感谢,自己用的手机QQ版本是8.8.5,也存在部分表情缺失和不正确,不过目前暂时没有时间做补全和更正
表情并不是只有两位,貌似在某种情况下会有3位,第二位有可能是 C2 C3 C4 .... ,感觉是 Group 组的概念, 如上述 Hex 字符串 前十个表情
["14", "17"],
["14", "28"],
["14", "13"],
["14", "2b"],
["14", "15"],
["14", "9"],
["14", "14"],
["14", "6a"],
["14", "23"],
["14", "c3", "ba"],
["14", "19"],
["14", "18"],
还有一些表情是内置藏起来了,没有显示在发送表情面板里面的,如常见的 \吓
感觉还是需要从源码角度才能拿到全部表情的 Gif、 描述、定位符
的关系
可以在 /data/data/com.tencent.mobileqq/files/qq_emoticon_res/face_config.json
取到配置文件,另外观察发现隐藏的表情存在 QHide
字段。
将 apk 改 zip 解压后也能得到 .\assets\face_config.json
(F1) 这个与上述 /data/data/
(F2) 中的不一致
F1 应该是废弃的,里面还有错误, 如 ❔ F1 /问好
F2 /问号
QQ F2 和 Tim F2 还不一致~ 还是不知道 magicString (\u0014\uxxxx) 如何对应到文件
{
"flag": "0x14",
"group": "none",
"index": "0x17",
"index10": 23,
"des": "微笑",
"packName": "QQ经典",
"magicStr": "\u0014\u0017"
},
{
"flag": "0x14",
"group": "none",
"index": "0x28",
"index10": 40,
"des": "撇嘴",
"packName": "QQ经典",
"magicStr": "\u0014("
},
{
"flag": "0x14",
"group": "none",
"index": "0x13",
"index10": 19,
"des": "色",
"packName": "QQ经典",
"magicStr": "\u0014\u0013"
},
{
"flag": "0x14",
"group": "none",
"index": "0x2b",
"index10": 43,
"des": "发呆",
"packName": "QQ经典",
"magicStr": "\u0014+"
},
{
"flag": "0x14",
"group": "none",
"index": "0x15",
"index10": 21,
"des": "得意",
"packName": "QQ经典",
"magicStr": "\u0014\u0015"
},
index10
的值,也即magicStr
第二位当成char转int的值,与AQLid
对应后,用QSid
拼接成s{QSid}.png
即可。Tim没有这个字段,不知道是不是有另外的储存方式?
{
"QSid": "14",
"QDes": "/微笑",
"IQLid": "23",
"AQLid": "23",
"EMCode": "100"
},
{
"QSid": "1",
"QDes": "/撇嘴",
"IQLid": "40",
"AQLid": "40",
"EMCode": "101"
},
{
"QSid": "2",
"QDes": "/色",
"IQLid": "19",
"AQLid": "19",
"EMCode": "102"
},
{
"QSid": "3",
"QDes": "/发呆",
"IQLid": "43",
"AQLid": "43",
"EMCode": "103"
},
{
"QSid": "4",
"QDes": "/得意",
"IQLid": "21",
"AQLid": "21",
"EMCode": "104"
}
如图
HEX 字符串