版本9.16.0
直接搜索x-sign,找到InnerProtocolParamBuilderImpl

smali
可以发现是调用了pha的 a方法
找到pha的子类phb
直接调用它的a方法
public void getSignStr(Object instance){
Map<String, String> map1 = new HashMap<>();
map1.put("data","{\"liveSource\":\"upDownSwitch\",\"extendJson\":\"{\\\"guardAnchorSwitch\\\":true,\\\"version\\\":\\\"202003\\\"}\",\"ignoreH265\":\"false\",\"liveId\":\"324800453618\"}");
Log.e(TAG, "start: " + System.currentTimeMillis());
Map<String, String> map2 = new HashMap<>();
map2.put("pageId", "http://h5.m.taobao.com/taolive/video.html");
map2.put("pageName", "com.taobao.taolive.room.TaoLiveVideoActivity");
Map<String ,String> o = (Map<String, String>) XposedHelpers.callMethod(instance, "a", map1, map2, "21646297", null, false);
for (Map.Entry<String, String> entry : o.entrySet()) {
Log.e(TAG, "getSignStr: " + entry.getKey() + "====" + URLEncoder.encode(entry.getValue()) );
}
Log.e(TAG, "end: " + System.currentTimeMillis());
Log.e(TAG, "getXSign: " + JSONObject.toJSON(o));
}
得到sign
{"x-sgext":"JAHVFdjjN0En45tYPd/O6hXkJech5DbnJuIl7Dbk","x-umt":"0/cAP4hLPBAQQAJ7oAbmqSLRurfatBto","x-mini-wua":"HHnB_cmYXitFdss22Ys2E/ExKjijPJ+JsjXHXdw4xDMatKrZ3Dhw+9yNfKBEacQVnHI9CtOr1YNAEYcrqDAYiBskv8J2Qo+MfmgzdDtgTd34BeupVI3WEjKnj/baGiUM1t0n54lPEvs4IQttgLt0X3E6cB9pnIZWdoFQQHxJsldSXM9Y=","x-sign":"azYBCM003xAAIWeq+6VhZz9dexvXsWehYpXFV3A/qIg6nheinyXUYGalZ4bdoQnL9Yx8ChoKJhfk62OtN5AjFcblxjFnsWehZ7FnoW"}