-
Notifications
You must be signed in to change notification settings - Fork 43
百度云推送
- pushservice-4.2.0.63.jar libbdpush_V2_2.so
- http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/sdk/clientsdk
- tag 即主题, add tag就是订阅主题, del tag就是取消订阅
- PushManager, 增加删除tag, 绑定取消绑定, 设置通知样式等
- FrontiaPushMessageReceiver, 增加删除tag, 绑定取消绑定和消息获取的回调
- 从key api看出,组件间通信至少采用了广播
-
pushservice-4.2.0.63.jar + libbdpush_V2_2.so
-
pushservice-4.2.0.63.jar里面还包含了一个plugin-deploy.jar,里面包含有一个.dex,反编译之(dex2jar)得完整库结构
-
完整库结构: libbdpush_V2_2.so --jni包装--> plugin-deploy.jar --再次包装--> pushservice-4.2.0.63.jar
- pushservice-4.2.0.63.jar 的功能是向应用层提供api,各种调用转发到plugin-deploy.jar,故代码基本没混淆。
- plugin-deploy.jar 的功能貌似不少,简单通过包名等猜测如下:
- 静默升级? silentupdate
- 信息统计,StatisticXXX
- other xxx, 代码混淆的比较厉害
- com.baidu.android.pushservice.jni
public static native int closeSocket(int paramInt);
public static native int createSocket(String paramString, int paramInt);
public static native int getLastSocketError();
private static native byte[] rcvMsg(int paramInt);
public static native int sendMsg(int paramInt1, byte[] paramArrayOfByte, int paramInt2);
private static native byte[] getSsoHashNative(Context paramContext, String paramString1, String paramString2, String paramString3, String paramString4, String paramString5, long paramLong);
private static final native byte[] nativeB64Encode(byte[] paramArrayOfByte); ```
- 终端api中无推送消息接口,这样只能从后台管理端发送消息
- 用jd-jui查看sdk提供的jar包,没搜到native关键字,why? 答案在plugin-deploy.jar
- TODO 这个库结构很有意思,如何做到的呢??? (1. dx --dex --output=plugin-deploy_dex.jar plugin-deploy.jar, 2. 再将plugin-deploy_dex.jar放入 pushservice-4.2.0.63的android工程assets目录并export)
Just build something.