Merge "Indicate that all emulator images support USB" into nyc-dev
diff --git a/tools/droiddoc/templates-sdk-dev/class.cs b/tools/droiddoc/templates-sdk-dev/class.cs
index faae8a7..dee7a4c 100644
--- a/tools/droiddoc/templates-sdk-dev/class.cs
+++ b/tools/droiddoc/templates-sdk-dev/class.cs
@@ -612,6 +612,32 @@
<!-- ========= END OF CLASS DATA ========= -->
</div><!-- end jd-content -->
+
+<?cs if:devsite ?>
+
+<div class="data-reference-resources-wrapper">
+ <?cs if:subcount(class.package) ?>
+ <ul data-reference-resources>
+ <?cs call:list("Annotations", class.package.annotations) ?>
+ <?cs call:list("Interfaces", class.package.interfaces) ?>
+ <?cs call:list("Classes", class.package.classes) ?>
+ <?cs call:list("Enums", class.package.enums) ?>
+ <?cs call:list("Exceptions", class.package.exceptions) ?>
+ <?cs call:list("Errors", class.package.errors) ?>
+ </ul>
+ <?cs elif:subcount(package) ?>
+ <ul data-reference-resources>
+ <?cs call:class_link_list("Annotations", package.annotations) ?>
+ <?cs call:class_link_list("Interfaces", package.interfaces) ?>
+ <?cs call:class_link_list("Classes", package.classes) ?>
+ <?cs call:class_link_list("Enums", package.enums) ?>
+ <?cs call:class_link_list("Exceptions", package.exceptions) ?>
+ <?cs call:class_link_list("Errors", package.errors) ?>
+ </ul>
+ <?cs /if ?>
+</div>
+<?cs /if ?>
+
<?cs if:!devsite ?>
<?cs include:"footer.cs" ?>
<?cs include:"trailer.cs" ?>
diff --git a/tools/droiddoc/templates-sdk-dev/classes.cs b/tools/droiddoc/templates-sdk-dev/classes.cs
index 2793db3..007b57e 100644
--- a/tools/droiddoc/templates-sdk-dev/classes.cs
+++ b/tools/droiddoc/templates-sdk-dev/classes.cs
@@ -36,6 +36,31 @@
</table>
<?cs /each ?>
+<?cs if:devsite ?>
+<div class="data-reference-resources-wrapper">
+ <?cs if:subcount(class.package) ?>
+ <ul data-reference-resources>
+ <?cs call:list("Annotations", class.package.annotations) ?>
+ <?cs call:list("Interfaces", class.package.interfaces) ?>
+ <?cs call:list("Classes", class.package.classes) ?>
+ <?cs call:list("Enums", class.package.enums) ?>
+ <?cs call:list("Exceptions", class.package.exceptions) ?>
+ <?cs call:list("Errors", class.package.errors) ?>
+ </ul>
+ <?cs elif:subcount(package) ?>
+ <ul data-reference-resources>
+ <?cs call:class_link_list("Annotations", package.annotations) ?>
+ <?cs call:class_link_list("Interfaces", package.interfaces) ?>
+ <?cs call:class_link_list("Classes", package.classes) ?>
+ <?cs call:class_link_list("Enums", package.enums) ?>
+ <?cs call:class_link_list("Exceptions", package.exceptions) ?>
+ <?cs call:class_link_list("Errors", package.errors) ?>
+ </ul>
+ <?cs /if ?>
+</div>
+<?cs /if ?>
+
+
<?cs if:!devsite ?>
<?cs include:"footer.cs" ?>
<?cs include:"trailer.cs" ?>
diff --git a/tools/droiddoc/templates-sdk-dev/package.cs b/tools/droiddoc/templates-sdk-dev/package.cs
index 460a67b..d3efdda 100644
--- a/tools/droiddoc/templates-sdk-dev/package.cs
+++ b/tools/droiddoc/templates-sdk-dev/package.cs
@@ -31,6 +31,31 @@
<?cs call:class_table("Errors", package.errors) ?>
</div><!-- end apilevel -->
+
+<?cs if:devsite ?>
+<div class="data-reference-resources-wrapper">
+ <?cs if:subcount(class.package) ?>
+ <ul data-reference-resources>
+ <?cs call:list("Annotations", class.package.annotations) ?>
+ <?cs call:list("Interfaces", class.package.interfaces) ?>
+ <?cs call:list("Classes", class.package.classes) ?>
+ <?cs call:list("Enums", class.package.enums) ?>
+ <?cs call:list("Exceptions", class.package.exceptions) ?>
+ <?cs call:list("Errors", class.package.errors) ?>
+ </ul>
+ <?cs elif:subcount(package) ?>
+ <ul data-reference-resources>
+ <?cs call:class_link_list("Annotations", package.annotations) ?>
+ <?cs call:class_link_list("Interfaces", package.interfaces) ?>
+ <?cs call:class_link_list("Classes", package.classes) ?>
+ <?cs call:class_link_list("Enums", package.enums) ?>
+ <?cs call:class_link_list("Exceptions", package.exceptions) ?>
+ <?cs call:class_link_list("Errors", package.errors) ?>
+ </ul>
+ <?cs /if ?>
+</div>
+<?cs /if ?>
+
<?cs if:!devsite ?>
<?cs include:"footer.cs" ?>
<?cs include:"trailer.cs" ?>
diff --git a/tools/droiddoc/templates-sdk-dev/packages.cs b/tools/droiddoc/templates-sdk-dev/packages.cs
index 4db2ea9..3fcfb81 100644
--- a/tools/droiddoc/templates-sdk-dev/packages.cs
+++ b/tools/droiddoc/templates-sdk-dev/packages.cs
@@ -21,6 +21,30 @@
<?cs /each ?>
</table>
+<?cs if:devsite ?>
+<div class="data-reference-resources-wrapper">
+ <?cs if:subcount(class.package) ?>
+ <ul data-reference-resources>
+ <?cs call:list("Annotations", class.package.annotations) ?>
+ <?cs call:list("Interfaces", class.package.interfaces) ?>
+ <?cs call:list("Classes", class.package.classes) ?>
+ <?cs call:list("Enums", class.package.enums) ?>
+ <?cs call:list("Exceptions", class.package.exceptions) ?>
+ <?cs call:list("Errors", class.package.errors) ?>
+ </ul>
+ <?cs elif:subcount(package) ?>
+ <ul data-reference-resources>
+ <?cs call:class_link_list("Annotations", package.annotations) ?>
+ <?cs call:class_link_list("Interfaces", package.interfaces) ?>
+ <?cs call:class_link_list("Classes", package.classes) ?>
+ <?cs call:class_link_list("Enums", package.enums) ?>
+ <?cs call:class_link_list("Exceptions", package.exceptions) ?>
+ <?cs call:class_link_list("Errors", package.errors) ?>
+ </ul>
+ <?cs /if ?>
+</div>
+<?cs /if ?>
+
<?cs if:!devsite ?>
<?cs include:"footer.cs" ?>
<?cs include:"trailer.cs" ?>
diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py
index d49112f..82d5397 100644
--- a/tools/releasetools/blockimgdiff.py
+++ b/tools/releasetools/blockimgdiff.py
@@ -556,12 +556,22 @@
total += self.tgt.extended.size()
# We erase all the blocks on the partition that a) don't contain useful
- # data in the new image and b) will not be touched by dm-verity.
+ # data in the new image; b) will not be touched by dm-verity. Out of those
+ # blocks, we erase the ones that won't be used in this update at the
+ # beginning of an update. The rest would be erased at the end. This is to
+ # work around the eMMC issue observed on some devices, which may otherwise
+ # get starving for clean blocks and thus fail the update. (b/28347095)
all_tgt = RangeSet(data=(0, self.tgt.total_blocks))
all_tgt_minus_extended = all_tgt.subtract(self.tgt.extended)
new_dontcare = all_tgt_minus_extended.subtract(self.tgt.care_map)
- if new_dontcare:
- out.append("erase %s\n" % (new_dontcare.to_string_raw(),))
+
+ erase_first = new_dontcare.subtract(self.touched_src_ranges)
+ if erase_first:
+ out.insert(0, "erase %s\n" % (erase_first.to_string_raw(),))
+
+ erase_last = new_dontcare.subtract(erase_first)
+ if erase_last:
+ out.append("erase %s\n" % (erase_last.to_string_raw(),))
out.insert(0, "%d\n" % (self.version,)) # format version number
out.insert(1, "%d\n" % (total,))