From 22dd019aa589f400dc5c29dfe836c4b8d997e12d Mon Sep 17 00:00:00 2001 From: Tianjie Xu Date: Wed, 17 Oct 2018 15:39:00 -0700 Subject: [PATCH 1/3] Make the text image readable under recovery Encode the width, height and locale of the localized image as pixels so that recovery can locate the correct range of the image from a concatenated png file. Also address a few todoes including wrapping the CJK text, making a catch-all type for all languages. Test: view the generated image under locale test Change-Id: Icd3997eb4e992e76ef72526787d64c406f606970 --- tools/image_generator/ImageGenerator.java | 137 +++++++++++++++++++--- 1 file changed, 123 insertions(+), 14 deletions(-) diff --git a/tools/image_generator/ImageGenerator.java b/tools/image_generator/ImageGenerator.java index b9103379..8ed696a4 100644 --- a/tools/image_generator/ImageGenerator.java +++ b/tools/image_generator/ImageGenerator.java @@ -26,10 +26,12 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; -import java.util.Comparator; +import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; import java.util.TreeMap; import java.util.StringTokenizer; @@ -115,6 +117,25 @@ public class ImageGenerator { put("zh", "NotoSansCJK-Regular"); }}; + // Languages that write from right to left. + private static final Set RTL_LANGUAGE = new HashSet() {{ + add("ar"); // Arabic + add("fa"); // Persian + add("he"); // Hebrew + add("iw"); // Hebrew + add("ur"); // Urdu + }}; + + // Languages that breaks on arbitrary characters. + // TODO(xunchang) switch to icu library if possible. + private static final Set LOGOGRAM_LANGUAGE = new HashSet() {{ + add("ja"); // Japanese + add("km"); // Khmer + add("ko"); // Korean + add("lo"); // Lao + add("zh"); // Chinese + }}; + /** * Exception to indicate the failure to find the translated text strings. */ @@ -220,7 +241,20 @@ public class ImageGenerator { } Map result = - new TreeMap(Comparator.comparing(Locale::toLanguageTag)); + // Overrides the string comparator so that sr is sorted behind sr-Latn. And thus recovery + // can find the most relevant locale when going down the list. + new TreeMap<>((Locale l1, Locale l2) -> { + if (l1.toLanguageTag().equals(l2.toLanguageTag())) { + return 0; + } + if (l1.getLanguage().equals(l2.toLanguageTag())) { + return -1; + } + if (l2.getLanguage().equals(l1.toLanguageTag())) { + return 1; + } + return l1.toLanguageTag().compareTo(l2.toLanguageTag()); + }); // Find all the localized resource subdirectories in the format of values-$LOCALE String[] nameList = resourceDir.list( @@ -269,6 +303,8 @@ public class ImageGenerator { List wrappedText = new ArrayList<>(); StringTokenizer st = new StringTokenizer(text, " \n"); + // TODO(xunchang). We assume that all words can fit on the screen. Raise an + // IllegalStateException if the word is wider than the image width. StringBuilder line = new StringBuilder(); while (st.hasMoreTokens()) { String token = st.nextToken(); @@ -283,6 +319,25 @@ public class ImageGenerator { return wrappedText; } + /** + * One character is a word for CJK. + */ + private List wrapTextByCharacters(String text, FontMetrics metrics) { + List wrappedText = new ArrayList<>(); + + StringBuilder line = new StringBuilder(); + for (char token : text.toCharArray()) { + if (metrics.stringWidth(line + Character.toString(token)) > mImageWidth) { + wrappedText.add(line.toString()); + line = new StringBuilder(); + } + line.append(token); + } + wrappedText.add(line.toString()); + + return wrappedText; + } + /** * Wraps the text with a maximum of mImageWidth pixels per line. * @@ -292,14 +347,35 @@ public class ImageGenerator { * * @return a list of strings with their width smaller than mImageWidth pixels */ - private List wrapText(String text, FontMetrics metrics) { - // TODO(xunchang) handle other cases of text wrapping - // 1. RTL languages: "ar"(Arabic), "fa"(Persian), "he"(Hebrew), "iw"(Hebrew), "ur"(Urdu) - // 2. Language uses characters: CJK, "lo"(lao), "km"(khmer) + private List wrapText(String text, FontMetrics metrics, String language) { + if (LOGOGRAM_LANGUAGE.contains(language)) { + return wrapTextByCharacters(text, metrics); + } return wrapTextByWords(text, metrics); } + /** + * Encodes the information of the text image for |locale|. + * According to minui/resources.cpp, the width, height and locale of the image is decoded as: + * int w = (row[1] << 8) | row[0]; + * int h = (row[3] << 8) | row[2]; + * __unused int len = row[4]; + * char* loc = reinterpret_cast(&row[5]); + */ + private List encodeTextInfo(int width, int height, String locale) { + List info = new ArrayList<>(Arrays.asList(width & 0xff, width >> 8, + height & 0xff, height >> 8, locale.length())); + + byte[] localeBytes = locale.getBytes(); + for (byte b: localeBytes) { + info.add((int)b); + } + info.add(0); + + return info; + } + /** * Draws the text string on the canvas for given locale. * @@ -309,17 +385,23 @@ public class ImageGenerator { * @throws IOException if we cannot find the corresponding font file for the given locale. * @throws FontFormatException if we failed to load the font file for the given locale. */ - private void drawText(String text, Locale locale) throws IOException, FontFormatException { + private void drawText(String text, Locale locale, String languageTag, boolean centralAlignment) + throws IOException, FontFormatException { Graphics2D graphics = mBufferedImage.createGraphics(); graphics.setColor(Color.WHITE); graphics.setRenderingHint( RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP); graphics.setFont(loadFontsByLocale(locale.getLanguage())); - System.out.println("Drawing text for locale " + locale + " text " + text); + System.out.println("Encoding \"" + locale + "\" as \"" + languageTag + "\": " + text); FontMetrics fontMetrics = graphics.getFontMetrics(); - List wrappedText = wrapTextByWords(text, fontMetrics); + List wrappedText = wrapText(text, fontMetrics, locale.getLanguage()); + + // Marks the start y offset for the text image of current locale; and reserves one line to + // encode the image metadata. + int currentImageStart = mVerticalOffset; + mVerticalOffset += 1; for (String line : wrappedText) { int lineHeight = fontMetrics.getHeight(); // Doubles the height of the image if we are short of space. @@ -329,9 +411,23 @@ public class ImageGenerator { // Draws the text at mVerticalOffset and increments the offset with line space. int baseLine = mVerticalOffset + lineHeight - fontMetrics.getDescent(); - graphics.drawString(line, 0, baseLine); + + // Draws from right if it's an RTL language. + int x = centralAlignment ? (mImageWidth - fontMetrics.stringWidth(line)) / 2 : + RTL_LANGUAGE.contains(languageTag) ? mImageWidth - fontMetrics.stringWidth(line) : 0; + + graphics.drawString(line, x, baseLine); + mVerticalOffset += lineHeight; } + + // Encodes the metadata of the current localized image as pixels. + int currentImageHeight = mVerticalOffset - currentImageStart - 1; + List info = encodeTextInfo(mImageWidth, currentImageHeight, languageTag); + for (int i = 0; i < info.size(); i++) { + int pixel[] = { info.get(i) }; + mBufferedImage.getRaster().setPixel(i, currentImageStart, pixel); + } } /** @@ -362,11 +458,24 @@ public class ImageGenerator { */ public void generateImage(Map localizedTextMap, String outputPath) throws FontFormatException, IOException { + Map languageCount = new TreeMap<>(); for (Locale locale : localizedTextMap.keySet()) { - // TODO(xunchang) reprocess the locales for the same language and make the last locale the - // catch-all type. e.g. "zh-CN, zh-HK, zh-TW" will become "zh-CN, zh-HK, zh" - // Or maybe we don't need to support these variants? - drawText(localizedTextMap.get(locale), locale); + String language = locale.getLanguage(); + languageCount.put(language, languageCount.getOrDefault(language, 0) + 1 ); + } + + for (Locale locale : localizedTextMap.keySet()) { + Integer count = languageCount.get(locale.getLanguage()); + // Recovery expects en-US instead of en_US. + String languageTag = locale.toLanguageTag(); + if (count == 1) { + // Make the last country variant for a given language be the catch-all for that language. + languageTag = locale.getLanguage(); + } else { + languageCount.put(locale.getLanguage(), count - 1); + } + + drawText(localizedTextMap.get(locale), locale, languageTag, false); } // TODO(xunchang) adjust the width to save some space if all texts are smaller than imageWidth. From a2cff952cf28b33338a45bd57e37d04ebfaec93e Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Fri, 2 Nov 2018 15:44:07 -0700 Subject: [PATCH 2/3] updater: Error out on underrun during patching. Test: Run recovery_component_test on marlin. Change-Id: If23baf42aeacb48500edabc2eadd2e7119a848da --- tests/component/updater_test.cpp | 42 ++++++++++++++++++++++++++++++++ updater/blockimg.cpp | 5 +++- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/tests/component/updater_test.cpp b/tests/component/updater_test.cpp index 24c63e77..c611c229 100644 --- a/tests/component/updater_test.cpp +++ b/tests/component/updater_test.cpp @@ -664,6 +664,48 @@ TEST_F(UpdaterTest, block_image_update_patch_data) { ASSERT_EQ(tgt_content, updated_content); } +TEST_F(UpdaterTest, block_image_update_patch_underrun) { + std::string src_content = std::string(4096, 'a') + std::string(4096, 'c'); + std::string tgt_content = std::string(4096, 'b') + std::string(4096, 'd'); + + // Generate the patch data. We intentionally provide one-byte short target to trigger the underrun + // path. + TemporaryFile patch_file; + ASSERT_EQ(0, + bsdiff::bsdiff(reinterpret_cast(src_content.data()), src_content.size(), + reinterpret_cast(tgt_content.data()), + tgt_content.size() - 1, patch_file.path, nullptr)); + std::string patch_content; + ASSERT_TRUE(android::base::ReadFileToString(patch_file.path, &patch_content)); + + // Create the transfer list that contains a bsdiff. + std::string src_hash = get_sha1(src_content); + std::string tgt_hash = get_sha1(tgt_content); + std::vector transfer_list{ + // clang-format off + "4", + "2", + "0", + "2", + "stash " + src_hash + " 2,0,2", + android::base::StringPrintf("bsdiff 0 %zu %s %s 2,0,2 2 - %s:2,0,2", patch_content.size(), + src_hash.c_str(), tgt_hash.c_str(), src_hash.c_str()), + "free " + src_hash, + // clang-format on + }; + + PackageEntries entries{ + { "new_data", "" }, + { "patch_data", patch_content }, + { "transfer_list", android::base::Join(transfer_list, '\n') }, + }; + + ASSERT_TRUE(android::base::WriteStringToFile(src_content, image_file_)); + + // The update should fail due to underrun. + RunBlockImageUpdate(false, entries, image_file_, "", kPatchApplicationFailure); +} + TEST_F(UpdaterTest, block_image_update_fail) { std::string src_content(4096 * 2, 'e'); std::string src_hash = get_sha1(src_content); diff --git a/updater/blockimg.cpp b/updater/blockimg.cpp index 47849a15..c4c09098 100644 --- a/updater/blockimg.cpp +++ b/updater/blockimg.cpp @@ -1399,7 +1399,10 @@ static int PerformCommandDiff(CommandParameters& params) { // We expect the output of the patcher to fill the tgt ranges exactly. if (!writer.Finished()) { - LOG(ERROR) << "range sink underrun?"; + LOG(ERROR) << "Failed to fully write target blocks (range sink underrun): Missing " + << writer.AvailableSpace() << " bytes"; + failure_type = kPatchApplicationFailure; + return -1; } } else { LOG(INFO) << "skipping " << blocks << " blocks already patched to " << tgt.blocks() << " [" From 81ef508bd8a8607238aba469a57d32b794686498 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Mon, 5 Nov 2018 09:06:30 -0800 Subject: [PATCH 3/3] tests: Remove obsolete testdata files. testdata/jarsigned.zip and testdata/unsigned.zip became dead since commit 432918603f57de5a3acc6da9ff613d21c857d9fd ("Refactor existing tests to use gtest"). testdata/patch.bsdiff became dead when applypatch/applypatch.sh was deleted (commit c3ef089dfac921ef6ca04d5341a4035e8c4feb51). Test: Run recovery_unit_test and recovery_component_test. Change-Id: Ie1a7f8850878593fcb7d4554759a539271ffb207 --- tests/testdata/jarsigned.zip | Bin 2271 -> 0 bytes tests/testdata/patch.bsdiff | Bin 57476 -> 0 bytes tests/testdata/unsigned.zip | Bin 376 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/testdata/jarsigned.zip delete mode 100644 tests/testdata/patch.bsdiff delete mode 100644 tests/testdata/unsigned.zip diff --git a/tests/testdata/jarsigned.zip b/tests/testdata/jarsigned.zip deleted file mode 100644 index 8b1ef8bddb23751822eb3e6a2ddd5309310500d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2271 zcmaKt2{e@JAID$2Y+Z3>>rxt%>=}DaB<^MGGb&LS#yTdZWoWWwsfp2`#n^vJ4`!55{sw|4x>B{`dEu=bY!f@B4Yq`F@{szF%t?2d5~&%X+jE9Cd&# zBMNW=7RCreWm8KNRSQE)Qxju2LdC*ltq}muQQz=|833XE%$HSl(){XiLW!*|j( zNe3z|nmyr|^6STf`m?5%>ll@pLkd3n)07m_=`3PqnCLf9Oj&u6W_=vXGL4-bb0iZe=xkHc-eD)GIrzSOYHGH%(7+A^^9T>y|x}`rxSl zS=S;FD!LV~_?W|l&vkD7V^B8XgMLog(Ef7Ld*;~Z5&2_!Y`uBQnNVvO4=*FUc27P_ zS}$u^|6jqsu)h8jY-DVUP=TAAds`_KrUpdzr$^vMb2tu6v&ZR(Y6gIW5h@Oew$Wj> z1Y7d?!AuM|WQHD)Fm&s*fFcjo>}r$6pO-5hLtMoDr4>nwoULJjR1Ac>SL!7*OBvQH z?cJEL#}SJP$EH->+;xh7V(cB1pDf{`~nQAa~0_2w@ zyZTjRJhs_5`FZJx0bJE-Z0=#2O$m-h*Md!aIJ;P1qORuuS9xl1$i8)iZd*KrIOgs= zOK+^Wd3~QrWhi3TO3vO5C+=rHouIOGim?5c6T<&;!WM3*;fZv3-H_Wh{B9vVDK_29 zP^9}>xct*Db0YBujXMop@aY=W+_pe~o5pKQ`Sr+S_IXW9w$wW5Mv6RDR1$p%Ez3LL$9qv1JnWWD-%CfyOA;h*g>rU9 z1_sT-X3h3!%!*Quz?%fQ1Qrbj94TL80u_vx?kT7VV+4fVBW}fAXQv6K5s{RrU;KFv z6(*(K_mKrR`#8HeySaHed!o@uF;KG)+S?i9DMS}K<)N*9Se8dkPLboHh@2{iby|3C zRBUYjCpS|P{&l&XR`oIR+~;9IJN?R1-6E9Cs>itfG_r+I+Lfd@L%OKk64>x8H6+_> zXg&1`T`~QBP4T>C*Yr?dMpFv~3N>@u{~{#5ww++4)Xcm_IC!Nz$WGLk>0HuUG}{V| zUak%rVOs601~EE659PnvOOmM`oYyso(hd#p88xiCG>x+_XozhgSp@!7x&&_u19^e- zvT4OyLuF>#9UrWO_3kE( jnSUW!4pmFrHBZf{pR%HY_@jl$Y)SFPezJ}MZ^iIIj z)>6p7Qo6;lNQS~f`W>3lZLT|REz9JPZ*T8aQ%AsJ=SK6b;mOG3r8(_4=uYp|v4*cfU_)jYt>_FgP#l?xN}J?zVD=w4Q93o8i4$ zM($wyUD}=lq(VFUf~;PVuVfbVd^E$zVI}e8$@Mlwh<wxQil6pnf1Z#6T>LI5vOAnMJTAEOf!ujJ_Db41S3upF^~rbX4Fr8&gBxo<~vdl3&LJ@|vJ;*Ig}Lb~zN{2PncM&?oyg=`fhf?%3> z2YG!xe51B<4f9+Uauv)awI+4ps`P+s(Z|$+oLoloGt`&7m#+%PhC5<7r+S~odgE)R zCW*@3b@}d%!5_}RhgQ$~NA_ZyB#zT`C>ZL{=+ zlv`jLWp&NL%CAU69Y0L(1P3Fr>32U%^w{$!G~)7-O)VEz9__F7{oCoZAS=3A0d{$= zHH;Gg9&`UM!1!2E1$^%=Sv5T^)=OYxu>pdBiyeXs;IN0v!t4S7z!QZ=U*Ova|4o8l zreAR@f&5N5{va-SqOhnPM2?G2&sM_qJ8}L8fxCc3yRis1c2QunQ@57SMyGC{pM|rd zVRxRgHMlp5YICMp+n=ZWsI7m|TU^@+_swClieNjI qn!L$Qve@mG?__t{y~)b*0Kj(htzldnH^aJqZUDy;Wy|^l0R90pvXUDB diff --git a/tests/testdata/patch.bsdiff b/tests/testdata/patch.bsdiff deleted file mode 100644 index b78d385736c6688c4a7ee93ebe1bead473127f6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57476 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 RaUcD~+>uTcBpo-AeL$n{gRB4m diff --git a/tests/testdata/unsigned.zip b/tests/testdata/unsigned.zip deleted file mode 100644 index 24e3eadacdf88d2d0f77d39463b9479514ea64f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmWIWW@h1H0D-`!PHP1ND>F7A8-y7dL>Ur8LpT|jBkdHtK{&L6g`r=xLpUQfCnujP z0Io9#sFPd%p*FJ4B(TmHpe_)G=`6`eElNew84T39BGKY5vd(0%&N!eh5Qgb2&o9bJ z0qSIA5@*KcUS5zlfbM2sSkMS!0bS1uaeZh70|T;NOcx{TwF2q|x*w<);&xQMm~KYa eTLRPz^Z`&W#PuM(tRU|(FazNhAiWO6VE_QeWIKug