写点什么

如何对应用进行 Android 系统签名和常用 adb 命令总结

用户头像
Changing Lin
关注
发布于: 2021 年 01 月 26 日
如何对应用进行Android系统签名和常用adb命令总结

一、非系统 APP 应用添加系统权限的两种方法:

  • 应用场景:系统权限(AndroidManifest.xml 中 manifest 节点中加入 android:sharedUserId="android.uid.system"这个属性)

  • 方法一:将 APP 工程放置到系统源码环境,进行编译,并打包到系统 ROM 包里面;则默认具有系统权限;

  • 方法二:利用系统的签名文件,进行手动不依赖源码签名,本文就是介绍这种方法。

二、签名文件获取:

获取目标系统的签名文件,需要如下几个:

1.platform.pk8 和 platform.x509.pem,通常在源码环境的 build\target\product\security 目录下;

2.signapk 包,通常在源码环境的 build\tools\signapk 目录下,包含如下文件:

三、签名环境配置:

拿到上述文件之后还不能直接签名,需要将 signapk 编译,生成一个 signapk.jar 包,步骤如下:

1.把 signapk 放到 E 盘(E:\signapk),命令行 cd 到此目录下(signapk.java 代码目录)下执行:

E:\signapk>java SignApk.java  
复制代码

生成如下图的两个 class 文件:

2.新建路径:E:\signapk\temp\com\android\signapk

将刚才生成的两个 class 文件拷贝到此路径下:

3.在 E:\signapk 下执行如下指令:

E:\signapk>jar cvfm signapk.jar SignApk.mf -C temp\ .  
复制代码

注意格式:"temp\"后面的"."前面有空格

经过上述三步,我们就得到了一个 signapk.jar 文件,也是我们签名需要的关键文件,下面就可以给你的 apk 签名了;配置好的环境如下:


四、给 APK 签名:

签名很简单,执行如下命令即可:

E:\signapk>java -jar signapk.jar  platform.x509.pem platform.pk8 a.apk b.apk  
复制代码


至此,已经生成具有系统签名的 apk 了

五、adb 命令在多设备连接情况下常用命令:

adb devices   // 查询所有当前在线设备
adb shell // 进入目标设备的Linux Shell环境, 在该环境中可以执行一些linux命令.如在Linux Shell环境中执行ps可以查看android设备中运行的所有进程.在Linux Shell环境中执行exit可以退出Linux Shell环境
adb start-server // 开启adb服务
adb kill-server // 终止adb服务
adb version // 显示adb的版本号
adb install <apk file name> // 将指定的app安装到唯一连接到adb的设备上,后边跟的参数为安装包的文件名
adb install -r <apk file name> // 安装应用程序, 但是保留原有应用程序的所有数据
adb uninstall <package name> // 将包名指定的app从目标设备上卸载,后边跟的参数为应用程序的包名
adb uninstall -k <package name> // 将包名指定的app从目标设备上卸载, 但是保留配置文件和缓存
adb push <local> <remote> // 将本机的文件或目录拷贝到目标设备的文件系统中
adb pull <remote> <local> // 将目标设备中的文件或目录拷贝到本机中
adb shell dumpsys activity // 列出目标设备上的activity栈(back stack)和任务(task)的信息, 还有其他组件的一些信息和一些关于进程的信息
adb shell dumpsys packages // 列出一些系统信息和所有应用的信息
adb shell pm list permissions // 列出目标平台上的所有权限
adb shell pm list packages // 列出目标设备上安装的所有app的包名 adb shell pm list features // 列出目标设备上的所有feature
adb shell am start -n com.growingwiththeweb.example/.MainActivity // 使用adb命令启动一个页面adb shell am start -n com.growingwiththeweb.example/com.growingwiththeweb.example.MainActivity
adb shell input keyevent 82 // 解锁屏幕
复制代码

六、adb 命令中用于确定目标设备的参数:

adb 命令有三个重要的参数,当本机上连接了两个或以上的 android 设备时,这三个参数就有用武之地了:

  • -d 说明 adb 命令的目标设备是唯一连接到 adb 的真机

  • -e 说明 adb 命令的目标设备是唯一连接到 adb 的模拟器

  • -s <specific device> 指定 adb 命令的目标设备

以下为这三个参数的应用举例:

adb -d shell  // 进入唯一连接到adb的真机的Linux Shell环境 adb -e install test.apk  // 将test.apk安装到唯一连接到adb的模拟器上
adb -s emulator-5554 push weibo.apk /sdcard/test.apk // 将test.apk文件复制到emulator-5554的/sdcard/weibo.apk位置
adb -s <device-serial> install test.apk // 将test.apk文件安装到指定序列号设备上面
复制代码


发布于: 2021 年 01 月 26 日阅读数: 26
用户头像

Changing Lin

关注

获得机遇的手段远超于固有常规之上~ 2020.04.29 加入

我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。

评论

发布
暂无评论
如何对应用进行Android系统签名和常用adb命令总结