gddhy

_(:з」∠)_ 加载中...
  • 主页
  • 归档
  • 工具
  • 关于
所有文章 友链

gddhy

_(:з」∠)_ 加载中...

  • 主页
  • 归档
  • 工具
  • 关于

Java获取Mrp信息

2021-05-07
字数统计:316字 阅读时长≈1分

最近用到的,代码来自 天使之翼 mrpoid

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
*
* @author YYichou 2014-07-20 15:08:48
*
*/
public class MrpInfo {
public String label;
public String name;
public String vendor;
public String detail;
public int appid;
public int version;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import java.io.RandomAccessFile;
import java.nio.charset.Charset;

public class MrpUtils {
public static String readMrpAppName(String path) {
RandomAccessFile raf = null;
try {
raf = new RandomAccessFile(path, "r");
byte[] buf = new byte[32];

raf.seek(28);
raf.read(buf, 0, 24);
buf[24] = 0;

return new String(buf, 0, 24, Charset.forName("GB2312"));
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
raf.close();
} catch (Exception e) {
}
}

return null;
}

public static int byteArrayToInt(byte[] b, int offset) {
int value = 0;
for (int i = 0; i < 4; i++) {
int shift = (4 - 1 - i) * 8;
value += (b[i + offset] & 0x000000FF) << shift;
}

return value;
}

public static MrpInfo readMrpInfo(String path) {
MrpInfo mrpInfo = new MrpInfo();

RandomAccessFile raf = null;
try {
raf = new RandomAccessFile(path, "r");
byte[] buf = new byte[128];

final Charset charset = Charset.forName("GB2312");

raf.seek(28);
raf.read(buf, 0, 22);
mrpInfo.label = new String(buf, 0, 22, charset);

raf.seek(16);
raf.read(buf, 0, 12);
mrpInfo.name = new String(buf, 0, 12, charset);

raf.seek(68);
raf.read(buf, 0, 4);
mrpInfo.appid = Integer.reverseBytes(byteArrayToInt(buf, 0));

raf.seek(72);
raf.read(buf, 0, 4);
mrpInfo.version = Integer.reverseBytes(byteArrayToInt(buf, 0));

raf.seek(88);
raf.read(buf, 0, 38);
mrpInfo.vendor = new String(buf, 0, 38, charset);

raf.seek(128);
raf.read(buf, 0, 60);
mrpInfo.detail = new String(buf, 0, 60, charset);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
raf.close();
} catch (Exception e) {
}
}

return mrpInfo;
}
}
赏

谢谢你请我吃糖果

微信
  • Java

扫一扫,分享到微信

微信分享二维码
Android11 无Root 访问data目录
打开系统隐藏的文档应用
目录,不存在的…
留言已关闭
:gddhy
© gddhy
Hexo Theme Yilia by Litten
  • 所有文章
  • 友链

tag:

  • Android
  • 软件分享
  • game
  • Hexo
  • JavaScript
  • 旧机博物馆
  • MIUI
  • Java
  • git
  • Termux
  • mtk
  • 原神
  • Win
  • Html
  • 安卓学习笔记

    缺失模块

  • Luminous' Home
  • 影子博客
  • 四次元领域
  • 初之音
  • Mr.Pumpkin
  • ZhaoQuinn 's Blog