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. for语句中声明变量

    在C语言中,局部变量应该在函数的可执行语句之前定义,但在C++中变量可在任何语句位置定义,只要允许程序语句的地方,都允许定义变量. 在C99标准中C同C++一样允许在for循环语句中定义变量.并且这个 ...

  2. 添加dubbo xsd的支持

    使用dubbo时遇到问题: org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'htt ...

  3. ios开发 ad hoc

    iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的:1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书. 那ad hoc证书和开发证书区别 ...

  4. sin=in.readLine();

    import java.io.*; public class LineIO{ public static void main(String[] args) { String sin,inputStri ...

  5. FMX的综合评价

    Cliff: 我个人觉得FMX值得学,因为可以做Mac软件,可以做Windows下的DirectUI,可以开发iOS/Android,而且是可视化开发,可利用RTL一切函数,包括可使用所有非可视控件. ...

  6. 程序员必须知道的几个国外IT网站

    1.TheServerSide 这是一个老牌的IT信息网站,从名称上你就能看出,它是关注服务器端编程的,以Java和Java周边信息为主,不过最近它也有向客户端和微软产品扩展的趋势.这个网站最初是以免 ...

  7. Linux内核系列—C语言中内嵌汇编 asm __volatile__,asm__volatile_【转】

    转自:http://www.bkjia.com/Androidjc/1109412.html 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器, ...

  8. Object窥探

    /* * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETA ...

  9. BZOJ 2751 容易题

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2751 题意:有一个数列A已知对于所有的A[i]都是1到n的自然数,并且知道对于一些A[i ...

  10. z-index 用法

    现在来说说关于z-index的用法,刚刚在写看页面的时候遇见这样的CSS代码,z-index : 2; 当时还不知道是干嘛用的,也不知道有什么作用,上网查了资料才知道. 几个例子吧,当你在需要把页面中 ...