AndroidManifest修改重打包全过程:

作者: 蔡建良 2013-06-26

准备工具:
apktool.jar和signapk.jar

下载:

http://download.csdn.net/detail/janehlp/5651605

1)采用apktool命令行反编译apk资源文件。
>apktool d c:\GPS.Test.Plus_1.2.4.apk D:\Java\android_apk\cracked\GPS.Test.Plus_1.2.4

2)修改androidAndroidManifest.xml文件,修改主程序activity配置。
添加两处:
android:exported="true"

 <intent-filter>
      <action android:name="com.eclipsim.gpsstatus.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

完整配置如下:
<activity android:label="@string/app_label" android:icon="@drawable/icon" android:name="GPSStatus" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.eclipsim.gpsstatus.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
</activity>

被调用的包名为: com.eclipsim.gpsstatus。
被调用的Action名为: com.eclipsim.gpsstatus.VIEW。

3)采用apktool命令行将修改后资源打包成apk。
>apktool b D:\Java\android_apk\cracked\GPS.Test.Plus_1.2.4 mynew.apk

4)采用signapk对apk进行签名。
>java -jar signapk.jar testkey.x509.pem testkey.pk8 mynew.apk mynew2.apk

最后,mynew2.apk为最终安装包文件,安装后就能被其它程序调用。

5) android程序调用代码。
String gpsStatusAction = "com.chartcross.gpstestplus.VIEW";
String gpsStatusPackage = "com.chartcross.gpstestplus";

boolean hasGpsStatus = false;
List<PackageInfo> installedPackages = new ArrayList<PackageInfo>();

installedPackages = context.getPackageManager().getInstalledPackages(0);
if (installedPackages.size() == 0)
    installedPackages = context.getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);

if (installedPackages.size() > 0) {
    for( PackageInfo packageInfo : installedPackages ) {
 String packageName = packageInfo.packageName;
 
 if (packageName.startsWith(gpsStatusPackage)) {
     hasGpsStatus = true;
     break;
 }
    }
} else {
    hasGpsStatus = true;
}

if (hasGpsStatus) {
    Intent intent = new Intent(gpsStatusAction);
    context.startActivity(intent);
} else {

}

AndroidManifest修改重打包全过程的更多相关文章

  1. 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解

    关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  2. Atitit.项目修改补丁打包工具 使用说明

    Atitit.项目修改补丁打包工具 使用说明 1.1. 打包工具已经在群里面.打包工具.bat1 1.2. 使用方法:放在项目主目录下,执行即可1 1.3. 打包工具的原理以及要打包的项目列表1 1. ...

  3. DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版及制作Visual Studio C#项目模板文件详解

    关于 DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  4. DotNetBar for Windows Forms 12.7.0.10_冰河之刃重打包版原创发布-带官方示例程序版

    关于 DotNetBar for Windows Forms 12.7.0.10_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版------------- ...

  5. DotNetBar for Windows Forms 12.5.0.2_冰河之刃重打包版原创发布-带官方示例程序版

    关于 DotNetBar for Windows Forms 12.5.0.2_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  6. DotNetBar for Windows Forms 12.2.0.7_冰河之刃重打包版原创发布-带官方示例程序版

    关于 DotNetBar for Windows Forms 12.2.0.7_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  7. DotNetBar for Windows Forms 12.1.0.0_冰河之刃重打包版 原创发布

    关于 DotNetBar for Windows Forms 12.1.0.0_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  8. DotNetBar for Windows Forms 11.8.0.8冰河之刃重打包版

    关于 DotNetBar for Windows Forms 11.8.0.8_冰河之刃重打包版 基于 官方原版的安装包 + http://www.cnblogs.com/tracky 提供的补丁DL ...

  9. android 签名验证防止重打包

    网上资料很多,这里只做一个笔记反编译 dex 修改重新打包签名后 apk 的签名信息肯定会改变,所以可以在代码中判断签名信息是否被改变过,如果签名不一致就退出程序,以防止 apk 被重新打包. 1 j ...

随机推荐

  1. Quartz 2D Programming Guide

    Quartz 2D Programming  Guide 官方文档: Quartz 2D Programming Guide 译文: Quartz 2D编程指南(1) - 概览 Quartz 2D编程 ...

  2. lintcode:线段树的修改

    线段树的修改 对于一棵 最大线段树, 每个节点包含一个额外的 max 属性,用于存储该节点所代表区间的最大值. 设计一个 modify 的方法,接受三个参数 root. index 和 value.该 ...

  3. hdu 3032 Nim or not Nim?(搜索打SG表)

    题意: 有n堆石子,alice先取,每次可以选择拿走一堆石子中的1~x(该堆石子总数) , 也可以选择将这堆石子分成任意的两堆.alice与bob轮流取,取走最后一个石子的人胜利. 思路: 因为数的范 ...

  4. 关于HTTP协议的学习

    HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参考RFC2616.HTTP协议采用了请求/响应模型.客 ...

  5. 超级内存NVDIMM

    1.序言 基于非易失性内存(NVDIMM)的新一代内存条规格已经研制成功,其中集成了DRAM和非易失性存储芯片,能够在完全断电的时候完整保存内存数据,并支持主内存在持久高速高性能计算上的应用.区别于普 ...

  6. Android笔记——简单解析XML

    两部分,Xml资源文件和Java对Xml解析的实现 ----------------------------------------------------------- 版权声明:本文为博主原创文章 ...

  7. css:map热点的应用

    映射图像(Image Map)可以实现的效果是:一张图片上点不同位置可以跳转到不同的地方, 实例: 1.插入一张图片 2.在底部“属性”栏中选择合适的热点工具,在图片上绘制热点区域,如 3.然后返回代 ...

  8. WordPress主题制作教程5:循环

    wordpress循环分两种,一种是自定义循环,一种是默认循环. 自定义循环:根据指定参数进行实例化 调用所有页面,post_type值:page对应页面,post对应文章 <?php $arg ...

  9. 本博客不再更新,欢迎访问本人托管在GitHub上的博客:www.wshunli.com

    本博客不再更新. 欢迎访问本人托管在GitHub上的博客:www.wshunli.com

  10. 【总结】java命令解析以及编译器,虚拟机如何定位类

    学Java有些日子了,一直都使用IDE来写程序.这样的好处就是能让我连如何用命令行编译,解释执行Java源代码都不知道,就更不清楚JDK中的编译器和虚拟机(包含字节码解释器)是如何定位到类文件的.悲哀 ...