Skip to content

Instantly share code, notes, and snippets.

@zhaoyao
Last active August 29, 2015 14:04
Show Gist options
  • Save zhaoyao/a2db949563186629dca4 to your computer and use it in GitHub Desktop.
Save zhaoyao/a2db949563186629dca4 to your computer and use it in GitHub Desktop.
package com.sogou.game.dp.adminweb.config;
import net.erdfelt.android.apk.AndroidApk;
import net.erdfelt.android.apk.io.IO;
import net.erdfelt.android.apk.xml.Attribute;
import net.erdfelt.android.apk.xml.BinaryXmlListener;
import net.erdfelt.android.apk.xml.BinaryXmlParser;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
* User: zhaoyao
* Date: 7/24/14
* Time: 13:55
*/
public class Test {
public static void main(String[] args) throws IOException {
ZipFile zip = new ZipFile("/Users/zhaoyao/Downloads/02_wan_15.apk");
ZipEntry manifestEntry = zip.getEntry("AndroidManifest.xml");
if (manifestEntry == null) {
throw new FileNotFoundException("Cannot find AndroidManifest.xml in apk");
}
InputStream in = null;
try {
in = zip.getInputStream(manifestEntry);
parseStream(in);
} finally {
IO.close(in);
try {
if(zip != null) {
zip.close();
}
} catch(IOException ignore) {
/* ignore */
}
}
}
private static void parseStream(InputStream in) throws IOException {
final BinaryXmlParser parser = new BinaryXmlParser();
final Map<String, Object> map = new HashMap<>();
parser.addListener(new BinaryXmlListener() {
@Override
public void onXmlEntry(String path, String name, Attribute... attrs) {
if (!map.containsKey(path)) {
map.put(path, new ArrayList<>());
}
for (Attribute attr : attrs) {
((List)map.get(path)).add(attr);
}
}
});
parser.parse(in);
System.out.println(map);
}
}
@zhaoyao
Copy link
Author

zhaoyao commented Jul 24, 2014

{
    "//":[
        {
            "name":"versionCode",
            "value":"321"
        },
        {
            "name":"versionName",
            "value":"1.2.0"
        },
        {
            "name":"installLocation",
            "value":"2"
        },
        {
            "name":"package",
            "value":"com.carrot.carrotfantasy"
        }
    ],
    "//manifest/":[
        {
            "name":"minSdkVersion",
            "value":"8"
        },
        {
            "name":"name",
            "value":"android.permission.WAKE_LOCK"
        },
        {
            "name":"name",
            "value":"android.permission.INTERNET"
        },
        {
            "name":"name",
            "value":"android.permission.ACCESS_NETWORK_STATE"
        },
        {
            "name":"name",
            "value":"android.permission.ACCESS_WIFI_STATE"
        },
        {
            "name":"name",
            "value":"android.permission.WRITE_EXTERNAL_STORAGE"
        },
        {
            "name":"name",
            "value":"android.permission.READ_PHONE_STATE"
        },
        {
            "name":"name",
            "value":"android.permission.ACCESS_COARSE_LOCATION"
        },
        {
            "name":"name",
            "value":"android.permission.VIBRATE"
        },
        {
            "name":"name",
            "value":"android.permission.CHANGE_WIFI_STATE"
        },
        {
            "name":"name",
            "value":"android.permission.CHANGE_NETWORK_STATE"
        },
        {
            "name":"name",
            "value":"android.permission.WRITE_APN_SETTINGS"
        },
        {
            "name":"name",
            "value":"android.permission.DISABLE_KEYGUARD"
        },
        {
            "name":"name",
            "value":"android.permission.SEND_SMS"
        },
        {
            "name":"name",
            "value":"android.permission.GET_TASKS"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"icon",
            "value":"@id/0x7F0200C8"
        },
        {
            "name":"name",
            "value":".CmgameApplication"
        },
        {
            "name":"debuggable",
            "value":"(0x12000008/0x00000000)"
        },
        {
            "name":"anyDensity",
            "value":"(0x12000008/0xFFFFFFFF)"
        },
        {
            "name":"smallScreens",
            "value":"(0x12000008/0xFFFFFFFF)"
        },
        {
            "name":"normalScreens",
            "value":"(0x12000008/0xFFFFFFFF)"
        },
        {
            "name":"largeScreens",
            "value":"(0x12000008/0xFFFFFFFF)"
        },
        {
            "name":"resizeable",
            "value":"(0x12000008/0xFFFFFFFF)"
        }
    ],
    "//manifest/application/":[
        {
            "name":"theme",
            "value":"@id/0x0103000E"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":".CarrotFantasy"
        },
        {
            "name":"screenOrientation",
            "value":"0"
        },
        {
            "name":"configChanges",
            "value":"(0x11000008/0x000004A0)"
        },
        {
            "name":"theme",
            "value":"@id/0x01030011"
        },
        {
            "name":"name",
            "value":"cn.egame.terminal.paysdk.EgamePayActivity"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":".wxapi.WXEntryActivity"
        },
        {
            "name":"exported",
            "value":"(0x12000008/0xFFFFFFFF)"
        },
        {
            "name":"launchMode",
            "value":"1"
        },
        {
            "name":"theme",
            "value":"@id/0x0103000F"
        },
        {
            "name":"name",
            "value":"cn.domob.android.ads.DomobActivity"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":"com.tencent.weibo.webview.OAuthV2AuthorizeWebView"
        },
        {
            "name":"name",
            "value":"com.umeng.fb.ConversationActivity"
        },
        {
            "name":"name",
            "value":"com.umeng.fb.ContactActivity"
        },
        {
            "name":"theme",
            "value":"@id/0x01030010"
        },
        {
            "name":"name",
            "value":"com.umeng.update.UpdateDialogActivity"
        },
        {
            "name":"theme",
            "value":"@id/0x01030011"
        },
        {
            "name":"name",
            "value":"com.iapppay.mpay.ifmgr.PayManagerActivity"
        },
        {
            "name":"launchMode",
            "value":"1"
        },
        {
            "name":"screenOrientation",
            "value":"3"
        },
        {
            "name":"configChanges",
            "value":"(0x11000008/0x000000A0)"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.SplashActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.CardMainActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.PayMainActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.PayItActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.PayResultActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.AccountMainActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.ChooseBankActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.LoginActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.RegisterActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.GetpassActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.ResetpassActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.EditpassActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.EditinfoActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.AddCardActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.AddCardFromAuthActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.UserProtocalActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.CheckCardBalanceActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.CardInfoActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.CardBalanceResultActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"name",
            "value":"com.unionpay.upomp.bypay.activity.CardBankResultActivity"
        },
        {
            "name":"screenOrientation",
            "value":"1"
        },
        {
            "name":"theme",
            "value":"@id/0x01030010"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":"com.iapppay.oneclickpay.FastPayActivity"
        },
        {
            "name":"theme",
            "value":"@id/0x01030010"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":"com.iapppay.oneclickpay.InputCardActivity"
        },
        {
            "name":"theme",
            "value":"@id/0x01030010"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":"com.iapppay.oneclickpay.LLUnbindCardActivity"
        },
        {
            "name":"theme",
            "value":"@id/0x01030010"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":"com.iapppay.oneclickpay.YPUnbindCardActivity"
        },
        {
            "name":"theme",
            "value":"@id/0x01030010"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":"com.iapppay.oneclickpay.SplashActivity"
        },
        {
            "name":"theme",
            "value":"@id/0x01030010"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":"com.iapppay.oneclickpay.AgreementActivity"
        },
        {
            "name":"theme",
            "value":"@id/0x01030010"
        },
        {
            "name":"name",
            "value":"com.fastpay.sdk.activity.FastPay"
        },
        {
            "name":"launchMode",
            "value":"1"
        },
        {
            "name":"screenOrientation",
            "value":"3"
        },
        {
            "name":"configChanges",
            "value":"(0x11000008/0x000000A0)"
        },
        {
            "name":"name",
            "value":"UMENG_APPKEY"
        },
        {
            "name":"value",
            "value":"5092557452701535e700001a"
        },
        {
            "name":"name",
            "value":"UMENG_CHANNEL"
        },
        {
            "name":"value",
            "value":"sougou"
        },
        {
            "name":"name",
            "value":"EGAME_CHANNEL"
        },
        {
            "name":"value",
            "value":"80011045"
        },
        {
            "name":"label",
            "value":"@id/0x7F0801F3"
        },
        {
            "name":"name",
            "value":".DownloadService"
        },
        {
            "name":"name",
            "value":"com.umeng.common.net.DownloadingService"
        },
        {
            "name":"exported",
            "value":"(0x12000008/0xFFFFFFFF)"
        },
        {
            "name":"process",
            "value":":DownloadingService"
        }
    ],
    "//manifest/application/activity/":[],
    "//manifest/application/activity/intent-filter/":[
        {
            "name":"name",
            "value":"android.intent.action.MAIN"
        },
        {
            "name":"name",
            "value":"android.intent.category.LAUNCHER"
        },
        {
            "name":"name",
            "value":"android.intent.action.CHINAMOBILE_OMS_GAME"
        },
        {
            "name":"name",
            "value":"android.intent.category.CHINAMOBILE_GAMES"
        }
    ]
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment