Peach VPN v4.0版本的 MD5 值为:44c7a87caba90fec9b7945dd44651111

以下内容为反编译后的 MyVPNService.java 源代码,内容仅作参考


package com.peacholo.peach.Service;

import android.content.Intent;
import android.net.VpnService;
import android.os.ParcelFileDescriptor;
import com.google.android.gms.common.ConnectionResult;
import com.peacholo.peach.Activity.PrimaryActivity;
import com.peacholo.peach.R;

public class MyVPNService extends VpnService {
    private ParcelFileDescriptor mInterface;

    private ParcelFileDescriptor establishVPNConnection() {
        VpnService.Builder builder = new VpnService.Builder(this);
        builder.setSession(getString(R.string.app_name));
        builder.addAddress("10.0.0.2", 32);
        builder.addRoute("0.0.0.0", 0);
        builder.setMtu(ConnectionResult.DRIVE_EXTERNAL_STORAGE_REQUIRED);
        return builder.establish();
    }

    public void startVPN() {
        try {
            if (VpnService.prepare(getApplicationContext()) == null) {
                this.mInterface = establishVPNConnection();
            } else {
                Intent intent = new Intent(this, (Class<?>) PrimaryActivity.class);
                intent.setAction("android.net.VpnService.START");
                intent.addFlags(268435456);
                startActivity(intent);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void stopVPN() {
        try {
            ParcelFileDescriptor parcelFileDescriptor = this.mInterface;
            if (parcelFileDescriptor != null) {
                parcelFileDescriptor.close();
                this.mInterface = null;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}