Android源码浅析(五)——关于定制系统,如何给你的Android应用系统签名


今天来点简单的我相信很多定制系统的同学都会有一些特定功能的需求,比如

  • 修改系统时间
  • 静默安装
  • 执行某shell命令

这些对于正常的应用来说,是需要很多技巧性的东西来做的,因为他们没有权限,而我们做定制系统的

话,可以给我们的应用来系统签名,这样就拥有系统的权限了,那我们应该怎么做呢?

我们以执行某shell命令为课题来解释:

首先,我们要知道,一般的命令都是在system/bin下,我们可以看图

使用shell命令,比如ls之类的,我们可以直接执行

try {
            Runtime runtime = Runtime.getRuntime();
            runtime.exec("ls");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

你会发现可以执行的,而且可以拿到返回值,通过返回一个Process,然后就可以拿到流了,这里不说,我们继续来看这个ls命令,如果你细心的话,你会发现,ls命令后面有一个字号:toolbox

关于toolbox,他是一个指令集,但是我们今天不讲他,但是你要知道他是一个全局集,有点类似配置了JAVA的环境变量,所有才会用户可以执行

但是我现在执行一个tinymix的指令

    try {
            Runtime runtime = Runtime.getRuntime();
            Process exec = runtime.exec("tinymix -D 1");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

他肯定会报操作不允许,也就是我们没有这个权限,拿我们应该怎么去拿到这个权限呢?就是通过我们的系统签名

1.设置sharedUserId

为了拿到权限,我们需要在清单文件的manifest里设置和系统同一个UserId

android:sharedUserId=”android.uid.system”

2.获取签名文件

签名文件有三个

  • platform.pk8
  • platform.x509.pem
  • signapk.jar

这三个都是可以在源码里拿到的

platform.pk8和platform.x509.pem都可以在build/target/product/security/目录下找到

signapk.jar在build/tools/signapk/目录下

3.系统签名

//执行命令
signapk.jar platform.x509.pem platform.pk8 input.apk output.apk

我们拿到之后把这几个放在同一个目录下,然后打开cmd,执行命令

这句命令后面两个apk分别是你要签名的apk名字和签名后的apk名字,比如我需要签名的apk叫做app_debug

执行命令后会的到

ok,我们现在拿到Test.apk可不能安装,需要push到system/app下,执行命令

adb push  apk路径  /system/app

但是很多人应该会报 Read-only file system错误的

那是因为你没有在remount模式下,你可以执行

adb root
adb remount

就像这样

好的,至此,我们成功的系统签名了,接下来你就可以执行这个shell命令了

这里只是抛砖引玉下,各位自己发挥

有兴趣的可以加群:555974449

Android源码浅析(五)——关于定制系统,如何给你的Android应用系统签名的更多相关文章

  1. Android源码浅析(六)——SecureCRT远程连接Linux,配置端点和字节码

    Android源码浅析(六)--SecureCRT远程连接Linux,配置端点和字节码 需要编译源码的同学,一般都是win+虚拟机吧,但是再虚拟机里体验并不是很好,所有市面上有很多的软件能够做到在wi ...

  2. Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令

    Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...

  3. Android源码浅析(三)——Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机

    Android源码浅析(三)--Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机 最近比较忙,而且又要维护自己的博客,视频和公众号,也就没 ...

  4. Android源码浅析(二)——Ubuntu Root,Git,VMware Tools,安装输入法,主题美化,Dock,安装JDK和配置环境

    Android源码浅析(二)--Ubuntu Root,Git,VMware Tools,安装输入法,主题美化,Dock,安装JDK和配置环境 接着上篇,上片主要是介绍了一些安装工具的小知识点Andr ...

  5. Android源码浅析(一)——VMware Workstation Pro和Ubuntu Kylin 16.04 LTS安装配置

    Android源码浅析(一)--VMware Workstation Pro和Ubuntu Kylin 16.04 LTS安装配置 最近地方工作,就是接触源码的东西了,所以好东西还是要分享,系列开了这 ...

  6. Android源码笔记——Camera系统架构

    Camera的架构与Android系统的整体架构保持一致,如下图所示,本文主要从以下四个方面对其进行说明. Framework:Camera.java Android Runtime:android_ ...

  7. 【Android 系统开发】使用 Source InSight 阅读 Android 源码

    1. 安装 Source Insight (1) Source Insight 相关资源 安装相关资源 : -- 下载地址 : http://www.sourceinsight.com/down35. ...

  8. Android源码之Gallery专题研究(1)

    前言 时光飞逝,从事Android系统开发已经两年了,总想写点什么来安慰自己.思考了很久总是无法下笔,觉得没什么好写的.现在终于决定写一些符合大多数人需求的东西,想必使用过Android手机的人们一定 ...

  9. 编译android源码m、mm、mmm命令的使用

    http://blog.163.com/zz_forward/blog/static/212898222201442873435471/ gcc怎么查看它的默认include路径和库的路径呢? //- ...

随机推荐

  1. 从零开始系列之vue全家桶(6)实战前的设计

    搭建好基本框架后我们应该先想一想个人博客应该有哪些功能呢? 为了更好的适应企业的要求,这里我将搭建一个非典型的博客. 在全部采用单页开发的情况下,使用vue-router,路由分别设置home.abo ...

  2. Java多线程之interrupt()的深度研究

    近期学习Java多线程的中断机制,网上的帖子说得很浅,并没深究其原理.看了Java源码,对Java的中断机制有了略深入的理解,在这篇文章中向感兴趣的网友分享下.这篇文章主要通过一个典型例子对中断机制进 ...

  3. Hive优化案例

    1.Hadoop计算框架的特点 数据量大不是问题,数据倾斜是个问题. jobs数比较多的作业效率相对比较低,比如即使有几百万的表,如果多次关联多次汇总,产生十几个jobs,耗时很长.原因是map re ...

  4. 【django之modelform】

    一.什么是modelform ModelForm顾名思义就Form和Django的Model数据库模型结合体,可以简单.方便得对数据库进行增加.编辑操作和验证标签的生成: 举例说明: 比如我们的数据库 ...

  5. pyqt5 动画学习(三) 指定控件的移动轨迹

    这一篇来讲解自定义控件的移动轨迹 原理:我们采用QPainterPath先画一个弧线,然后加载一个物体让物体移动,设置100个关键帧,每个关键帧物体的坐标位置就是弧线的坐标位置,这样就能达到按照指定轨 ...

  6. 小白学习java设计模式之策略模式

    策略模式:1.分析项目中的变化部分与不变部分(每个设计模式都要分析的)2.多用组合少用继承;用行为类组合,而不是行为继承,更具有弹性直接上代码: package com.wz.oneStrategis ...

  7. python 云打码 hhtp接口

    import http.client, mimetypes, urllib, json, time, requests ######################################## ...

  8. 利用 pyspider 框架抓取猫途鹰酒店信息

    利用框架 pyspider 能实现快速抓取网页信息,而且代码简洁,抓取速度也不错. 环境:macOS:Python 版本:Python3. 1.首先,安装 pyspider 框架,使用pip3一键安装 ...

  9. Linux使用踩坑记

    Ubuntu安装坑: 1.对于新手第一次安装ubuntu,特殊情况会出现因为分辨率问题导致安装界面不全,无法进行下一步操作. 解决方案:使用alt+鼠标左键拖动屏幕Linux文件名乱码问题: 2.因为 ...

  10. [CQOI 2015]选数

    Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公 ...