Change Manifest file name to "FrameworkArchiveManifest.xml".
Modify Md5 format in FrameworkArchiveMainfest.xml file.
Add Md5 verification when install FAR.
Fix the bug of Far installation can't work with Sun JDK 1.5.0_04 version.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1029
6f19259b-4bc3-4df7-8a09-
765794883524
byte[] totalBuffer = new byte[(int) tempFile.length()];\r
FileInputStream fis = new FileInputStream(tempFile);\r
fis.read(totalBuffer);\r
byte[] totalBuffer = new byte[(int) tempFile.length()];\r
FileInputStream fis = new FileInputStream(tempFile);\r
fis.read(totalBuffer);\r
+ //\r
+ // Check Md5\r
+ //\r
+ if (!ffItem.getMd5Value().equalsIgnoreCase(FarMd5.md5(totalBuffer))){\r
+ throw new Exception (ffItem.getRelativeFilename() + " Md5 is invaild!");\r
+ }\r
outputStream.write(totalBuffer);\r
fis.close();\r
tempFile.delete();\r
outputStream.write(totalBuffer);\r
fis.close();\r
tempFile.delete();\r
static public String md5(byte[] buffer) throws Exception {\r
MessageDigest md = MessageDigest.getInstance("MD5");\r
byte[] md5 = md.digest(buffer);\r
static public String md5(byte[] buffer) throws Exception {\r
MessageDigest md = MessageDigest.getInstance("MD5");\r
byte[] md5 = md.digest(buffer);\r
- return new String(String.format("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", md5[0], md5[1], md5[2], md5[3], md5[4],\r
+ return new String(String.format("%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", md5[0], md5[1], md5[2], md5[3], md5[4],\r
md5[5], md5[6], md5[7], md5[8], md5[9], md5[10], md5[11], md5[12], md5[13],\r
md5[14], md5[15]));\r
\r
md5[5], md5[6], md5[7], md5[8], md5[9], md5[10], md5[11], md5[12], md5[13],\r
md5[14], md5[15]));\r
\r
// /\r
// / Mainfest file element name\r
// /\r
// /\r
// / Mainfest file element name\r
// /\r
- final static String mfFileName = "FarMainfest.MF";\r
+ final static String mfFileName = "FrameworkArhciveMainfest.xml";\r
//\r
// Mainfest file\r
//\r
//\r
// Mainfest file\r
//\r
+ public File mfFile = null;\r
\r
public FarHeader getHeader() {\r
return fhInfo;\r
\r
public FarHeader getHeader() {\r
return fhInfo;\r
Source source = new DOMSource(this.mainfestDoc);\r
//\r
// Prepare the output file, get the Mainifest file name from <FarHeader>\r
Source source = new DOMSource(this.mainfestDoc);\r
//\r
// Prepare the output file, get the Mainifest file name from <FarHeader>\r
//\r
this.mfFile = new File(Workspace.getCurrentWorkspace() + File.separatorChar + mfFileName);\r
//\r
//\r
this.mfFile = new File(Workspace.getCurrentWorkspace() + File.separatorChar + mfFileName);\r
//\r
//\r
Result result = new StreamResult(this.mfFile);\r
xformer.transform(source, result);\r
//\r
Result result = new StreamResult(this.mfFile);\r
xformer.transform(source, result);\r
+ //\r
+ // Close result. Flush file by manual for Jdk1.5.0_04. \r
+ //\r
+ ((StreamResult) result).getOutputStream().close();\r
}\r
\r
public void pkgToFarPkgNode(Element parentNode, FarPackage pkgItem) {\r
}\r
\r
public void pkgToFarPkgNode(Element parentNode, FarPackage pkgItem) {\r