From a45c9521e35dec3c64e71de2cc4006cf3d2be785 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sat, 27 May 2017 13:07:08 +0200 Subject: Remove obsolete xposed module --- vpndialogxposed/src/main/AndroidManifest.xml | 38 ----- vpndialogxposed/src/main/assets/xposed_init | 1 - .../blinkt/vpndialogxposed/AllowedVPNsChooser.java | 157 --------------------- .../vpndialogxposed/IConnectivityManager.java | 110 --------------- .../blinkt/vpndialogxposed/VpnDialogPatcher.java | 104 -------------- .../src/main/res/drawable-hdpi/ic_launcher.png | Bin 741 -> 0 bytes .../src/main/res/drawable-mdpi/ic_launcher.png | Bin 549 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_launcher.png | Bin 1061 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_launcher.png | Bin 1647 -> 0 bytes .../src/main/res/layout/vpnapplayout.xml | 39 ----- vpndialogxposed/src/main/res/values/strings.xml | 13 -- 11 files changed, 462 deletions(-) delete mode 100644 vpndialogxposed/src/main/AndroidManifest.xml delete mode 100644 vpndialogxposed/src/main/assets/xposed_init delete mode 100644 vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/AllowedVPNsChooser.java delete mode 100644 vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/IConnectivityManager.java delete mode 100644 vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/VpnDialogPatcher.java delete mode 100644 vpndialogxposed/src/main/res/drawable-hdpi/ic_launcher.png delete mode 100644 vpndialogxposed/src/main/res/drawable-mdpi/ic_launcher.png delete mode 100644 vpndialogxposed/src/main/res/drawable-xhdpi/ic_launcher.png delete mode 100644 vpndialogxposed/src/main/res/drawable-xxhdpi/ic_launcher.png delete mode 100644 vpndialogxposed/src/main/res/layout/vpnapplayout.xml delete mode 100644 vpndialogxposed/src/main/res/values/strings.xml (limited to 'vpndialogxposed/src') diff --git a/vpndialogxposed/src/main/AndroidManifest.xml b/vpndialogxposed/src/main/AndroidManifest.xml deleted file mode 100644 index a3363a71..00000000 --- a/vpndialogxposed/src/main/AndroidManifest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vpndialogxposed/src/main/assets/xposed_init b/vpndialogxposed/src/main/assets/xposed_init deleted file mode 100644 index b228b31c..00000000 --- a/vpndialogxposed/src/main/assets/xposed_init +++ /dev/null @@ -1 +0,0 @@ -de.blinkt.vpndialogxposed.VpnDialogPatcher diff --git a/vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/AllowedVPNsChooser.java b/vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/AllowedVPNsChooser.java deleted file mode 100644 index 53777d1d..00000000 --- a/vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/AllowedVPNsChooser.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (c) 2012-2016 Arne Schwabe - * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt - */ - -package de.blinkt.vpndialogxposed; - -import android.Manifest; -import android.app.ListActivity; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.ServiceInfo; -import android.os.Bundle; -import android.widget.AbsListView; -import android.widget.ArrayAdapter; -import android.widget.ListAdapter; - -import java.util.Collection; -import java.util.HashSet; -import java.util.Random; -import java.util.Set; -import java.util.Vector; - - -public class AllowedVPNsChooser extends ListActivity { - - public static final String ALLOWED_APPS = "allowedApps"; - - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - Collection vpnApps = getVpnAppList(); - ListAdapter la = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, vpnApps.toArray(new VpnApp[vpnApps.size()])); - setListAdapter(la); - setContentView(R.layout.vpnapplayout); - getListView().setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE); - - - Collection allowedapps = getAllowedApps(); - for(int i=0; i < vpnApps.size(); i++) { - VpnApp va= (VpnApp) getListView().getItemAtPosition(i); - boolean allowed = allowedapps.contains(va.mPkg); - getListView().setItemChecked(i,allowed); - } - - } - - - - private Collection getAllowedApps(){ - @SuppressWarnings("deprecation") SharedPreferences prefs = getPreferences(MODE_WORLD_READABLE); - HashSet defaultapps = new HashSet(); - defaultapps.add("de.blinkt.openvpn"); - return prefs.getStringSet(ALLOWED_APPS,defaultapps ); - } - - private void saveAllowedApps(Set allowedApps) - { - @SuppressWarnings("deprecation") SharedPreferences prefs = getPreferences(MODE_WORLD_READABLE); - SharedPreferences.Editor prefeditor = prefs.edit(); - prefeditor.putStringSet(ALLOWED_APPS,allowedApps); - prefeditor.putInt("random",new Random().nextInt()); - prefeditor.apply(); - } - - - @Override - protected void onStop() { - super.onStop(); - - HashSet allowedPkgs= new HashSet(); - for(int i=0;i < getListView().getChildCount();i++) { - if(getListView().getCheckedItemPositions().get(i)) { - allowedPkgs.add(((VpnApp)getListView().getItemAtPosition(i)).mPkg); - } - } - saveAllowedApps(allowedPkgs); - } - - private Collection getVpnAppList() { - PackageManager pm = getPackageManager(); - Intent vpnOpen = new Intent(); - vpnOpen.setAction("android.net.VpnService"); - Vector vpnApps = new Vector(); - - // Hack but should work - for(PackageInfo pkg : pm.getInstalledPackages(PackageManager.GET_SERVICES)) { - if (pkg.services != null) { - for(ServiceInfo serviceInfo:pkg.services) { - if(Manifest.permission.BIND_VPN_SERVICE.equals(serviceInfo.permission)) - vpnApps.add(new VpnApp(pkg.applicationInfo.loadLabel(pm), pkg.packageName)); - } - } - } - - - /* public abstract List queryIntentServicesAsUser(Intent intent, - int flags, int userId); - */ - - /* This does not work ... */ - /* - Class[] queryIntentServicesAsUserSignature = {Intent.class, int.class, int.class}; - try { - Method queryIntentServicesAsUser = pm.getClass().getMethod("queryIntentServicesAsUser", queryIntentServicesAsUserSignature); - - List installedApps = pm.getInstalledApplications(0); - - - - for (ApplicationInfo app : installedApps) { - - List apps; - if (app.packageName.equals(getPackageName())) { - apps = pm.queryIntentServices(vpnOpen, 0); - } else { - apps = (List) queryIntentServicesAsUser.invoke(pm, vpnOpen, 0, app.uid); - } - - - - for (ResolveInfo ri : apps) { - vpnApps.add(new VpnApp(ri.toString())); - } - } - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - */ - - return vpnApps; - } - - static class VpnApp { - - private final String mPkg; - private CharSequence mName; - - public VpnApp(CharSequence name, String pkg) { - mName = name; - mPkg = pkg; - } - - @Override - public String toString() { - return mName.toString(); - } - } -} diff --git a/vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/IConnectivityManager.java b/vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/IConnectivityManager.java deleted file mode 100644 index a8a02347..00000000 --- a/vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/IConnectivityManager.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2012-2016 Arne Schwabe - * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt - */ - -/* - * This file is auto-generated. DO NOT MODIFY. - * Original file: /Users/arne/software/icsopenvpn/vpndialogxposed/src/main/aidl/android/net/IConnectivityManager.aidl - */ -package de.blinkt.vpndialogxposed; -/** - * Interface that answers queries about, and allows changing, the - * state of network connectivity. - */ - -/** - * {@hide} - */ -public interface IConnectivityManager extends android.os.IInterface { - public boolean prepareVpn(java.lang.String oldPackage, java.lang.String newPackage) throws android.os.RemoteException; - - /** Local-side IPC implementation stub class. */ - public static abstract class Stub extends android.os.Binder implements IConnectivityManager { - static final int TRANSACTION_prepareVpn = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); - private static final java.lang.String DESCRIPTOR = "android.net.IConnectivityManager"; - - /** Construct the stub at attach it to the interface. */ - public Stub() { - this.attachInterface(this, DESCRIPTOR); - } - - /** - * Cast an IBinder object into an android.net.IConnectivityManager interface, - * generating a proxy if needed. - */ - public static IConnectivityManager asInterface(android.os.IBinder obj) { - if ((obj == null)) { - return null; - } - android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR); - if (((iin != null) && (iin instanceof IConnectivityManager))) { - return ((IConnectivityManager) iin); - } - return new IConnectivityManager.Stub.Proxy(obj); - } - - @Override - public android.os.IBinder asBinder() { - return this; - } - - @Override - public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException { - switch (code) { - case INTERFACE_TRANSACTION: { - reply.writeString(DESCRIPTOR); - return true; - } - case TRANSACTION_prepareVpn: { - data.enforceInterface(DESCRIPTOR); - java.lang.String _arg0; - _arg0 = data.readString(); - java.lang.String _arg1; - _arg1 = data.readString(); - boolean _result = this.prepareVpn(_arg0, _arg1); - reply.writeNoException(); - reply.writeInt(((_result) ? (1) : (0))); - return true; - } - } - return super.onTransact(code, data, reply, flags); - } - - private static class Proxy implements IConnectivityManager { - private android.os.IBinder mRemote; - - Proxy(android.os.IBinder remote) { - mRemote = remote; - } - - @Override - public android.os.IBinder asBinder() { - return mRemote; - } - - public java.lang.String getInterfaceDescriptor() { - return DESCRIPTOR; - } - - @Override - public boolean prepareVpn(java.lang.String oldPackage, java.lang.String newPackage) throws android.os.RemoteException { - android.os.Parcel _data = android.os.Parcel.obtain(); - android.os.Parcel _reply = android.os.Parcel.obtain(); - boolean _result; - try { - _data.writeInterfaceToken(DESCRIPTOR); - _data.writeString(oldPackage); - _data.writeString(newPackage); - mRemote.transact(Stub.TRANSACTION_prepareVpn, _data, _reply, 0); - _reply.readException(); - _result = (0 != _reply.readInt()); - } finally { - _reply.recycle(); - _data.recycle(); - } - return _result; - } - } - } -} diff --git a/vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/VpnDialogPatcher.java b/vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/VpnDialogPatcher.java deleted file mode 100644 index f517c2f9..00000000 --- a/vpndialogxposed/src/main/java/de/blinkt/vpndialogxposed/VpnDialogPatcher.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (c) 2012-2016 Arne Schwabe - * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt - */ - -package de.blinkt.vpndialogxposed; - -import android.app.Activity; -import android.content.Context; -import android.os.IBinder; -import android.widget.Toast; -import de.robv.android.xposed.IXposedHookLoadPackage; -import de.robv.android.xposed.XC_MethodHook; -import de.robv.android.xposed.XposedBridge; -import de.robv.android.xposed.XposedHelpers; -import de.robv.android.xposed.XSharedPreferences; -import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; -import de.robv.android.xposed.IXposedHookZygoteInit; - - -import java.lang.reflect.Method; -import java.util.HashSet; -import java.util.Set; - -public class VpnDialogPatcher implements IXposedHookLoadPackage, IXposedHookZygoteInit { - public static final String MY_PACKAGE_NAME = AllowedVPNsChooser.class.getPackage().getName(); - private static XSharedPreferences pref; - - - @Override - public void initZygote(StartupParam startupParam) throws Throwable { - pref = new XSharedPreferences(MY_PACKAGE_NAME, "AllowedVPNsChooser"); - - } - - @Override - public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable { - if (!lpparam.packageName.equals("com.android.vpndialogs")) - return; - - - XposedBridge.log("Got VPN Dialog"); - - XposedHelpers.findAndHookMethod("com.android.vpndialogs.ConfirmDialog", lpparam.classLoader, - "onResume", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - - // IConnectivityManager mService = IConnectivityManager.Stub.asInterface( - // ServiceManager.getService(Context.CONNECTIVITY_SERVICE)); - - try { - - /*Class servicemanager = Class.forName("android.os.ServiceManager"); - Method getService = servicemanager.getMethod("getService",String.class); - - IConnectivityManager mService = IConnectivityManager.Stub.asInterface( - (IBinder) getService.invoke(servicemanager, Context.CONNECTIVITY_SERVICE)); - - */ - Object mService = XposedHelpers.getObjectField(param.thisObject, "mService"); - - String mPackage = ((Activity) param.thisObject).getCallingPackage(); - - // App is already allowed do nothing - /*if (mService.prepareVpn(mPackage, null)) { - return; - }*/ - - - Class[] prepareVPNsignature = {String.class, String.class}; - if((Boolean) XposedHelpers.callMethod(mService,"prepareVpn",prepareVPNsignature, mPackage,(String)null)) - return; - - - HashSet blinktapp = new HashSet(); - blinktapp.add("de.blinkt.openvpn"); - // blinktapp.add("de.blinkt.nothingset"); - - pref.reload(); - Set allowedApps = pref.getStringSet("allowedApps",blinktapp); - - //Toast.makeText((Context)param.thisObject, "Allowed apps: " + allowedApps, Toast.LENGTH_LONG).show(); - - if (allowedApps.contains(mPackage)) { - //mService.prepareVpn(null, mPackage); - XposedHelpers.callMethod(mService,"prepareVpn",prepareVPNsignature, (String)null,mPackage); - ((Activity) param.thisObject).setResult(Activity.RESULT_OK); - Toast.makeText((Context)param.thisObject,"Allowed VpnService app: " + mPackage,Toast.LENGTH_LONG).show(); - ((Activity) param.thisObject).finish(); - } - - } catch (Exception e) { - e.printStackTrace(); - - } - - } - - - }); - - } -} diff --git a/vpndialogxposed/src/main/res/drawable-hdpi/ic_launcher.png b/vpndialogxposed/src/main/res/drawable-hdpi/ic_launcher.png deleted file mode 100644 index a134d5fa..00000000 Binary files a/vpndialogxposed/src/main/res/drawable-hdpi/ic_launcher.png and /dev/null differ diff --git a/vpndialogxposed/src/main/res/drawable-mdpi/ic_launcher.png b/vpndialogxposed/src/main/res/drawable-mdpi/ic_launcher.png deleted file mode 100644 index ad6d2155..00000000 Binary files a/vpndialogxposed/src/main/res/drawable-mdpi/ic_launcher.png and /dev/null differ diff --git a/vpndialogxposed/src/main/res/drawable-xhdpi/ic_launcher.png b/vpndialogxposed/src/main/res/drawable-xhdpi/ic_launcher.png deleted file mode 100644 index 10d3c009..00000000 Binary files a/vpndialogxposed/src/main/res/drawable-xhdpi/ic_launcher.png and /dev/null differ diff --git a/vpndialogxposed/src/main/res/drawable-xxhdpi/ic_launcher.png b/vpndialogxposed/src/main/res/drawable-xxhdpi/ic_launcher.png deleted file mode 100644 index 22db1531..00000000 Binary files a/vpndialogxposed/src/main/res/drawable-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/vpndialogxposed/src/main/res/layout/vpnapplayout.xml b/vpndialogxposed/src/main/res/layout/vpnapplayout.xml deleted file mode 100644 index 67ae7a12..00000000 --- a/vpndialogxposed/src/main/res/layout/vpnapplayout.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vpndialogxposed/src/main/res/values/strings.xml b/vpndialogxposed/src/main/res/values/strings.xml deleted file mode 100644 index ded7e609..00000000 --- a/vpndialogxposed/src/main/res/values/strings.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - VpnDialog Xposed Module - Select the apps that should be allowed to use the VpnService API without user confirmation - No Apps using the VPNService API found - - -- cgit v1.2.3