Note: newnetclient is the source code directory name,
Current environment variable settings: JDK, Android SDK, and OpenSSL environment variables.
Required package files: Android. jar, signapk. jar.
C:/APK/Hello/GEN/Android/Hello
Javac C:/APK/Hello/*. Java-classpath C:/testapk/Android. jar-d c:/APK/classes
@ REM: regenerates the R. Java file automatically, for example, adding an image or string or adding an XML file in the layout directory.
C:/users/Dell> aapt package-m-j c:/APK/newnetclient/Gen-m c:/APK/newnetclient/androidmanifest. XML-s c:/APK/newnetclient/RES-I c:/APK/android. jar
@ REM: regenerates the R. Java file automatically, for example, adding an image or string or adding an XML file in the layout directory.
Aapt package-m-J Src-m c:/APK/newnetclient/androidmanifest. XML-s c:/APK/newnetclient/RES-I c:/APK/Android. Jar
@ REM compile the Java file including R. Java and output it to C:/APK/classes.
C:/users/Dell> javac C:/APK/Hello/src/Android/Hello/*. Java C:/APK/Hello/GEN/Andro
ID/Hello/*. Java-classpath C:/testapk/Android. jar-d c:/APK/classes
@ REM package the *. Class file in the Directory into a jar package. In order to create the classes. Dex file required by the APK later (the generated file is in the current directory *. * Relative Path)
C:/APK/classes> jar cvf ffff. jar *.*
@ REM: Convert the jar package to the DEX file that can be run by the Android mobile phone.
C:/APK/classes> DX -- Dex -- output = classes. Dex C:/APK/classes/FFFF. Jar
@ REM Delete the object if it exists.
If exist fffnew3.apk .(
Del fffnew3.apk.
Echo message AB
) Else (
Echo fffnew3.apk. Missing.
Echo message AB C
)
@ REM generate application APK file ffffqc.apk
C:/APK/classes> aapt package-z-u-F-m c:/APK/Hello/androidmanifest. XML-s c:/APK/Hello/RES-I c:/testapk/android. jar-f c:/ffffqc.apk
@ REM: compress the classes. Dex file generated earlier to the APK file to generate a running APK application.
C:/APK/classes> aapt add C:/ffffqc.apk classes. Dex
@ REM Method 1: automatically sign the generated APK. An unsigned APK cannot be installed.
C:/testapk> JAVA-jar signapk. Jar aimoxiu. x509.pem aimoxiu. pk8 C:/APK/classes/fffnew3.apk fffnew3last.apk
"C:/program files/Java/jre6/bin/jarsigner"-verbose-keystore "D:/apksign/myand. keystore "-signedjar % 1% 2" D:/apksign/myand. keystore"
@ REM Private Key Generation Method
@ REM generate RSA private key)
OpenSSL genrsa-3-out testkey. pem 2048
@ REM generates an authentication request in PKCS #10 format. An authentication request is a request sent to the certification authority. It mainly includes a public key and related information (such as the organization name and contact email address ).
OpenSSL req-New-X509-key testkey. PEM-out testkey. x509.pem-days 10000/-subj '/C = US/ST = California/L = Mountain View/o = Android/ou = Android/CN = Android/emailaddress = android@android.com'
@ REM converts the private key format to PKCS #8 (private-key information syntax standard .)
OpenSSL pkcs8-In testkey. pem-topk8-outform der-out testkey. pk8-nocrypt
Its usage is as follows:
Usage: signapk publickey. X509 [. pem] privatekey. pk8 input. Jar output. Jar
The first parameter is the public key, that is, testkey. x509.pem generated in the previous step.
The second parameter is the private key, that is, testkey. pk8 generated in step 3.
The third parameter is the file to be signed.
The fourth parameter is the output file (the signed file ).
Example: Java-jar signapk. Jar testkey. x509.pem testkey. pk8 update.zip update-signed.zip
@ REM Method 2: keytool generates myandf. keystore signature jarsigner generates the signed APK File
Keytool-genkey-alias myandf. keystore-keyalg RSA-validity 20000-keystore myandf. keystore
Jarsigner-verbose-keystore myandf. keystore-signedjar fffnew3last.apk fffnew3.apk myandf. keystore (password 123456 1234567)
Start packaging:
Javac C:/users/Dell> javac C:/APK/newnetclient/GEN/COM/palmdream/newnetclient /*. java C:/APK/newnetclient/src/COM/palmdream/CORE /*. java C:/APK/newnetclient/src/COM/palmdream/listholder /*. java C:/APK/newnetclient/src/COM/palmdream/netengine /*. java C:/APK/newnetclient/src/COM/palmdream/newnetclient /*. java C:/APK/newnetclient/src/COM/palmdream/xmldata /*. java C:/APK/newnetclient/src/org/kxml2/IO /*. java C:/APK/newnetclient/src/org/xmlpull/V1 /*. java-classpath C:/APK/android. jar-d c:/APK/classes
Echo javac is OK
C:/APK/classes> jar CVF fffnew3.jar COM/*. * ORG /*.*
Echo jar CVF is OK
C:/APK/classes> DX -- Dex -- output = C:/APK/classes. Dex C:/APK/classes/fffnew3.jar
Echo DX -- Dex OK
C:/APK/classes> aapt package-z-u-F-m c:/APK/newnetclient/androidmanifest. XML-s c:/APK/newnetclient/RES-I c:/APK/android. jar-f c:/fffnew3.apk
Echo aapt package OK
C:/APK/classes> aapt add C:/fffnew3.apk classes. Dex
Echo aapt add OK
C:/testapk> JAVA-jar signapk. Jar aimoxiu. x509.pem aimoxiu. pk8 fffnew3.apk fffnew3last.apk
Echo Java last OK
Complete
@ REM multi-thread control start stop start new threads and transfer headers when the network is connected.
@ REM Android-based code protection
Add comments