2

我正在研究在我的 VPN android 应用程序中复制 Always-On VPN(在 Android 4.2 中引入)功能。我当然可以将用户引导到设置页面并让他们单击复选框,但我真的很想将它烘焙到我的应用程序中。我浏览了这个对话框的 android 源代码(因为 SDK 中没有公开相应的设置),看起来很简单:

 public void onClick(DialogInterface dialog, int which) {
      final int newIndex = listView.getCheckedItemPosition();
      if (mCurrentIndex == newIndex) return;
      if (newIndex == 0) {
            keyStore.delete(Credentials.LOCKDOWN_VPN);

      } else {
            final VpnProfile profile = mProfiles.get(newIndex - 1);
            if (!profile.isValidLockdownProfile()) {
                Toast.makeText(context, R.string.vpn_lockdown_config_error,
                        Toast.LENGTH_LONG).show();
                return;
             }
            keyStore.put(Credentials.LOCKDOWN_VPN, profile.key.getBytes());
      }

      // kick profiles since we changed them
      ConnectivityManager.from(getActivity()).updateLockdownVpn();
   }

不幸的是,这里的密钥库是 android.security.KeyStore 文件,而不是通常的 java.security.KeyStore。因此,我的问题是,在我的应用程序中实现此代码块的最佳方式是什么?我是否可以在没有 root 访问权限的情况下更改我的应用程序中的此设置?有没有办法让我包含 android.security.KeyStore 文件?任何想法都会非常有帮助!

4

0 回答 0