Skip to content

Commit 0650685

Browse files
committed
feat: v2前面新增对齐
1 parent 1627b34 commit 0650685

File tree

5 files changed

+35
-14
lines changed

5 files changed

+35
-14
lines changed

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Apk_Signature_Tools.iml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
<content url="file://$MODULE_DIR$">
66
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
77
</content>
8-
<orderEntry type="inheritedJdk" />
8+
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
99
<orderEntry type="sourceFolder" forTests="false" />
1010
</component>
11-
</module>
12-
11+
</module>

config.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<config>
33
<!--密钥文件路径-->
4-
<path>D:\your.jks</path>
4+
<path>D:\ITCode\DeMon.jks</path>
55
<!--密钥密码-->
6-
<storePassword>storePassword</storePassword>
6+
<storePassword>123456</storePassword>
77
<!--密钥别名-->
8-
<keyAlias>keyAlias</keyAlias>
8+
<keyAlias>key</keyAlias>
99
<!--密钥别名密码-->
10-
<keyPassword>keyPassword</keyPassword>
10+
<keyPassword>123456</keyPassword>
1111
</config>

src/sample/Controller.java

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,11 @@
66
import javafx.scene.control.Label;
77
import javafx.scene.control.TextField;
88
import javafx.scene.layout.AnchorPane;
9-
import javafx.stage.DirectoryChooser;
109
import javafx.stage.FileChooser;
1110
import javafx.stage.Stage;
1211

1312
import java.io.File;
14-
import java.io.FileReader;
15-
import java.io.IOException;
1613
import java.net.URL;
17-
import java.nio.file.FileVisitOption;
1814
import java.util.ResourceBundle;
1915

2016
public class Controller implements Initializable {
@@ -115,7 +111,7 @@ public void openApk(ActionEvent actionEvent) {
115111
if (Utils.isEmpty(msg)) {
116112
tvMsg.setText("Apk尚未签名,可以开始签名!");
117113
} else {
118-
tvMsg.setText("Apk已签名,可以尝试重新签名!\n"+msg);
114+
tvMsg.setText("Apk已签名,可以尝试重新签名!\n" + msg);
119115
}
120116
}
121117
}
@@ -138,26 +134,52 @@ public void signOld(ActionEvent actionEvent) {
138134
tvMsg.setText("旧v1签名成功!\n" + msg);
139135
} else {
140136
tvMsg.setText("旧v1签名失败!可能存在的原因:\n1.密钥别名or密码配置错误!\n2.已使用新v1&v2签名过的Apk,无法使用旧v1签名重新签名。\n" + msg);
137+
File signApk = new File(signPath);
138+
if (signApk.exists()) {
139+
signApk.delete();
140+
}
141141
}
142142
}
143143
}
144144

145145
public void signNew(ActionEvent actionEvent) {
146146
if (checkStatus()) {
147+
//对齐
148+
String alignapk = new File(tfApk.getText()).getParent() + "\\sign_align-" + System.currentTimeMillis() + ".apk";
149+
String align = "zipalign -v 4 " + tfApk.getText() + " " + alignapk;
150+
String alignMsg = Utils.exeCmd(align);
151+
if (new File(alignapk).exists()) {
152+
tvMsg.setText("新v1&v2对齐成功!\n" + alignMsg);
153+
} else {
154+
tvMsg.setText("新v1&v2对齐失败!\n" + alignMsg);
155+
return;
156+
}
147157
String signPath = new File(tfApk.getText()).getParent() + "\\sign_new-" + System.currentTimeMillis() + ".apk";
148158
String cmd = "java -jar apksigner.jar sign --ks " + KeyConfig.getInstance().getPath()
149159
+ " --ks-key-alias " + KeyConfig.getInstance().getKeyAlias()
150160
+ " --ks-pass pass:" + KeyConfig.getInstance().getStorePassword()
151161
+ " --key-pass pass:" + KeyConfig.getInstance().getKeyPassword()
152162
+ " --out "
153163
+ signPath + " "
154-
+ tfApk.getText();
164+
+ alignapk;
155165
String msg = Utils.exeCmd(cmd);
156166
if (new File(signPath).exists()) {
157167
tfSign.setText(signPath);
158168
tvMsg.setText("新v1&v2签名成功!\n" + msg);
169+
File alignapkFile = new File(alignapk);
170+
if (alignapkFile.exists()) {
171+
alignapkFile.delete();
172+
}
159173
} else {
160174
tvMsg.setText("新v1&v2签名失败!可能存在的原因:\n密钥别名or密码配置错误!\n" + msg);
175+
File signApk = new File(signPath);
176+
if (signApk.exists()) {
177+
signApk.delete();
178+
}
179+
}
180+
File alignapkFile = new File(alignapk);
181+
if (alignapkFile.exists()) {
182+
alignapkFile.delete();
161183
}
162184
}
163185
}

zipalign.exe

728 KB
Binary file not shown.

0 commit comments

Comments
 (0)