android: plumb Android branch via LKGB

- WriteLKGB takes Android branch as an optional param; branch info is
  included in the generated LKGB file.
- uprev_android_lkgb (called by PUpr) reads the branch info from LKGB
  and sends it down to cros_mark_android_as_stable.

BUG=b:259008604
TEST=./run_tests
TEST=./api/contrib/gen_call_scripts; ./api/contrib/call_scripts/android__write_lkgb

Change-Id: I19b2ef4700459f162266f9ebf0297fdfb57e26ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4600548
Reviewed-by: Gilberto Contreras <gcontreras@google.com>
Commit-Queue: Shao-Chuan Lee <shaochuan@chromium.org>
Tested-by: Shao-Chuan Lee <shaochuan@chromium.org>
diff --git a/api/controller/android.py b/api/controller/android.py
index faeb29b..ab8111f 100644
--- a/api/controller/android.py
+++ b/api/controller/android.py
@@ -147,6 +147,10 @@
 def WriteLKGB(input_proto, output_proto, _config):
     android_package = input_proto.android_package
     android_version = input_proto.android_version
+    android_branch = (
+        input_proto.android_branch
+        or android.GetAndroidBranchForPackage(android_package)
+    )
     android_package_dir = android.GetAndroidPackageDir(android_package)
 
     # Attempt to read current LKGB, if available.
@@ -171,7 +175,9 @@
         )
 
     lkgb = android.LKGB(
-        build_id=android_version, runtime_artifacts_pin=runtime_artifacts_pin
+        build_id=android_version,
+        branch=android_branch,
+        runtime_artifacts_pin=runtime_artifacts_pin,
     )
 
     # Do nothing if LKGB is already set to the requested version.