Skip to content
This repository has been archived by the owner on Aug 12, 2024. It is now read-only.

Commit

Permalink
fix: some compatibility issues on 9.0.70+
Browse files Browse the repository at this point in the history
It is not recommended to use this build for lower versions
  • Loading branch information
ikechan8370 committed Jul 6, 2024
1 parent be9ff46 commit 0e5add2
Show file tree
Hide file tree
Showing 43 changed files with 1,250 additions and 132 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.tencent.mobileqq.msf.core;

public class MsfCore {
public static synchronized int getNextSeq() {
public synchronized int getNextSeq() {
return 0;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.tencent.mobileqq.msf.service;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

import androidx.annotation.Nullable;

import com.tencent.mobileqq.msf.core.MsfCore;

public class MsfService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}

public static MsfCore getCore() {
return null;
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.tencent.qphone.base.util;

public abstract class CodecWarpper {
public abstract void onResponse(int i2, Object obj, int i3);
// public abstract void onResponse(int i2, Object obj, int i3);

public abstract void onInvalidData(int i2, int i3, String str);

public abstract void onResponse(int i2, Object obj, int i3, byte[] bArr);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.tencent.qqnt.aio.api;

import com.tencent.mobileqq.qroute.QRouteApi;
import com.tencent.qqnt.kernel.nativeinterface.Contact;
import com.tencent.qqnt.kernel.nativeinterface.IOperateCallback;
import com.tencent.qqnt.kernelpublic.nativeinterface.Contact;

public interface IAIOFileTransfer extends QRouteApi {
void sendLocalFile(Contact contact, String path, IOperateCallback cb);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.tencent.qqnt.kernel.api.impl;

public class GroupService {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.tencent.qqnt.kernel.nativeinterface;

import com.tencent.qqnt.kernelpublic.nativeinterface.Contact;

import java.util.ArrayList;


Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.tencent.qqnt.kernel.nativeinterface;

import com.tencent.qqnt.kernelpublic.nativeinterface.MemberRole;

import java.io.Serializable;

public final class GrayTipGroupMember implements Serializable {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.tencent.qqnt.kernel.nativeinterface;

import com.tencent.qqnt.kernelpublic.nativeinterface.MemberRole;

import java.util.ArrayList;


Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.tencent.qqnt.kernel.nativeinterface;

import com.tencent.qqnt.kernelpublic.nativeinterface.Contact;

import java.util.ArrayList;


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.tencent.qqnt.kernel.nativeinterface;

import java.util.ArrayList;

public class GroupMemberCommonListResult {
public long groupCode;
public int identifyFlag;
public long startUin;
public ArrayList<MemberCommonInfo> memberList = new ArrayList<>();
public String strErrorInfo = "";

public long getGroupCode() {
return this.groupCode;
}

public int getIdentifyFlag() {
return this.identifyFlag;
}

public ArrayList<MemberCommonInfo> getMemberList() {
return this.memberList;
}

public long getStartUin() {
return this.startUin;
}

public String getStrErrorInfo() {
return this.strErrorInfo;
}

public String toString() {
return "GroupMemberCommonListResult{groupCode=" + this.groupCode + ",startUin=" + this.startUin + ",identifyFlag=" + this.identifyFlag + ",memberList=" + this.memberList + ",strErrorInfo=" + this.strErrorInfo + ",}";
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package com.tencent.qqnt.kernel.nativeinterface;

import java.util.ArrayList;

public class GroupMemberCommonReq {
public long groupCode;
public int sourceType;
public String startUin = "";
public String identifyFlag = "";
public ArrayList<Long> uinList = new ArrayList<>();
public MemberCommonInfoFilter memberCommonFilter = new MemberCommonInfoFilter();
public String memberNum = "";
public String filterMethod = "";
public String onlineFlag = "";
public String realSpecialTitleFlag = "";

public String getFilterMethod() {
return this.filterMethod;
}

public long getGroupCode() {
return this.groupCode;
}

public String getIdentifyFlag() {
return this.identifyFlag;
}

public MemberCommonInfoFilter getMemberCommonFilter() {
return this.memberCommonFilter;
}

public String getMemberNum() {
return this.memberNum;
}

public String getOnlineFlag() {
return this.onlineFlag;
}

public String getRealSpecialTitleFlag() {
return this.realSpecialTitleFlag;
}

public int getSourceType() {
return this.sourceType;
}

public String getStartUin() {
return this.startUin;
}

public ArrayList<Long> getUinList() {
return this.uinList;
}

public void setFilterMethod(String str) {
this.filterMethod = str;
}

public void setGroupCode(long j2) {
this.groupCode = j2;
}

public void setIdentifyFlag(String str) {
this.identifyFlag = str;
}

public void setMemberCommonFilter(MemberCommonInfoFilter memberCommonInfoFilter) {
this.memberCommonFilter = memberCommonInfoFilter;
}

public void setMemberNum(String str) {
this.memberNum = str;
}

public void setOnlineFlag(String str) {
this.onlineFlag = str;
}

public void setRealSpecialTitleFlag(String str) {
this.realSpecialTitleFlag = str;
}

public void setSourceType(int i2) {
this.sourceType = i2;
}

public void setStartUin(String str) {
this.startUin = str;
}

public void setUinList(ArrayList<Long> arrayList) {
this.uinList = arrayList;
}

public String toString() {
return "GroupMemberCommonReq{groupCode=" + this.groupCode + ",startUin=" + this.startUin + ",identifyFlag=" + this.identifyFlag + ",uinList=" + this.uinList + ",memberCommonFilter=" + this.memberCommonFilter + ",memberNum=" + this.memberNum + ",filterMethod=" + this.filterMethod + ",onlineFlag=" + this.onlineFlag + ",realSpecialTitleFlag=" + this.realSpecialTitleFlag + ",sourceType=" + this.sourceType + ",}";
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package com.tencent.qqnt.kernel.nativeinterface;

import java.util.ArrayList;

public class GroupMemberExtListResult {
public long dataTime;
public long endUin;
public long groupCode;
public int levelNameSeq;
public int memberInfoSeq;
public int sysShowFlag;
public int timeToUpdate;
public int userShowFlag;
public int userShowFlagNew;
public ArrayList<MemberExtInfo> memberLevelInfo = new ArrayList<>();
public ArrayList<MemberLevelName> msgLevelName = new ArrayList<>();
public String strOwnerName = "";
public String strAdminName = "";
public ArrayList<MemberLevelName> msgLevelNameNew = new ArrayList<>();

public long getDataTime() {
return this.dataTime;
}

public long getEndUin() {
return this.endUin;
}

public long getGroupCode() {
return this.groupCode;
}

public int getLevelNameSeq() {
return this.levelNameSeq;
}

public int getMemberInfoSeq() {
return this.memberInfoSeq;
}

public ArrayList<MemberExtInfo> getMemberLevelInfo() {
return this.memberLevelInfo;
}

public ArrayList<MemberLevelName> getMsgLevelName() {
return this.msgLevelName;
}

public ArrayList<MemberLevelName> getMsgLevelNameNew() {
return this.msgLevelNameNew;
}

public String getStrAdminName() {
return this.strAdminName;
}

public String getStrOwnerName() {
return this.strOwnerName;
}

public int getSysShowFlag() {
return this.sysShowFlag;
}

public int getTimeToUpdate() {
return this.timeToUpdate;
}

public int getUserShowFlag() {
return this.userShowFlag;
}

public int getUserShowFlagNew() {
return this.userShowFlagNew;
}

public String toString() {
return "GroupMemberExtListResult{groupCode=" + this.groupCode + ",memberLevelInfo=" + this.memberLevelInfo + ",msgLevelName=" + this.msgLevelName + ",endUin=" + this.endUin + ",dataTime=" + this.dataTime + ",userShowFlag=" + this.userShowFlag + ",sysShowFlag=" + this.sysShowFlag + ",timeToUpdate=" + this.timeToUpdate + ",strOwnerName=" + this.strOwnerName + ",strAdminName=" + this.strAdminName + ",levelNameSeq=" + this.levelNameSeq + ",userShowFlagNew=" + this.userShowFlagNew + ",msgLevelNameNew=" + this.msgLevelNameNew + ",memberInfoSeq=" + this.memberInfoSeq + ",}";
}

}
Loading

1 comment on commit 0e5add2

@fuqiuluo
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shamrock v1.0.9采用的是广播回调收包,这个方法性能过于低下,也就是hookReceive部分。
https://github.com/whitechi73/OpenShamrock/blob/master/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/actions/PatchMsfCore.kt,
这里是v1.1.0版本的新收包逻辑,使用的是qq自带的ipc通道,性能好一些,占用低,而且不容易崩溃(出现广播接收器未注册的问题)

Please sign in to comment.