App Inventor 下载时提示有风险

来源:互联网 发布:python安装不了 编辑:程序博客网 时间:2024/06/10 09:02

2017-02-07, 10:45:27

设备:PC, MI 5s

环境:Win 10, MIUI 8.0.22.0 | 稳定版

 

由于第一次用 AI2 开发安卓应用程序,第一次发现有编程入门不拿 Hello world 招呼人的,很是意外,也令人欣慰。随手撸了几个 Demo ,打包,下载,安装到手机,发现居然有风险提示。直接忽略,使用起来发现功能并无异常。时候发现原因其实是——APP签名非官方注册,用Mit App Inventor做的APP并不属于某公司制作,所以被识别为个人制作,而病毒软件往往是个人制作,所以系统就误判为病毒了。

 

这里简单说明一下APP签名:

 

App签名的意义:

保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,需要对发布的APK文件进行唯一签名,保证每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。

 

App签名的目的:

1.发送者的身份认证,由于开发商可能通过使用相同的Package?Name来混淆替换已经安装的程序,以此保证签名不同的包不被替换

2.保证信息传输的完整性,签名对于包中的每个文件进行处理,以此确保包中内容不被替换

3.防止交易中的抵赖发生,Market对软件的要求

 

APP 签名的作用:

1.数字证书用于标识应用程序的作者
2.应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。
 
Android系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
 
签名的规则:
1.包名相同,签名相同,认为是同一程序,新版旧版更新
2.包名相同,签名不同,认为不是同一程序,防止hack

 

到这里基本就清楚为什么提示风险,也清楚什么是App签名了,简单讲就是防伪防窜货。我好奇其实签名放在哪里,于是压缩包打开看了一下,发现AI2生成的apk的签名位置在......zZZ

 

签名文件
Apk用rar打开META-INF如下:
ANDROIDK.RSA  密文   可重命名
ANDROIDK.SF   明文,可阅读  可重命名
MAINIFEST.MF   明文,可阅读
 
apk包中签名相关的文件在META-INF目录下
ANDROIDK.SF:生成每个文件相对的密钥
 

MANIFEST.MF:数字签名信息

 

好了, 到这里就算弄明白问题成因了,那么怎么解决,学习初期建议直接忽略吧。

 

 


参考链接:http://www.51testing.com/html/20/15089220-3709641.html

站在巨人的肩膀上我们除了看得更远,还心怀感恩!非商业用途,如有冒犯,还望告知。

0 0
原创粉丝点击