首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取android MANIFEST.MF文件

读取android MANIFEST.MF文件
EN

Stack Overflow用户
提问于 2010-08-03 06:08:14
回答 2查看 5.2K关注 0票数 2

有没有办法使用Android API读取当前运行的应用程序的META-INF\MANIFEST.MF文件?

我想读取classes.dex文件的SHA1,并将其用作我的一个资产的加密密钥。

我不能使用.apk文件的签名,因为每次我创建一个新的apk时,我需要重新加密我的资产并将其放入apk文件中,这需要对.apk重新签名,这就成了一个鸡和蛋的问题。

EN

回答 2

Stack Overflow用户

发布于 2010-08-03 07:46:31

我已经找到了做这件事的方法。我将.apk文件作为JarFile打开,然后就可以访问.apk中的单个文件了。我相信这只适用于运行这段代码的.apk文件。

这就是它:

代码语言:javascript
复制
// Get Package Name
String packageName = ctx.getPackageName();

// Get classes.dex file signature
ApplicationInfo ai = ctx.getApplicationInfo();
String source = ai.sourceDir;

JarFile jar = new JarFile(source);
Manifest mf = jar.getManifest();

Map<String, Attributes> map = mf.getEntries();

Attributes a = map.get("classes.dex");
String sha1 = (String)a.getValue("SHA1-Digest");
票数 7
EN

Stack Overflow用户

发布于 2013-03-07 20:11:39

使用以下方式检测外部Jar/SDK MANIFEST.MF信息。我们可以使用这些信息来检测Jar版本等。使用http://docs.oracle.com/javase/6/docs/api/java/util/jar/Manifest.html

代码语言:javascript
复制
public void getSDKInfo() {
Package package = Manifest.class.getPackage();
String specTitle = package.getSpecificationTitle();
String vendor = package.getSpecificationVendor();
String virsion = package.getSpecificationVersion();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3392189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档