如何给三方App进行系统签名

Android AOSP基础(三)Android系统源码的整编和单编 关联系列 Android AOSP基础系列 Android系统启动系列 前言 在上一篇文章Android AOSP基础(二)AOSP 源码下载 中,我们顺利的将AOSP下载了下来,很多时候我们不仅仅需要去查看源码,还有以下的几个需求: 动态调试Android系统源码 定制Android系统 将最新版本的Android系统刷入到自己的Android设备中 将系统源码导入到Android Stud... 阅读详情

系统签名

在AOSP 中,package/apps/ 下面的app 会进行系统签名,拥有系统签名后,就可以干一些三方app不能干的时候。但是一般非厂商或者厂商合作方也无法进行系统签名。

源码环境下签名
App源码编译

如果你直接将app源码放在AOSP下编译,可以参考package/apps下任意 app Android.mk 即可

//  Bluetooth/Android.mk
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := Bluetooth
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := platform  // 注意此处 使用的是平台证书
LOCAL_USE_AAPT2 := true
LOCAL_JNI_SHARED_LIBRARIES := libbluetooth_jni
LOCAL_JAVA_LIBRARIES := javax.obex telephony-common services.net
LOCAL_STATIC_JAVA_LIBRARIES := \
        com.android.vcard \
        bluetooth.mapsapi \
        sap-api-java-static \
        services.net \
        libprotobuf-java-lite \
        bluetooth-protos-lite

LOCAL_STATIC_ANDROID_LIBRARIES := android-support-v4
LOCAL_REQUIRED_MODULES := libbluetooth
LOCAL_PROGUARD_ENABLED := disabled
include $(BUILD_PACKAGE)

APK编译

在无源码,只有apk环境下。可以对此apk进行预编译。用平台证书签名对其重新签名。

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := Test
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)
非源码环境下签名

这种方法会更加便捷的调试,也是我想推荐的方式。将平台的证书做成 .jks,同时在AndroidManifest.xml 设置android:sharedUserId=“android.uid.system” ,配合gradle 方便打包生成的apk就可以得到系统级别的app。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.me.test"
    android:sharedUserId="android.uid.system"
    >
    ...
</manifest>

是不是很赞,跟着下面的步骤:

获取platform.pk8 & platform.x509.pem

在AOSP 目录下 build\target\product\security
在这里插入图片描述

生成密钥

此处给出通过AndroidStudio生成密码。通过keytool 的方式可以自行百度& Google。

  • 1 Build-> Generate Signed Bundle/ APK…
    在这里插入图片描述

  • 2 Next
    在这里插入图片描述

  • 3 Create New
    在这里插入图片描述

  • 4 New Key Store
    在这里插入图片描述
    选择好 key store path, 填完以上的信息。 点击 OK 就可以生成 .jks 密钥。

keytool-importkeypair

我们需要使用此工具将刚才生成的密钥 使用 platform.pk8 & platform.x509.pem 重新签名。Github上的工作地址如下:
github_keytool-importkeypair

执行一下命令

./keytool-importkeypair -k test.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias test

# -k  test.jks // -k 属性表示签名    test.jks 对应签名文件
# -p  123456   // -p 属性表示密码    123456  生成密钥输入的密码
# -pk8 platform.pk8 -cert platform.x509.pem // 系统签名文件
在Gradle中添加相关属性

在As Project中新建一个config的文件夹放置刚才生成的test.jks。目录结构如下:
在这里插入图片描述
在App 这个module下的build.gradle 中添加 signingConfigs属性

    signingConfigs {
        config {
            keyAlias 'test'      //密钥别名
            keyPassword '123456'  //密钥的密码
            storeFile file(rootDir.getAbsolutePath() +'/config/test.jks')  //密钥位置
            storePassword '123456'
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }

        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }

    }
编译

点击build 可以编译出debug& release 版本。这样得到拥有系统签名的app
在这里插入图片描述

以上。Over

Aosp系统编译定制系统签名 商业化产品,如果使用默认的签名,一是不安全,而是显得没啥技术。就连谷歌官方也说了,不建议使用testkey作为最终发布版的key,因此,定制系统签名就派上用场了。具体使用方法谷歌给了一个大致的说法,我们可以在aosp的自述文件中找到,位置位于,我们来看看光放原文:老实说一般人还真不一定看得懂,因此我决定自己实践一下,然后把实践的过程分享给大家,希望抛砖引玉,让大家少走一些弯路。由于利用系统签名生成keystore的方式网上一大把而且没有太多坑,这里不赘述,只说说如何定制系统的签名。 阅读详情

相关推荐

Android 浅度解析:mk预置AAR、SO文件、APP包和签名

本文介绍在Android系统开发中Android.mk,预置APK和AAR/SO文件,以及指定签名的操作。

我其实什么都不会 8498

深入了解 Android 中的应用程序签名

应用程序签名是将数字签名应用于 Android 应用程序(APK 文件)的过程。它使用密钥对对应用程序进行加密,确保在应用程序发布和分发过程中的完整性和真实性。

特立独行的博客 4071

如何赋予第三方App以AOSP系统签名权限?

OEM应用程序是指由制造商预装在Android设备上的特定应用程序。一些应用程序属于系统应用程序,需要使用系统级权限的API。这些权限和API允许应用程序与Android操作系统深度交互,并访问高级功能。系统级权限授予应用程序特权访问以执行特定操作或访问敏感资源,比如修改系统设置、访问受保护的存储、管理网络连接、控制硬件功能等。通常,厂商使用Android.bp AOSP构建配置文件和Soong构建系统来构建OEM应用程序。这样可以让厂商在Android设备上预装他们的应用程序。

虎哥LoveDroid 818

android开发制作aosp系统签名文件给普通apk签名使用

android apk签名及常见错误解决

angelazhao620的博客 503

Android 8.1 9.0 10.0 第三方app系统签名的方法

在进行系统开发过程中,跟客户的app进行系统签名,也是常有的一项工作,改怎么签名呢 第一步: app 添加系统UID属性 AndroidManifest.xml 中添加android:sharedUserId=“android.uid.system” <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" and

安卓兼职framework和app工程师的博客 1998

光模块基础知识【快速入门】02

光模块是用于交换机与设备之间传输的载体,是光纤通信系统中的核心器件。主要作用是发射端将设备的电信号转换成光信号。 光纤通道光模块和以太网光模块 光纤通道光模块 光纤通道(FC, Fiber Channel)是一种高速网络数据传输协议。光纤通道协议可以有序无损地传输原始数据,它主要用于在数据中心、电脑服务器、交换机与存储网络中进行数据传输。 FC光模块遵循FC协议,充当着光纤通道系统之间的接口,也是光纤存储网络设备间的接口。它们主要用于数据中心的光纤通道存储网络链接中。 FC光模块具有小型化和低.

Jin Hanquan的博客 3万+

Android系统给第三方APP生成系统签名

Djava.library.path 用于指定本地库的路径, 本地库通常是使用Java Native Interface (JNI) 来调用本地代码的库文件。在aosp的根目录,给apk进行系统签名, 或者在其他目录,将下面的path参数设置为绝对路径。这里主要是用到libconscrypt_openjdk_jni.so这个库。就是签名后的apk.

cfp6523052的专栏 589

RADIOML 2018.01A调制信号数据集介绍及处理

RadioML 2018.01A 由 DeepSig 发布,是专门针对自动调制识别(Automatic Modulation Recognition, AMR)和无线信号分类研究设计的基准数据集。它在原有 RadioML 2016.10a 的基础上,扩展并精细化了信道仿真模型,使得信号更接近真实无线环境下的表现。该数据集广泛用于机器学习模型的训练与评估,为各类深度学习算法提供了统一、可重复的实验条件。

weixin_56527269的博客 1881

Android系统给第三方app签名流程

Android应用系统签名流程 Android系统中的app分为系统app和第三方的app,他们处在不同的目录下,一般厂家会有一套统一的私密签名文件,肯定不会开放。 我们这里的签名只是正对自己编译的系统,或者是原生系统,比如开发版。签名后的文件只能在目标系统中使用。 注意:app在打包的时候,修改原app的 AndroidManifest.xml文件,在 <mainfest ....

IMAlex233博客 4400

武汉大学朱玉贤院士团队再发Nature Genetics,阐述棉花独特折叠胚胎形成的分子调控与演化机制

武汉大学朱玉贤院士团队再发Nature Genetics,阐述棉花独特折叠胚胎形成的分子调控与演化机制。

Pangenes的博客 1333

代数拓扑与AI架构:AI应用架构师深入探索数学研究如何分析复杂系统的结构特性

随着人工智能技术的飞速发展,AI系统变得越来越复杂。AI应用架构师需要有效的工具和方法来理解、设计和优化这些复杂系统。代数拓扑作为数学的一个分支,提供了独特的视角和技术来分析复杂系统的结构特性。本文旨在帮助AI应用架构师深入了解代数拓扑,以及如何将其应用于AI架构设计中,提升对复杂系统的分析能力。首先,我们会介绍代数拓扑和AI架构相关的核心概念及其联系,通过有趣的故事引入主题,让读者轻松理解复杂概念。接着,深入探讨代数拓扑的核心算法原理,结合具体的编程语言代码示例详细阐述。

大模型应用工坊 668

比较快捷的设置第三方app 有系统权限和签名

android:sharedUserId="android.uid.system"里面有很多签名文件签名工具原目录。

Venus 的博客 978

动态视频目标追踪系统:基于YOLOv11+DeepSORT的从入门到实战全流程指南

仅保留车辆类别(假设车辆类别ID为2)if det.class_index == 2: # 车辆类别ID通过本指南,你已完成从环境搭建数据准备模型训练到追踪系统与UI界面的全流程,搭建了一套完整的动态视频目标追踪系统。该系统在安防监控、交通管理等场景中具有实用价值,可实现目标的实时稳定追踪。未来,你可尝试结合多模态特征(如目标外观+运动特征)提升追踪鲁棒性,或探索轻量化模型部署(如TensorRT加速),让系统在边缘设备上也能高效运行。

LXY_LOVE36的博客 142

2021-11-04 AndroidR 第三方应用添加系统签名方法加测试app源码

一,AndroidR 第三方应用添加系统签名方法,我这里是MTK平台上测试。 二、网上介绍的方法有几种,我这里就只介绍一个我实际操作成功的,用signapk.jar 对apk签名。 1、 apk要想获得系统级app的权限需要在AndroidManifest.xml中的manifest节点中加入 android:sharedUserId="android.uid.system" 2、 找到源码中的signapk.jar包(./out/host/linux-......

海月汐辰 2215

反光柱定位算法实战03:VEnus代码解析和纯反光柱定位中的可改进方向

本文深入解析了开源框架VEnus的反光柱定位与建图实现流程,包括强度提取、聚类、数据关联、位姿优化等核心模块。同时指出其三大局限:匹配质量脆弱性、单一传感器依赖和地图扩展逻辑缺失,并提出改进方向:融合里程计/IMU数据、引入图优化后端、建立动态地图维护机制。该分析为基于反光柱的定位系统优化提供了实用参考,有助于提升工业场景下的定位鲁棒性和精确性。

Studying…… 520

EuROC 数据集格式及相关代码

Euroc提供ROS和zip两种数据格式。

~勿据散客~的博客 2093

Android设置项目为系统APP

狂揽西风,一水如镜,黑丝三千尺,一望如白驹; 何为系统APP何为三方APP? 位于system分区内的是系统软件,位于data分区得的是第三方后安装的软件 系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。 所谓第三方软件指的是该非线性编辑系统生产商以外的软件公司提

会飞的小驴粪蛋 2938

Pytorch入门实战(7):基于BERT实现文本隐喻二分类(Kaggle入门题目)

Bert入门实战,文本二分类问题

iioSnail的博客 4054

2022-08-25 AndroidR 默认赋予app权限,不弹出权限申请窗口

2、默认授予camera 位置权限的方法:在frameworks\base\services\core\java\com\android\server\pm\permission\DefaultPermissionGrantPolicy.java 里面的grantDefaultSystemHandlerPermissions 的Camera里面添加参数ALWAYS_LOCATION_PERMISSIONS。1、我们先来看一下系统app Camera的权限,位置权限不是默认授予。或者添加另外一种形式。....

海月汐辰 6279

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

中国信通院推出了一个“APP签名服务系统,可防篡改、可追溯、第三方认证“的初步了解

想当初https刚出来时候只有一些大公司用,但现在小公司都不得不用了,本来https证书能自己创建的,也很安全,但被浏览器标记为不可信,那就必须要买了,还挺贵的, 但也没办法。当时还使用了腾讯的乐固进行了加固,但是还是被破解了,他们破解后,改了个包名,应用内植入一些广告,然后放在吾爱破解网站上。但是国内搞软件破解和盗版的技术太牛逼了, 就算签名了,应用分分钟被破解,我们公司之前的一个应用就是这样,找了一圈也没有找到使用此服务的费用说明,这并不代表这个是免费的,因为上图邮件里说了,也不知道工信部出的这个。..

CXW1014的专栏 1267

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

push 第三方apk,到/system/priv-app/

通过push 第三方apk,到/system/priv-app/下的自建目录,apk可以运行 说明系统运行priv-app下运行apk,对apk是系统签名还是自带签名,没有限制。

赵阳(Java) 2444

Android app 获取SHA1值

一.在代码中获取app的sha1值,需要手动添加 :号 public static String getSHA1(Context context) { try { PackageInfo info = context.getPackageManager().getPackageInfo( context.getPackageNam...

zhouxing的博客 1310

将第三方App固化到系统中

将第三方App固化到系统中 Android.mk 文件写法 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := MyApp LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := MyApp.apk LOCAL_MODULE_CLASS := APPS LOCAL_MODU...

sinat_20598829的专栏 941

ios 企业签名证书购买_ios企业签名可以直接签名吗?

ios企业签名也就是在苹果系统中安装软件时候需要证书的签名认证。未经任何签名的程序是不能在智能手机上安装和运行的。所有iPhone 应用程序在iPhone OS设备上运行之前必须用合法的 signing identity 进行签名。S60 第三版在安全性方面做了比较大的改善,对在系统中安装运行的第三方软件有更为严格的规定。某些涉及手机软硬件安全/个人信息安全等方面的操作被做了特别的限制。应用程序要...

weixin_39958137的博客 167

android 关闭第三方应用,Android禁用第三方应用

需要权限android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE而这个权限是只有system app才能使用,所以app需要系统签名。非system app即便在Android Mainfest.xml中强制写上,安装时也部会写入/data/system/packages.xml启用第三方应用图标:PackageManager pm = ...

weixin_30918493的博客 2415

Android apk签名、第三方内置、图标添加与删除、开关机动画及铃声、启动第三方程序

Android apk签名、第三方内置、图标添加与删除、开关机动画及铃声、启动第三方程序的代码、添加壁纸选择列表(壁纸选择器)一:apk签名签名方法:1:添加权限    在AndroidManifest.xml文件下添加android:sharedUserId="android.uid.system"。 2:在Eclipse中导出无签名的应用文件   在工程中:右键->Android Tools

tanglinjundiyi的专栏 1412
上一篇: Bluetooth HCI 学习
下一篇: libnativehelper 加载库失败
leoStack
博客等级 码龄11年 16粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值