RK3568-Android12 关于去掉安装apk时提示“来历不明的。。。”和“出于安全。。。”的修改方法
在Android上安装apk往往有多种方式,但对于一般的操作来说有两种:1,通过U盘点击安装;2,通过网站、应用市场安装。
第一种安装方式会提示:“来历不明的应用会损坏。。。”,点击继续安装,才能进行下一步操作。
第二种安装方式会提示:“出于安全。。。”,需要在设置->应用 把对应的应用的未知来源应用设置为允许,才能继续安装。
跟踪安装Apk时的logcat输出,发现上面所描述的弹窗处理的代码在:frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
主要触发函数如下图
第一情况是由于此次安装没有发起方,引起了DLG_ANONYMOUS_SOURCE,继续深入解读代码,发现下一步仅仅是提示弹窗,并根据客户操作来确定是否继续安装,改法就比较简单,不弹窗直接安装即可。
+++ b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.ja
va
@@ -196,7 +196,10 @@ public class PackageInstallerActivity extends AlertActivity {case DLG_EXTERNAL_SOURCE_BLOCKED:return ExternalSourcesBlockedDialog.newInstance(mOriginatingPackage);case DLG_ANONYMOUS_SOURCE:
- return AnonymousSourceDialog.newInstance();
+ //return AnonymousSourceDialog.newInstance();
+ mAllowUnknownSources = true;
+ initiateInstall();
+ break;}return null;}
第二种情况是由于安装发起方没有打开允许权限(可在 设置->应用 中的对应应用查看)导致的ExternalSourcesBlockedDialog,继续往下看代码流程,弹窗提示 “出于安全考虑,目前已禁止您的平板电脑安装来自此来源的未知应用。您可以在“设置”中对此进行更改。”,点击确定的话,会通过(ACTION_MANAGE_UNKNOWN_APP_SOURCES = "android.settings.MANAGE_UNKNOWN_APP_SOURCES")打开权限设置界面(packages/apps/Settings/AndroidManifest.xml 中关联内容如下图,有兴趣可以去研究代码)。
这种情况的改法也比较粗暴,无非就是自动赋予允许权限,直接上代码(参考packages/apps/Settings 中打开允许权限):
@@ -514,10 +517,29 @@ public class PackageInstallerActivity extends AlertActivity {// Shouldn't use static constant directly, see b/65534401.final int appOpCode =AppOpsManager.permissionToOpCode(Manifest.permission.REQUEST_INSTALL_PACKAGES);
- final int appOpMode = mAppOpsManager.noteOpNoThrow(appOpCode, mOriginatingUid,
+ int appOpMode = mAppOpsManager.noteOpNoThrow(appOpCode, mOriginatingUid,mOriginatingPackage, mCallingAttributionTag,"Started package installation activity");if (mLocalLOGV) Log.i(TAG, "handleUnknownSources(): appMode=" + appOpMode);
+
+ if(AppOpsManager.MODE_ALLOWED != appOpMode){
+ try {
+ PackageManager mPm = this.getPackageManager();
+ PackageInfo mPackageInfo = mPm.getPackageInfo(mOriginatingPackage,
+ PackageManager.MATCH_DISABLED_COMPONENTS |
+ PackageManager.MATCH_ANY_USER |
+ PackageManager.GET_SIGNATURES |
+ PackageManager.GET_PERMISSIONS);
+ mAppOpsManager.setMode(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES,
+ mPackageInfo.applicationInfo.uid, mOriginatingPackage, AppOpsManager.MODE_ALLOWED);
+ } catch(NameNotFoundException e) {
+ Log.e(TAG, "Exception:" + e);
+ }
+ }
+
+ appOpMode = mAppOpsManager.noteOpNoThrow(appOpCode, mOriginatingUid,
+ mOriginatingPackage, mCallingAttributionTag,
+ "Started package installation activity");switch (appOpMode) {case AppOpsManager.MODE_DEFAULT:mAppOpsManager.setMode(appOpCode, mOriginatingUid,
~
RK3568-Android12 关于去掉安装apk时提示“来历不明的。。。”和“出于安全。。。”的修改方法相关推荐
- 开机或者安装系统时提示tsc: Fast TSC calibration failed解决方法
开机或者安装系统时提示tsc: Fast TSC calibration failed解决方法 参考文章: (1)开机或者安装系统时提示tsc: Fast TSC calibration failed ...
- 【Android 教程系列第 31 篇】通过 adb install 命令安装 apk 时提示 signatures do not match previously installed version
这是[Android 教程系列第 31 篇],如果觉得有用的话,欢迎关注专栏. 遇到的一个小问题,做下记录. 一:问题描述 在使用 adb install 命令安装 apk 时,提示的内容如下 主要提 ...
- genymotion2.8.1安装apk时提示ARM……x86……异常处理
这两天接触android studio,跟着教程,接触到genymotion模拟器,版本2.8.1-- 本人使用的模拟器配置为:google nuex4,android sdk4.4.4,安装微信时提 ...
- 安装apk时提示安装失败,相同包名但是签名不一致
因为你原来安装的可能是没签名的apk(测试方便),后来安装的是签名后的apk,未卸载安装 同包名签名不同 会有这个问题 或者真的如提示所说,是因为同包签名不一致导致的.同包签名的话建议采用相同的key ...
- android安装apk时提示安装包异常导致安装失败,常见apk安装失败的错误及原因
INSTALL_FAILED_NO_MATCHING_ABIS:主要是cpu架构不同导致需要的类库不同 INSTALL_FAILED_NO_MATCHING_ABIS is when you are ...
- android studio 安装apk失败,AndroidStudio安装apk时失败时提示INSTALL_PARSE_FAILED_NO_CERTIFICATES...
安装apk时提示INSTALL_PARSE_FAILED_NO_CERTIFICATES错误,说明要安装的apk未进行签名,需签名后方可安装. 在android studio中增加签名方法,直接在ap ...
- Android11——【安装realese版本apk时提示“无效的安装包”或者“安装包解析出错”】解决方案
环境配置 Android Studio 2020.3.1 问题描述 安装realese版本apk时提示"无效的安装包"或者"安装包解析出错". 问题分析 即:A ...
- 解决红米 10X手机USB安装apk时AS报错提示:INSTALL_FAILED_USER_RESTRICTED: Invalid apk
解决红米 10X手机USB安装apk时AS报错提示: INSTALL_FAILED_USER_RESTRICTED: Invalid apk 我先不说多,直接说吧 1.把工程下面三个目录的文件删除 删 ...
- Eclipse中安装插件时提示:No repository found containing: osgi.bundle,org.eclipse.emf,2.8.0.v20180706-1146
场景 在Eclipse中安装ERMaster时提示: No repository found containing: osgi.bundle,org.eclipse.emf,2.8.0.v201807 ...
最新文章
- 锚定比特币现金(BCH),助力构建价值互联网时代
- MySQL单表多字段模糊查询
- 市面上的hadoop书籍调研
- online游戏服务器架构--网络架构
- GDB动态库搜索路径
- 诗与远方:无题(七十九)- 望红云而作
- python设计函数isleapyear_Python实战练习——打印日历教程
- oracle rollup 排序,Oracle教程之rollup用法
- html单选按钮选中后取消选中,jquery实现单选按钮选中与取消选中
- 如何清理mac系统垃圾
- 混合选择集的坐标提起lisp_晓东CAD家园-论坛-A/VLISP-[LISP程序]:请教如何对选择集进行排序-我有(setq ss(ssget _w p0 p1 (list (0 . CIRC...
- C语言libiconv编程,libIconv.lib编码库的生成和使用
- 用U盘PE启动安装系统教程
- Pyke 逻辑编程入门(16):知识库之“问题库”
- R数据分析:论文中的轨迹的做法,潜增长模型和增长混合模型
- 海思芯片固件修改工具_魔百盒九联代工M301H海思Hi3798MV310芯片红外蓝牙语音遥控免拆卡刷固件及刷机教程202009版...
- 条形码转化成二维码_在线条形码生成器
- 苹果手机电池健康怎么看_打开手机这个功能,就能知道手机电池的健康度,安卓苹果都可以!...
- The REBOL Scripting Language 读后感
- 几种概率分布(伯努利分布、二项分布、泊松分布、均匀分布、正态分布、指数分布、伽马分布)
热门文章
- Dragger2好网文整合
- 每日一句,每日10词【2】(26天)
- oracle通过触发器自动更新表的修改时间
- matlab 低级图形错误,解决低级图形问题
- MATLAB Simulink
- MathWorks 中国
- Acwing222_青蛙的约会_同余方程
- Fedora 17 安装完全指南 for y450[zz]
- 你们要的金海霸气bgm,直接复制打开就ok,京胡版本
- JSP+SQL实现留言功能(含留言回复功能),附源码
- java鼠标滑入换图片_超简单---鼠标滑过变换图片
- 关于GPS DOP的理解(HDOP)