@@ -1296,14 +1296,21 @@ public synchronized static Class loadFilterAdaperClass(ClassLoader loader) throw
12961296
12971297 public synchronized static Constructor loadSeeMoreConstructor (ClassLoader loader ) throws Exception {
12981298 return UnobfuscatorCache .getInstance ().getConstructor (loader , () -> {
1299- var classList = dexkit .findClass (FindClass .create ().matcher (ClassMatcher .create ()
1300- .addMethod (MethodMatcher .create ().addUsingNumber (16384 ).addUsingNumber (512 ).addUsingNumber (64 ).addUsingNumber (16 ))
1301- .addMethod (MethodMatcher .create ().paramCount (2 ).paramTypes (int .class , boolean .class ))
1302- .addMethod (MethodMatcher .create ().paramCount (2 , 3 ).paramTypes (int .class , int .class , int .class ))
1303- ));
13041299
1305- if (classList .isEmpty ()) throw new RuntimeException ("SeeMore constructor 1 not found" );
1306- var clazzData = classList .get (0 );
1300+ var commentClass = findFirstClassUsingName (loader , StringMatchType .EndsWith , "CommentTextView" );
1301+ var commentClassData = dexkit .getClassData (commentClass );
1302+ var methods = commentClassData .getMethods ();
1303+ var arrayList = new ArrayList <ClassData >();
1304+ methods .forEach ((methodData -> {
1305+ var invokes = methodData .getInvokes ();
1306+ var classes = invokes .stream ().map (MethodData ::getDeclaredClass ).collect (Collectors .toSet ());
1307+ arrayList .addAll (classes );
1308+ }));
1309+
1310+ var clazzData = dexkit .findClass (FindClass .create ().searchIn (arrayList ).matcher (ClassMatcher .create ()
1311+ .addMethod (MethodMatcher .create ().addUsingNumber (16384 ).addUsingNumber (512 ).addUsingNumber (64 ).addUsingNumber (16 ))
1312+ )).singleOrNull ();
1313+ if (clazzData == null ) throw new RuntimeException ("SeeMore constructor 1 not found" );
13071314 for (var method : clazzData .getMethods ()) {
13081315 if (method .getParamCount () > 1 && method .isConstructor () && method .getParamTypes ().stream ().allMatch (c -> c .getName ().equals (int .class .getName ()))) {
13091316 return method .getConstructorInstance (loader );
0 commit comments