Android 10 安装Apk加限制(需要密码)

需求:安装APK时需要输入密码,例如12345,才能安装成功,否则安装失败

  1. 添加系统数据库Settings.Global字段                                                                                                                              
    //定义变量 
    frameworks/base/core/java/android/provider/Settings.java
     public static final String APK_INSTALL_PASSWORD = "apk_install_password";
    
    //初始化变量
    frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    <string name="apk_install_password"></string>
    
    frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
    loadStringSetting(stmt, Settings.Global.APK_INSTALL_PASSWORD,
                        R.string.apk_install_password);
    
                                                 
  2. 在Settings模块添加设置
    //忽略布局
    
    //添加二级选项
    packages/apps/Settings/res/xml/security_dashboard_settings.xml
    <Preference
            android:order="60"
            android:title="@string/apk_install_setting">
    
           <intent
                android:targetPackage="com.android.settings"
                android:targetClass="com.android.settings.security.ApkInstallActivity" />
    </Preference>
    
    //安装设置
    packages/apps/Settings/src/com/android/settings/security/ApkInstallActivity.java
    
    String IApassword = password.getText().toString();     
    
    Settings.Global.putString(getContentResolver(),Settings.Global.APK_INSTALL_PASSWORD,IApassword);
    

  3. 安装判断
    
    frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
     if (!systemApp) {
                String password = android.provider.Settings.Global.getString(mContext.getContentResolver(),android.provider.Settings.Global.APK_INSTALL_PASSWORD);
                if(password.equals("12345")){
                    res.returnCode = PackageManager.INSTALL_SUCCEEDED;
                }else {
                    res.returnCode = PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES;
                }
            }
    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值