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

来源:互联网 发布:怎么遍历json数组 编辑:程序博客网 时间:2024/05/17 01:19

如何对应用进行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     // 列出目标设备上的所有featureadb shell am start -n com.growingwiththeweb.example/.MainActivity    // 使用adb命令启动一个页面adb shell am start -n com.growingwiththeweb.example/com.growingwiththeweb.example.MainActivityadb shell input keyevent 82   // 解锁屏幕

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

adb命令有三个重要的参数,当本机上连接了两个或以上的android设备时,这三个参数就有用武之地了:
* -d 说明adb命令的目标设备是唯一连接到adb的真机
* -e 说明adb命令的目标设备是唯一连接到adb的模拟器
* -s 指定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文件安装到指定序列号设备上面
原创粉丝点击