Ejemplo n.º 1
0
            private bool DetectAndFixXamarinApp(XC_LoadPackage.LoadPackageParam param)
            {
                var nativeDir = param.AppInfo.NativeLibraryDir;

                if (nativeDir == null)
                {
                    XposedBridge.Log("native dir is null");
                    IsXamarinApp = false;
                    return(false);
                }

                foreach (var file in Directory.EnumerateFiles(nativeDir))
                {
                    var lib = Path.GetFileName(file);
                    if (lib == "libxamarin-app.so" || lib == "libmono-native.so" || lib == "libmonodroid.so" || lib == "libxamarin-debug-app-helper.so")
                    {
                        XposedBridge.Log("XamarinPosed found Xamarin App: " + param.PackageName);
                        //TODO:
                        //var unhook = XposedHelpers.FindAndHookMethod("android.content.Context", param.ClassLoader, "getClassLoader",
                        //    new Context_GetClassLoaderHook());

                        IsXamarinApp = true;
                        return(true);
                    }
                }

                return(false);
            }
Ejemplo n.º 2
0
 /// <summary>
 /// Write your logic here
 /// </summary>
 /// <param name="param"></param>
 public void HandleLoadPackage(XC_LoadPackage.LoadPackageParam param)
 {
     DetectAndFixXamarinApp(param); //This is required for Xamarin app compatibility
     Log.Info("XamarinPosed", "XamarinPosed HandleLoadPackage: " + param.PackageName);
     XposedBridge.Log("XamarinPosed HandleLoadPackage: " + param.PackageName);
     //This is a demo, remove it
     HookMyself(param);
 }
Ejemplo n.º 3
0
            private void HookMyself(XC_LoadPackage.LoadPackageParam param)
            {
                if (isThisAppHooked)
                {
                    return;
                }

                if (param.PackageName.ToLowerInvariant() == "xamarin.posed.demo")
                {
                    var unhook = XposedHelpers.FindAndHookMethod("xamarin.posed.Main_MySnackBarClickListener", param.ClassLoader, "onClick", "android.view.View", new SelfDemoHook());
                    isThisAppHooked = true;
                }
            }
Ejemplo n.º 4
0
 public void HandleLoadPackage(XC_LoadPackage.LoadPackageParam p0)
 {
     Log.Info("SnapSucks", "Why tho.");
 }