mirror of
https://github.com/emanuele-f/PCAPdroid.git
synced 2026-06-16 21:10:57 +08:00
Add mitm addon version check
This commit is contained in:
parent
1c0ea6e696
commit
0ea7574b41
@ -24,6 +24,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.ServiceConnection;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@ -47,6 +48,8 @@ import java.lang.ref.WeakReference;
|
||||
public class MitmAddon {
|
||||
/* API */
|
||||
public static final String PACKAGE_NAME = "com.pcapdroid.mitm";
|
||||
public static final String PACKAGE_VERSION_NAME = "v0.2";
|
||||
public static final int PACKAGE_VERSION_CODE = 2;
|
||||
public static final String MITM_PERMISSION = "com.pcapdroid.permission.MITM";
|
||||
public static final String MITM_SERVICE = PACKAGE_NAME + ".MitmService";
|
||||
|
||||
@ -82,15 +85,24 @@ public class MitmAddon {
|
||||
}
|
||||
};
|
||||
|
||||
public static boolean isInstalled(Context ctx) {
|
||||
public static int getInstalledVersion(Context ctx) {
|
||||
try {
|
||||
ctx.getPackageManager().getPackageInfo(PACKAGE_NAME, 0);
|
||||
return true;
|
||||
PackageInfo pInfo = ctx.getPackageManager().getPackageInfo(PACKAGE_NAME, 0);
|
||||
return pInfo.versionCode;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isInstalled(Context ctx) {
|
||||
return getInstalledVersion(ctx) == PACKAGE_VERSION_CODE;
|
||||
}
|
||||
|
||||
public static String getGithubReleaseUrl() {
|
||||
return "https://github.com/emanuele-f/PCAPdroid-mitm/releases/download/" +
|
||||
PACKAGE_VERSION_NAME + "/PCAPdroid-mitm_" + PACKAGE_VERSION_NAME +".apk";
|
||||
}
|
||||
|
||||
public static boolean hasMitmPermission(Context ctx) {
|
||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
|
||||
return ctx.checkSelfPermission(MitmAddon.MITM_PERMISSION) == PackageManager.PERMISSION_GRANTED;
|
||||
|
||||
@ -56,11 +56,25 @@ public class InstallAddon extends StepFragment {
|
||||
}
|
||||
|
||||
private void installAddon() {
|
||||
mStepLabel.setText(R.string.install_mitm_addon);
|
||||
mStepButton.setText(R.string.install_action);
|
||||
int installed_ver = MitmAddon.getInstalledVersion(requireContext());
|
||||
|
||||
if(installed_ver < 0) {
|
||||
mStepLabel.setText(R.string.install_mitm_addon);
|
||||
mStepButton.setText(R.string.install_action);
|
||||
} else if(installed_ver < MitmAddon.PACKAGE_VERSION_CODE) {
|
||||
mStepLabel.setText(R.string.mitm_addon_new_version);
|
||||
mStepButton.setText(R.string.upgrade_action);
|
||||
} else {
|
||||
mStepLabel.setText(R.string.mitm_addon_bad_version);
|
||||
mStepIcon.setColorFilter(mDangerColor);
|
||||
mStepButton.setText(R.string.install_action);
|
||||
mStepButton.setEnabled(false);
|
||||
return;
|
||||
}
|
||||
|
||||
mStepButton.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW,
|
||||
Uri.parse("https://github.com/emanuele-f/PCAPdroid-mitm/releases/download/v0.1/PCAPdroid-mitm_v0.1.apk"));
|
||||
Uri.parse(MitmAddon.getGithubReleaseUrl()));
|
||||
Utils.startActivity(requireContext(), browserIntent);
|
||||
});
|
||||
}
|
||||
|
||||
@ -282,4 +282,7 @@
|
||||
<string name="cert_installed_correctly">The CA certificate is installed</string>
|
||||
<string name="cert_reinstall_required">The CA certificate is not installed, run the mitm setup wizard</string>
|
||||
<string name="done">Done</string>
|
||||
<string name="mitm_addon_bad_version">Bad PCAPdroid mitm addon version. Uninstall it and retry</string>
|
||||
<string name="mitm_addon_new_version">The PCAPdroid plugin must be upgraded</string>
|
||||
<string name="upgrade_action">Upgrade</string>
|
||||
</resources>
|
||||
Loading…
Reference in New Issue
Block a user