zoukankan      html  css  js  c++  java
  • AndroidManifest修改重打包全过程

    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:Javaandroid_apkcrackedGPS.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:Javaandroid_apkcrackedGPS.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 {
     

    }

  • 相关阅读:
    win7破解vs2008
    学习C# via clr 第三版扎记
    html 网页嵌入 QQ MSN 旺旺 Gtalk快速对话框官方代码的方法
    识别打气筒气嘴 法式气嘴、美式气嘴、英式气嘴
    飞信资料
    DCOM 遇到错误 “登录失败:未知的用户名或错误密码
    VS 新建Asp.Net 网站 与 新建Asp.Net web 应用程序区别
    一款网页开发必备,让你欲罢不能的客户网页编辑js控件 百度 UEditor
    一天一小步_我学C#入门精典_第一天
    将DataTable对象输出到新建EXCEL文档中
  • 原文地址:https://www.cnblogs.com/janehlp/p/3156578.html
Copyright © 2011-2022 走看看