前言
记录一下项目中单独给第三方apk进行签名,主要是用signapk.jar进行签名,记录一下方便自己使用。
正文
这里需要java环境,这个环境的搭建这里不介绍。
签名文件
签名相关文件路径
androidp源码\build\target\product\security
下面简单介绍一下相关的签名文件。(摘抄,看参考文)
platform签名
用途:
platform签名主要用于系统核心应用,这些应用直接与Android操作系统紧密集成,并执行关键的系统级功能。
特性:
在AndroidManifest.xml中通过设置android:sharedUserId=”android.uid.system”表明该应用属于系统进程组,拥有更高的权限。使用platform签名的应用程序通常运行在system UID下,可以直接访问受保护的API和资源,并且可以和其他system用户ID下的应用共享数据。由于这类应用的安全敏感性,它们必须使用由设备制造商或系统开发者持有的私钥进行签名。
media 签名
用途:
media签名主要应用于与媒体处理和下载服务相关的系统组件,比如默认的媒体播放器、下载管理器等。
特性:
同样需要在manifest文件中声明特定的共享用户ID,即android:sharedUserId=”android.media”。这类应用同样享有较高的权限,允许它们执行与多媒体处理相关的核心操作,例如读取和写入多媒体内容,以及管理网络下载任务等。media签名应用虽然不如platform签名应用权限高,但仍然具有超出普通第三方应用的特殊权限。
shared 签名
用途:
shared签名是用于那些需要与其他特定系统进程(如home屏幕或者联系人应用)之间共享数据和资源的应用。
特性:
设置android:sharedUserId=”android.uid.shared”后,应用会以同一个用户ID运行,从而能够互相访问彼此的数据目录。shared签名的应用一般不涉及最底层的系统服务,而是针对系统内部具有一定协作关系的服务或者组件提供数据共享能力。
testkey 签名
用途:
testkey是Android编译系统中的默认签名密钥,当一个APK没有明确指定LOCAL_CERTIFICATE变量时,系统会使用testkey对其进行签名。由于testkey是公开且容易获取的,因此它并不适用于正式发布或安全要求高的应用。
签名命令
java -jar signapk.jar platform.x509.pem platform.pk8 app-old.apk app-new.apk
signapk.jar可以去 《[安卓工具箱_安卓后院](https://www.top139.com/AndroidTools.html》中找[签名工具signapk]下载即可。
签名脚本
参考文章
《》
等