From 14d38ebeb58c3ab86e109bdf2f0147baeedec867 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 14 Jul 2014 06:00:34 -0700 Subject: [PATCH 0001/1096] "LRW14B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index dd020250292..e4ea2c4cfd4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LDW13B +export BUILD_ID=LRW14B From 60cbf9d76d4c5180d8900c4f1f83da35ec8ba098 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 14 Jul 2014 16:10:47 -0700 Subject: [PATCH 0002/1096] "LRW14C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e4ea2c4cfd4..dc53d0c87df 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW14B +export BUILD_ID=LRW14C From 44eee614b1fbb215fdbc11fc6557c2acae7b91a8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 15 Jul 2014 05:20:15 -0700 Subject: [PATCH 0003/1096] "LRW15" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..35753ab000f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW15 From ac34efde62840bb8ad0c915cb4fd69a8cb6d060e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 15 Jul 2014 10:31:49 -0700 Subject: [PATCH 0004/1096] "LRW15B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 35753ab000f..d905752701c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW15 +export BUILD_ID=LRW15B From cbecaee42e594265198a914c426038e9fc4e5f78 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 15 Jul 2014 12:02:59 -0700 Subject: [PATCH 0005/1096] LRW15C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d905752701c..ff9d4ff6a0f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW15B +export BUILD_ID=LRW15C From 5ea3b0bf3378868751c5f9e21995f91253bd2c5c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 15 Jul 2014 17:12:05 -0700 Subject: [PATCH 0006/1096] "LRW14D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ff9d4ff6a0f..136f75cf6cc 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW15C +export BUILD_ID=LRW14D From 4cabdf1b5f73a08fd93ce6569ccbc44d129dd4fa Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 15 Jul 2014 19:01:18 -0700 Subject: [PATCH 0007/1096] LRW15D --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 136f75cf6cc..3f2e2401ea1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW14D +export BUILD_ID=LRW15D From 7e228a40e05fbaddd06bf911857f5f075c3f1e49 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 16 Jul 2014 05:19:46 -0700 Subject: [PATCH 0008/1096] "LRW16" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..420a60b9807 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW16 From 8a3ebf5f0e409738348989fab809a0c9a291cf50 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 16 Jul 2014 15:11:34 -0700 Subject: [PATCH 0009/1096] "LRW16B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 420a60b9807..66eabaf66ef 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW16 +export BUILD_ID=LRW16B From b094cdb55310c8fe622a4dd142edd7b266e10398 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 17 Jul 2014 05:14:35 -0700 Subject: [PATCH 0010/1096] "LRW17" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a2f9a2619b6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW17 From 36067d1d21cad33a4c229bab031c9fedb7441229 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 17 Jul 2014 11:36:25 -0700 Subject: [PATCH 0011/1096] "LRW17B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a2f9a2619b6..603f12234b6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW17 +export BUILD_ID=LRW17B From 4f946d9c759b109ec818466e194b4fa2daa0a04e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 17 Jul 2014 15:05:44 -0700 Subject: [PATCH 0012/1096] "LRW17C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 603f12234b6..e246d41b548 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW17B +export BUILD_ID=LRW17C From faec89558ea9b398c60f3082ca8efb6d8912509c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 17 Jul 2014 23:54:10 -0700 Subject: [PATCH 0013/1096] "LRW17D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e246d41b548..c632b6dd599 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW17C +export BUILD_ID=LRW17D From c201f001c63ae966f75e88f5f58894c415c83feb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 19 Jul 2014 03:11:57 -0700 Subject: [PATCH 0014/1096] "LRW19" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..96eba56499a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW19 From 940db26dc96c4dc646bbff13098c7fa88076e305 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 20 Jul 2014 06:10:32 -0700 Subject: [PATCH 0015/1096] "LRW20" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..9dd3c928d2a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW20 From 79342e4635927405533b674ba5de61992aeca3e6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 21 Jul 2014 06:09:41 -0700 Subject: [PATCH 0016/1096] "LRW21" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..7c2dd94c886 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW21 From 21d5d0d5a4174795090deaa6fe3c9d3113934ec9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 21 Jul 2014 14:53:35 -0700 Subject: [PATCH 0017/1096] "LRW21B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7c2dd94c886..124778e8c8c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW21 +export BUILD_ID=LRW21B From d22b381f437135fc55a5b84080cab7dff9c40f96 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 21 Jul 2014 17:33:32 -0700 Subject: [PATCH 0018/1096] "LRW21C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 124778e8c8c..edd7a8d10e9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW21B +export BUILD_ID=LRW21C From b106db64e8d3c6807c06b65db474e073044f3002 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 21 Jul 2014 19:00:07 -0700 Subject: [PATCH 0019/1096] LRW21D --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index edd7a8d10e9..bf8a4b85af3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW21C +export BUILD_ID=LRW21D From 721b1fa38e46b6ec0507e1de290febc41aa2490c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 22 Jul 2014 06:11:11 -0700 Subject: [PATCH 0020/1096] "LRW22" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a81de9414aa 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW22 From e81afcb4e7daa40aa5937460bc5a14384ec3688e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 22 Jul 2014 14:27:02 -0700 Subject: [PATCH 0021/1096] "LRW22B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a81de9414aa..5121d7433b2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW22 +export BUILD_ID=LRW22B From 9bdcfec5656fdfe04aa196639b7575ea29322acc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 23 Jul 2014 06:12:18 -0700 Subject: [PATCH 0022/1096] "LRW23" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..cadabaeeb78 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW23 From 237ee05499a4b8fa696e97b97778823984c4c3e9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 23 Jul 2014 14:47:56 -0700 Subject: [PATCH 0023/1096] "LRW23B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cadabaeeb78..26e5d629092 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW23 +export BUILD_ID=LRW23B From f846a4ea5d36889ccad94566d94bf2cdf5b02bde Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 23 Jul 2014 15:40:25 -0700 Subject: [PATCH 0024/1096] "LRW23C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 26e5d629092..595df28f808 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW23B +export BUILD_ID=LRW23C From b7db98f40063b846f1a7a4ea22f7434fd0c73294 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 24 Jul 2014 06:11:07 -0700 Subject: [PATCH 0025/1096] "LRW24" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..e13f1a23829 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW24 From c5a59ea24206204fcadcc9359b2b2c1f6bd716cb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 24 Jul 2014 12:08:46 -0700 Subject: [PATCH 0026/1096] "LRW24B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e13f1a23829..f3c8b9432be 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW24 +export BUILD_ID=LRW24B From f6e46dc1881694be365670e00568fdd8061302fc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 24 Jul 2014 14:28:12 -0700 Subject: [PATCH 0027/1096] "LRW24C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f3c8b9432be..a8890616143 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW24B +export BUILD_ID=LRW24C From 2ae182d8dea22cd6a0df59a5226805333e4bca4f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 24 Jul 2014 16:05:16 -0700 Subject: [PATCH 0028/1096] "LRW24D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a8890616143..dbc40306ee4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW24C +export BUILD_ID=LRW24D From 9118efb22b7573bbdefd3807c1aaf26051e7a52e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 24 Jul 2014 18:26:43 -0700 Subject: [PATCH 0029/1096] "LRW24E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index dbc40306ee4..4c5df4446ce 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW24D +export BUILD_ID=LRW24E From 44e0bc52ddcd9396202f25bd280a50f63392497e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 25 Jul 2014 00:27:32 -0700 Subject: [PATCH 0030/1096] "LRW24F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4c5df4446ce..4f9b7d01068 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW24E +export BUILD_ID=LRW24F From c0a149f6ff8e7f793f3285b31716c8c86e9934e2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 25 Jul 2014 12:37:39 -0700 Subject: [PATCH 0031/1096] "LRW24G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4f9b7d01068..f9ede45f47a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW24F +export BUILD_ID=LRW24G From 2231160c80e1c12146b2585bf1572f34c8109485 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 26 Jul 2014 06:12:11 -0700 Subject: [PATCH 0032/1096] "LRW26" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..75e9f5663a0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW26 From 31f185c87173493355ada6cb80d6ce47f5650d18 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 27 Jul 2014 06:09:28 -0700 Subject: [PATCH 0033/1096] "LRW27" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a19e4846ab5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW27 From 97717dd8de742ce2dba45fb6604cb58c2d07eaee Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 28 Jul 2014 09:21:18 -0700 Subject: [PATCH 0034/1096] "LRW28" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..d4ae8010a70 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW28 From 7d2a12ad7174d7858f4096a19a6612f9526208e7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 28 Jul 2014 14:33:09 -0700 Subject: [PATCH 0035/1096] "LRW28B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d4ae8010a70..80d81551b10 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW28 +export BUILD_ID=LRW28B From 6e469d1e89536e9bf20e419d53cbcb9f156ef2a5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 29 Jul 2014 06:12:41 -0700 Subject: [PATCH 0036/1096] "LRW29" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..456fb6c001c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW29 From bf3ed1260dd87cae288563ae55ce3f15b45d13f1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 29 Jul 2014 14:53:07 -0700 Subject: [PATCH 0037/1096] "LRW29B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 456fb6c001c..88f8649c4da 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW29 +export BUILD_ID=LRW29B From 4cac87381c638cdfd3076bb149dc5789f71c39cc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 29 Jul 2014 18:22:49 -0700 Subject: [PATCH 0038/1096] "LRW29C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 88f8649c4da..636453eedbc 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW29B +export BUILD_ID=LRW29C From ad2796974cc316fd717bc3d62ab98d9b11af1c36 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 30 Jul 2014 10:21:45 -0700 Subject: [PATCH 0039/1096] "LRW29D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 636453eedbc..563213b20ad 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW29C +export BUILD_ID=LRW29D From b74d135b010ac52fde556ab6142c59473d70b114 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 30 Jul 2014 15:59:21 -0700 Subject: [PATCH 0040/1096] "LRW29E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 563213b20ad..b1071580a7c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW29D +export BUILD_ID=LRW29E From 2f94575b861da36b83a2a6ef918dfd54c6541fe8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 30 Jul 2014 18:46:40 -0700 Subject: [PATCH 0041/1096] "LRW29F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b1071580a7c..62536b1e318 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW29E +export BUILD_ID=LRW29F From 58c109006b544b721e3559501c2838f769af0f31 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 30 Jul 2014 21:07:48 -0700 Subject: [PATCH 0042/1096] LRW29G --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 62536b1e318..12b147cf225 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW29F +export BUILD_ID=LRW29G From 28dac35b549abedf89fe77c6fe1fc171b16d617f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 1 Aug 2014 09:13:39 -0700 Subject: [PATCH 0043/1096] "LRW29H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 12b147cf225..b5132f2ed79 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW29G +export BUILD_ID=LRW29H From 280c02476e32652401264e9722147e798778c6e1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 2 Aug 2014 06:13:08 -0700 Subject: [PATCH 0044/1096] "LRW33" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..5df42ed6b8f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW33 From 185c0829c22cd1abb0ac16eb6c49f14175de229f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 3 Aug 2014 06:09:51 -0700 Subject: [PATCH 0045/1096] "LRW34" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..40fd94d3550 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW34 From 3223c3e94230f4db310d3d24a14da4b0660335ff Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 4 Aug 2014 06:09:50 -0700 Subject: [PATCH 0046/1096] "LRW35" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..abc9ff73e6c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW35 From 6ba37faa40df852288302a03b04c3b3cca10d563 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 5 Aug 2014 06:11:18 -0700 Subject: [PATCH 0047/1096] "LRW36" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..c2338fb1314 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW36 From c28d2b42bad9bca85857b1b1d8ae2ebe93b5aa92 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 5 Aug 2014 15:18:36 -0700 Subject: [PATCH 0048/1096] "LRW36B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c2338fb1314..3c0851c6aef 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW36 +export BUILD_ID=LRW36B From af3aa4a4ae63d610de9f3f3c991a40164a7721a2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 6 Aug 2014 06:12:59 -0700 Subject: [PATCH 0049/1096] "LRW37" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..14ac16c5dec 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW37 From b83e597ed712b6026124f58b6b4e5b3c879d16c6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 6 Aug 2014 15:48:31 -0700 Subject: [PATCH 0050/1096] "LRW37B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 14ac16c5dec..91ea703bb30 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW37 +export BUILD_ID=LRW37B From 8141150eb43c27b747a0f7f544b7d8031f357237 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 6 Aug 2014 18:24:36 -0700 Subject: [PATCH 0051/1096] LRW37C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 91ea703bb30..6fa320c3de5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW37B +export BUILD_ID=LRW37C From 7692975bcea6dd056e668ed79822c5ad89913ec1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 7 Aug 2014 06:13:09 -0700 Subject: [PATCH 0052/1096] "LRW38" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..4d8485aafcc 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW38 From 16ff1e0da17a29d695f73ceda29d67506503e3df Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 7 Aug 2014 11:46:51 -0700 Subject: [PATCH 0053/1096] LRW38B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4d8485aafcc..742c944f4da 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW38 +export BUILD_ID=LRW38B From 394f13eb17e522d5dce0cbe291dcc62268008f5c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 7 Aug 2014 15:26:55 -0700 Subject: [PATCH 0054/1096] "LRW38C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 742c944f4da..1ae2e7a935c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW38B +export BUILD_ID=LRW38C From 82b8424983d6af4b13f92cb1b33fbcc1021cead5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 7 Aug 2014 16:56:46 -0700 Subject: [PATCH 0055/1096] "LRW38D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1ae2e7a935c..4d43e17330b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW38C +export BUILD_ID=LRW38D From de5c1fd971e959ffc7d9fc903e6ea71c4c59d260 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 8 Aug 2014 07:44:30 -0700 Subject: [PATCH 0056/1096] "LRW38E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4d43e17330b..afe04b910a5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW38D +export BUILD_ID=LRW38E From 68030695dea3d500d440ae41609e96982094f175 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 8 Aug 2014 12:49:36 -0700 Subject: [PATCH 0057/1096] "LRW38F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index afe04b910a5..f5dc1680064 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW38E +export BUILD_ID=LRW38F From 85e6fad5e679f8caafa7b7b8800cdc3e3af579ac Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 8 Aug 2014 15:40:00 -0700 Subject: [PATCH 0058/1096] LRW38G --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f5dc1680064..cc357a6684a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW38F +export BUILD_ID=LRW38G From 0595e152f950f7f1e5c0e755a20fdce259added9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 8 Aug 2014 17:12:16 -0700 Subject: [PATCH 0059/1096] LRW38H --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cc357a6684a..f47182c2c5a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW38G +export BUILD_ID=LRW38H From f309eb51f3dae289570064f8eb56b8f11f685d4d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 8 Aug 2014 19:05:49 -0700 Subject: [PATCH 0060/1096] "LRW38I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f47182c2c5a..4ca5e23df9c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW38H +export BUILD_ID=LRW38I From b68b319c984b5cea4256330433cff1903016f1f0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 9 Aug 2014 06:14:31 -0700 Subject: [PATCH 0061/1096] "LRW40" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..189aefc91ee 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW40 From 3f697e6ca2a9d2c0d04de99503e6a59d57398a90 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 10 Aug 2014 06:10:00 -0700 Subject: [PATCH 0062/1096] "LRW41" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..73e9ab7dd2e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW41 From c63ab6a91adbf177ec430ce409a180a1ce1462d6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 11 Aug 2014 06:22:05 +0000 Subject: [PATCH 0063/1096] "LRW42" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..3a9e98a14d3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW42 From 8eca3db518314ede77b6a3d0dcd5d7d6087e8ab9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 11 Aug 2014 13:33:23 -0700 Subject: [PATCH 0064/1096] "LRW42B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3a9e98a14d3..8e6f755f926 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW42 +export BUILD_ID=LRW42B From a73e8e2796b72f25d382e7777490f5b0621bd951 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 11 Aug 2014 14:02:54 -0700 Subject: [PATCH 0065/1096] "LRW42C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8e6f755f926..0f730a718ab 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW42B +export BUILD_ID=LRW42C From a98f11d4e12e4885bdc9b55a50bea43671817d24 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 11 Aug 2014 14:56:35 -0700 Subject: [PATCH 0066/1096] "LRW42D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0f730a718ab..50011c59552 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW42C +export BUILD_ID=LRW42D From 1a1375d8b83f58054b18823137c4d24a70a32abf Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 12 Aug 2014 06:15:59 -0700 Subject: [PATCH 0067/1096] "LRW43" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..16c69558a43 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW43 From a6dcaa15a2651eca9fba21c17ff9af0211faa346 Mon Sep 17 00:00:00 2001 From: android-merger Date: Tue, 12 Aug 2014 06:47:38 -0700 Subject: [PATCH 0068/1096] LRW43B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 16c69558a43..7fac071e6d0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW43 +export BUILD_ID=LRW43B From b454ca1cec0bfbd040303a29aca87c7daed84ec5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 12 Aug 2014 10:25:03 -0700 Subject: [PATCH 0069/1096] "LRW43C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7fac071e6d0..c636990d541 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW43B +export BUILD_ID=LRW43C From 085ef34e4d761bfb3b1639be0a6aa1f14ddf3d5b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 12 Aug 2014 13:18:57 -0700 Subject: [PATCH 0070/1096] "LRW43D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c636990d541..ce9d88e7b03 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW43C +export BUILD_ID=LRW43D From 744b5e1e26bc2880a9f4b3922e8d01cbded4a0bd Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 12 Aug 2014 17:23:18 -0700 Subject: [PATCH 0071/1096] "LRW43E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ce9d88e7b03..c0bb9a3d5a3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW43D +export BUILD_ID=LRW43E From 75a3e9c9a3feeb5ddd7c6b93c64a36067443e03f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 12 Aug 2014 17:44:31 -0700 Subject: [PATCH 0072/1096] LRW43F --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c0bb9a3d5a3..41a2d239f55 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW43E +export BUILD_ID=LRW43F From b5367f4809a02b0daec843f20a68db88291bcd02 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 13 Aug 2014 06:20:03 -0700 Subject: [PATCH 0073/1096] "LRW44" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..17b0bc3279a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW44 From 72a239a06a4a32a334789957a033153de5c21adc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 13 Aug 2014 12:55:52 -0700 Subject: [PATCH 0074/1096] "LRW44B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 17b0bc3279a..a12e02aae0b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW44 +export BUILD_ID=LRW44B From e394dd66315e136b7e37f0a06c518669f9fae1aa Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 13 Aug 2014 16:01:31 -0700 Subject: [PATCH 0075/1096] "LRW44C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a12e02aae0b..03d725573d1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW44B +export BUILD_ID=LRW44C From 0d3049dbd7c6730e5f2d31713cd4be225a887cf2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 13 Aug 2014 20:36:12 -0700 Subject: [PATCH 0076/1096] LRW44E --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 03d725573d1..01459589f64 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW44C +export BUILD_ID=LRW44E From 12c28a39bd6f5fd5d113955bc09b85dc640803eb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 14 Aug 2014 06:16:54 -0700 Subject: [PATCH 0077/1096] "LRW45" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..4b9b9db9cab 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW45 From 60433bb78d8033a84dd80570f3eba63312229637 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 14 Aug 2014 09:15:23 -0700 Subject: [PATCH 0078/1096] "LRW45B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4b9b9db9cab..d8a7b9897f0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45 +export BUILD_ID=LRW45B From 2347a3b7d9c8892c1556c08ba3e3bdf00e7f4509 Mon Sep 17 00:00:00 2001 From: Benoit Fradin Date: Mon, 14 Jul 2014 21:00:43 +0200 Subject: [PATCH 0079/1096] BuildBootImage: Add secondstage image support [DO NOT MERGE] The AOSP bootimage format allows the use of a second stage image however the BuildBootableImage function does not allows the "second" optional argument. This patch adds the support of this argument. Bug: 17035158 Change-Id: I8ed9d9e56449945c2d42fc908269921c394f68c0 Signed-off-by: Benoit Fradin Signed-off-by: Jeremy Compostella Signed-off-by: Patrick Tjin --- tools/releasetools/common.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 50ef4512148..947a9e42bf9 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -303,6 +303,11 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): cmd = [mkbootimg, "--kernel", os.path.join(sourcedir, "kernel")] + fn = os.path.join(sourcedir, "second") + if os.access(fn, os.F_OK): + cmd.append("--second") + cmd.append(fn) + fn = os.path.join(sourcedir, "cmdline") if os.access(fn, os.F_OK): cmd.append("--cmdline") From 92e88cd54c7912e408d12478fff432d6e0c21afb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 14 Aug 2014 11:57:32 -0700 Subject: [PATCH 0080/1096] "LRW45C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d8a7b9897f0..fced3b1689a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45B +export BUILD_ID=LRW45C From 4f9ff0caf98b5ca39c6c671becbdbcff9fb81407 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 14 Aug 2014 15:28:53 -0700 Subject: [PATCH 0081/1096] "LRW45D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fced3b1689a..38d47f765ff 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45C +export BUILD_ID=LRW45D From 801e72b9e56e43205fe79d4ee210baee95344298 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 14 Aug 2014 18:30:12 -0700 Subject: [PATCH 0082/1096] "LRW45E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 38d47f765ff..5e4c8446d4e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45D +export BUILD_ID=LRW45E From a6eaca2efb4e4f89ebcf95b4785691660bd17c86 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 14 Aug 2014 22:40:34 -0700 Subject: [PATCH 0083/1096] LRW45F --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5e4c8446d4e..bc6c13e73b1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45E +export BUILD_ID=LRW45F From d7a1f3e47cc72d78f11be67299c10e73bd5001db Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 15 Aug 2014 11:14:18 -0700 Subject: [PATCH 0084/1096] "LRW45G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index bc6c13e73b1..90db775932e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45F +export BUILD_ID=LRW45G From 635d3de6eb8ccb97aca64ac95262db09bc4a14dd Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 15 Aug 2014 14:20:47 -0700 Subject: [PATCH 0085/1096] "LRW45H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 90db775932e..aa0d175ce2b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45G +export BUILD_ID=LRW45H From a879f48a9f543dce7abde2f90e56b79c2d484284 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 15 Aug 2014 15:51:36 -0700 Subject: [PATCH 0086/1096] "LRW45I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index aa0d175ce2b..00780a69031 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45H +export BUILD_ID=LRW45I From 09bb0ce18c068c0e0f127185daa0a1e4473b382e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 15 Aug 2014 20:26:53 -0700 Subject: [PATCH 0087/1096] "LRW45J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00780a69031..bcbbb790e6f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45I +export BUILD_ID=LRW45J From a5c53cce099aa86e6de19081ab38497b89b5d9f5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 16 Aug 2014 17:40:33 -0700 Subject: [PATCH 0088/1096] "LRW45K" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index bcbbb790e6f..29828c21e83 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW45J +export BUILD_ID=LRW45K From d73e17478a722f883944cc66336e52a3e2ea82d7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 17 Aug 2014 07:49:03 -0700 Subject: [PATCH 0089/1096] "LRW48" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..4615891c111 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW48 From ec0108805ad0c2243e58ab893f92a1c9e4806cd8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 17 Aug 2014 13:46:08 -0700 Subject: [PATCH 0090/1096] "LRW48B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4615891c111..3658bb42f0c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW48 +export BUILD_ID=LRW48B From 63f171bb03dde548a5b1a26462a0caff7454099c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 17 Aug 2014 13:51:44 -0700 Subject: [PATCH 0091/1096] "LRW48C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3658bb42f0c..d6793a7607c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW48B +export BUILD_ID=LRW48C From 4602d358792e81372f876cc2560e4de88e993f64 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 18 Aug 2014 06:17:09 -0700 Subject: [PATCH 0092/1096] "LRW49" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..4ca4fe77756 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW49 From 8d1f967e83d629704e4f0edd0d06c6f3c59a9fc1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 18 Aug 2014 10:04:01 -0700 Subject: [PATCH 0093/1096] LRW49B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4ca4fe77756..2ae23d1aed2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW49 +export BUILD_ID=LRW49B From 1c3c89a1a5e2b85363a9acb1226b9cdbc028f97c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 18 Aug 2014 14:10:58 -0700 Subject: [PATCH 0094/1096] "LRW49C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2ae23d1aed2..eab0d2b6c62 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW49B +export BUILD_ID=LRW49C From 9ebfe6302918fff8797bd07f5449a59ef5a95c92 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 19 Aug 2014 06:15:52 -0700 Subject: [PATCH 0095/1096] "LRW50" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..97d0a38e54f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW50 From 3f9b7a7686909b31ca6362611cbab1ea42350e8d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 19 Aug 2014 08:14:05 -0700 Subject: [PATCH 0096/1096] "LRW50B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 97d0a38e54f..0b708deef57 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW50 +export BUILD_ID=LRW50B From f684e6e75683366fd839b9b1c58bff70c296984c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 19 Aug 2014 13:30:35 -0700 Subject: [PATCH 0097/1096] "LRW50C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0b708deef57..a7bf7dde7c0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW50B +export BUILD_ID=LRW50C From 1d256fcff24fad8cdcbd8e6c63f460270286438c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 19 Aug 2014 16:01:33 -0700 Subject: [PATCH 0098/1096] "LRW50D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a7bf7dde7c0..047f19c24a3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW50C +export BUILD_ID=LRW50D From cfb1701cf9bb6c59d678282855c69e17d0ef7384 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 19 Aug 2014 20:16:14 -0700 Subject: [PATCH 0099/1096] "LRW50E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 047f19c24a3..4d1200a5732 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW50D +export BUILD_ID=LRW50E From cb8203c2473281adff2b50e142f8b431400c409b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 20 Aug 2014 06:18:26 -0700 Subject: [PATCH 0100/1096] "LRW51" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..c2e3838d764 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW51 From 00ed1637c22b1c4e9454606c69867f4bafdf9434 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 20 Aug 2014 14:44:25 -0700 Subject: [PATCH 0101/1096] "LRW51B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c2e3838d764..4e2af4761c2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW51 +export BUILD_ID=LRW51B From 6f546575653c3b6a1c7d7ad87ee449f5245b9d8a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 20 Aug 2014 16:58:46 -0700 Subject: [PATCH 0102/1096] "LRW51C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4e2af4761c2..a68604ee769 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW51B +export BUILD_ID=LRW51C From 2dee34c12cfb69eb8bf69e0efad974dc19e05a6e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 21 Aug 2014 06:17:15 -0700 Subject: [PATCH 0103/1096] "LRW52" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..fed770b8867 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW52 From ddf097297f3d555f64d2858f403023acb397ac74 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 21 Aug 2014 08:45:13 -0700 Subject: [PATCH 0104/1096] "LRW52B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fed770b8867..19fc47e661d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW52 +export BUILD_ID=LRW52B From 4dda144ab36945113c9dd9945d397441a1d13a4d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 21 Aug 2014 14:52:17 -0700 Subject: [PATCH 0105/1096] "LRW52C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 19fc47e661d..45e5d95df4f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW52B +export BUILD_ID=LRW52C From df3d4eeb014da064c9a4d6e75dcff260177e1898 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 21 Aug 2014 17:04:36 -0700 Subject: [PATCH 0106/1096] "LRW52D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 45e5d95df4f..e822ad0055e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW52C +export BUILD_ID=LRW52D From bd7605673706a3fb61f1258f937ac8b06249491c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 21 Aug 2014 22:16:54 -0700 Subject: [PATCH 0107/1096] "LRW52E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e822ad0055e..a24dce29299 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW52D +export BUILD_ID=LRW52E From 29ba709e37e7d6fc765771a06cb42ca13a4c55ca Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 22 Aug 2014 10:31:30 -0700 Subject: [PATCH 0108/1096] "LRW52F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a24dce29299..ab495b8eb73 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW52E +export BUILD_ID=LRW52F From 74aa562a3707b0026213a9f7b277b6ddb2d4112f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 22 Aug 2014 14:36:31 -0700 Subject: [PATCH 0109/1096] "LRW52G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ab495b8eb73..770fbc3addb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW52F +export BUILD_ID=LRW52G From 8942946da5fe8d0e1dcc25934824d6f53b446846 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 23 Aug 2014 06:17:47 -0700 Subject: [PATCH 0110/1096] "LRW54" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..d93e9e1e373 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW54 From e344e296569cd30ea226af937f65b7578074c689 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 24 Aug 2014 06:13:05 -0700 Subject: [PATCH 0111/1096] "LRW55" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..cc62907e1ad 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW55 From 87ba559259a1a86873f39d5fdf376354fe74172d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 25 Aug 2014 06:16:51 -0700 Subject: [PATCH 0112/1096] "LRW56" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..b2735bfbee9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW56 From b98bfd03644c1f9ffa85d76afd8ab4a87cbde6f0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 25 Aug 2014 11:29:49 -0700 Subject: [PATCH 0113/1096] "LRW56B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b2735bfbee9..63baa4fb769 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW56 +export BUILD_ID=LRW56B From 36501d3035fb4b6b390963e923c285268e4f31b7 Mon Sep 17 00:00:00 2001 From: Qiwen Zhao Date: Mon, 25 Aug 2014 11:43:43 -0700 Subject: [PATCH 0114/1096] LRW56B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b2735bfbee9..63baa4fb769 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW56 +export BUILD_ID=LRW56B From fbd0b76918040541004bc084d2576d7567a20280 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 25 Aug 2014 15:25:50 -0700 Subject: [PATCH 0115/1096] "LRW56C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 63baa4fb769..59ed37664ee 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW56B +export BUILD_ID=LRW56C From 7346cdcd51a2573099cb7b7359c5f1a522b3f692 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 26 Aug 2014 06:20:07 -0700 Subject: [PATCH 0116/1096] "LRW57" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a3764fabebd 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW57 From c49d846b269318580aea4043bd17a00d32abc8ed Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 26 Aug 2014 11:17:11 -0700 Subject: [PATCH 0117/1096] "LRW57B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..8526f3e29fd 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW57B From 82c3ea42c25847aeb8977fda07364fc0fa829a29 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 26 Aug 2014 14:55:02 -0700 Subject: [PATCH 0118/1096] "LRW57C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8526f3e29fd..e05cef60d43 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW57B +export BUILD_ID=LRW57C From d712c0c5610d03a88ff2116e030ba31033f8c3d1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 26 Aug 2014 17:16:02 -0700 Subject: [PATCH 0119/1096] "LRW57D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e05cef60d43..cd168ce9137 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW57C +export BUILD_ID=LRW57D From 753f88f4f9703c8c0271ee482dad57af3c4469ab Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 27 Aug 2014 06:19:25 -0700 Subject: [PATCH 0120/1096] "LRW58" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..5864a5fc464 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW58 From 49ffe219f862731508880a8c136da8a52a4904c3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 27 Aug 2014 11:49:27 -0700 Subject: [PATCH 0121/1096] "LRW58B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5864a5fc464..18c1cc8bfa2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58 +export BUILD_ID=LRW58B From 9ec281500f01dad3baf1d392e3eaa224fb2fa728 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 27 Aug 2014 14:47:48 -0700 Subject: [PATCH 0122/1096] "LRW58C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 18c1cc8bfa2..ac9a44c6195 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58B +export BUILD_ID=LRW58C From ba2b33018837ac3baa23224ebc996058b7044ef4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 27 Aug 2014 16:12:23 -0700 Subject: [PATCH 0123/1096] "LRW58D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ac9a44c6195..a18ff626fd5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58C +export BUILD_ID=LRW58D From c75b506c136b9c3460bb53942f0731de8d9ebbbb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 27 Aug 2014 20:49:18 -0700 Subject: [PATCH 0124/1096] "LRW58E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a18ff626fd5..eda0505c2b0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58D +export BUILD_ID=LRW58E From 88b7b8384ff4fdbdfce9f7088a3ff24ff455f460 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 28 Aug 2014 07:54:04 -0700 Subject: [PATCH 0125/1096] "LRW58F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index eda0505c2b0..6b06f1496a5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58E +export BUILD_ID=LRW58F From 75c1524dce95f5c8ffd8ed5ff7271c8fa9566c07 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 28 Aug 2014 10:51:02 -0700 Subject: [PATCH 0126/1096] "LRW58G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6b06f1496a5..ec298d0b328 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58F +export BUILD_ID=LRW58G From cc55084681b788c8fe0580d9c91ba9b03e88c8b0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 28 Aug 2014 13:13:20 -0700 Subject: [PATCH 0127/1096] "LRW58H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ec298d0b328..bad0ecbb145 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58G +export BUILD_ID=LRW58H From c331791455dbf98c7ddd8dc25907a64a5dedfc36 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 28 Aug 2014 16:33:33 -0700 Subject: [PATCH 0128/1096] "LRW58I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index bad0ecbb145..623ae4fcec7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58H +export BUILD_ID=LRW58I From 56be347b7363f1abd8ed471328e19aa5889af42b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 28 Aug 2014 23:00:58 -0700 Subject: [PATCH 0129/1096] "LRW58J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 623ae4fcec7..03bbfcb98b5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58I +export BUILD_ID=LRW58J From c18b0a87c33dd6f11ed623ddf624e7609c79cfcd Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 29 Aug 2014 09:47:45 -0700 Subject: [PATCH 0130/1096] LRW58K --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 03bbfcb98b5..c0b54214424 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58J +export BUILD_ID=LRW58K From 536e273b09dab3c0177b9cf172abe23389efd5da Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 29 Aug 2014 10:48:40 -0700 Subject: [PATCH 0131/1096] "LRW58L" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c0b54214424..3577ff9d365 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58K +export BUILD_ID=LRW58L From 84032857c621a81cd9ba5e0e078b19453f05d94f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 29 Aug 2014 11:43:12 -0700 Subject: [PATCH 0132/1096] "LRW58M" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3577ff9d365..22fca3b6f18 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58L +export BUILD_ID=LRW58M From 9503518cd1d37fd0f29d9df3b60750f5fd02c910 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 29 Aug 2014 14:36:08 -0700 Subject: [PATCH 0133/1096] "LRW58N" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 22fca3b6f18..f08c392b5ff 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58M +export BUILD_ID=LRW58N From 7770ba8ca638347db721fc00baa4eddf1ae6c42e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 29 Aug 2014 17:01:59 -0700 Subject: [PATCH 0134/1096] "LRW58O" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f08c392b5ff..401654f1ad1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58N +export BUILD_ID=LRW58O From 0824d0d1de20eb0859e295647efd9b49f6fb5e72 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 31 Aug 2014 08:33:13 -0700 Subject: [PATCH 0135/1096] "LRW58P" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 401654f1ad1..87cc9645711 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW58O +export BUILD_ID=LRW58P From 551ba60213692e5dcf16719491be595a828cc3e0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 31 Aug 2014 09:37:55 -0700 Subject: [PATCH 0136/1096] "LRW62" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..afe31d3c386 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW62 From 0474fecf8300917aa0cf09e02e15a4c1ecca580f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 1 Sep 2014 07:59:47 -0700 Subject: [PATCH 0137/1096] "LRW63" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..394cae75aeb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW63 From fc035b4a06bacc84e64d620d1626ab5cd085bbe1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 2 Sep 2014 06:17:27 -0700 Subject: [PATCH 0138/1096] "LRW64" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..8284bd88e3f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW64 From 297240da24df3b334bf59c556e45b102a654c842 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 2 Sep 2014 11:06:40 -0700 Subject: [PATCH 0139/1096] "LRW64B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8284bd88e3f..effc2c968f2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW64 +export BUILD_ID=LRW64B From 3b8ec2997eb7586b358943be7fa8c211c459e448 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 2 Sep 2014 15:53:47 -0700 Subject: [PATCH 0140/1096] "LRW64C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index effc2c968f2..13e64c7d478 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW64B +export BUILD_ID=LRW64C From a48bc259ca37643619f8d2e90d5ab017b018d7b3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 3 Sep 2014 06:19:37 -0700 Subject: [PATCH 0141/1096] "LRW65" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..b9368579c49 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW65 From b757f7566b1c5c312ec1056ece7e605ac429aca4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 3 Sep 2014 12:14:16 -0700 Subject: [PATCH 0142/1096] "LRW65B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b9368579c49..4fbabc0e03a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW65 +export BUILD_ID=LRW65B From 6b43136b4d22225b808832107a68acc8414076a2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 3 Sep 2014 15:26:51 -0700 Subject: [PATCH 0143/1096] "LRW65C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4fbabc0e03a..7c2f5f0890e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW65B +export BUILD_ID=LRW65C From 8db102422421996b876d1c9af07c00b9d3d37f47 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 3 Sep 2014 17:10:45 -0700 Subject: [PATCH 0144/1096] "LRW65D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7c2f5f0890e..1c07656127c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW65C +export BUILD_ID=LRW65D From fe6de872d2cb94c2118b56b1f9021be43de7199f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Sep 2014 06:20:59 -0700 Subject: [PATCH 0145/1096] "LRW66" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..2eb2cab324c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW66 From d5f4621a9a49489af254aec986af87356648ab51 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Sep 2014 07:02:41 -0700 Subject: [PATCH 0146/1096] LRW66B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2eb2cab324c..329b17e97c5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW66 +export BUILD_ID=LRW66B From c9556ce0b97c4925507182737676af5459f02efb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Sep 2014 11:18:28 -0700 Subject: [PATCH 0147/1096] "LRW66C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 329b17e97c5..4d5c29d7409 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW66B +export BUILD_ID=LRW66C From 8e864eb42d2d69d76167278980896b2700ee590c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Sep 2014 13:55:52 -0700 Subject: [PATCH 0148/1096] "LRW66D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4d5c29d7409..c54cc4aac9a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW66C +export BUILD_ID=LRW66D From bdecf4b92440dd2395bfc56c878e2232d116b81c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Sep 2014 15:27:18 -0700 Subject: [PATCH 0149/1096] "LRW66E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c54cc4aac9a..146a84a5166 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW66D +export BUILD_ID=LRW66E From 919a0f93402d4d93efd127f06de4af5e29307200 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Sep 2014 21:36:54 -0700 Subject: [PATCH 0150/1096] "LRW66F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 146a84a5166..bbc48ad498d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW66E +export BUILD_ID=LRW66F From 26e604199691ef2bd0d375f4b4b92a15ea4a7184 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 5 Sep 2014 09:19:18 -0700 Subject: [PATCH 0151/1096] "LRW66G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index bbc48ad498d..508f4737b96 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW66F +export BUILD_ID=LRW66G From aa9529f505b24fe0e1024f7c410f90d884558a84 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 5 Sep 2014 13:08:01 -0700 Subject: [PATCH 0152/1096] "LRW66H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 508f4737b96..a1422acf34b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW66G +export BUILD_ID=LRW66H From 6b43a3241723514642d4fae339f502c3394a1f0d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 5 Sep 2014 16:19:00 -0700 Subject: [PATCH 0153/1096] "LRW66I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a1422acf34b..50e31fe9c61 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW66H +export BUILD_ID=LRW66I From 8deadecb01450851d2dd37cc21328bdf9e17668a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 6 Sep 2014 06:17:57 -0700 Subject: [PATCH 0154/1096] "LRW68" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..ac6734d3b8e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW68 From a1b3db0d211e55aca3987424e9f64366a1fc4750 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 6 Sep 2014 08:54:43 -0700 Subject: [PATCH 0155/1096] "LRW68B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 50e31fe9c61..302967630cd 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW66I +export BUILD_ID=LRW68B From 4ff5429cb26d93d6dc763578478247bfe0350b4c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 6 Sep 2014 09:09:26 -0700 Subject: [PATCH 0156/1096] "LRW66J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 302967630cd..436f566c8ea 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW68B +export BUILD_ID=LRW66J From 5814e878b5c3a42d255e3e4ff45b30e4b511f0da Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 7 Sep 2014 06:15:51 -0700 Subject: [PATCH 0157/1096] "LRW69" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..85e06951ce7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW69 From 0ce4a50061044098ef83cb6e3297527211776130 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Sep 2014 06:22:19 -0700 Subject: [PATCH 0158/1096] "LRW70" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..00f49fdd91a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW70 From 02e7fa781073d0e3d41b1f6ede212e26e8f4a563 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Sep 2014 08:55:03 -0700 Subject: [PATCH 0159/1096] LRW70B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00f49fdd91a..2774c535857 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW70 +export BUILD_ID=LRW70B From 9a043962ca8c62e47e1bc9d68d564213a006ba3a Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Mon, 8 Sep 2014 10:34:18 -0700 Subject: [PATCH 0160/1096] Add com.android.future.usb.accessory support library to all builds so we don't have to remember to add it to device.mk for all products. Bug: 17189905 Change-Id: Ia19c5e16bc7916996804a52eccd3ecca89099f09 --- target/product/core_minimal.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk index e4eb56af987..4c08cb027b3 100644 --- a/target/product/core_minimal.mk +++ b/target/product/core_minimal.mk @@ -32,6 +32,7 @@ PRODUCT_PACKAGES += \ Shell \ bcc \ bu \ + com.android.future.usb.accessory \ com.android.location.provider \ com.android.location.provider.xml \ com.android.media.remotedisplay \ From f8c523e14b09c26653c35ff21c5643b522135fea Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Sep 2014 13:07:06 -0700 Subject: [PATCH 0161/1096] "LRW70C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2774c535857..cb084702285 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW70B +export BUILD_ID=LRW70C From 546b2b6d3e97bcff285416ae005457ba79d066b9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Sep 2014 15:42:32 -0700 Subject: [PATCH 0162/1096] "LRW70D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cb084702285..18ccc65c1f7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW70C +export BUILD_ID=LRW70D From 828f710056b82ae8c4fa2856813d3db0b224be60 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Sep 2014 16:30:50 -0700 Subject: [PATCH 0163/1096] "LRW70E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 18ccc65c1f7..0a47a5b576d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW70D +export BUILD_ID=LRW70E From ec536ff5356363e5c12b7838fcdca44dbff9a749 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 9 Sep 2014 06:19:35 -0700 Subject: [PATCH 0164/1096] "LRW71" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..cacddfe1d24 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW71 From 637250aec0040e55a1217e60d6f6ec4b4545c5c8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 9 Sep 2014 13:03:54 -0700 Subject: [PATCH 0165/1096] "LRW71B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cacddfe1d24..35197b323d7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW71 +export BUILD_ID=LRW71B From eb83af763c46f6df945fe7149740fb00c54bf664 Mon Sep 17 00:00:00 2001 From: Doug Zongker Date: Tue, 9 Sep 2014 14:59:20 -0700 Subject: [PATCH 0166/1096] select default search_path by platform Bug: 17443175 Change-Id: I2b8b0a3b56e667b749ac167a6d09dc973ecf8419 --- core/Makefile | 2 +- tools/releasetools/common.py | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core/Makefile b/core/Makefile index 506488662bb..d39ac9c1737 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1416,7 +1416,7 @@ endif $(hide) zipinfo -1 $@ | awk 'BEGIN { FS="BOOT/RAMDISK/" } /^BOOT\/RAMDISK\// {print $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -S $(SELINUX_FC) > $(zip_root)/META/boot_filesystem_config.txt $(hide) zipinfo -1 $@ | awk 'BEGIN { FS="RECOVERY/RAMDISK/" } /^RECOVERY\/RAMDISK\// {print $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -S $(SELINUX_FC) > $(zip_root)/META/recovery_filesystem_config.txt $(hide) (cd $(zip_root) && zip -q ../$(notdir $@) META/*filesystem_config.txt) - $(hide) ./build/tools/releasetools/add_img_to_target_files $@ + $(hide) ./build/tools/releasetools/add_img_to_target_files -p $(HOST_OUT) $@ .PHONY: target-files-package target-files-package: $(BUILT_TARGET_FILES_PACKAGE) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index bcadea26ea6..92d912bd6a3 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -42,7 +42,13 @@ class Options(object): pass OPTIONS = Options() -OPTIONS.search_path = "out/host/linux-x86" + +DEFAULT_SEARCH_PATH_BY_PLATFORM = { + "linux2": "out/host/linux-x86", + "darwin": "out/host/darwin-x86", + } +OPTIONS.search_path = DEFAULT_SEARCH_PATH_BY_PLATFORM.get(sys.platform, None) + OPTIONS.signapk_path = "framework/signapk.jar" # Relative to search_path OPTIONS.extra_signapk_args = [] OPTIONS.java_path = "java" # Use the one on the path by default. @@ -651,8 +657,9 @@ def ParseOptions(argv, if extra_option_handler is None or not extra_option_handler(o, a): assert False, "unknown option \"%s\"" % (o,) - os.environ["PATH"] = (os.path.join(OPTIONS.search_path, "bin") + - os.pathsep + os.environ["PATH"]) + if OPTIONS.search_path: + os.environ["PATH"] = (os.path.join(OPTIONS.search_path, "bin") + + os.pathsep + os.environ["PATH"]) return args From a6f38b306fc239ac38ed25171d0387a50f4c5d3e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 9 Sep 2014 15:24:10 -0700 Subject: [PATCH 0167/1096] LRW71C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 35197b323d7..0b3aed735ab 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW71B +export BUILD_ID=LRW71C From e37c18cf21c8f787f1c8097921bad7ee9d8b0c4f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 10 Sep 2014 06:20:14 -0700 Subject: [PATCH 0168/1096] "LRW72" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a3144df29f0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW72 From 3fc1d7ab5d3232ae8e1deae9cb2a43ac65b636c4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 10 Sep 2014 11:24:41 -0700 Subject: [PATCH 0169/1096] "LRW72B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a3144df29f0..c5b197b25d1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW72 +export BUILD_ID=LRW72B From 61329bf287bfd36c6cfe36014a8ef1b332ae96ef Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 10 Sep 2014 15:28:59 -0700 Subject: [PATCH 0170/1096] "LRW72C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c5b197b25d1..3d3c69cbf37 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW72B +export BUILD_ID=LRW72C From e7a0452005a63276bd108e16124cc98b1e42c201 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 10 Sep 2014 15:39:10 -0700 Subject: [PATCH 0171/1096] "LRW72D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3d3c69cbf37..a51e1c821af 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW72C +export BUILD_ID=LRW72D From ee6e6f0a3f71a244e3d4c3ba82862bca62724dd6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 10 Sep 2014 16:58:13 -0700 Subject: [PATCH 0172/1096] "LRW72E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a51e1c821af..462db83d4c8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW72D +export BUILD_ID=LRW72E From 8f6708432c6c19c5e4e3f2d283d5e29cbb89700f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Sep 2014 06:18:38 -0700 Subject: [PATCH 0173/1096] "LRW73" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..cad7de1f8f2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW73 From 5a514a8c52e472cd48dd351774793d1e612b7733 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Sep 2014 10:36:27 -0700 Subject: [PATCH 0174/1096] "LRW73B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cad7de1f8f2..d98806001ee 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73 +export BUILD_ID=LRW73B From 285d0353e917735167654f1e9daaf489620b6795 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Sep 2014 13:23:43 -0700 Subject: [PATCH 0175/1096] "LRW73C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d98806001ee..3750cc2ba05 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73B +export BUILD_ID=LRW73C From 65f173c3e38a9a0bcd1f8b6e1935213d835758d1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Sep 2014 15:36:24 -0700 Subject: [PATCH 0176/1096] "LRW73D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3750cc2ba05..09a48648431 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73C +export BUILD_ID=LRW73D From 6aedfc058ea2422a71fc1fcd8cce07fa7a1a3f19 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Sep 2014 17:40:45 -0700 Subject: [PATCH 0177/1096] "LRW73E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 09a48648431..f70dcbcb8bf 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73D +export BUILD_ID=LRW73E From 6666d9ebc78bc8d5632e78ab60245a330792450d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Sep 2014 22:50:44 -0700 Subject: [PATCH 0178/1096] "LRW73F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f70dcbcb8bf..b31643aaa06 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73E +export BUILD_ID=LRW73F From a2d5f2bb8e9bf06c211bc636fedb31db98675284 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 12 Sep 2014 01:39:53 -0700 Subject: [PATCH 0179/1096] LRW73G --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b31643aaa06..b578e716bc8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73F +export BUILD_ID=LRW73G From ecd61a082e114646f97d0498ad0b0b9017c2235d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 12 Sep 2014 09:50:05 -0700 Subject: [PATCH 0180/1096] "LRW73H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b578e716bc8..22a04acf675 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73G +export BUILD_ID=LRW73H From 5649cef966c4151175ad34fd0d80e5c6babd8107 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 12 Sep 2014 12:51:15 -0700 Subject: [PATCH 0181/1096] "LRW73I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 22a04acf675..969afef7a3b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73H +export BUILD_ID=LRW73I From 8dd9706106151e07e1b0ca4972feb3574d3f8d4d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 12 Sep 2014 15:01:42 -0700 Subject: [PATCH 0182/1096] "LRW73J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 969afef7a3b..cb72dfe62d6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73I +export BUILD_ID=LRW73J From a421c713cc66fd01a84c8398631778b1a6894409 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 12 Sep 2014 15:33:41 -0700 Subject: [PATCH 0183/1096] "LRW73K" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cb72dfe62d6..42514eaff07 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73J +export BUILD_ID=LRW73K From 6b1f10f2554e7c0a15f8b4c1c05d7eb4b823e512 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 12 Sep 2014 15:37:03 -0700 Subject: [PATCH 0184/1096] "LRW73L" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 42514eaff07..567573025de 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73K +export BUILD_ID=LRW73L From dc85adb1c48d012cdb9185e558fcfc088417b0f7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 13 Sep 2014 06:21:04 -0700 Subject: [PATCH 0185/1096] "LRW75" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..e21d07c9559 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW75 From b8a7925b22173975518777d345a4bec1e1eeec35 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 13 Sep 2014 10:26:10 -0700 Subject: [PATCH 0186/1096] "LRW73M" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 567573025de..29fccb6e15a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW73L +export BUILD_ID=LRW73M From e0ad949140e6295d315660626b9814bd5b4e8945 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 14 Sep 2014 06:18:43 -0700 Subject: [PATCH 0187/1096] "LRW76" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..129e6c0c900 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW76 From 0a97d0dcaef1a58270e37733a2a88260e36aa843 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 15 Sep 2014 06:21:42 -0700 Subject: [PATCH 0188/1096] "LRW77" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..5a120131ac3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW77 From 9941528d8348ef964ad5f91801a93b6e428fb0cd Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 15 Sep 2014 12:44:42 -0700 Subject: [PATCH 0189/1096] "LRW77B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5a120131ac3..c0635e37472 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW77 +export BUILD_ID=LRW77B From 29f8a5095b9d20c06e8f5a80cfac7e66a9e9b993 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 15 Sep 2014 15:46:38 -0700 Subject: [PATCH 0190/1096] "LRW77C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c0635e37472..eb9dd355321 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW77B +export BUILD_ID=LRW77C From a3080bdd3a90060ccc2c125d057b618335ee35f1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 15 Sep 2014 18:03:52 -0700 Subject: [PATCH 0191/1096] "LRW77D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index eb9dd355321..b0ff9d86e4b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW77C +export BUILD_ID=LRW77D From 2a72baf0838697a74706284e7f9436ee64296321 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 16 Sep 2014 06:20:15 -0700 Subject: [PATCH 0192/1096] "LRW78" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..19d7430235d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW78 From cc57e9bda444d9c2f7f30bf2ba421c27cf5bfdc2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 16 Sep 2014 12:54:16 -0700 Subject: [PATCH 0193/1096] "LRW78B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 19d7430235d..1d0310acb9e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW78 +export BUILD_ID=LRW78B From b114d04ca87807552ccbb1a1b6c8cf436fd2333d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 16 Sep 2014 17:02:29 -0700 Subject: [PATCH 0194/1096] "LRW78C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1d0310acb9e..1b3912d7d9b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW78B +export BUILD_ID=LRW78C From 4da7f58888bfbaa7e3abf064759e83e1023449b3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Sep 2014 06:22:16 -0700 Subject: [PATCH 0195/1096] "LRW79" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a3d23cda011 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW79 From eb3e84a766b517bd24571777178f33036a481ea8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Sep 2014 10:38:56 -0700 Subject: [PATCH 0196/1096] "LRW79B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a3d23cda011..21606035ef6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW79 +export BUILD_ID=LRW79B From 00bdb9aa953e1016dc07eab5fc2c5a8b175fee33 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Sep 2014 13:10:20 -0700 Subject: [PATCH 0197/1096] "LRW79C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 21606035ef6..491cb682523 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW79B +export BUILD_ID=LRW79C From 1c3707224295055b3305ea6c71510695c0874452 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Sep 2014 15:45:03 -0700 Subject: [PATCH 0198/1096] "LRW79D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 491cb682523..17c2813a8c2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW79C +export BUILD_ID=LRW79D From 0e128cda899bf8137349389eb0d603442edb6a32 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Sep 2014 16:49:05 -0700 Subject: [PATCH 0199/1096] "LRW79E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 17c2813a8c2..af93b72d2d5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW79D +export BUILD_ID=LRW79E From e01bee1b3c3e09239474309c61863a912846f812 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Sep 2014 22:04:40 -0700 Subject: [PATCH 0200/1096] "LRW79F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index af93b72d2d5..f4574d88809 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW79E +export BUILD_ID=LRW79F From e804d0ded5f210cdd582dd2aa0e5ceb02451c5d3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 18 Sep 2014 06:20:17 -0700 Subject: [PATCH 0201/1096] "LRW80" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..cc0318f6a2d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW80 From c0f356f39160743d1d5d1ef48d13a6895ef19d71 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 18 Sep 2014 11:53:37 -0700 Subject: [PATCH 0202/1096] "LRW80B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cc0318f6a2d..7138298d105 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW80 +export BUILD_ID=LRW80B From 2796538d3bda73ba34c6523790da8dc2d39b8f07 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 18 Sep 2014 13:51:41 -0700 Subject: [PATCH 0203/1096] "LRW80C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7138298d105..8675db1a6d1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW80B +export BUILD_ID=LRW80C From 2050436ccc4eed8cbb19e5993a7435d1f44d62b9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 18 Sep 2014 15:33:43 -0700 Subject: [PATCH 0204/1096] "LRW80D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8675db1a6d1..5bac9476d99 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW80C +export BUILD_ID=LRW80D From cd60497d59b529368c43a18de6d04392fc9836d1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 18 Sep 2014 21:24:19 -0700 Subject: [PATCH 0205/1096] LRW80E --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5bac9476d99..00c3dc3b93e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW80D +export BUILD_ID=LRW80E From d0bc1a5304722c18ce94790cc9f76d6ce92fd769 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 18 Sep 2014 21:31:04 -0700 Subject: [PATCH 0206/1096] LRW80F --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00c3dc3b93e..5e65cc152b8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW80E +export BUILD_ID=LRW80F From 4800d4c478c2866c6033636555f5b3c040f6ad79 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 19 Sep 2014 08:17:09 -0700 Subject: [PATCH 0207/1096] "LRW80G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5e65cc152b8..910a3e0cfe4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW80F +export BUILD_ID=LRW80G From 73f1b0f9e3d3ee58d99003e784d79fc95935abba Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 19 Sep 2014 11:57:19 -0700 Subject: [PATCH 0208/1096] "LRW80H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 910a3e0cfe4..8f1d445e1e4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW80G +export BUILD_ID=LRW80H From e76eae2fe94206404c57f1cf24e83b53358ac234 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 19 Sep 2014 14:10:48 -0700 Subject: [PATCH 0209/1096] "LRW80I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8f1d445e1e4..e1acce75fce 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW80H +export BUILD_ID=LRW80I From b5d359ee6a26ef8334ec228ee3e471137dd3ac2a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 20 Sep 2014 06:20:18 -0700 Subject: [PATCH 0210/1096] "LRW82" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..872d6c61466 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW82 From 4a266793f3c9af3afb7f2849b0ea67976f822813 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 20 Sep 2014 21:17:26 -0700 Subject: [PATCH 0211/1096] LRW80J --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e1acce75fce..040a52c90f4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW80I +export BUILD_ID=LRW80J From 64a94af1596efd5b05324a2937a249caffaeba26 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 21 Sep 2014 06:18:37 -0700 Subject: [PATCH 0212/1096] "LRW83" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..6ee8e9a2725 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW83 From 4ba5defaee7351d6e988cdbc9c50edc400ae6c1d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 22 Sep 2014 06:22:37 -0700 Subject: [PATCH 0213/1096] "LRW84" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..c270daa7008 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW84 From a401da98c218a0db882c112a3b89c7303a37e2b5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 22 Sep 2014 10:29:01 -0700 Subject: [PATCH 0214/1096] "LMW84" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..1881885a5ee 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW84 From bf5cd355dcc45bc3737851e1ad6aba5e52cdaa76 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 22 Sep 2014 11:15:50 -0700 Subject: [PATCH 0215/1096] "LMW84B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..60169d6448f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW84B From 9b7472b06de2d5cd8bf25f0b337c166e8705c699 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 22 Sep 2014 11:47:05 -0700 Subject: [PATCH 0216/1096] "LMW84C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..3bb098c9e4d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW84C From 45239e3d0d6c83f90d29c303546982a330d96b62 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 22 Sep 2014 14:57:13 -0700 Subject: [PATCH 0217/1096] "LRW84B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c270daa7008..6f25c246dc0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW84 +export BUILD_ID=LRW84B From 8bfd9b717018d327f45465e11092cbced0294906 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 23 Sep 2014 06:27:37 -0700 Subject: [PATCH 0218/1096] "LRW85" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..db1f4e9f1b3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW85 From 9675c8fc5f414d475277bbfc569e7bbf6aadc537 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 23 Sep 2014 10:27:46 -0700 Subject: [PATCH 0219/1096] "LRW85B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index db1f4e9f1b3..7bb6265097f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW85 +export BUILD_ID=LRW85B From e4d9ab44af15e4471ae8030c98aa6c62743d935c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 23 Sep 2014 14:56:59 -0700 Subject: [PATCH 0220/1096] "LRW85C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7bb6265097f..8fc78558f40 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW85B +export BUILD_ID=LRW85C From 6c330e641a24fb64a66a03e06f353f98882a22d2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 23 Sep 2014 15:20:23 -0700 Subject: [PATCH 0221/1096] "LMW85B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..4f66243b7a9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW85B From 30a3d93055594c71956e57fa5655e592faa911bf Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 23 Sep 2014 18:06:59 -0700 Subject: [PATCH 0222/1096] "LRW85D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8fc78558f40..3783d1356e5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW85C +export BUILD_ID=LRW85D From 3c613ef3be7e9cda8e008130ad569f30d7e32ed1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 24 Sep 2014 06:22:37 -0700 Subject: [PATCH 0223/1096] "LMW86" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..81f13c96e59 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW86 From 955fb24d12aab37d5f00fa0795bfeb4ef9ce1819 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 24 Sep 2014 06:31:29 -0700 Subject: [PATCH 0224/1096] "LRW86" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a99b69568c2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW86 From 5b2d26162889db140718ecabc383b2f81e2aab9e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 24 Sep 2014 11:52:57 -0700 Subject: [PATCH 0225/1096] "LRW86B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a99b69568c2..e8e92aea354 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW86 +export BUILD_ID=LRW86B From e2b66bb4bed4a1148449908dd072b685e764c114 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 24 Sep 2014 15:15:51 -0700 Subject: [PATCH 0226/1096] "LRW86C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e8e92aea354..64bdb1d5e4d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW86B +export BUILD_ID=LRW86C From e6ef6fc171618185cbe0799e0904e94618c2fe8d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 25 Sep 2014 06:26:39 -0700 Subject: [PATCH 0227/1096] "LMW87" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..843e90aa59f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW87 From f083d0a339d2118ba39bf66a78f0248c5235d834 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 25 Sep 2014 06:33:00 -0700 Subject: [PATCH 0228/1096] "LRW87" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..9badd514483 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW87 From a0b8364d5ad7329896c341adcf7bfefdc5a3fbae Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 25 Sep 2014 10:28:32 -0700 Subject: [PATCH 0229/1096] "LRW87B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9badd514483..b5895ed4f23 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87 +export BUILD_ID=LRW87B From c0500a030d46f026eebbc8247649421f88208ba5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 25 Sep 2014 13:45:59 -0700 Subject: [PATCH 0230/1096] "LRW87C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b5895ed4f23..10e9f952612 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87B +export BUILD_ID=LRW87C From 3855ed79b676b14ff3a51d498bcdc44b2532225e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 25 Sep 2014 15:23:48 -0700 Subject: [PATCH 0231/1096] "LRW87D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 10e9f952612..8b68c8a6934 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87C +export BUILD_ID=LRW87D From 6c562fda3e073326e354b5209a13dcf3daea4e75 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 25 Sep 2014 19:28:42 -0700 Subject: [PATCH 0232/1096] "LRW87E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8b68c8a6934..7452ae58b99 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87D +export BUILD_ID=LRW87E From 9d7c13f245f707b47502e4ecaa4064f2f96e5c84 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 26 Sep 2014 09:36:53 -0700 Subject: [PATCH 0233/1096] "LRW87F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7452ae58b99..98c3abb27fb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87E +export BUILD_ID=LRW87F From 8c12703181c13be6fff5ac6450e700869d4c9bb9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 26 Sep 2014 11:21:10 -0700 Subject: [PATCH 0234/1096] "LRW87G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 98c3abb27fb..2be1e450bc6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87F +export BUILD_ID=LRW87G From a4193e544161d687208bd95c2c6af9baca2dbae5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 26 Sep 2014 14:12:32 -0700 Subject: [PATCH 0235/1096] "LRW87H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2be1e450bc6..48fd0ea9337 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87G +export BUILD_ID=LRW87H From 1f77a849dd6641a38998aa21e3a359f1cbdef615 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 26 Sep 2014 15:26:51 -0700 Subject: [PATCH 0236/1096] "LRW87I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 48fd0ea9337..2e73f971e89 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87H +export BUILD_ID=LRW87I From 64103157ac2a97d22c2e668ef089994a2238551c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 26 Sep 2014 17:42:46 -0700 Subject: [PATCH 0237/1096] "LRW87J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2e73f971e89..9fe9f17241c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87I +export BUILD_ID=LRW87J From 9c1ddb9230307de1a5093eae2f001751f17ee6b4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 26 Sep 2014 19:13:24 -0700 Subject: [PATCH 0238/1096] "LRW87K" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9fe9f17241c..2e895f831c7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW87J +export BUILD_ID=LRW87K From 0cda5b0f87dabfc26ff22f26ea7920fff8c8a975 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 27 Sep 2014 06:19:12 -0700 Subject: [PATCH 0239/1096] "LMW89" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..061b26c91da 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW89 From 25541207f2c6fc2fa311350f41222bb3460df8a0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 28 Sep 2014 06:15:30 -0700 Subject: [PATCH 0240/1096] "LMW90" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..7bfa8f9f31a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW90 From 77ef4e1aed249bcd1fcdcdbd62a3abc00d733552 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 28 Sep 2014 06:25:38 -0700 Subject: [PATCH 0241/1096] "LRW90" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..6bb0ef43ada 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW90 From 34db3778ced08150a9a310500fc8fc02498f5516 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 28 Sep 2014 06:48:53 -0700 Subject: [PATCH 0242/1096] "LMW90" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..7bfa8f9f31a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW90 From dc2c42d60484ade4d5ffb0e561939209f3bf3178 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 29 Sep 2014 06:24:29 -0700 Subject: [PATCH 0243/1096] "LMW91" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..2b033eca2fa 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW91 From c216751c2dddf0de8c5d841ef051c9d2772dfdde Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 29 Sep 2014 06:30:39 -0700 Subject: [PATCH 0244/1096] "LRW91" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..9c6a382c904 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW91 From aaf2905207932d15b9e7ae7ae84575a70d795a8c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 29 Sep 2014 15:07:52 -0700 Subject: [PATCH 0245/1096] "LRW91B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9c6a382c904..73eac562fcb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW91 +export BUILD_ID=LRW91B From f4197eed9d783e94dfc9de6a30b8776384b2286b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 30 Sep 2014 06:26:31 -0700 Subject: [PATCH 0246/1096] "LMW92" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..71cd944adab 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMW92 From a6014a80a6d1768b839c6ae57fdad681346bcb6a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 30 Sep 2014 06:32:57 -0700 Subject: [PATCH 0247/1096] "LRW92" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..e99590bf5b0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRW92 From b5a29b6b6f04ff3d78f3ab69e704a711645a8074 Mon Sep 17 00:00:00 2001 From: Chad Jones Date: Tue, 30 Sep 2014 09:08:11 -0700 Subject: [PATCH 0248/1096] empty commit From 2c11a59ffef06b98a8749e7c8986190c75e80c48 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 30 Sep 2014 12:13:21 -0700 Subject: [PATCH 0249/1096] LRW92B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e99590bf5b0..a10dc6120c0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW92 +export BUILD_ID=LRW92B From b4bf8b1ff2b9c009c1f1f9f2cc99a01d7cb28c5b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 30 Sep 2014 15:19:47 -0700 Subject: [PATCH 0250/1096] "LRW92C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a10dc6120c0..8bdaed30f51 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRW92B +export BUILD_ID=LRW92C From c3a766ae6268d541d63b79f450713047bc94214a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 1 Oct 2014 06:25:58 -0700 Subject: [PATCH 0251/1096] "LMX01" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..8d6d894d570 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX01 From 4b9e7b291813d5713a542746177e94a9e6a1f9ee Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 1 Oct 2014 06:34:28 -0700 Subject: [PATCH 0252/1096] "LRX01" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..40cb073d830 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX01 From 8ef2b7921fd6c176a1259dadc6ad653966d50f12 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 1 Oct 2014 11:38:46 -0700 Subject: [PATCH 0253/1096] LRX01B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 40cb073d830..b56593e4d60 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX01 +export BUILD_ID=LRX01B From b1acf1a1972444f01cfdd4712c569da24d52862f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 1 Oct 2014 15:22:26 -0700 Subject: [PATCH 0254/1096] "LRX01C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b56593e4d60..b0e02e085e0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX01B +export BUILD_ID=LRX01C From bc3772e224b1514a854991ac581542ec5e1d936d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 1 Oct 2014 17:31:11 -0700 Subject: [PATCH 0255/1096] LRX01D --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b0e02e085e0..d24d63ae406 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX01C +export BUILD_ID=LRX01D From dd133fcef3a51a3e0b86a19c8e200b598503db3f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 2 Oct 2014 05:38:39 -0700 Subject: [PATCH 0256/1096] "LRX02" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..657e0a311b0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX02 From 024d7ede11bf9ae8623c324d573f954c2883586b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 2 Oct 2014 06:27:49 -0700 Subject: [PATCH 0257/1096] "LMX02" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..f3f67763662 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX02 From 01bd267d391f3f0bdbba80035dcd35b39ad42dea Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 2 Oct 2014 11:40:23 -0700 Subject: [PATCH 0258/1096] "LRX02B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 657e0a311b0..fcf28d88b62 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX02 +export BUILD_ID=LRX02B From 2b327db6a5a5e573ae4ff6be653052cd3cefa03d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 2 Oct 2014 14:42:56 -0700 Subject: [PATCH 0259/1096] "LRX02C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fcf28d88b62..73e8cbcd96a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX02B +export BUILD_ID=LRX02C From 3e206e5cefc4e3176715752bf9e7ac6a196d4c46 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 2 Oct 2014 17:01:07 -0700 Subject: [PATCH 0260/1096] "LRX02D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 73e8cbcd96a..0b443d5877e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX02C +export BUILD_ID=LRX02D From 10e5c824495162cf774f55e019a990dc52cc1048 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 2 Oct 2014 22:38:36 -0700 Subject: [PATCH 0261/1096] "LRX02E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0b443d5877e..4801d0a77bb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX02D +export BUILD_ID=LRX02E From 7e48c86cf6e5940b4fca14ef0cdc072e56d19f57 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 3 Oct 2014 09:20:47 -0700 Subject: [PATCH 0262/1096] "LRX02F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4801d0a77bb..eda85f1b65f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX02E +export BUILD_ID=LRX02F From 91f69b19f45b32d50ef21ecf54df81edaf586734 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 3 Oct 2014 12:39:48 -0700 Subject: [PATCH 0263/1096] "LRX02G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index eda85f1b65f..c1c46d57543 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX02F +export BUILD_ID=LRX02G From a0224a0b0b5d5434d265394abab169f82873df87 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 3 Oct 2014 15:05:19 -0700 Subject: [PATCH 0264/1096] LRX02H --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c1c46d57543..783019ae8e2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX02G +export BUILD_ID=LRX02H From 51ea6799c89445f87f68a6429e5382ab642b76a1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 4 Oct 2014 06:22:16 -0700 Subject: [PATCH 0265/1096] "LMX04" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..6b15f039710 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX04 From 4430e0046d3402de7f47489f0cf9383182a57e38 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 5 Oct 2014 06:15:55 -0700 Subject: [PATCH 0266/1096] "LMX05" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..76c3a689611 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX05 From 6846bd3bb2587f38e80e9e93c8dbf0f206360e92 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 5 Oct 2014 06:24:28 -0700 Subject: [PATCH 0267/1096] "LRX05" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..47370cf1833 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX05 From 825633f976a47a6e5661b8f2c1a6d31bc1467c79 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 6 Oct 2014 06:16:35 -0700 Subject: [PATCH 0268/1096] "LMX06" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..7a36cc1a2cb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX06 From c8b7299cd5c6178e62152afd8d9962c81adc144e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 6 Oct 2014 06:19:30 -0700 Subject: [PATCH 0269/1096] "LRX06" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..95844ef3e5e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX06 From fd1e7f34b1efb1da9bc0a4f550fb6bfc02a61486 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 6 Oct 2014 12:58:58 -0700 Subject: [PATCH 0270/1096] "LRX06B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 95844ef3e5e..79be8a21bed 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX06 +export BUILD_ID=LRX06B From 688ede158a68706e991fc3e91662960be2647965 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 6 Oct 2014 15:23:23 -0700 Subject: [PATCH 0271/1096] "LRX06C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 79be8a21bed..19b0330477e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX06B +export BUILD_ID=LRX06C From 6085ea66fff20541b2631dd7974962eca6becdab Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 6 Oct 2014 17:51:27 -0700 Subject: [PATCH 0272/1096] "LRX06D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 19b0330477e..a65096420a5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX06C +export BUILD_ID=LRX06D From b99339c595f03d77d3f9b8119c15e6dee7bcd59a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 7 Oct 2014 06:20:30 -0700 Subject: [PATCH 0273/1096] "LMX07" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..8e0869800f6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX07 From abc00a21e31d5a27a9af4e06334d15f1dbd5f588 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 7 Oct 2014 06:24:00 -0700 Subject: [PATCH 0274/1096] "LRX07" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..52e014a2af8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX07 From 9c61c3934349bc7645c31227ee3dd6d766d744a5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 7 Oct 2014 13:51:58 -0700 Subject: [PATCH 0275/1096] "LRX07B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 52e014a2af8..433072f124b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX07 +export BUILD_ID=LRX07B From 491ce097e91ba0bc1e5da67a0661c4715be03097 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 7 Oct 2014 16:50:26 -0700 Subject: [PATCH 0276/1096] "LRX07C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 433072f124b..d7a1a76e4fc 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX07B +export BUILD_ID=LRX07C From 386e0b8df70f67a131ba2ea1784012e86d77def1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 8 Oct 2014 03:10:43 -0700 Subject: [PATCH 0277/1096] LRX07D --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d7a1a76e4fc..57c200c753d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX07C +export BUILD_ID=LRX07D From 82db6d7d01d3ab5afad0fe52a1c57c3e85ccd0da Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 8 Oct 2014 06:23:08 -0700 Subject: [PATCH 0278/1096] "LMX08" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..1553b54c6a6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX08 From d0277f2cfad48c47a83ee821640d69a635182552 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 8 Oct 2014 06:27:00 -0700 Subject: [PATCH 0279/1096] "LRX08" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..40b8fc37a4e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX08 From 7c7f7ba2f00e92ee896a696d4940ef9944626e5d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 8 Oct 2014 13:30:36 -0700 Subject: [PATCH 0280/1096] "LRX08B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 40b8fc37a4e..87e7d5b5814 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX08 +export BUILD_ID=LRX08B From 820afb65ec63d1f3ef004e009ff922de48a08d93 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 8 Oct 2014 13:42:55 -0700 Subject: [PATCH 0281/1096] LRX08C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 87e7d5b5814..b1cbe70ef34 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX08B +export BUILD_ID=LRX08C From 1e321567fced560c310f55b5ad62f4d39da01afc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 8 Oct 2014 19:26:59 -0700 Subject: [PATCH 0282/1096] LRX08D --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b1cbe70ef34..11e6413c350 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX08C +export BUILD_ID=LRX08D From 68aef74ea3174b30748d284bb00caefe05c2a1ec Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 9 Oct 2014 06:17:07 -0700 Subject: [PATCH 0283/1096] "LMX09" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..94b1bcb2496 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX09 From 90381372180847d82a3bbb69d47ea7b0a644b6a6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 9 Oct 2014 06:20:38 -0700 Subject: [PATCH 0284/1096] "LRX09" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..52e628dab9e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX09 From d3a50e8e53ab4fc3eefe5eaec140a5f8f25be49c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 9 Oct 2014 12:25:08 -0700 Subject: [PATCH 0285/1096] "LRX09B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 52e628dab9e..ee975fbe7ba 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX09 +export BUILD_ID=LRX09B From 1e0dce6a9f9f18f5b6d01299372d962b23dd7473 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 9 Oct 2014 15:22:48 -0700 Subject: [PATCH 0286/1096] "LRX09C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ee975fbe7ba..738a2134e1d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX09B +export BUILD_ID=LRX09C From b33b4d5db410125409225987c098f6111604f62a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 9 Oct 2014 17:21:03 -0700 Subject: [PATCH 0287/1096] "LRX09D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 738a2134e1d..b79bd9fdbf6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX09C +export BUILD_ID=LRX09D From f053fd870604ea3ffb8468aadcc46ac630d69619 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 10 Oct 2014 09:19:23 -0700 Subject: [PATCH 0288/1096] "LRX09E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b79bd9fdbf6..71776081594 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX09D +export BUILD_ID=LRX09E From 53c0e9f20c4a9d6a0734fd3ef6b29f859d3ae007 Mon Sep 17 00:00:00 2001 From: Raphael Moll Date: Thu, 9 Oct 2014 17:48:12 -0700 Subject: [PATCH 0289/1096] SDK Addon multi-sys-img support. Fix an issue where the add-on system images have 2 extra inner folders. The sole root folder in the zip file should be the ABI one. Change-Id: Ie12b913438e2b1113d34222e467ff280daa23c7f --- core/tasks/sdk-addon.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/tasks/sdk-addon.mk b/core/tasks/sdk-addon.mk index b32536cef25..5ac9b7d47b0 100644 --- a/core/tasks/sdk-addon.mk +++ b/core/tasks/sdk-addon.mk @@ -80,7 +80,7 @@ $(foreach cf,$(files_to_copy), \ ) # The system-image source.properties is a template that we directly expand in-place -addon_img_source_prop := $(call append-path,$(staging),$(addon_dir_img))/images/source.properties +addon_img_source_prop := $(call append-path,$(staging),$(addon_dir_img))/images/$(TARGET_CPU_ABI)/source.properties sdk_addon_deps += $(addon_img_source_prop) $(addon_img_source_prop): $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP) @@ -113,7 +113,7 @@ $(full_target): $(sdk_addon_deps) | $(ACP) $(hide) mkdir -p $(dir $@) $(hide) ( F=$$(pwd)/$@ ; cd $(PRIVATE_STAGING_DIR)/.. && zip -rq $$F $(notdir $(PRIVATE_STAGING_DIR)) ) -$(full_target_img): PRIVATE_STAGING_DIR := $(call append-path,$(staging),$(addon_dir_img)) +$(full_target_img): PRIVATE_STAGING_DIR := $(call append-path,$(staging),$(addon_dir_img))/images/$(TARGET_CPU_ABI) $(full_target_img): $(full_target) $(addon_img_source_prop) @echo Packaging SDK Addon System-Image: $@ $(hide) mkdir -p $(dir $@) From cc215216a62a2a0fd326668374ab3aee90f09705 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 10 Oct 2014 12:01:37 -0700 Subject: [PATCH 0290/1096] "LRX09F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 71776081594..b248948bff2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX09E +export BUILD_ID=LRX09F From 6faf33406eedad8fb0f2f10c53a2dd32ab916ee6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 10 Oct 2014 15:03:37 -0700 Subject: [PATCH 0291/1096] "LRX09G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b248948bff2..ea66622ce31 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX09F +export BUILD_ID=LRX09G From cd28c8c90d3b1edd4167c97ad187e2f5836747d9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 10 Oct 2014 15:42:19 -0700 Subject: [PATCH 0292/1096] LMX09B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 94b1bcb2496..298db867a60 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX09 +export BUILD_ID=LMX09B From 2c2160ce3ad3b42d37fe66a826cf44039d49087b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 11 Oct 2014 06:17:37 -0700 Subject: [PATCH 0293/1096] "LMX11" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..e42bf799c24 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX11 From 2d617c11d71c4852cb4c1fb4d717346509df3fe8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 12 Oct 2014 06:14:09 -0700 Subject: [PATCH 0294/1096] "LMX12" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..c88e97986f4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX12 From 33bf9cff5f2a463a4bf4a41f3c7a16f6e97b07f4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 12 Oct 2014 06:20:21 -0700 Subject: [PATCH 0295/1096] "LRX12" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..f4dd1c806ae 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX12 From 758bc2d0a4ea14261f92c1259cd226a4701ca771 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 12 Oct 2014 15:08:29 -0700 Subject: [PATCH 0296/1096] "LRX12B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f4dd1c806ae..1d5e0706b5c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX12 +export BUILD_ID=LRX12B From 6582df88fa1aa7ccba67e269ccd6425b635f2912 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 13 Oct 2014 06:15:20 -0700 Subject: [PATCH 0297/1096] "LMX13" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..f78a5bc0fef 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX13 From 7f1d30b4c94795870a5adf484d2c148b64d857e2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 13 Oct 2014 06:17:08 -0700 Subject: [PATCH 0298/1096] "LRX13" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..438c9da64c9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX13 From 52c402baead5830a5f8c0978ad58b748e38c52ac Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 13 Oct 2014 14:11:31 -0700 Subject: [PATCH 0299/1096] "LMX13B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f78a5bc0fef..a99fa93cb65 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX13 +export BUILD_ID=LMX13B From 1dde2c524c5d4e706dbd0b788a22686a97c5cb40 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 13 Oct 2014 15:13:33 -0700 Subject: [PATCH 0300/1096] "LRX13B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 438c9da64c9..535478dca39 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX13 +export BUILD_ID=LRX13B From d350b1377f5c60971e2a4fed396689d87629e88b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 13 Oct 2014 17:35:14 -0700 Subject: [PATCH 0301/1096] "LRX13C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 535478dca39..fb2bb09a6b0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX13B +export BUILD_ID=LRX13C From f89fe4affaefaf5d0636cd114fcb15621d56237d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 14 Oct 2014 06:17:37 -0700 Subject: [PATCH 0302/1096] "LMX14" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..111e02ec5bf 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX14 From 4b167c4c2a3646409f6bec682c9a3d10410e2eb9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 14 Oct 2014 06:19:01 -0700 Subject: [PATCH 0303/1096] "LRX14" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..eb0fe478588 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX14 From eb575c2fff6e5dd45a11c33850adc25d1eac83cd Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 14 Oct 2014 15:15:08 -0700 Subject: [PATCH 0304/1096] "LRX14B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index eb0fe478588..fbf16e88aa8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX14 +export BUILD_ID=LRX14B From 354640ef5d09dd35cbead064de68b49ffdca2692 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 14 Oct 2014 16:53:11 -0700 Subject: [PATCH 0305/1096] "LRX14C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fbf16e88aa8..ce71724b7ca 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX14B +export BUILD_ID=LRX14C From 406b1b298ad8ac7f938f7368a7dfeb457139118f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 15 Oct 2014 06:18:46 -0700 Subject: [PATCH 0306/1096] "LMX15" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..b78a154ab40 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX15 From 67685a19859ba3cf7203c4b4f9fa5a52f7256b79 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 15 Oct 2014 06:22:38 -0700 Subject: [PATCH 0307/1096] "LRX15" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..e5f66106277 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX15 From aaae61f27316abd5165be3110ffcf57fb621ef2d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 15 Oct 2014 15:03:03 -0700 Subject: [PATCH 0308/1096] "LRX15B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e5f66106277..4d60fd35687 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX15 +export BUILD_ID=LRX15B From 0c02d1c570606ae6f1a59d2ccc83560ef3d819cb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 16 Oct 2014 06:19:52 -0700 Subject: [PATCH 0309/1096] "LMX16" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..d46d7a0ca59 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX16 From 710658bb7b34865df4c2fc9fe997cc57b99d8539 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 16 Oct 2014 06:22:18 -0700 Subject: [PATCH 0310/1096] "LRX16" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..9ec31fc987e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX16 From 1d72186027275e443a3429e3e49dad18ec304424 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 16 Oct 2014 12:40:49 -0700 Subject: [PATCH 0311/1096] "LRX16B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9ec31fc987e..551ab4eb9d3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX16 +export BUILD_ID=LRX16B From 7224491e316a958c2f9c2d8a791b58d648ee6497 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 16 Oct 2014 15:35:33 -0700 Subject: [PATCH 0312/1096] "LRX16C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 551ab4eb9d3..adb24db7f7f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX16B +export BUILD_ID=LRX16C From 071cc5063d230f4fa3669e386925a90254c13271 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 16 Oct 2014 17:07:05 -0700 Subject: [PATCH 0313/1096] "LRX16D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index adb24db7f7f..e9a301f68d7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX16C +export BUILD_ID=LRX16D From b63ca6cf9f9b6a847ac272bbfbf652fed87917e0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 16 Oct 2014 21:11:01 -0700 Subject: [PATCH 0314/1096] "LRX16E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e9a301f68d7..ee06213a868 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX16D +export BUILD_ID=LRX16E From 00356f0a2670f04c7fa585f1358ccc47e0420b3a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 17 Oct 2014 12:10:54 -0700 Subject: [PATCH 0315/1096] "LRX16F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ee06213a868..09551a9f686 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX16E +export BUILD_ID=LRX16F From e8f34b1281be0312ee6a460f5f593103fb3cc257 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 17 Oct 2014 16:18:40 -0700 Subject: [PATCH 0316/1096] "LRX16G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 09551a9f686..ffec702b5e7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX16F +export BUILD_ID=LRX16G From 3d9bdcb1c5c6d77da6b99281f329827ee56087ec Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 18 Oct 2014 06:17:40 -0700 Subject: [PATCH 0317/1096] "LMX18" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..867de878df0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX18 From 035493abfe4bc898e735b3f6c992146f39945fed Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 19 Oct 2014 06:13:03 -0700 Subject: [PATCH 0318/1096] "LMX19" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..49771406d97 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX19 From ddec2f0d78a76243569228bfebd90f294e74d2e1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 19 Oct 2014 17:23:06 -0700 Subject: [PATCH 0319/1096] "LRX19" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a232659266b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX19 From 23ac22b7503b3ef633564daae562412e121714a6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 19 Oct 2014 23:16:46 -0700 Subject: [PATCH 0320/1096] LRX19B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a232659266b..7b3476be3d7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX19 +export BUILD_ID=LRX19B From 84ec89b1a165ed8705a90a39e17819d8265c550f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 20 Oct 2014 06:14:36 -0700 Subject: [PATCH 0321/1096] "LMX20" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..c92a7ab12a3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX20 From abea941acebd0120aaa44231d53a84e8d3e9e5ff Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 20 Oct 2014 07:28:38 -0700 Subject: [PATCH 0322/1096] LRX19C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7b3476be3d7..22ec60b1ff4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX19B +export BUILD_ID=LRX19C From 37b0f69e6633b73a4b08f3fd177c5272e24eaa0e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 20 Oct 2014 14:20:58 -0700 Subject: [PATCH 0323/1096] "LMX20B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c92a7ab12a3..054daa7d944 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX20 +export BUILD_ID=LMX20B From 12f25bcfba218bb720cc5fe7de7230cbbeaa57a8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 21 Oct 2014 06:19:20 -0700 Subject: [PATCH 0324/1096] "LMX21" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..94c9a13add6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX21 From 7e75a56e5f48f92c9a676aad427c7837ee614d02 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 21 Oct 2014 06:20:39 -0700 Subject: [PATCH 0325/1096] "LRX21" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..f15bd6b2eb1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX21 From 905b5dd42f895e823d990a3d53ed222fa9f0249d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 21 Oct 2014 10:03:23 -0700 Subject: [PATCH 0326/1096] "LRX21B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f15bd6b2eb1..66cd76f1756 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21 +export BUILD_ID=LRX21B From b3bec88d22f67802a757a2549c95f9374c21afec Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 21 Oct 2014 14:49:35 -0700 Subject: [PATCH 0327/1096] "LMX21B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 94c9a13add6..fe9abd08620 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX21 +export BUILD_ID=LMX21B From f579b3acbb8b9ecc2dc869da3ce6c5670abb5a5b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 21 Oct 2014 17:50:44 -0700 Subject: [PATCH 0328/1096] "LRX21C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..6a35db7320d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LRX21C From cd08a5df48af50739520955111ce2c6171753d86 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 22 Oct 2014 06:15:25 -0700 Subject: [PATCH 0329/1096] "LMX22" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..89a7492352d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX22 From a28925b917166c2c3d1bfbaf874117915412d5e3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 22 Oct 2014 11:33:33 -0700 Subject: [PATCH 0330/1096] "LRX21D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6a35db7320d..9e519f34dd0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21C +export BUILD_ID=LRX21D From e0984085868fb36e61fc400d839632a453ecd7ea Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 22 Oct 2014 15:10:59 -0700 Subject: [PATCH 0331/1096] "LMX22B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 89a7492352d..c6d2cacc947 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX22 +export BUILD_ID=LMX22B From d462146cb60db849fb3c4c75cc9c857976dbf33d Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Tue, 21 Oct 2014 21:20:41 -0700 Subject: [PATCH 0332/1096] Use the lowest common denominator 32-bit abi for arm64 cts build. So the 32-bit code can be run any supported 32-bit arm devices. Bug: 18038310 Change-Id: Ie8864cfdb87a4759d1a775d43cb5316b1f022e2b --- target/board/generic_arm64/BoardConfig.mk | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/target/board/generic_arm64/BoardConfig.mk b/target/board/generic_arm64/BoardConfig.mk index c57447d1436..818f857089d 100644 --- a/target/board/generic_arm64/BoardConfig.mk +++ b/target/board/generic_arm64/BoardConfig.mk @@ -25,13 +25,13 @@ TARGET_2ND_ARCH := arm TARGET_2ND_CPU_ABI := armeabi-v7a TARGET_2ND_CPU_ABI2 := armeabi -ifdef TARGET_BUILD_APPS +ifneq ($(TARGET_BUILD_APPS)$(filter cts,$(MAKECMDGOALS)),) # DO NOT USE # DO NOT USE # # This architecture / CPU variant must NOT be used for any 64 bit # platform builds. It is the lowest common denominator required -# to build an unbundled application for all supported 32 and 64 bit +# to build an unbundled application or cts for all supported 32 and 64 bit # platforms. # # If you're building a 64 bit platform (and not an application) the @@ -82,4 +82,3 @@ BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_FLASH_BLOCK_SIZE := 512 TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true - From 6c7965f240841c2fcc7f6155d2540356de464573 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 22 Oct 2014 17:44:48 -0700 Subject: [PATCH 0333/1096] "LRX21E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9e519f34dd0..117845d9b73 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21D +export BUILD_ID=LRX21E From 6b306303903a408520853248fabd649e6b81026b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 23 Oct 2014 06:18:25 -0700 Subject: [PATCH 0334/1096] "LMX23" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..f3914d8343e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX23 From 7dbaace43cb9a39e720784deb1638ec23927be06 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 23 Oct 2014 16:17:49 -0700 Subject: [PATCH 0335/1096] "LMX23B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f3914d8343e..079bef86df6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX23 +export BUILD_ID=LMX23B From 65f3282099a16e266bc61e0ed3016e15f6bd8959 Mon Sep 17 00:00:00 2001 From: Michael Runge Date: Wed, 22 Oct 2014 17:21:48 -0700 Subject: [PATCH 0336/1096] Allow info_dict from target_files to specify mount options This will allow safer mount options to be added per mount FS type, to better ensure data is written during an OTA. Bug: 18079773, 18092222 Change-Id: I1e3e4fd4639c6fd263e550b770cc3c858ef1e03b --- tools/releasetools/edify_generator.py | 19 +++++++++++++++---- tools/releasetools/ota_from_target_files | 19 ++++++++++++------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index 2bd071d4b21..e4b925299cf 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -164,14 +164,25 @@ def CacheFreeSpaceCheck(self, amount): self.script.append(('apply_patch_space(%d) || abort("Not enough free space ' 'on /system to apply patches.");') % (amount,)) - def Mount(self, mount_point): - """Mount the partition with the given mount_point.""" + def Mount(self, mount_point, mount_options_by_format=""): + """Mount the partition with the given mount_point. + mount_options_by_format: + [fs_type=option[,option]...[|fs_type=option[,option]...]...] + where option is optname[=optvalue] + E.g. ext4=barrier=1,nodelalloc,errors=panic|f2fs=errors=recover + """ fstab = self.info.get("fstab", None) if fstab: p = fstab[mount_point] - self.script.append('mount("%s", "%s", "%s", "%s");' % + mount_dict = {} + if mount_options_by_format is not None: + for option in mount_options_by_format.split("|"): + if "=" in option: + key, value = option.split("=", 1) + mount_dict[key] = value + self.script.append('mount("%s", "%s", "%s", "%s", "%s");' % (p.fs_type, common.PARTITION_TYPES[p.fs_type], - p.device, p.mount_point)) + p.device, p.mount_point, mount_dict.get(p.fs_type, ""))) self.mounts.add(p.mount_point) def UnpackPackageDir(self, src, dst): diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index e8dff5af91a..2a3ab89fd24 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -462,11 +462,12 @@ def WriteFullOTAPackage(input_zip, output_zip): script = edify_generator.EdifyGenerator(3, OPTIONS.info_dict) oem_props = OPTIONS.info_dict.get("oem_fingerprint_properties") + recovery_mount_options = OPTIONS.info_dict.get("recovery_mount_options") oem_dict = None if oem_props is not None and len(oem_props) > 0: if OPTIONS.oem_source is None: raise common.ExternalError("OEM source required for this build") - script.Mount("/oem") + script.Mount("/oem", recovery_mount_options) oem_dict = common.LoadDictionaryFromLines(open(OPTIONS.oem_source).readlines()) metadata = {"post-build": CalculateFingerprint( @@ -548,6 +549,8 @@ else if get_stage("%(bcb_dev)s", "stage") == "3/3" then if "selinux_fc" in OPTIONS.info_dict: WritePolicyConfig(OPTIONS.info_dict["selinux_fc"], output_zip) + recovery_mount_options = OPTIONS.info_dict.get("recovery_mount_options") + system_items = ItemSet("system", "META/filesystem_config.txt") script.ShowProgress(system_progress, 0) if block_based: @@ -561,7 +564,7 @@ else if get_stage("%(bcb_dev)s", "stage") == "3/3" then system_diff.WriteScript(script, output_zip) else: script.FormatPartition("/system") - script.Mount("/system") + script.Mount("/system", recovery_mount_options) if not has_recovery_patch: script.UnpackPackageDir("recovery", "/system") script.UnpackPackageDir("system", "/system") @@ -594,7 +597,7 @@ else if get_stage("%(bcb_dev)s", "stage") == "3/3" then vendor_diff.WriteScript(script, output_zip) else: script.FormatPartition("/vendor") - script.Mount("/vendor") + script.Mount("/vendor", recovery_mount_options) script.UnpackPackageDir("vendor", "/vendor") symlinks = CopyPartitionFiles(vendor_items, input_zip, output_zip) @@ -745,11 +748,12 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): vendor_diff = None oem_props = OPTIONS.target_info_dict.get("oem_fingerprint_properties") + recovery_mount_options = OPTIONS.target_info_dict.get("recovery_mount_options") oem_dict = None if oem_props is not None and len(oem_props) > 0: if OPTIONS.oem_source is None: raise common.ExternalError("OEM source required for this build") - script.Mount("/oem") + script.Mount("/oem", recovery_mount_options) oem_dict = common.LoadDictionaryFromLines(open(OPTIONS.oem_source).readlines()) AppendAssertions(script, OPTIONS.target_info_dict, oem_dict) @@ -1035,11 +1039,12 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip): OPTIONS.target_info_dict) oem_props = OPTIONS.info_dict.get("oem_fingerprint_properties") + recovery_mount_options = OPTIONS.info_dict.get("recovery_mount_options") oem_dict = None if oem_props is not None and len(oem_props) > 0: if OPTIONS.oem_source is None: raise common.ExternalError("OEM source required for this build") - script.Mount("/oem") + script.Mount("/oem", recovery_mount_options) oem_dict = common.LoadDictionaryFromLines(open(OPTIONS.oem_source).readlines()) metadata = {"pre-device": GetOemProperty("ro.product.device", oem_props, oem_dict, @@ -1059,10 +1064,10 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip): info_dict=OPTIONS.info_dict) system_diff = FileDifference("system", source_zip, target_zip, output_zip) - script.Mount("/system") + script.Mount("/system", recovery_mount_options) if HasVendorPartition(target_zip): vendor_diff = FileDifference("vendor", source_zip, target_zip, output_zip) - script.Mount("/vendor") + script.Mount("/vendor", recovery_mount_options) else: vendor_diff = None From f9d181979097af3f4a62dad9fff318a916759597 Mon Sep 17 00:00:00 2001 From: Michael Runge Date: Thu, 23 Oct 2014 13:51:04 -0700 Subject: [PATCH 0337/1096] get_stage in updater takes one param, not two. Change-Id: I09a77eda5a1691080b1ae074d2e94d233eca7150 --- tools/releasetools/ota_from_target_files | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 2a3ab89fd24..5cf9873e8e5 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -528,13 +528,13 @@ def WriteFullOTAPackage(input_zip, output_zip): bcb_dev = {"bcb_dev": fs.device} common.ZipWriteStr(output_zip, "recovery.img", recovery_img.data) script.AppendExtra(""" -if get_stage("%(bcb_dev)s", "stage") == "2/3" then +if get_stage("%(bcb_dev)s") == "2/3" then """ % bcb_dev) script.WriteRawImage("/recovery", "recovery.img") script.AppendExtra(""" set_stage("%(bcb_dev)s", "3/3"); reboot_now("%(bcb_dev)s", "recovery"); -else if get_stage("%(bcb_dev)s", "stage") == "3/3" then +else if get_stage("%(bcb_dev)s") == "3/3" then """ % bcb_dev) device_specific.FullOTA_InstallBegin() @@ -789,14 +789,14 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): bcb_dev = {"bcb_dev": fs.device} common.ZipWriteStr(output_zip, "recovery.img", target_recovery.data) script.AppendExtra(""" -if get_stage("%(bcb_dev)s", "stage") == "2/3" then +if get_stage("%(bcb_dev)s") == "2/3" then """ % bcb_dev) script.AppendExtra("sleep(20);\n"); script.WriteRawImage("/recovery", "recovery.img") script.AppendExtra(""" set_stage("%(bcb_dev)s", "3/3"); reboot_now("%(bcb_dev)s", "recovery"); -else if get_stage("%(bcb_dev)s", "stage") != "3/3" then +else if get_stage("%(bcb_dev)s") != "3/3" then """ % bcb_dev) script.Print("Verifying current system...") @@ -1138,14 +1138,14 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip): bcb_dev = {"bcb_dev": fs.device} common.ZipWriteStr(output_zip, "recovery.img", target_recovery.data) script.AppendExtra(""" -if get_stage("%(bcb_dev)s", "stage") == "2/3" then +if get_stage("%(bcb_dev)s") == "2/3" then """ % bcb_dev) script.AppendExtra("sleep(20);\n"); script.WriteRawImage("/recovery", "recovery.img") script.AppendExtra(""" set_stage("%(bcb_dev)s", "3/3"); reboot_now("%(bcb_dev)s", "recovery"); -else if get_stage("%(bcb_dev)s", "stage") != "3/3" then +else if get_stage("%(bcb_dev)s") != "3/3" then """ % bcb_dev) script.Print("Verifying current system...") From 5ac4f7ab58ab514bc140be67a19dfa1bc9e94d05 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 23 Oct 2014 17:38:40 -0700 Subject: [PATCH 0338/1096] "LRX21F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 117845d9b73..c11a1bc4310 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21E +export BUILD_ID=LRX21F From e38716a5adee1720806c55e1d49262e4741b29ce Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 24 Oct 2014 11:00:42 -0700 Subject: [PATCH 0339/1096] "LMX23C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 079bef86df6..a09dafb8f35 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX23B +export BUILD_ID=LMX23C From 0d82e8106aeffa47599c34eac752f6457249f973 Mon Sep 17 00:00:00 2001 From: JP Abgrall Date: Wed, 22 Oct 2014 20:01:22 -0700 Subject: [PATCH 0340/1096] core: Let the build specify mount options for recovery Currently recovery install/patch will mount /system++ with only default options. The default options are not very suitable for dealing with crashes. We now use TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS that can specify which mount options to use for a given fs-type. # =[|]... # fstype_opts := [,]... # opt := [=] If only defaults are to be used, then the BoardConfig.mk can just have an empty (must have ""): TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS := "" The default is "ext4=match_batch_time=0,commit=1,data=journal,barrier=1,errors=panic,nodelalloc" The release tools will pick them up with https://googleplex-android-review.git.corp.google.com/#/c/573628 Bug: 18092222 Change-Id: Iaa59099b0edf5af8835d1862fada089cff58882c --- core/Makefile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/core/Makefile b/core/Makefile index 72ca56cbd66..f411e066b57 100644 --- a/core/Makefile +++ b/core/Makefile @@ -674,6 +674,12 @@ endif endif endif +# These options tell the recovery updater/installer how to mount the partitions writebale. +# =[|]... +# fstype_opts := [,]... +# opt := [=] +DEFAULT_TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS := ext4=match_batch_time=0,commit=1,data=journal,barrier=1,errors=panic,nodelalloc + ifneq (true,$(TARGET_USERIMAGES_SPARSE_EXT_DISABLED)) INTERNAL_USERIMAGES_SPARSE_EXT_FLAG := -s endif @@ -1395,6 +1401,12 @@ ifdef BOARD_BOOTIMAGE_PARTITION_SIZE endif ifdef BOARD_RECOVERYIMAGE_PARTITION_SIZE $(hide) echo "recovery_size=$(BOARD_RECOVERYIMAGE_PARTITION_SIZE)" >> $(zip_root)/META/misc_info.txt +endif +ifdef TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS + @# TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS can be empty to indicate that nothing but defaults should be used. + $(hide) echo "recovery_mount_options=$(TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS)" >> $(zip_root)/META/misc_info.txt +else + $(hide) echo "recovery_mount_options=$(DEFAULT_TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS)" >> $(zip_root)/META/misc_info.txt endif $(hide) echo "tool_extensions=$(tool_extensions)" >> $(zip_root)/META/misc_info.txt $(hide) echo "default_system_dev_certificate=$(DEFAULT_SYSTEM_DEV_CERTIFICATE)" >> $(zip_root)/META/misc_info.txt From 3638ea98ba14c5a8ef53ee7efca8560dc77123c0 Mon Sep 17 00:00:00 2001 From: JP Abgrall Date: Thu, 23 Oct 2014 16:27:03 -0700 Subject: [PATCH 0341/1096] core: Fixup bad ext4 mount options for recovery (pick common denominator) Some ext4 options were not suitable for all kernel versions. The current option were checked against kernels 3.0 3.4 3.10. Bug: 18092222 Change-Id: I30883706e5c8ac7a318f4b448d4becde50de808f --- core/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index f411e066b57..2177a182da2 100644 --- a/core/Makefile +++ b/core/Makefile @@ -678,7 +678,8 @@ endif # =[|]... # fstype_opts := [,]... # opt := [=] -DEFAULT_TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS := ext4=match_batch_time=0,commit=1,data=journal,barrier=1,errors=panic,nodelalloc +# The following worked on Nexus devices with Kernel 3.1, 3.4, 3.10 +DEFAULT_TARGET_RECOVERY_FSTYPE_MOUNT_OPTIONS := ext4=max_batch_time=0,commit=1,data=ordered,barrier=1,errors=panic,nodelalloc ifneq (true,$(TARGET_USERIMAGES_SPARSE_EXT_DISABLED)) INTERNAL_USERIMAGES_SPARSE_EXT_FLAG := -s From 6c52aa39414b9b8de1e212a1967634ea3669eab9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 24 Oct 2014 16:05:46 -0700 Subject: [PATCH 0342/1096] "LRX21G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c11a1bc4310..2c4cfc0b809 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21F +export BUILD_ID=LRX21G From f041a59bd590340989d40a14c6a30fb122f5f063 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 24 Oct 2014 18:30:35 -0700 Subject: [PATCH 0343/1096] "LRX21H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2c4cfc0b809..83b417be08e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21G +export BUILD_ID=LRX21H From c828adf4d7c9e5dab77ca6c527f9c5b08de2ce6e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 25 Oct 2014 06:15:54 -0700 Subject: [PATCH 0344/1096] "LMX25" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..511da32ed08 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX25 From 4d5baee92c0e06e1fe44f4db3a0eb258de357d28 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 26 Oct 2014 06:13:34 -0700 Subject: [PATCH 0345/1096] "LMX26" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..6bbe4682517 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX26 From 83b77d52ca01db77a49e8893d586efd8b78e7f28 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 26 Oct 2014 08:20:58 -0700 Subject: [PATCH 0346/1096] LRX21I --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 83b417be08e..5f1ee05311c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21H +export BUILD_ID=LRX21I From 105c38977f7be049cec2c7121b72ccffb6387094 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 26 Oct 2014 12:41:22 -0700 Subject: [PATCH 0347/1096] LRX21J --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5f1ee05311c..c2d2c5468f8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21I +export BUILD_ID=LRX21J From a75d4d715ab820339dd0d0d5345d081668b31791 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 27 Oct 2014 06:13:55 -0700 Subject: [PATCH 0348/1096] "LMX27" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..fd31f30170e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX27 From c60a9e658505d65de25ee34f29f937e2217dbde3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 27 Oct 2014 14:12:32 -0700 Subject: [PATCH 0349/1096] "LRX21K" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c2d2c5468f8..a9e6385043c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21J +export BUILD_ID=LRX21K From 4a9dff64eedca6108a35d68dcf5daab1749604be Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 27 Oct 2014 20:30:26 -0700 Subject: [PATCH 0350/1096] "LRX21L" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a9e6385043c..a3a258c53c9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21K +export BUILD_ID=LRX21L From 2b75a73909a2d21f84ad03395b434cc6a11d29e3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 28 Oct 2014 06:20:48 -0700 Subject: [PATCH 0351/1096] "LMX28" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..775774f6901 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX28 From 01d264bc727f67eac4a6bc2b2ac18703fc1d0992 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 29 Oct 2014 06:14:51 -0700 Subject: [PATCH 0352/1096] "LMX29" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..b893a5d6b10 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX29 From 7859c8c4a89793fa31206d90ec699edef947b376 Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Fri, 24 Oct 2014 11:36:59 -0700 Subject: [PATCH 0353/1096] Store symbols.zip in apps_only build. Bug: 18103055 Change-Id: I0eb335e944138b0edc3050d19c076891f499a07c --- core/Makefile | 6 +++++- core/main.mk | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 2177a182da2..b08ad1bcc56 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1510,10 +1510,14 @@ endif name := $(name)-symbols-$(FILE_NAME_TAG) SYMBOLS_ZIP := $(PRODUCT_OUT)/$(name).zip +# For apps_only build we'll establish the dependency later in build/core/main.mk. +ifndef TARGET_BUILD_APPS $(SYMBOLS_ZIP): $(INSTALLED_SYSTEMIMAGE) $(INSTALLED_BOOTIMAGE_TARGET) +endif +$(SYMBOLS_ZIP): @echo "Package symbols: $@" $(hide) rm -rf $@ - $(hide) mkdir -p $(dir $@) + $(hide) mkdir -p $(dir $@) $(TARGET_OUT_UNSTRIPPED) $(hide) zip -qr $@ $(TARGET_OUT_UNSTRIPPED) # ----------------------------------------------------------------- diff --git a/core/main.mk b/core/main.mk index 749929a5f30..9d6e233d4c0 100644 --- a/core/main.mk +++ b/core/main.mk @@ -936,6 +936,9 @@ ifneq ($(TARGET_BUILD_APPS),) $(PROGUARD_DICT_ZIP) : $(apps_only_installed_files) $(call dist-for-goals,apps_only, $(PROGUARD_DICT_ZIP)) + $(SYMBOLS_ZIP) : $(apps_only_installed_files) + $(call dist-for-goals,apps_only, $(SYMBOLS_ZIP)) + .PHONY: apps_only apps_only: $(unbundled_build_modules) From e8269481084df086a04c6bdcd3477d4209d4a7cb Mon Sep 17 00:00:00 2001 From: Michael Runge Date: Tue, 28 Oct 2014 19:24:19 -0700 Subject: [PATCH 0354/1096] Add post-install verification phase Verify the SHA sum of all patched and extracted files after a file system remount. Bug: 18145574 Change-Id: I2f053d085543e10e39153a774542d37ee0a238bd --- tools/releasetools/edify_generator.py | 4 +++ tools/releasetools/ota_from_target_files | 31 ++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index e4b925299cf..7d318a31e17 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -323,6 +323,10 @@ def AppendExtra(self, extra): """Append text verbatim to the output script.""" self.script.append(extra) + def Unmount(self, mount_point): + self.script.append('unmount("%s");' % (mount_point,)) + self.mounts.remove(mount_point); + def UnmountAll(self): for p in sorted(self.mounts): self.script.append('unmount("%s");' % (p,)) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 5cf9873e8e5..755e5c2d2a4 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -37,6 +37,10 @@ Usage: ota_from_target_files [flags] input_target_files output_ota_package Generate an incremental OTA using the given target-files zip as the starting build. + -v (--verify) + Remount and verify the checksums of the files written to the + system and vendor (if used) partitions. Incremental builds only. + -o (--oem_settings) Use the file to specify the expected OEM-specific properties on the OEM partition of the intended device. @@ -104,6 +108,7 @@ import sparse_img OPTIONS = common.OPTIONS OPTIONS.package_key = None OPTIONS.incremental_source = None +OPTIONS.verify = False OPTIONS.require_verbatim = set() OPTIONS.prohibit_verbatim = set(("system/build.prop",)) OPTIONS.patch_threshold = 0.95 @@ -939,7 +944,7 @@ class FileDifference: raise common.ExternalError("\"%s\" must be sent verbatim" % (fn,)) print "send", fn, "verbatim" tf.AddToZip(output_zip) - verbatim_targets.append((fn, tf.size)) + verbatim_targets.append((fn, tf.size, tf.sha1)) if fn in target_data.keys(): AddToKnownPaths(fn, known_paths) elif tf.sha1 != sf.sha1: @@ -960,7 +965,7 @@ class FileDifference: # or a patch + rename cannot take place due to the target # directory not existing tf.AddToZip(output_zip) - verbatim_targets.append((tf.name, tf.size)) + verbatim_targets.append((tf.name, tf.size, tf.sha1)) if sf.name in renames: del renames[sf.name] AddToKnownPaths(tf.name, known_paths) @@ -980,6 +985,13 @@ class FileDifference: so_far += sf.size return so_far + def EmitExplicitTargetVerification(self, script): + for fn, size, sha1 in self.verbatim_targets: + if (fn[-1] != "/"): + script.FileCheck("/"+fn, sha1) + for tf, _, _, _ in self.patch_list: + script.FileCheck(tf.name, tf.sha1) + def RemoveUnneededFiles(self, script, extras=()): script.DeleteFiles(["/"+i[0] for i in self.verbatim_targets] + ["/"+i for i in sorted(self.source_data) @@ -1351,7 +1363,19 @@ endif; endif; """ % bcb_dev) + if OPTIONS.verify and system_diff: + script.Print("Remounting and verifying system partition files...") + script.Unmount("/system") + script.Mount("/system") + system_diff.EmitExplicitTargetVerification(script) + + if OPTIONS.verify and vendor_diff: + script.Print("Remounting and verifying vendor partition files...") + script.Unmount("/vendor") + script.Mount("/vendor") + vendor_diff.EmitExplicitTargetVerification(script) script.AddToZip(target_zip, output_zip, input_path=OPTIONS.updater_binary) + WriteMetadata(metadata, output_zip) @@ -1387,6 +1411,8 @@ def main(argv): OPTIONS.two_step = True elif o == "--no_signing": OPTIONS.no_signing = True + elif o in ("--verify"): + OPTIONS.verify = True elif o == "--block": OPTIONS.block_based = True elif o in ("-b", "--binary"): @@ -1412,6 +1438,7 @@ def main(argv): "block", "binary=", "oem_settings=", + "verify", "no_fallback_to_full", ], extra_option_handler=option_handler) From bf7954631b2abaced19ab298798595e334108b04 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 29 Oct 2014 13:29:52 -0700 Subject: [PATCH 0355/1096] "LRX21M" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a3a258c53c9..78bb1053cdd 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21L +export BUILD_ID=LRX21M From 6eac00bebef44489ab878119615ed9144f9fdd0b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 30 Oct 2014 06:18:12 -0700 Subject: [PATCH 0356/1096] "LMX30" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..b9efec5478a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX30 From a7eedcf65289b8cf2e9b5dfb5d90dd9b02e75ea2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 30 Oct 2014 10:41:22 -0700 Subject: [PATCH 0357/1096] LMX30B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b9efec5478a..fde2f7d1105 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX30 +export BUILD_ID=LMX30B From 2305f3f7e0d4d98d6c7aba6fec2c24f27b54d5bc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 30 Oct 2014 14:35:12 -0700 Subject: [PATCH 0358/1096] LMX30C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fde2f7d1105..4a662535b6a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX30B +export BUILD_ID=LMX30C From 50c53ed6d342e359ab860bf3b1046adbd88b19a2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 31 Oct 2014 13:04:23 -0700 Subject: [PATCH 0359/1096] LMX30D --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4a662535b6a..c6e13f7e250 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX30C +export BUILD_ID=LMX30D From 69a070b016ed2c49b42e1226f020e78b3c71331c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 31 Oct 2014 18:07:31 -0700 Subject: [PATCH 0360/1096] LRX21N --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 78bb1053cdd..4f7b45861d4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21M +export BUILD_ID=LRX21N From ed4fa87870dcf01b3fbf4bb3c8314ac68e13bbc8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 1 Nov 2014 06:16:48 -0700 Subject: [PATCH 0361/1096] "LMX32" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..d65f224250f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX32 From 2001fe1bc9bf6d4fc897ba5ae7c43db4ed6a3d3b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 2 Nov 2014 06:15:11 -0800 Subject: [PATCH 0362/1096] "LMX33" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..21f4e2f36ca 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX33 From 87c6f8dee7bad7155d172667ca92af0c58af3a81 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 3 Nov 2014 06:16:56 -0800 Subject: [PATCH 0363/1096] "LMX34" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a6268d366c2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX34 From afcec322777bc476ab74e90d051a9cd4717a1857 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 4 Nov 2014 06:18:55 -0800 Subject: [PATCH 0364/1096] "LMX35" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..9d97b0dd7f2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX35 From 3e40ca6feb7a72780f057ece321baa279b3eb59e Mon Sep 17 00:00:00 2001 From: Shashank Mittal Date: Wed, 21 May 2014 17:36:49 -0700 Subject: [PATCH 0365/1096] Define CONFIG_64BIT for LP64 target Linux kernel uapi headers use CONFIG_64BIT flag. We need to define that if __LP64__ flag is defined. Change-Id: I2143ca8d91d70506485f3eb6f21a9e5243c495cc --- core/combo/include/arch/linux-arm64/AndroidConfig.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/combo/include/arch/linux-arm64/AndroidConfig.h b/core/combo/include/arch/linux-arm64/AndroidConfig.h index bcbda8f87fc..bbea22dd3e7 100644 --- a/core/combo/include/arch/linux-arm64/AndroidConfig.h +++ b/core/combo/include/arch/linux-arm64/AndroidConfig.h @@ -337,4 +337,11 @@ */ #define HAVE_GNU_QSORT_R 0 +/* + * Define CONFIG_64BIT based on __LP64__ + */ +#ifdef __LP64__ +#define CONFIG_64BIT +#endif + #endif /* _ANDROID_CONFIG_H */ From 4da943401270f8d175b32eb5d62603856f637ed1 Mon Sep 17 00:00:00 2001 From: David Ng Date: Fri, 27 Jul 2012 18:39:48 -0700 Subject: [PATCH 0366/1096] build: Add support for device tree in boot.img Add support for optional device tree image (dt.img) to boot and recovery images. Some devices use kernel device tree and this adds the device tree image as a section within the boot/recovery images. Change-Id: I91431ef2f4b86485895678916e39a8572be878eb --- core/Makefile | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index b08ad1bcc56..117b65e1e9d 100644 --- a/core/Makefile +++ b/core/Makefile @@ -485,6 +485,11 @@ ifdef BOARD_KERNEL_PAGESIZE INTERNAL_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE) endif +ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) + INTERNAL_BOOTIMAGE_ARGS += --dt $(INSTALLED_DTIMAGE_TARGET) + BOOTIMAGE_EXTRA_DEPS := $(INSTALLED_DTIMAGE_TARGET) +endif + INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img ifeq ($(TARGET_BOOTIMAGE_USE_EXT2),true) @@ -517,7 +522,7 @@ bootimage-nodeps: $(MKBOOTIMG) $(BOOT_SIGNER) else # PRODUCT_SUPPORTS_VERITY != true -$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) +$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOTIMAGE_EXTRA_DEPS) $(call pretty,"Target boot image: $@") $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE)) @@ -809,6 +814,10 @@ BOARD_KERNEL_PAGESIZE := $(strip $(BOARD_KERNEL_PAGESIZE)) ifdef BOARD_KERNEL_PAGESIZE INTERNAL_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE) endif +ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) + INTERNAL_RECOVERYIMAGE_ARGS += --dt $(INSTALLED_DTIMAGE_TARGET) + RECOVERYIMAGE_EXTRA_DEPS := $(INSTALLED_DTIMAGE_TARGET) +endif # Keys authorized to sign OTA packages this build will accept. The # build always uses dev-keys for this; release packaging tools will @@ -828,7 +837,7 @@ $(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) $(extra_keys) @mkdir -p $(dir $@) java -jar $(DUMPKEY_JAR) $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys) > $@ -$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \ +$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(recovery_binary) \ From 298cd1983b116e5ca1671365f8c64dfe1c1b0e85 Mon Sep 17 00:00:00 2001 From: Sreedhar Date: Wed, 11 Dec 2013 23:16:12 +0530 Subject: [PATCH 0367/1096] Build: add DT image variable to Makefile DT image variable is currently present in generate_extra_images.mk.This file is moved to build/tasks to support persist image generation during parallel make. As build/tasks is called at the end of Makefile, DT image variable is not available for other images generation like boot and recovery. Adding this variable in Makefile ensures the variable is defined before usage Change-Id: I21f675d8ce648dc1cf1f4f3aede33278300e08c9 CRs-fixed: 548299 --- core/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/Makefile b/core/Makefile index 117b65e1e9d..c24be3b2251 100644 --- a/core/Makefile +++ b/core/Makefile @@ -485,6 +485,8 @@ ifdef BOARD_KERNEL_PAGESIZE INTERNAL_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE) endif +INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img + ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) INTERNAL_BOOTIMAGE_ARGS += --dt $(INSTALLED_DTIMAGE_TARGET) BOOTIMAGE_EXTRA_DEPS := $(INSTALLED_DTIMAGE_TARGET) From ae0a99782d900fa539e7521032a87b8bb382e319 Mon Sep 17 00:00:00 2001 From: Ameya Thakur Date: Wed, 24 Oct 2012 19:31:42 -0700 Subject: [PATCH 0368/1096] Fix case where boot/recovery.img were being built with wrong params. The boot and recovery images now get built using the same params during ota package generation as during a normal build. Change-Id: I93d46e11a4245288f0e87c87a2e4bf45ac5aff69 --- core/Makefile | 19 +++++++++++++++++++ tools/releasetools/common.py | 16 +++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) mode change 100644 => 100755 tools/releasetools/common.py diff --git a/core/Makefile b/core/Makefile index c24be3b2251..e58a669158d 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1358,6 +1358,15 @@ ifdef BOARD_KERNEL_BASE endif ifdef BOARD_KERNEL_PAGESIZE $(hide) echo "$(BOARD_KERNEL_PAGESIZE)" > $(zip_root)/RECOVERY/pagesize +endif +ifdef BOARD_KERNEL_TAGS_ADDR + $(hide) echo "$(BOARD_KERNEL_TAGS_ADDR)" > $(zip_root)/RECOVERY/tagsaddr +endif +ifdef BOARD_RAMDISK_OFFSET + $(hide) echo "$(BOARD_RAMDISK_OFFSET)" > $(zip_root)/RECOVERY/ramdisk_offset +endif +ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) + $(hide) echo "$(INSTALLED_DTIMAGE_TARGET)" > $(zip_root)/RECOVERY/dt_args endif @# Components of the boot image $(hide) mkdir -p $(zip_root)/BOOT @@ -1378,6 +1387,16 @@ ifdef BOARD_KERNEL_BASE endif ifdef BOARD_KERNEL_PAGESIZE $(hide) echo "$(BOARD_KERNEL_PAGESIZE)" > $(zip_root)/BOOT/pagesize +endif +ifdef BOARD_KERNEL_TAGS_ADDR + $(hide) echo "$(BOARD_KERNEL_TAGS_ADDR)" > $(zip_root)/BOOT/tagsaddr +endif +ifdef BOARD_RAMDISK_OFFSET + $(hide) echo "$(BOARD_RAMDISK_OFFSET)" > $(zip_root)/BOOT/ramdisk_offset +endif + +ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) + $(hide) echo "$(INSTALLED_DTIMAGE_TARGET)" > $(zip_root)/BOOT/dt_args endif $(hide) $(foreach t,$(INSTALLED_RADIOIMAGE_TARGET),\ mkdir -p $(zip_root)/RADIO; \ diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py old mode 100644 new mode 100755 index 815c76ca2fd..7826c7ddf72 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -328,6 +328,21 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): cmd.append("--base") cmd.append(open(fn).read().rstrip("\n")) + fn = os.path.join(sourcedir, "tagsaddr") + if os.access(fn, os.F_OK): + cmd.append("--tags-addr") + cmd.append(open(fn).read().rstrip("\n")) + + fn = os.path.join(sourcedir, "ramdisk_offset") + if os.access(fn, os.F_OK): + cmd.append("--ramdisk_offset") + cmd.append(open(fn).read().rstrip("\n")) + + fn = os.path.join(sourcedir, "dt_args") + if os.access(fn, os.F_OK): + cmd.append("--dt") + cmd.append(open(fn).read().rstrip("\n")) + fn = os.path.join(sourcedir, "pagesize") if os.access(fn, os.F_OK): cmd.append("--pagesize") @@ -339,7 +354,6 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): cmd.extend(["--ramdisk", ramdisk_img.name, "--output", img.name]) - p = Run(cmd, stdout=subprocess.PIPE) p.communicate() assert p.returncode == 0, "mkbootimg of %s image failed" % ( From de61afc95ec1f019bc7b235ea0963348cd817cd8 Mon Sep 17 00:00:00 2001 From: AUDITYA BHATTARAM Date: Tue, 5 Aug 2014 11:08:15 +0530 Subject: [PATCH 0369/1096] Fix the extra dt.img compilation issue. Add support for optional device tree image (dt.img) for device that doesnt have TARGET_BOOTIMAGE_USE_EXT2 Change-Id: I6e07b3ca6d049a8ebdad7ea304b4f39e7c846151 --- core/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index e58a669158d..6d4495f87ed 100644 --- a/core/Makefile +++ b/core/Makefile @@ -509,7 +509,7 @@ bootimage-nodeps: $(MKEXT2IMG) else ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) # TARGET_BOOTIMAGE_USE_EXT2 != true -$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOT_SIGNER) +$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOT_SIGNER) $(BOOTIMAGE_EXTRA_DEPS) $(call pretty,"Target boot image: $@") $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ $(BOOT_SIGNER) /boot $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $@ From 67feab1ed520f289ceaf7f8500b71d9e9e3224e2 Mon Sep 17 00:00:00 2001 From: Sudhir Sharma Date: Tue, 12 Aug 2014 19:26:48 -0700 Subject: [PATCH 0370/1096] Fixing Compilation issue Change-Id: I1ad1e91498aee877c78cf85656fe704c585fb0cf --- tools/post_process_props.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/post_process_props.py b/tools/post_process_props.py index 030826deb01..223770780f0 100755 --- a/tools/post_process_props.py +++ b/tools/post_process_props.py @@ -22,7 +22,7 @@ # See PROP_NAME_MAX and PROP_VALUE_MAX system_properties.h. # The constants in system_properties.h includes the termination NUL, # so we decrease the values by 1 here. -PROP_NAME_MAX = 31 +PROP_NAME_MAX = 32 PROP_VALUE_MAX = 91 # Put the modifications that you need to make into the /system/build.prop into this From 013779a850ad13982fcc87530247ddb0ba4846a9 Mon Sep 17 00:00:00 2001 From: Chiou-Hao Hsu Date: Thu, 23 Oct 2014 22:09:46 -0700 Subject: [PATCH 0371/1096] framework: adding security-bridge adding security-bridge to FRAMEWORK_BASE_SUBDIRS to make it compile as part of the framework/base java module Change-Id: Ic96ba5549525fcaa58c274f918ac511f69cb0096 --- core/pathmap.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/pathmap.mk b/core/pathmap.mk index 0820885a6ac..ff22a228dde 100644 --- a/core/pathmap.mk +++ b/core/pathmap.mk @@ -91,6 +91,7 @@ FRAMEWORKS_BASE_SUBDIRS := \ wifi \ keystore \ rs \ + security-bridge \ ) # From 7e46e2bd2c6f1b4b84dcc54508cc5243bcfdf2f4 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Tue, 26 Aug 2014 11:23:22 -0700 Subject: [PATCH 0372/1096] enable sdiv support in ART ART looks for TARGET_CPU_VARIANT to determine hardware instruction set support. QCOM chipsets set TARGET_CPU_VARIANT as "generic", so we add it to ART's look-up list. Change-Id: I07917f3f9c86dca15951698510024e39b1fee565 --- core/config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/config.mk b/core/config.mk index bfa5610ddb1..614359aadb9 100644 --- a/core/config.mk +++ b/core/config.mk @@ -551,7 +551,7 @@ TARGET_CPU_SMP ?= true DEX2OAT_TARGET_ARCH := $(TARGET_ARCH) DEX2OAT_TARGET_CPU_VARIANT := $(TARGET_CPU_VARIANT) DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := default -ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a7 cortex-a15 krait denver)) +ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a7 cortex-a15 krait denver generic)) DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := div endif From f34662ed8ab124a39f5347920efd0acff090b99f Mon Sep 17 00:00:00 2001 From: David Ng Date: Tue, 23 Sep 2014 18:15:20 -0700 Subject: [PATCH 0373/1096] Fully expand eng/debug/tests module install files When including eng, debug and tests modules that are tagged using LOCAL_MODULE_TAGS, fully expand the install file list from just the tagged module to all the module's INSTALLED list. This allows auto-generated files such as dex preopt odex files tagged under the module's INSTALLED list to be included. This also makes the behavior of specifying a module as debug using LOCAL_MODULE_TAGS to be the same as specifying it as PRODUCT_PACKAGES_DEBUG when building for userdebug or eng variant. Change-Id: If9a24b62d8bee9e378f3e5f58e9490e963238302 --- core/main.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/main.mk b/core/main.mk index 9d6e233d4c0..ee5df497828 100644 --- a/core/main.mk +++ b/core/main.mk @@ -718,15 +718,15 @@ else endif eng_MODULES := $(sort \ - $(call get-tagged-modules,eng) \ + $(call module-installed-files, $(call module-names-for-tag-list,eng)) \ $(call module-installed-files, $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES_ENG)) \ ) debug_MODULES := $(sort \ - $(call get-tagged-modules,debug) \ + $(call module-installed-files, $(call module-names-for-tag-list,debug)) \ $(call module-installed-files, $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES_DEBUG)) \ ) tests_MODULES := $(sort \ - $(call get-tagged-modules,tests) \ + $(call module-installed-files, $(call module-names-for-tag-list,tests)) \ $(call module-installed-files, $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES_TESTS)) \ ) From a1dc3e89659d169a6c4de58bd3e484a5fabd3bf4 Mon Sep 17 00:00:00 2001 From: David Ng Date: Thu, 25 Sep 2014 19:32:48 -0700 Subject: [PATCH 0374/1096] Allow override of DEX_PREOPT_DEFAULT Allow device-specific override of DEX_PREOPT_DEFAULT value rather than dependent on the number of runtimes supported by the system. This allows force generation of non-stripped packages even when dex pre-opt is enabled with only 1 runtime. Change-Id: I57573ce17dc46b7eccf1a3619b073ead1b77c134 --- core/product_config.mk | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/product_config.mk b/core/product_config.mk index 32e351cc7b7..1122bfa86bd 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -269,12 +269,14 @@ product_runtimes := PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PROPERTY_OVERRIDES += persist.sys.dalvik.vm.lib.2=$(DALVIK_VM_LIB) -ifeq ($(words $(PRODUCT_RUNTIMES)),1) - # If we only have one runtime, we can strip classes.dex by default during dex_preopt - DEX_PREOPT_DEFAULT := true -else +ifeq ($(DEX_PREOPT_DEFAULT),) + ifeq ($(words $(PRODUCT_RUNTIMES)),1) + # If we only have one runtime, we can strip classes.dex by default during dex_preopt + DEX_PREOPT_DEFAULT := true + else # If we have more than one, we leave the classes.dex alone for post-boot analysis - DEX_PREOPT_DEFAULT := nostripping + DEX_PREOPT_DEFAULT := nostripping + endif endif ############################################################################# From a216054d3a122c38492e1e62c2c8509318222eda Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Thu, 25 Sep 2014 16:16:03 -0700 Subject: [PATCH 0375/1096] enable sdiv support in ART add more target into ART instruction set feature look-up list. Change-Id: If2332ff1fc1f496187ca632f7ee4af5fe880515e --- core/config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/config.mk b/core/config.mk index 614359aadb9..45621d7668d 100644 --- a/core/config.mk +++ b/core/config.mk @@ -559,7 +559,7 @@ ifdef TARGET_2ND_ARCH $(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_ARCH := $(TARGET_2ND_ARCH) $(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT := $(TARGET_2ND_CPU_VARIANT) $(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := default -ifneq (,$(filter $($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT),cortex-a7 cortex-a15 krait denver)) +ifneq (,$(filter $($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT),cortex-a7 cortex-a15 krait denver cortex-a53)) $(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := div endif endif From f90a6fc396d86370e397c9357e4c0b00c812af04 Mon Sep 17 00:00:00 2001 From: Omprakash Dhyade Date: Thu, 2 Oct 2014 15:15:02 -0700 Subject: [PATCH 0376/1096] Revert "Inhibit implicit -Bsymolic in -shared." This reverts commit 04cf31597021af3cd045dd9c50d94a87d0394023. The revert helps in benchmark performance. Change-Id: Id3b0c68efdc7dacd43bcc3b3b6f61f288576307d --- core/binary.mk | 1 - core/combo/TARGET_linux-arm.mk | 2 +- core/combo/TARGET_linux-arm64.mk | 2 +- core/combo/TARGET_linux-mips.mk | 2 +- core/combo/TARGET_linux-mips64.mk | 2 +- core/combo/TARGET_linux-x86.mk | 2 +- core/combo/TARGET_linux-x86_64.mk | 2 +- core/definitions.mk | 2 +- 8 files changed, 7 insertions(+), 8 deletions(-) diff --git a/core/binary.mk b/core/binary.mk index d3393179ddb..39f6d11c0df 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -327,7 +327,6 @@ ifneq ($(LOCAL_NO_SYNTAX_CHECK),true) endif endif $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CXX := $(my_cxx) -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CLANG := $(my_clang) # TODO: support a mix of standard extensions so that this isn't necessary LOCAL_CPP_EXTENSION := $(strip $(LOCAL_CPP_EXTENSION)) diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk index df81cd52a31..88f11fdca93 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -196,7 +196,7 @@ define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) \ -Wl,--gc-sections \ - $(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \ + -shared \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ diff --git a/core/combo/TARGET_linux-arm64.mk b/core/combo/TARGET_linux-arm64.mk index 07d398449cf..520eb0941a8 100644 --- a/core/combo/TARGET_linux-arm64.mk +++ b/core/combo/TARGET_linux-arm64.mk @@ -162,7 +162,7 @@ define transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) \ -Wl,--gc-sections \ - $(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \ + -shared \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ diff --git a/core/combo/TARGET_linux-mips.mk b/core/combo/TARGET_linux-mips.mk index 995e63c2371..ccd7c1a2ddb 100644 --- a/core/combo/TARGET_linux-mips.mk +++ b/core/combo/TARGET_linux-mips.mk @@ -168,7 +168,7 @@ define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) \ -Wl,--gc-sections \ - $(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \ + -shared \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ diff --git a/core/combo/TARGET_linux-mips64.mk b/core/combo/TARGET_linux-mips64.mk index 4511b477913..ae93af4720f 100644 --- a/core/combo/TARGET_linux-mips64.mk +++ b/core/combo/TARGET_linux-mips64.mk @@ -172,7 +172,7 @@ define transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) \ -Wl,--gc-sections \ - $(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \ + -shared \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk index 0af39488baa..609236732da 100644 --- a/core/combo/TARGET_linux-x86.mk +++ b/core/combo/TARGET_linux-x86.mk @@ -149,7 +149,7 @@ define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Wl,-soname,$(notdir $@) \ - $(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \ + -shared \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ diff --git a/core/combo/TARGET_linux-x86_64.mk b/core/combo/TARGET_linux-x86_64.mk index 33d6a56b0f5..b8f12e19e35 100644 --- a/core/combo/TARGET_linux-x86_64.mk +++ b/core/combo/TARGET_linux-x86_64.mk @@ -154,7 +154,7 @@ define transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Wl,-soname,$(notdir $@) \ - $(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \ + -shared \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ diff --git a/core/definitions.mk b/core/definitions.mk index 38aa72066f5..89661067e61 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1309,7 +1309,7 @@ $(hide) $(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \ -Wl,-rpath,\$$ORIGIN/../lib \ - -Wl,-shared -Wl,-soname,$(notdir $@) \ + -shared -Wl,-soname,$(notdir $@) \ $(PRIVATE_LDFLAGS) \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_ALL_OBJECTS) \ From 2c1946654763036e7f6ede81afaabb78eaf46a61 Mon Sep 17 00:00:00 2001 From: Omprakash Dhyade Date: Thu, 2 Oct 2014 15:21:38 -0700 Subject: [PATCH 0377/1096] Revert "Remove -Bsymbolic from builds." This reverts commit 50031de36ee77128b00e1ea77bcbb5a48628cfa3. This revert helps in benchmark performance. Change-Id: I67df6f6be940b6699f7e7c26940a137154fe79c1 --- core/combo/TARGET_linux-arm.mk | 1 + core/combo/TARGET_linux-arm64.mk | 1 + core/combo/TARGET_linux-mips.mk | 1 + core/combo/TARGET_linux-mips64.mk | 1 + core/combo/TARGET_linux-x86.mk | 2 +- core/combo/TARGET_linux-x86_64.mk | 2 +- 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk index 88f11fdca93..95b18045903 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -196,6 +196,7 @@ define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) \ -Wl,--gc-sections \ + -Wl,-shared,-Bsymbolic \ -shared \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ diff --git a/core/combo/TARGET_linux-arm64.mk b/core/combo/TARGET_linux-arm64.mk index 520eb0941a8..df6c1272a43 100644 --- a/core/combo/TARGET_linux-arm64.mk +++ b/core/combo/TARGET_linux-arm64.mk @@ -162,6 +162,7 @@ define transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) \ -Wl,--gc-sections \ + -Wl,-shared,-Bsymbolic \ -shared \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ diff --git a/core/combo/TARGET_linux-mips.mk b/core/combo/TARGET_linux-mips.mk index ccd7c1a2ddb..6e69e920fba 100644 --- a/core/combo/TARGET_linux-mips.mk +++ b/core/combo/TARGET_linux-mips.mk @@ -168,6 +168,7 @@ define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) \ -Wl,--gc-sections \ + -Wl,-shared,-Bsymbolic \ -shared \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ diff --git a/core/combo/TARGET_linux-mips64.mk b/core/combo/TARGET_linux-mips64.mk index ae93af4720f..1296ad9c516 100644 --- a/core/combo/TARGET_linux-mips64.mk +++ b/core/combo/TARGET_linux-mips64.mk @@ -173,6 +173,7 @@ $(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) \ -Wl,--gc-sections \ -shared \ + -Wl,-shared,-Bsymbolic \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk index 609236732da..15ee249ba5f 100644 --- a/core/combo/TARGET_linux-x86.mk +++ b/core/combo/TARGET_linux-x86.mk @@ -149,7 +149,7 @@ define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Wl,-soname,$(notdir $@) \ - -shared \ + -shared -Bsymbolic \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ diff --git a/core/combo/TARGET_linux-x86_64.mk b/core/combo/TARGET_linux-x86_64.mk index b8f12e19e35..82b1f77260a 100644 --- a/core/combo/TARGET_linux-x86_64.mk +++ b/core/combo/TARGET_linux-x86_64.mk @@ -154,7 +154,7 @@ define transform-o-to-shared-lib-inner $(hide) $(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Wl,-soname,$(notdir $@) \ - -shared \ + -shared -Bsymbolic \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ From 30579b41d1e943a7740b3dfe979d40f40ba0d8cc Mon Sep 17 00:00:00 2001 From: Omprakash Dhyade Date: Wed, 1 Oct 2014 19:00:48 -0700 Subject: [PATCH 0378/1096] Disable -mcpu=cortex-a15 flag for krait Disable -mcpu=cortex-a15 flag for krait. Make it same as that of KK and use -march=armv7-a. Change-Id: I0047a2fac1b533c357ba1cee67534ce4782b2b20 --- core/combo/arch/arm/armv7-a-neon.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk index c6603db4042..a7185f013e0 100644 --- a/core/combo/arch/arm/armv7-a-neon.mk +++ b/core/combo/arch/arm/armv7-a-neon.mk @@ -6,7 +6,7 @@ ARCH_ARM_HAVE_VFP := true ARCH_ARM_HAVE_VFP_D32 := true ARCH_ARM_HAVE_NEON := true -ifneq (,$(filter cortex-a15 krait denver,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) +ifneq (,$(filter cortex-a15 denver,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) arch_variant_cflags := -mcpu=cortex-a15 else ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a8) From c064379b8d75c7c086d7d7cc4202d07953aef84d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 4 Nov 2014 14:08:11 -0800 Subject: [PATCH 0379/1096] "LMX35B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9d97b0dd7f2..522767e1a10 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX35 +export BUILD_ID=LMX35B From 9febf8944f73f0fd8ea3316935808d9ef073ed08 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 4 Nov 2014 15:29:00 -0800 Subject: [PATCH 0380/1096] "LMX35C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 522767e1a10..a5105fd03b2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX35B +export BUILD_ID=LMX35C From 2d06a98ee0b175c874282e4ba062f4c36231c92a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 5 Nov 2014 06:18:11 -0800 Subject: [PATCH 0381/1096] "LMX36" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..648dfcffb2c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX36 From dda0ff05d7d406e4e7ac0a8a83c1d46b07850b98 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 5 Nov 2014 14:57:28 -0800 Subject: [PATCH 0382/1096] "LMX36B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 648dfcffb2c..bd19d40e162 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX36 +export BUILD_ID=LMX36B From 23186968db9f4c29dd5a90bf7f209b2b3e976027 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 6 Nov 2014 06:22:38 -0800 Subject: [PATCH 0383/1096] "LMX37" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..fc83cbcbbe7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX37 From ae3535ffa5a33ce448cacb40c9d07582d73682a5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 6 Nov 2014 14:14:51 -0800 Subject: [PATCH 0384/1096] "LMX37B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fc83cbcbbe7..f9fcc82b442 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX37 +export BUILD_ID=LMX37B From 51cd4a199f8f394817bd9e47ef46c9ef6803a045 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 6 Nov 2014 15:30:21 -0800 Subject: [PATCH 0385/1096] "LRX37" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 78bb1053cdd..0318260f9e2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21M +export BUILD_ID=LRX37 From 3583942d9871bb0fc108279b28d0a9c6854aeee4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 6 Nov 2014 15:46:33 -0800 Subject: [PATCH 0386/1096] LRX21O --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0318260f9e2..25d91f0c9a5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX37 +export BUILD_ID=LRX21O From 2fbeb6e63af8fba7a932004c885587f51901ab18 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 6 Nov 2014 16:08:06 -0800 Subject: [PATCH 0387/1096] "LMX37C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f9fcc82b442..ee1ffaed191 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX37B +export BUILD_ID=LMX37C From ebbdf8eaddc689ab7e6abb15b61dfaea1c349e11 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 6 Nov 2014 17:50:45 -0800 Subject: [PATCH 0388/1096] LRX21P --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4f7b45861d4..1571e645bc1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21N +export BUILD_ID=LRX21P From 0f6509f7e278877c94b68de2611bc5f567a76642 Mon Sep 17 00:00:00 2001 From: Varun Garg Date: Fri, 7 Nov 2014 12:23:45 +0530 Subject: [PATCH 0389/1096] Enabling sdiv support in ART Added more target into ART instruction set feature look-up list Change-Id: I0ea0097181e5c76507b8ca2a34cf37d2e2ca6403 --- core/config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/config.mk b/core/config.mk index 45621d7668d..141e8f328e3 100644 --- a/core/config.mk +++ b/core/config.mk @@ -551,7 +551,7 @@ TARGET_CPU_SMP ?= true DEX2OAT_TARGET_ARCH := $(TARGET_ARCH) DEX2OAT_TARGET_CPU_VARIANT := $(TARGET_CPU_VARIANT) DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := default -ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a7 cortex-a15 krait denver generic)) +ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a7 cortex-a15 krait denver generic cortex-a53)) DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := div endif From b4ad2f3b7cbfb8cec1123ad8756079d5223b0fc7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 7 Nov 2014 13:38:20 -0800 Subject: [PATCH 0390/1096] "LRX21Q" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1571e645bc1..f404c81d577 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21P +export BUILD_ID=LRX21Q From 4b41e8db14b9049faa9ce189b73b7a5eeb3b6f4b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 7 Nov 2014 13:56:45 -0800 Subject: [PATCH 0391/1096] "LRX21R" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f404c81d577..43630d1d3ed 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21Q +export BUILD_ID=LRX21R From 3676c2f1de679e753bb7e5fe28e359c6782df880 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 7 Nov 2014 17:40:50 -0800 Subject: [PATCH 0392/1096] "LRX21S" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 43630d1d3ed..59a495ec485 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21R +export BUILD_ID=LRX21S From b0a3a2830e81ecbb17df9e4903a002726412fb20 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 8 Nov 2014 06:20:04 -0800 Subject: [PATCH 0393/1096] "LMX39" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..db65b6382ca 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX39 From 57f11d02732fb6ab88ebf58bc6737a3b420afe72 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 9 Nov 2014 03:18:16 -0800 Subject: [PATCH 0394/1096] LMX39B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index db65b6382ca..2371f7bbde2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX39 +export BUILD_ID=LMX39B From f79a03bdd2f812034f8fbeb077bcb5d35ff7d8da Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 9 Nov 2014 08:07:57 -0800 Subject: [PATCH 0395/1096] "LMX40" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ee1ffaed191..bc3f6ffbe9f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX37C +export BUILD_ID=LMX40 From a056eb67880e4efabb820f2391c5a4d3919fd147 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 9 Nov 2014 08:16:41 -0800 Subject: [PATCH 0396/1096] LMX37D --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index bc3f6ffbe9f..79e6a95814e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX40 +export BUILD_ID=LMX37D From 55e51de895547a8aa1959525a2a0401c89f54bd0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 9 Nov 2014 17:12:52 -0800 Subject: [PATCH 0397/1096] LMX37E --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 79e6a95814e..238a91b1eac 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX37D +export BUILD_ID=LMX37E From 264a8f94dc907807d5169b1a6cdb8e226779a6e3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 10 Nov 2014 06:15:37 -0800 Subject: [PATCH 0398/1096] "LMX41" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..6a9228ae950 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX41 From 14bb1521d72eb543c81aa65d55b0504070959c4d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 10 Nov 2014 11:06:55 -0800 Subject: [PATCH 0399/1096] "LRX21T" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 59a495ec485..73a331326ea 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21S +export BUILD_ID=LRX21T From 01878e9cf5f145a2f2d55c4d26085ee359d99a28 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 10 Nov 2014 17:06:48 -0800 Subject: [PATCH 0400/1096] "LMX41B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6a9228ae950..ad41411bb88 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX41 +export BUILD_ID=LMX41B From c79379d5b35f3386997f5a70fc5093fb5d391b7b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 11 Nov 2014 06:15:52 -0800 Subject: [PATCH 0401/1096] "LMX42" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a44cfbf4f0c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX42 From 576330ceb660f72d801fb659655d3924e6e28ab7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 11 Nov 2014 14:06:56 -0800 Subject: [PATCH 0402/1096] "LMX42B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a44cfbf4f0c..8bfcd8defef 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX42 +export BUILD_ID=LMX42B From 7a85190b5cea1f6ec86cbc2987b29433372969ac Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 12 Nov 2014 06:17:10 -0800 Subject: [PATCH 0403/1096] "LMX43" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..9e7aca119a4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX43 From efe29c4c068101bcdc86b590cbeceff7815d7eff Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 12 Nov 2014 09:27:06 -0800 Subject: [PATCH 0404/1096] "LMX43B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9e7aca119a4..b4df522018c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX43 +export BUILD_ID=LMX43B From 483a16323a546c7f4247b7ed0788d08666f4d8d9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 12 Nov 2014 11:08:12 -0800 Subject: [PATCH 0405/1096] "LMX43C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b4df522018c..e7100400cbb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX43B +export BUILD_ID=LMX43C From 28b7b1befbcb03015dd965eba63d2d87d98e5deb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 12 Nov 2014 14:28:02 -0800 Subject: [PATCH 0406/1096] "LRX21U" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 73a331326ea..2d6431919aa 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21T +export BUILD_ID=LRX21U From 593a88c5c702948651fd63fafc749cb6ef9e9f1c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 12 Nov 2014 15:09:59 -0800 Subject: [PATCH 0407/1096] "LMX43D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e7100400cbb..91e478aedcf 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX43C +export BUILD_ID=LMX43D From a41a44bc19b99f38eaf5afa0a5d30690746815d0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 12 Nov 2014 16:14:40 -0800 Subject: [PATCH 0408/1096] "LMX43E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 91e478aedcf..708b28b4634 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX43D +export BUILD_ID=LMX43E From 40ea40bc9601fc3ddf89762a64c9573927172fdd Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 13 Nov 2014 06:24:25 -0800 Subject: [PATCH 0409/1096] "LMX44" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..40b2447864b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX44 From 17759d4f3f4fb10921e0407c66ce977e11a588b3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 13 Nov 2014 11:51:23 -0800 Subject: [PATCH 0410/1096] "LMX44B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 40b2447864b..873f787809f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX44 +export BUILD_ID=LMX44B From fd84336c3fcd306a7d1fca6f7d23a85310a33d82 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 13 Nov 2014 11:51:39 -0800 Subject: [PATCH 0411/1096] "LRX21V" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2d6431919aa..cf00cee06a9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21U +export BUILD_ID=LRX21V From 7f99917ecc11259ecea483a93321707281d458a2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 13 Nov 2014 17:55:25 -0800 Subject: [PATCH 0412/1096] "LMX44C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 873f787809f..b958b9c8486 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX44B +export BUILD_ID=LMX44C From 89720eab6d88cee0d0573f27713252048e2d22af Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 14 Nov 2014 09:14:42 -0800 Subject: [PATCH 0413/1096] "LMX44D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b958b9c8486..cda1eda01ab 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX44C +export BUILD_ID=LMX44D From 988ef2c5759b2d52e1cac3b7430e78cbcc872eda Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 14 Nov 2014 15:45:03 -0800 Subject: [PATCH 0414/1096] "LRX21W" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cf00cee06a9..35e2b1f836a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21V +export BUILD_ID=LRX21W From eb78416d031fd8f1c87e77d8d87af488d2fdadb2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 14 Nov 2014 18:03:28 -0800 Subject: [PATCH 0415/1096] "LMX44E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cda1eda01ab..47896543f55 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX44D +export BUILD_ID=LMX44E From 6274dc2ec78998af066d129b97c047e986a6381b Mon Sep 17 00:00:00 2001 From: Baligh Uddin Date: Sat, 15 Nov 2014 21:41:41 -0800 Subject: [PATCH 0416/1096] Fix Build iD --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cda1eda01ab..632008171e7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX44D +export BUILD_ID=LVX44D From 2314b974bd9e574ac8a67ad5828542f1801a194b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 16 Nov 2014 20:56:44 -0800 Subject: [PATCH 0417/1096] "LVX44E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 47896543f55..be13fa973a2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX44E +export BUILD_ID=LVX44E From 90369c155046808587cfc30ee6277b535fa7e7c7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 17 Nov 2014 06:20:24 -0800 Subject: [PATCH 0418/1096] "LMX48" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..3193f058b26 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX48 From 4f58f6573a2eeb33c2c8f33572e394e713ccb604 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 17 Nov 2014 14:04:52 -0800 Subject: [PATCH 0419/1096] "LMX48B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3193f058b26..7523470661f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX48 +export BUILD_ID=LMX48B From 7dabd329b08268a263e3fe47c1b28a62890dd1c6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 17 Nov 2014 17:27:43 -0800 Subject: [PATCH 0420/1096] "LMX48C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7523470661f..cb9e9e88af7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX48B +export BUILD_ID=LMX48C From 49c2a05e5df7d50fbec8abe032f2c4b6873df95b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 18 Nov 2014 06:16:36 -0800 Subject: [PATCH 0421/1096] "LMX49" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..60048d3e4a7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX49 From 30de1b624d459d68b57543c026113c25252ccdb9 Mon Sep 17 00:00:00 2001 From: Dave Langemak Date: Mon, 17 Nov 2014 16:37:50 -0800 Subject: [PATCH 0422/1096] Increment Android versions to 5.0.1 Change-Id: I2880123f0d1215f2028e6d3bc3f88fee5714ae74 --- CleanSpec.mk | 3 +++ core/version_defaults.mk | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CleanSpec.mk b/CleanSpec.mk index f348692dd24..ca6617850f3 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -299,6 +299,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*) +# 5.0.1 +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/version_defaults.mk b/core/version_defaults.mk index 8cb8d262626..36e4e98fa1f 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -41,7 +41,7 @@ ifeq "" "$(PLATFORM_VERSION)" # which is the version that we reveal to the end user. # Update this value when the platform version changes (rather # than overriding it somewhere else). Can be an arbitrary string. - PLATFORM_VERSION := 5.0 + PLATFORM_VERSION := 5.0.1 endif ifeq "" "$(PLATFORM_SDK_VERSION)" From 4eab14a6ac5d9deafef778c7bf65f72e130cb2b3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 18 Nov 2014 10:44:44 -0800 Subject: [PATCH 0423/1096] "LRX21X" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 35e2b1f836a..487676a81db 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21W +export BUILD_ID=LRX21X From 205c1f8aa4429f742e768199c84ab5f4877b51ab Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 18 Nov 2014 10:59:42 -0800 Subject: [PATCH 0424/1096] "LRX21Y" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 487676a81db..d4eef641b10 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21X +export BUILD_ID=LRX21Y From 48266259c494d04b8433a3654a45256ea1962d76 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 18 Nov 2014 17:40:03 -0800 Subject: [PATCH 0425/1096] "LMX49B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 60048d3e4a7..85e63163a93 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX49 +export BUILD_ID=LMX49B From c22ab444445a1d4bad1eb567dbcc0d51a45362b2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 19 Nov 2014 06:18:05 -0800 Subject: [PATCH 0426/1096] "LMX50" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..8885d66cbcb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX50 From ced3fdcfa3d576fc42a6a8ad2ff0114af5643255 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 19 Nov 2014 12:04:49 -0800 Subject: [PATCH 0427/1096] "LRX21Z" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d4eef641b10..507b17f1997 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21Y +export BUILD_ID=LRX21Z From df63709bee49143d309c34dbc46f768f40124fa1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 19 Nov 2014 14:56:23 -0800 Subject: [PATCH 0428/1096] "LMX50B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8885d66cbcb..0f1540c0397 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX50 +export BUILD_ID=LMX50B From e11182ba8de847653209ae96edde3fb3b1ed38a0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 19 Nov 2014 16:15:24 -0800 Subject: [PATCH 0429/1096] "LVX44F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index be13fa973a2..7ea4e677627 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX44E +export BUILD_ID=LVX44F From 9a6afb827125755d5fc850eb32c3f08078277d93 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 19 Nov 2014 16:28:10 -0800 Subject: [PATCH 0430/1096] "LMX50C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0f1540c0397..7210c459336 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX50B +export BUILD_ID=LMX50C From e75c1f9f11c0dcd27b5c7e2ec3fd23f477707089 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 19 Nov 2014 16:38:59 -0800 Subject: [PATCH 0431/1096] "LVX50" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index be13fa973a2..42da3286a50 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX44E +export BUILD_ID=LVX50 From b28957e986a505713a8ae2288fe6a65f2b31e336 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 19 Nov 2014 16:43:02 -0800 Subject: [PATCH 0432/1096] "LVX44G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 42da3286a50..97cdae3f1ac 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX50 +export BUILD_ID=LVX44G From c2e4dd6eec749ac5d12fb673258b476d7626758b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 20 Nov 2014 06:16:28 -0800 Subject: [PATCH 0433/1096] "LMX51" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..7c983d586bc 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX51 From ff8b5b19bed47660bcc6319a73b5b78d1e6dacda Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 20 Nov 2014 15:32:46 -0800 Subject: [PATCH 0434/1096] "LRX22B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 507b17f1997..30e3f532c3b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX21Z +export BUILD_ID=LRX22B From 9cc93738aeb5723e8f9d502e7ac6210c6f6d4073 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 20 Nov 2014 15:48:58 -0800 Subject: [PATCH 0435/1096] "LRX22C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 30e3f532c3b..146ce2a6834 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX22B +export BUILD_ID=LRX22C From 50994fbdc75d69e304a5ba3d19aafd679af42cc3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 20 Nov 2014 16:42:58 -0800 Subject: [PATCH 0436/1096] "LMX51B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7c983d586bc..4a431046356 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX51 +export BUILD_ID=LMX51B From c8a68ff17cdd3df842c1f1c86bd2e35b3f3d6a9f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 20 Nov 2014 16:57:29 -0800 Subject: [PATCH 0437/1096] LVX44H --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 97cdae3f1ac..1e5a5c8cdf2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX44G +export BUILD_ID=LVX44H From 9a5396b9c5b700e8c5751887d0c08fe6a38141d1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 21 Nov 2014 07:07:56 -0800 Subject: [PATCH 0438/1096] LVX44I --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1e5a5c8cdf2..89844226912 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX44H +export BUILD_ID=LVX44I From f90d4f69d273550949339885e9dbbd82075b2a0b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 21 Nov 2014 11:17:11 -0800 Subject: [PATCH 0439/1096] "LVX44J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 89844226912..3d6950f2199 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX44I +export BUILD_ID=LVX44J From 3029c93e0660109a41e1c98f21a9908cb90a1a54 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 21 Nov 2014 16:52:22 -0800 Subject: [PATCH 0440/1096] "LMX51C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4a431046356..09169420f02 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX51B +export BUILD_ID=LMX51C From ffab71817d37a72c94b97a80b9e8ae167fd60b4d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 21 Nov 2014 17:38:13 -0800 Subject: [PATCH 0441/1096] LVX44K --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3d6950f2199..4bb01f0fd05 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX44J +export BUILD_ID=LVX44K From 2e9f18cba0eda0999bf4d14f6eb9682fb989e8f3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 24 Nov 2014 06:17:59 -0800 Subject: [PATCH 0442/1096] "LMX55" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..223ce144449 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX55 From 19070e1f26c62da5ab0ea1a349105a5979bba038 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 24 Nov 2014 15:18:35 -0800 Subject: [PATCH 0443/1096] "LMX55B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 223ce144449..96572dce270 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX55 +export BUILD_ID=LMX55B From e3ec9b3c704f1cd6fc77c61eaec06dc343a06654 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 24 Nov 2014 15:44:02 -0800 Subject: [PATCH 0444/1096] LVX44L --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4bb01f0fd05..317519ff09e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX44K +export BUILD_ID=LVX44L From a1d18490b23086b75353b60340f409f7508a5848 Mon Sep 17 00:00:00 2001 From: Subhash Chandra Bose Naripeddy Date: Fri, 24 Jan 2014 11:12:01 -0800 Subject: [PATCH 0445/1096] build: Add support for DTS decoder Add support for DTS decoder Change-Id: I545978cbd3d98ec8758b8317fd4e993edaa1edb3 --- target/product/core_base.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/product/core_base.mk b/target/product/core_base.mk index 6c294822720..aa07ad1bb15 100644 --- a/target/product/core_base.mk +++ b/target/product/core_base.mk @@ -55,6 +55,7 @@ PRODUCT_PACKAGES += \ libstagefright_soft_vorbisdec \ libstagefright_soft_vpxdec \ libstagefright_soft_vpxenc \ + libstagefright_soft_dtsdec \ libvariablespeed \ libwebrtc_audio_preprocessing \ mdnsd \ From d9770f77c86810b2312e66412aa8ae352522029b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 24 Nov 2014 18:00:37 -0800 Subject: [PATCH 0446/1096] LMX55C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 96572dce270..17c144d6423 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX55B +export BUILD_ID=LMX55C From eabc912959cb4015a23d618bdb6fe518c333f6ae Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 26 Nov 2014 12:51:54 -0800 Subject: [PATCH 0447/1096] "LMX55D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 17c144d6423..38c80dcbfba 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX55C +export BUILD_ID=LMX55D From 27f32d93bac401e240386d73f252b82295b532e1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 27 Nov 2014 06:24:26 -0800 Subject: [PATCH 0448/1096] "LMX58" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..03cc3c1e391 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX58 From 18acbf6b2dd85019ca6d0914d7889a67fcaaa2ad Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 1 Dec 2014 06:11:17 -0800 Subject: [PATCH 0449/1096] "LMX62" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..06ec08aada1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX62 From d782ef934f3b35d404c3cd8d673b0bb2a0f5c4ec Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 1 Dec 2014 11:40:37 -0800 Subject: [PATCH 0450/1096] "LRX22D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 146ce2a6834..dda1e9b5ec8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX22C +export BUILD_ID=LRX22D From 42e9acfc8c343b563e4a9910c6382271dab038e7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 2 Dec 2014 06:13:21 -0800 Subject: [PATCH 0451/1096] "LMX63" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..9502b143200 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX63 From 083dc5697d7d9081920142e632737515bf415beb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 2 Dec 2014 10:50:40 -0800 Subject: [PATCH 0452/1096] "LVX55E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 38c80dcbfba..eb2616c1814 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX55D +export BUILD_ID=LVX55E From 0cc244a4f4d3d3934ac79a7bfe8b3a4dad62aa6a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 2 Dec 2014 14:41:19 -0800 Subject: [PATCH 0453/1096] "LMX63B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9502b143200..e97b333c952 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX63 +export BUILD_ID=LMX63B From 48764c1a31b65eea965f3b3e1ec4e97597a8621c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 2 Dec 2014 17:49:32 -0800 Subject: [PATCH 0454/1096] "LMX63C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e97b333c952..6803685802e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX63B +export BUILD_ID=LMX63C From 05d71e7beac0900f1fe6e77f682bfcff03e8e5eb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 3 Dec 2014 06:13:19 -0800 Subject: [PATCH 0455/1096] "LMX64" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..8895cf7ec83 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX64 From 5ad50f91cef1c5e9c14b71a2a405f2f12b2c5e00 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 3 Dec 2014 11:51:21 -0800 Subject: [PATCH 0456/1096] "LMX64B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8895cf7ec83..5d400b8bd80 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX64 +export BUILD_ID=LMX64B From d15fbc930fc5b1bb48f1621570d27e47078614f8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Dec 2014 06:16:27 -0800 Subject: [PATCH 0457/1096] "LMX65" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..c2b735a0174 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX65 From 69105e98440482965cff301798d111024cc862cc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Dec 2014 10:59:11 -0800 Subject: [PATCH 0458/1096] LMX65B --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c2b735a0174..c792d73de25 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX65 +export BUILD_ID=LMX65B From 69297cd8f073fd273fe969a378db56bf5d24cae4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Dec 2014 14:11:50 -0800 Subject: [PATCH 0459/1096] "LMX65C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c792d73de25..0201c3ba030 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX65B +export BUILD_ID=LMX65C From ca5aa622facafe3a1d00c3b5a345af9889fb8515 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Dec 2014 15:51:49 -0800 Subject: [PATCH 0460/1096] "LVX65C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0201c3ba030..243c3bfabc3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX65C +export BUILD_ID=LVX65C From f5d159e5a7cdd167c6b0443ef0a35e297229e7c2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 4 Dec 2014 17:59:49 -0800 Subject: [PATCH 0461/1096] LMX65D --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0201c3ba030..48b2191e163 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX65C +export BUILD_ID=LMX65D From c8e899d264c13f5a45db97df2a61487596977d7d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 5 Dec 2014 14:11:28 -0800 Subject: [PATCH 0462/1096] "LMX65E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 48b2191e163..2cf612e968c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX65D +export BUILD_ID=LMX65E From eb063f1eca146521102bdfb2f0346c4bede39891 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 5 Dec 2014 18:53:11 -0800 Subject: [PATCH 0463/1096] "LMX65F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2cf612e968c..144925b6fc5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX65E +export BUILD_ID=LMX65F From 8a1c3689fe01d000bdd111a6608f9ce5b07b60a5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Dec 2014 06:14:38 -0800 Subject: [PATCH 0464/1096] "LMX69" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..7f32fb9f286 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX69 From 1e6623d2d4449b7453dc59a4e9a5e7df92069825 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Dec 2014 14:58:32 -0800 Subject: [PATCH 0465/1096] "LVX65D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 243c3bfabc3..81b3fa56d15 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX65C +export BUILD_ID=LVX65D From 90fe60196c97176573e8cdfed9cadcce88dde8ac Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Dec 2014 16:44:44 -0800 Subject: [PATCH 0466/1096] "LMX69B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7f32fb9f286..a58aa1195b9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX69 +export BUILD_ID=LMX69B From 8cc1071352edc89d6accc5d0d5e96b71fc3ae2ef Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Dec 2014 18:50:59 -0800 Subject: [PATCH 0467/1096] LMX69C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a58aa1195b9..6e53b431ec5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX69B +export BUILD_ID=LMX69C From 5cae174dbd57be4bfba49501f3a06bc6d4adbf08 Mon Sep 17 00:00:00 2001 From: Shashank Mittal Date: Thu, 9 Oct 2014 12:25:48 -0700 Subject: [PATCH 0468/1096] Fix target name for boot signer. Target name for boot signer should be 'boot' instead of '/boot' Also fix target name for recovery image. Change-Id: Iace43ced59eec27e510491e10e451fffcc7bdc7b --- core/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index 6d4495f87ed..0aba081bca2 100644 --- a/core/Makefile +++ b/core/Makefile @@ -512,14 +512,14 @@ else ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) # TARGE $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOT_SIGNER) $(BOOTIMAGE_EXTRA_DEPS) $(call pretty,"Target boot image: $@") $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ - $(BOOT_SIGNER) /boot $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $@ + $(BOOT_SIGNER) boot $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $@ $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE)) .PHONY: bootimage-nodeps bootimage-nodeps: $(MKBOOTIMG) $(BOOT_SIGNER) @echo "make $@: ignoring dependencies" $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET) - $(BOOT_SIGNER) /boot $(INSTALLED_BOOTIMAGE_TARGET) $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $(INSTALLED_BOOTIMAGE_TARGET) + $(BOOT_SIGNER) boot $(INSTALLED_BOOTIMAGE_TARGET) $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $(INSTALLED_BOOTIMAGE_TARGET) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) else # PRODUCT_SUPPORTS_VERITY != true @@ -875,7 +875,7 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) $(RECOVE $(hide) $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk) $(hide) $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) - $(BOOT_SIGNER) /recovery $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $@ + $(BOOT_SIGNER) recovery $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $@ endif $(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE)) @echo ----- Made recovery image: $@ -------- From 2e12c4e02df6ff5171489ffd610f2fff0c319469 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 9 Dec 2014 06:15:00 -0800 Subject: [PATCH 0469/1096] "LMX70" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..759533db418 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX70 From cdf914cb8ce368f9ab70c4fd731cd708630a5559 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 9 Dec 2014 07:22:30 -0800 Subject: [PATCH 0470/1096] "LVX65E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 81b3fa56d15..7aab7687e30 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX65D +export BUILD_ID=LVX65E From 98fecb7d5e50854a0f5b58c126c170f05289c46e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 9 Dec 2014 11:38:16 -0800 Subject: [PATCH 0471/1096] "LVX65F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7aab7687e30..2b84be3dd14 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX65E +export BUILD_ID=LVX65F From 1ac57d7deeb2cc2697e2c64a63f9a87439d5aa12 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 9 Dec 2014 15:17:54 -0800 Subject: [PATCH 0472/1096] "LMX70B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 759533db418..8a97b2dec67 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX70 +export BUILD_ID=LMX70B From ecaf8ffedba11b6e845429f75f9ef149859d70af Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 9 Dec 2014 17:13:48 -0800 Subject: [PATCH 0473/1096] "LVX65G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2b84be3dd14..6d9c0056732 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX65F +export BUILD_ID=LVX65G From df3793c0347a6fe857d138569ff6676265b1a3e3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 10 Dec 2014 06:14:46 -0800 Subject: [PATCH 0474/1096] "LMX71" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..5a1211f981e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX71 From 95a5d384b0ed20556cdc237fa0dcc241a314d20c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 10 Dec 2014 15:12:12 -0800 Subject: [PATCH 0475/1096] "LMX71B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5a1211f981e..337efb4f552 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX71 +export BUILD_ID=LMX71B From 81683e003e0ded78c766795fc93a627e0925d810 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 10 Dec 2014 17:48:55 -0800 Subject: [PATCH 0476/1096] "LRX22E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index dda1e9b5ec8..1ae003b0863 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX22D +export BUILD_ID=LRX22E From 6377b19bb99a1915fd6294ebac85db6c2c9f66a7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Dec 2014 02:56:23 -0800 Subject: [PATCH 0477/1096] LMX71C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 337efb4f552..634f3c9b6ba 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX71B +export BUILD_ID=LMX71C From 84b9197cf8371c2bb34b7844fa6bf69f1237d75c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Dec 2014 06:18:53 -0800 Subject: [PATCH 0478/1096] "LMX72" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..d50dc5282e7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX72 From 375cd9c1836607ef1ca41706eeeea710d84dc3a5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Dec 2014 12:31:10 -0800 Subject: [PATCH 0479/1096] "LVX65H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6d9c0056732..32f4484b14c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX65G +export BUILD_ID=LVX65H From 0af08a09b42a3b9beaa1263a283deb45bcca01e1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Dec 2014 13:49:33 -0800 Subject: [PATCH 0480/1096] "LMX72B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d50dc5282e7..f948e272e86 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72 +export BUILD_ID=LMX72B From 7aff6e615ff38e119a8229d0b492e47e77a55c14 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Dec 2014 15:12:28 -0800 Subject: [PATCH 0481/1096] "LMX72C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f948e272e86..19f07fc321a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72B +export BUILD_ID=LMX72C From 7b7ad72d73b9ffb79376d69689ca333f64e41930 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Dec 2014 17:54:03 -0800 Subject: [PATCH 0482/1096] LVX65I --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 32f4484b14c..6d7d59f24df 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX65H +export BUILD_ID=LVX65I From 071a8d63ea243ecb7d164d90a3aac081a026a8fe Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 11 Dec 2014 14:04:55 -0800 Subject: [PATCH 0483/1096] DO NOT MERGE. Bump version to 5.0.2. Change-Id: Ia6426dd03ac3b51061429b7da36e317bd3503775 --- CleanSpec.mk | 3 +++ core/version_defaults.mk | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CleanSpec.mk b/CleanSpec.mk index ca6617850f3..a1dec2e62c0 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -302,6 +302,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*) # 5.0.1 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) +# 5.0.2 +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/version_defaults.mk b/core/version_defaults.mk index 36e4e98fa1f..abfa0725658 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -41,7 +41,7 @@ ifeq "" "$(PLATFORM_VERSION)" # which is the version that we reveal to the end user. # Update this value when the platform version changes (rather # than overriding it somewhere else). Can be an arbitrary string. - PLATFORM_VERSION := 5.0.1 + PLATFORM_VERSION := 5.0.2 endif ifeq "" "$(PLATFORM_SDK_VERSION)" From a03817158db9bc34b41ce8f9a2f1e850fec49144 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Dec 2014 18:03:20 -0800 Subject: [PATCH 0484/1096] "LRX22F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1ae003b0863..dc304464271 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX22E +export BUILD_ID=LRX22F From 4267d4fb098c30c05cb3d8bd6391bfb9d4ef648d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 11 Dec 2014 18:59:47 -0800 Subject: [PATCH 0485/1096] "LMX72D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 19f07fc321a..d616fa73366 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72C +export BUILD_ID=LMX72D From 72ce3c99a5722d908922ce4b071ff9f6a7ad4f9e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 12 Dec 2014 09:50:32 -0800 Subject: [PATCH 0486/1096] "LMX72E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d616fa73366..cef5a0bdefd 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72D +export BUILD_ID=LMX72E From e938ffbb6b33208a493c8a191ae1b4cb5f473c8c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 12 Dec 2014 13:35:06 -0800 Subject: [PATCH 0487/1096] "LMX72F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cef5a0bdefd..b6a235c5ba7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72E +export BUILD_ID=LMX72F From a44f27d9fef990ed0cb0127dab490f0a1db3468f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 14 Dec 2014 11:05:16 -0800 Subject: [PATCH 0488/1096] "LVX72F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b6a235c5ba7..d8c4166a81c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72F +export BUILD_ID=LVX72F From 1386992fd600150c103d31c60aa56e6bfbc67fbe Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 14 Dec 2014 14:48:51 -0800 Subject: [PATCH 0489/1096] "LMX72G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b6a235c5ba7..01ecb20c431 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72F +export BUILD_ID=LMX72G From 1879686429379a3d4f38153485016d5e6d8e9540 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 14 Dec 2014 18:36:47 -0800 Subject: [PATCH 0490/1096] LVX72G --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d8c4166a81c..d6e7e912c84 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX72F +export BUILD_ID=LVX72G From ce8efb536cdcffb1701d10732be3b028def3b7d0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 15 Dec 2014 15:38:38 -0800 Subject: [PATCH 0491/1096] "LMX72H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 01ecb20c431..0508799c7b4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72G +export BUILD_ID=LMX72H From d6cde2893b79831a8bc4e3ca499764fec45b97d1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 16 Dec 2014 12:03:32 -0800 Subject: [PATCH 0492/1096] "LVX72H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0508799c7b4..5f024ecccf6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72H +export BUILD_ID=LVX72H From b73e5c9fe67a085e87eadb1b92fb8b2b5bcb5e42 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 16 Dec 2014 13:11:28 -0800 Subject: [PATCH 0493/1096] LRX22G --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index dc304464271..1ade5425c80 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LRX22F +export BUILD_ID=LRX22G From 7e0934a70d065b449d75a47f55200c4b0b94cb89 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 16 Dec 2014 15:00:38 -0800 Subject: [PATCH 0494/1096] "LMX72I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0508799c7b4..9ab74c82384 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72H +export BUILD_ID=LMX72I From bff4863e158ecf142f689f218387bf50e38543b0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Dec 2014 06:31:47 -0800 Subject: [PATCH 0495/1096] "LVX78" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9ab74c82384..72886451cdd 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72I +export BUILD_ID=LVX78 From feeeceeef50ed3e18456b1393115b254d8e9566d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Dec 2014 06:35:17 -0800 Subject: [PATCH 0496/1096] LVX72I --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 72886451cdd..1a5bcfa47eb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX78 +export BUILD_ID=LVX72I From aed71501955ca1d6c84083aa7f9eedce290c6eea Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Dec 2014 12:55:11 -0800 Subject: [PATCH 0497/1096] "LMX72J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9ab74c82384..0fa8f7e4db8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72I +export BUILD_ID=LMX72J From 97bcbabdc4c68ff56bc4ca416301674f5bde6489 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Dec 2014 18:21:05 -0800 Subject: [PATCH 0498/1096] LMX72K --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0fa8f7e4db8..6f555de28a4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72J +export BUILD_ID=LMX72K From d2f3cbeab2df6094eef4e7b3f8b3551850698d6d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Dec 2014 21:55:00 -0800 Subject: [PATCH 0499/1096] "LVX72J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1a5bcfa47eb..cb02162db54 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX72I +export BUILD_ID=LVX72J From c13288956407c4500d5b33d9a2c3e771d1ab8bbd Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 17 Dec 2014 22:22:49 -0800 Subject: [PATCH 0500/1096] "LMX72L" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6f555de28a4..b0775dfca64 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72K +export BUILD_ID=LMX72L From 64f49d394175dc427e3af5f5f3aa3dced1ede440 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 18 Dec 2014 00:00:55 -0800 Subject: [PATCH 0501/1096] "LMX72M" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b0775dfca64..ff58fcd4d38 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72L +export BUILD_ID=LMX72M From 855115804b8dc2d3fc56c90000cc506d2b2c7a50 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 18 Dec 2014 15:43:35 -0800 Subject: [PATCH 0502/1096] "LVX72K" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cb02162db54..32ab56ff052 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX72J +export BUILD_ID=LVX72K From b41ec583878f79f68622f389e9b5f9d4ff617db8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 18 Dec 2014 18:39:19 -0800 Subject: [PATCH 0503/1096] "LMX72N" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ff58fcd4d38..488ef6658fa 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72M +export BUILD_ID=LMX72N From b1682ad58b338fef40b5fac4ca56e5443212b318 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 19 Dec 2014 14:08:58 -0800 Subject: [PATCH 0504/1096] "LVX72L" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 32ab56ff052..c06a4124803 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX72K +export BUILD_ID=LVX72L From 64d88c619623d12829247b49d44b201d526fe28c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 19 Dec 2014 14:50:00 -0800 Subject: [PATCH 0505/1096] "LMX72O" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 488ef6658fa..ed8ae91a0c6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMX72N +export BUILD_ID=LMX72O From 6e6300d3abec26e1a67d107d0e8f5daca7f4ccbc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 22 Dec 2014 06:14:28 -0800 Subject: [PATCH 0506/1096] "LMX83" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..3921294ce4d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX83 From f7fc07701752b154e6cad069e34ea960b8f09741 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 22 Dec 2014 11:24:59 -0800 Subject: [PATCH 0507/1096] "LVX72M" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c06a4124803..fc4bf73aef8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX72L +export BUILD_ID=LVX72M From 5f92d8b0f659e3838e0ab7a1ef7d4a045b9e320f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 23 Dec 2014 06:11:10 -0800 Subject: [PATCH 0508/1096] "LMX84" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..6a57b9fa29f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX84 From 2d6cd623917ac5e70cc57ca73246621e2d2010f3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 24 Dec 2014 06:10:38 -0800 Subject: [PATCH 0509/1096] "LMX85" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..563e7b1db58 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX85 From b1f2739ee2952eb0b77b69f9a399533fa0501b35 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 25 Dec 2014 06:09:53 -0800 Subject: [PATCH 0510/1096] "LMX86" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..9d9bc17b22f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX86 From df1c38678efdfae3586c847cc04467cf2de96847 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 29 Dec 2014 06:09:49 -0800 Subject: [PATCH 0511/1096] "LMX90" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..23ae3debd04 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX90 From 82badea0104110e9e47410a48b4988e2bf01c61b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 30 Dec 2014 06:10:30 -0800 Subject: [PATCH 0512/1096] "LMX91" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..aa7e3647326 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX91 From e18b4982395acc2066f75b78a81d240fc3fcf2c9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 31 Dec 2014 06:10:26 -0800 Subject: [PATCH 0513/1096] "LMX92" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..fee3c4eb629 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMX92 From 800bf2e67f152fedd1a2dcfafbfc528fbcc21201 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 1 Jan 2015 06:10:18 -0800 Subject: [PATCH 0514/1096] "LMY01" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..80c551f9749 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY01 From 8eca678aa067f621ae31cfdf3aa291137b699337 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 2 Jan 2015 15:16:24 -0800 Subject: [PATCH 0515/1096] "LMY02" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..00edf867002 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY02 From e5b1b8b98f583a49ea859caeec6eca00f4f4b50e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 2 Jan 2015 15:55:14 -0800 Subject: [PATCH 0516/1096] "LMY02" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..00edf867002 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY02 From 776bc017a665e84378ba216cd9d8391a38bfb0ee Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 2 Jan 2015 16:20:39 -0800 Subject: [PATCH 0517/1096] "LVX72N" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fc4bf73aef8..caf925a6c82 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVX72M +export BUILD_ID=LVX72N From 117230d11a25d9186cfb4d25e8db123b80cae552 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 5 Jan 2015 06:10:26 -0800 Subject: [PATCH 0518/1096] "LMY05" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..2316150e8c2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY05 From 934cb161b8bd9f0e09e65443d761adcec536766c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 6 Jan 2015 06:11:39 -0800 Subject: [PATCH 0519/1096] "LMY06" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..18f3389c0c7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY06 From 65f4c615dc56c19687621f5cfa30fe92a38f2825 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 6 Jan 2015 14:25:01 -0800 Subject: [PATCH 0520/1096] "LMY06B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 18f3389c0c7..5c5bfbe8673 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY06 +export BUILD_ID=LMY06B From 1ab8b63a12d245b257680fa3fb58a579afad2b61 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 7 Jan 2015 06:12:09 -0800 Subject: [PATCH 0521/1096] "LMY07" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..4eef7ae0caf 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY07 From bb7f4844f314f1c6101bb9e4c13a5ef4712fd511 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 7 Jan 2015 12:13:19 -0800 Subject: [PATCH 0522/1096] "LVY07" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5c5bfbe8673..deea1bcebff 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY06B +export BUILD_ID=LVY07 From cbc5dfe1967cfd4bd8a082f6c2f4d7838ab100c1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 7 Jan 2015 12:22:59 -0800 Subject: [PATCH 0523/1096] "LVY06B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index deea1bcebff..2e8c14c668b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY07 +export BUILD_ID=LVY06B From f9ed01d21f0de6be9b7168af27ea24a08e9c450d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 7 Jan 2015 15:03:01 -0800 Subject: [PATCH 0524/1096] "LMY07B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4eef7ae0caf..449e44f65b0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY07 +export BUILD_ID=LMY07B From 0ef07a048f63cdcdddfb4cff355e848e2144c757 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 8 Jan 2015 09:36:05 -0800 Subject: [PATCH 0525/1096] "LMY08" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..75310be867b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY08 From cd907b70b8d9ff1acf9fa687287a874b3fe88d49 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 8 Jan 2015 12:12:52 -0800 Subject: [PATCH 0526/1096] "LMY08B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 75310be867b..9cc19b68283 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY08 +export BUILD_ID=LMY08B From 2ece6872148625f6ef4cb15978c8c51553fe54e1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 8 Jan 2015 15:10:44 -0800 Subject: [PATCH 0527/1096] "LMY08C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9cc19b68283..9003c0ef641 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY08B +export BUILD_ID=LMY08C From cf2f649a19e3b30ace91a0f458b1c5a2847ed85d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 9 Jan 2015 13:03:00 -0800 Subject: [PATCH 0528/1096] "LMY08D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9003c0ef641..de7bd32eb32 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY08C +export BUILD_ID=LMY08D From bb9be91c6d7b214d3867e8c2ad45d5de7753a169 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 9 Jan 2015 15:40:01 -0800 Subject: [PATCH 0529/1096] "LMY08E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index de7bd32eb32..31149297ef4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY08D +export BUILD_ID=LMY08E From a2cef5e9f7a8a52208e7c44703bfbb3a42a77439 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 11 Jan 2015 12:02:07 -0800 Subject: [PATCH 0530/1096] "LMY08F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 31149297ef4..f0e170ac3ce 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY08E +export BUILD_ID=LMY08F From a3b7a4a8f2e0d055008e7ceff83dfa3fae7be35b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 12 Jan 2015 06:45:35 -0800 Subject: [PATCH 0531/1096] "LMY12" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..add2339eca5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY12 From b569c5ecaae432714fc340166953bc9eca6f8066 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 12 Jan 2015 11:14:45 -0800 Subject: [PATCH 0532/1096] "LVY12" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 31149297ef4..50957165eab 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY08E +export BUILD_ID=LVY12 From 12e930a95c8f0f806a044e41873d045cc5c7b9b7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 12 Jan 2015 11:28:49 -0800 Subject: [PATCH 0533/1096] "LVY08E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 50957165eab..dc790d59de5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY12 +export BUILD_ID=LVY08E From ead232b706db331abc87d4607d220c5d9fce2cbb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 12 Jan 2015 15:21:29 -0800 Subject: [PATCH 0534/1096] "LMY12B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index add2339eca5..1b308f5be7b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY12 +export BUILD_ID=LMY12B From 7b3d19ee60b5d0dacb739badc2854e4ccddeff9a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 13 Jan 2015 06:11:25 -0800 Subject: [PATCH 0535/1096] "LMY13" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..486c27423cc 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY13 From 27870678191cf46fc360039fa3f5c5f3da6d8d7d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 13 Jan 2015 09:43:24 -0800 Subject: [PATCH 0536/1096] "LVY13" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1b308f5be7b..7d23b2630c7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY12B +export BUILD_ID=LVY13 From 06f19f866d452f0ce2897ba92e9b8f439f35c730 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 13 Jan 2015 09:53:12 -0800 Subject: [PATCH 0537/1096] "LVY12B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7d23b2630c7..b1b202a0b3f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY13 +export BUILD_ID=LVY12B From bd361924d0ea342cb48810ce3dfc3cce7ed1160e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 13 Jan 2015 13:54:16 -0800 Subject: [PATCH 0538/1096] "LMY13B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 486c27423cc..7a0ceccbc4b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY13 +export BUILD_ID=LMY13B From 4fc513270cf3fb122dd2fc415e21007528a46609 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 14 Jan 2015 06:13:48 -0800 Subject: [PATCH 0539/1096] "LMY14" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..bf78cddcb7a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY14 From 41d06ef570edbce4d85a07702e9f310e45e2a2ee Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 14 Jan 2015 14:36:50 -0800 Subject: [PATCH 0540/1096] "LMY14B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index bf78cddcb7a..ba43f1c855f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY14 +export BUILD_ID=LMY14B From 82ff232e534c467fc44bef0b53c7565213573cb5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 15 Jan 2015 06:12:21 -0800 Subject: [PATCH 0541/1096] "LMY15" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..43cf19c6134 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY15 From bc032f56164f9c4605329d425b84c12ed81c2ad1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 15 Jan 2015 14:50:48 -0800 Subject: [PATCH 0542/1096] "LMY15B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 43cf19c6134..6fc933e0a85 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY15 +export BUILD_ID=LMY15B From 33e478cc3eb131eb7b473e8807aa31aa2ec77648 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 15 Jan 2015 15:29:35 -0800 Subject: [PATCH 0543/1096] "LMY15C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6fc933e0a85..6a55a6d1042 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY15B +export BUILD_ID=LMY15C From c0dd18c70f4276a03f0301c428b8a856b35636cb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 16 Jan 2015 08:32:51 -0800 Subject: [PATCH 0544/1096] "LVY16" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6a55a6d1042..4a5d72dee60 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY15C +export BUILD_ID=LVY16 From 26ef3da83121976533788642d3e55a13b8ef18bc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 16 Jan 2015 08:47:56 -0800 Subject: [PATCH 0545/1096] "LVY15C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4a5d72dee60..f9d812f1b24 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY16 +export BUILD_ID=LVY15C From 975a5b2b707a0661467d96d428e6651bd0528229 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 16 Jan 2015 11:57:11 -0800 Subject: [PATCH 0546/1096] "LMY15D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6a55a6d1042..cf421cfb6d9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY15C +export BUILD_ID=LMY15D From 74add38b1371a9f7c730da12287eb4e3cffcc30f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 16 Jan 2015 12:17:36 -0800 Subject: [PATCH 0547/1096] LVY15D --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f9d812f1b24..badc3a337e1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY15C +export BUILD_ID=LVY15D From a5def7f546afea15bdafdc8a167a0bb49551d10d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 16 Jan 2015 17:01:43 -0800 Subject: [PATCH 0548/1096] "LVY15E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cf421cfb6d9..20be064024d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY15D +export BUILD_ID=LVY15E From 580d39c13c50181f81ad740e75c8b719da08e411 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 16 Jan 2015 17:34:35 -0800 Subject: [PATCH 0549/1096] "LMY15E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cf421cfb6d9..b30282cfa6e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY15D +export BUILD_ID=LMY15E From 9696b6c0f5db672854d092ec7cf2e5ecb3aa38e5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 19 Jan 2015 06:12:26 -0800 Subject: [PATCH 0550/1096] "LMY19" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..d645a83ed63 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY19 From bd6b04aea71c02f69fa154d359cafd90b3269cc7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 20 Jan 2015 06:10:20 -0800 Subject: [PATCH 0551/1096] "LMY20" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..0c845ce427c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY20 From 00b2126efac7a92c91a5d851221321e75839ace4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 20 Jan 2015 12:30:47 -0800 Subject: [PATCH 0552/1096] "LVY15F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 20be064024d..d7fbb4530a2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY15E +export BUILD_ID=LVY15F From a73ac1ee5a21a498c08a75607627d69fd64315fe Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 20 Jan 2015 15:31:50 -0800 Subject: [PATCH 0553/1096] "LMY20B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0c845ce427c..57ee98af3a3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY20 +export BUILD_ID=LMY20B From dd4f77f9957ecc47747bab94d84e77cc15088ff6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 21 Jan 2015 06:12:13 -0800 Subject: [PATCH 0554/1096] "LMY21" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..fd3efd1d8b7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY21 From 48d48386fc6b0553012741e4c6c64d924d6faee2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 21 Jan 2015 15:04:16 -0800 Subject: [PATCH 0555/1096] "LMY21B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fd3efd1d8b7..37ecd3faa48 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY21 +export BUILD_ID=LMY21B From a45c5836b7e2ed7083fff05385f2c2b5b1a77335 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 22 Jan 2015 06:12:05 -0800 Subject: [PATCH 0556/1096] "LMY22" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..80ac1467514 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY22 From 14e0e8e7d3601da2034b70d4b94b46d6e516e594 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 22 Jan 2015 15:11:35 -0800 Subject: [PATCH 0557/1096] "LMY22B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 80ac1467514..4a82e77b9ba 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY22 +export BUILD_ID=LMY22B From efb18ab96ba6fc3c7203874b5a672108cfe4c5c0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 22 Jan 2015 15:40:33 -0800 Subject: [PATCH 0558/1096] "LVY15G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d7fbb4530a2..711784e4450 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY15F +export BUILD_ID=LVY15G From 71095ef9e2a36b8409ba310d0f650b184dfcaf10 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 22 Jan 2015 21:39:31 -0800 Subject: [PATCH 0559/1096] "LMY22C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4a82e77b9ba..b75b19a810e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY22B +export BUILD_ID=LMY22C From 3d8dbb5bc92039e744cfc4085e935a714fec95ea Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 23 Jan 2015 07:36:38 -0800 Subject: [PATCH 0560/1096] "LMY22D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b75b19a810e..4129b9d5c36 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY22C +export BUILD_ID=LMY22D From 3ce16cbef3d85c258e6bb0340f0ae3af9e3478bf Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 23 Jan 2015 09:57:35 -0800 Subject: [PATCH 0561/1096] "LVY15H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 711784e4450..56a5922552f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY15G +export BUILD_ID=LVY15H From b5547a97bab374a2a247043e0fdad38b3533de59 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 23 Jan 2015 12:21:13 -0800 Subject: [PATCH 0562/1096] "LMY22E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4129b9d5c36..643c8997b73 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY22D +export BUILD_ID=LMY22E From bdd2b684b36af3c1d767d92c1f7c5db7ac0236eb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 26 Jan 2015 06:14:07 -0800 Subject: [PATCH 0563/1096] "LMY26" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..b746a1f24ca 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY26 From 98fb6814956ac6e73d3d4784ce07574c306fb54b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 26 Jan 2015 14:39:30 -0800 Subject: [PATCH 0564/1096] "LVY26" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 643c8997b73..8bc4e850820 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY22E +export BUILD_ID=LVY26 From 0fe1152b0189b2f3e57f68f1998e451dab7c1348 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 26 Jan 2015 14:50:12 -0800 Subject: [PATCH 0565/1096] "LVY22E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8bc4e850820..714d12822f2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY26 +export BUILD_ID=LVY22E From 1dd5a532492dc4ad56c2196eaa3beb905f35b028 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 26 Jan 2015 14:54:54 -0800 Subject: [PATCH 0566/1096] "LMY26B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b746a1f24ca..f70a03ea346 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY26 +export BUILD_ID=LMY26B From 4a9f9a3eea029e3d49bc70b28eb54e295ba5925b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 27 Jan 2015 06:12:38 -0800 Subject: [PATCH 0567/1096] "LMY27" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..62235df7670 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY27 From e27f7d954e2f5b367e0f06134a6a9fff298756d7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 27 Jan 2015 15:05:26 -0800 Subject: [PATCH 0568/1096] "LMY27B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 62235df7670..d85bce5c4d6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY27 +export BUILD_ID=LMY27B From 6f9bceab8fb415905b9acd80ba8c40c2117008db Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 28 Jan 2015 06:12:01 -0800 Subject: [PATCH 0569/1096] "LMY28" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..e5611a4b374 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY28 From ef7e79249b93fd57cc75d5d032fe1e5aeaf9aebc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 28 Jan 2015 13:32:31 -0800 Subject: [PATCH 0570/1096] "LVY28" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d85bce5c4d6..051ad15c728 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY27B +export BUILD_ID=LVY28 From 8e189416467dbb3c951232f678cd9e82543a0fc3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 28 Jan 2015 13:37:11 -0800 Subject: [PATCH 0571/1096] "LMY28B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e5611a4b374..be727486b1f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY28 +export BUILD_ID=LMY28B From e4570c4cee8605e983c98ee2b5b20065021c3f87 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 28 Jan 2015 13:40:38 -0800 Subject: [PATCH 0572/1096] "LVY27B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 051ad15c728..35863095491 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY28 +export BUILD_ID=LVY27B From f9f468b874eec59c272957a816ebccbea7ad46d3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 28 Jan 2015 15:28:01 -0800 Subject: [PATCH 0573/1096] "LMY28C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index be727486b1f..81aaca0565d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY28B +export BUILD_ID=LMY28C From 7a31d48c8ce3e8e4d90148d366c338e0dc5cb45d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 29 Jan 2015 06:14:27 -0800 Subject: [PATCH 0574/1096] "LMY29" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..4c7214c8729 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY29 From b8c634f2a756c737ced8b7e7747db15888cdb1e0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 29 Jan 2015 12:27:10 -0800 Subject: [PATCH 0575/1096] "LMY29B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4c7214c8729..b8d46288755 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY29 +export BUILD_ID=LMY29B From 653c85a468e8d4761d7c70656c90fd0132c80c02 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 29 Jan 2015 14:48:46 -0800 Subject: [PATCH 0576/1096] "LVY29" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b8d46288755..cf03d027fd2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY29B +export BUILD_ID=LVY29 From c1d901e33adf51fbb7ba70bcd6f0b873fc3fdd3a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 29 Jan 2015 14:57:32 -0800 Subject: [PATCH 0577/1096] "LVY29B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cf03d027fd2..3c9d49f477e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY29 +export BUILD_ID=LVY29B From a83b3c8d2afb6a76857a0d6ca307e1fed9c3e315 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 29 Jan 2015 15:11:14 -0800 Subject: [PATCH 0578/1096] "LMY29C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b8d46288755..fe467811ec6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY29B +export BUILD_ID=LMY29C From a00ec7b03e4da0dd2bed4dc6319043583233eb06 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 29 Jan 2015 19:26:44 -0800 Subject: [PATCH 0579/1096] "LVY29C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fe467811ec6..24724c63c73 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY29C +export BUILD_ID=LVY29C From 5dbaf4378c1d55c3349ff85617ead2137d96fc15 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 30 Jan 2015 13:18:20 -0800 Subject: [PATCH 0580/1096] "LMY29D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fe467811ec6..db883fa31ae 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY29C +export BUILD_ID=LMY29D From 7041bb4d1c100d1d412c1106eaf138a6d4f072cc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 30 Jan 2015 14:47:52 -0800 Subject: [PATCH 0581/1096] "LMY29E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index db883fa31ae..f2e5a2149d4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY29D +export BUILD_ID=LMY29E From 798c65e151221f411ac215cf31a23cae8fcb1646 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 30 Jan 2015 16:14:49 -0800 Subject: [PATCH 0582/1096] LMY29F --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f2e5a2149d4..552b4ae45cd 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY29E +export BUILD_ID=LMY29F From 9a93327c510e75d8dbc2f5d83b5448514454e3cd Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 2 Feb 2015 06:13:15 -0800 Subject: [PATCH 0583/1096] "LMY33" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..83a0834b078 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY33 From 1f73e7195d847baa3e0063a064870812aace7999 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 2 Feb 2015 14:26:56 -0800 Subject: [PATCH 0584/1096] "LVY29F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 552b4ae45cd..e796df8c260 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY29F +export BUILD_ID=LVY29F From 12c55822ff55287d142bb0b6b4086b4d5fa96a4a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 2 Feb 2015 15:46:11 -0800 Subject: [PATCH 0585/1096] LVY29G --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e796df8c260..99838d96d6c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY29F +export BUILD_ID=LVY29G From 8a746ceceb2b06ac9bcddccf0db64faf8d2b0425 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 2 Feb 2015 19:58:14 -0800 Subject: [PATCH 0586/1096] "LVY33" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 83a0834b078..ac1b2ee0f6a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY33 +export BUILD_ID=LVY33 From 1587fa3e41091e9b64da512891b6d3f59012ed37 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 3 Feb 2015 06:12:13 -0800 Subject: [PATCH 0587/1096] "LMY34" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..eea810092b8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY34 From a6101048013e3269d6f3e29e737aa03e3c0fcacc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 3 Feb 2015 15:19:42 -0800 Subject: [PATCH 0588/1096] "LMY34B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index eea810092b8..c019e2177e1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY34 +export BUILD_ID=LMY34B From 3f2a5979e2e0e1328e5a85efe20577a41c213fee Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 3 Feb 2015 18:58:58 -0800 Subject: [PATCH 0589/1096] "LVY34B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c019e2177e1..5a87f9a4a9a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY34B +export BUILD_ID=LVY34B From 72a42e06d3ff78dded0aa6f6ce7467291f9f8ea3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 4 Feb 2015 06:14:27 -0800 Subject: [PATCH 0590/1096] "LMY35" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..135785113d1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY35 From 0c41b95600521d749eff9f93d6bfbce6b0a99da5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Feb 2015 06:18:36 -0800 Subject: [PATCH 0591/1096] "LMY36" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..8a9681d4c6f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY36 From f1bae0aef921307a6e0e3a3ad3d63525817749f6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Feb 2015 06:33:23 -0800 Subject: [PATCH 0592/1096] "LVY36" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 135785113d1..2cde8f5bdb9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY35 +export BUILD_ID=LVY36 From 6a17d6a67405346996b023202e868ccb1b5f9827 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Feb 2015 06:44:13 -0800 Subject: [PATCH 0593/1096] LVY35 --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2cde8f5bdb9..b2565b66da7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY36 +export BUILD_ID=LVY35 From 700fb5d17d97e078f87b4a548dbc99af230ec66b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Feb 2015 12:09:18 -0800 Subject: [PATCH 0594/1096] "LVY35B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b2565b66da7..c682ac26893 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY35 +export BUILD_ID=LVY35B From ef11433b1c183e46fdfd8b01623d9d4a36e56180 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Feb 2015 15:03:32 -0800 Subject: [PATCH 0595/1096] "LMY36B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8a9681d4c6f..2361b2e3af4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY36 +export BUILD_ID=LMY36B From cfbcbc3119b175935a3b15090773683b68295915 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Feb 2015 16:25:26 -0800 Subject: [PATCH 0596/1096] "LVY35C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c682ac26893..1ed958319f2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY35B +export BUILD_ID=LVY35C From b90c6e0f8df541d74c95e07ebf06172aec6db353 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Feb 2015 19:52:57 -0800 Subject: [PATCH 0597/1096] "LVY35D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1ed958319f2..9b98378dba8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY35C +export BUILD_ID=LVY35D From 74a5c02db1cd815cde7e0a4472c84d1dbe27cce3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Feb 2015 21:07:14 -0800 Subject: [PATCH 0598/1096] "LVY36B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2361b2e3af4..4be0809b400 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY36B +export BUILD_ID=LVY36B From 150507d00f04ea07094f5bfd0fa38b641483a882 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 6 Feb 2015 18:00:00 -0800 Subject: [PATCH 0599/1096] "LMY36C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2361b2e3af4..eb2259cb38b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY36B +export BUILD_ID=LMY36C From cf3495b0aa7f7f94914c6f67dcfc0b08a32c3148 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 7 Feb 2015 10:13:26 -0800 Subject: [PATCH 0600/1096] LVY36C --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4be0809b400..63ac1ecec01 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY36B +export BUILD_ID=LVY36C From e8a60f51b739708e9f22cc65d352b40afaf9552f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 9 Feb 2015 06:12:36 -0800 Subject: [PATCH 0601/1096] "LMY40" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..b0cdfa32ca4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY40 From b863c9913396ee2eda0c868a24f725f81d437e31 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 9 Feb 2015 16:46:01 -0800 Subject: [PATCH 0602/1096] "LVY36D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 63ac1ecec01..4a93ee28d7e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY36C +export BUILD_ID=LVY36D From 31e3941d6aaed722d6cf0b90d498a2a9390f5bb2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 9 Feb 2015 18:47:45 -0800 Subject: [PATCH 0603/1096] "LVY36E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4a93ee28d7e..cf1c201b73b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY36D +export BUILD_ID=LVY36E From 33be60eebcfde42fe5c88b28204d070cc4ac75de Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 10 Feb 2015 06:15:23 -0800 Subject: [PATCH 0604/1096] "LMY41" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..2418fb58115 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY41 From e8ea8155e348b00ed9810cdc65411222c0f90b22 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 10 Feb 2015 07:28:55 -0800 Subject: [PATCH 0605/1096] LVY36F --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index cf1c201b73b..069b08d6f60 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY36E +export BUILD_ID=LVY36F From dd94073e09558a765ce2c7d250b8508b2a8bb999 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 11 Feb 2015 06:15:44 -0800 Subject: [PATCH 0606/1096] "LMY42" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..6c580ea3123 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY42 From 885268a41a8b9b83a81720506a252292b930e939 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 11 Feb 2015 11:56:38 -0800 Subject: [PATCH 0607/1096] "LVY41" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 2418fb58115..6a735ad60ea 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY41 +export BUILD_ID=LVY41 From 9f874acf04f196663c7b42c11cd645a9cde753b0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 11 Feb 2015 14:34:23 -0800 Subject: [PATCH 0608/1096] "LMY42B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6c580ea3123..15059430d0c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY42 +export BUILD_ID=LMY42B From 916da206c2cd0d4443d53d4986bb9ab0cbe57074 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 12 Feb 2015 06:14:31 -0800 Subject: [PATCH 0609/1096] "LMY43" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..e35eee47864 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY43 From 6a853773669ff450a2e684577b8c73b3b00d6e28 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 13 Feb 2015 01:12:59 -0800 Subject: [PATCH 0610/1096] "LMY44" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..a4c4d4033f1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY44 From bdeec0c9a2ff8e9d99f8df1a8600acfd956eeaf1 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 15 Feb 2015 18:40:56 -0800 Subject: [PATCH 0611/1096] "LVY44" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index a4c4d4033f1..69d7d097d17 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY44 +export BUILD_ID=LVY44 From ef863cb1ab796e262c2ce5f048a285b0a2d7393c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 16 Feb 2015 18:03:00 -0800 Subject: [PATCH 0612/1096] "LMY47" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..9e2ab869b4e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY47 From 37a9ed2dcb275b618c56f58c8e81fe1ce7aace2e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 16 Feb 2015 23:44:14 -0800 Subject: [PATCH 0613/1096] "LMY47B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 00a691f85bd..56668c7cd5a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMP +export BUILD_ID=LMY47B From c0a4083e8e9b8c60adff86651578ed1f927674d2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 17 Feb 2015 16:32:25 -0800 Subject: [PATCH 0614/1096] "LMY47C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 56668c7cd5a..ab021ef20e4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47B +export BUILD_ID=LMY47C From 9c95d87390b6e52d004968b8f640bf497a6727e0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 17 Feb 2015 20:47:24 -0800 Subject: [PATCH 0615/1096] "LVY47" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ab021ef20e4..3e2a794f5ae 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47C +export BUILD_ID=LVY47 From 9ef2e964cab7bbdb3582ad58653148669a485dc7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 18 Feb 2015 20:57:59 -0800 Subject: [PATCH 0616/1096] "LMY47D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ab021ef20e4..e59357b9ea3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47C +export BUILD_ID=LMY47D From 50588a25d970aefc1370f6b5ea40c51f554c2aeb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 18 Feb 2015 21:51:42 -0800 Subject: [PATCH 0617/1096] "LVY47B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3e2a794f5ae..bd1cda953fa 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY47 +export BUILD_ID=LVY47B From 67169cf44b7e4d0ec178782877764e6e61cf1bb4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 19 Feb 2015 09:34:20 -0800 Subject: [PATCH 0618/1096] "LVY47C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index bd1cda953fa..0b5864af16c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY47B +export BUILD_ID=LVY47C From d0a45ac6c067eca0fd06d04656dd56da2e74a0a3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 19 Feb 2015 19:49:53 -0800 Subject: [PATCH 0619/1096] "LVY50" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e59357b9ea3..6c351d9e978 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47D +export BUILD_ID=LVY50 From 1349b15026d43e51bef08fe075ffa64be81ee0f9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 19 Feb 2015 19:56:25 -0800 Subject: [PATCH 0620/1096] "LVY47D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6c351d9e978..650c49b6c14 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY50 +export BUILD_ID=LVY47D From 7b2e9f086eb1ab2e432c5e6c02cb42c26e3d8268 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sat, 21 Feb 2015 19:52:30 -0800 Subject: [PATCH 0621/1096] LMY47E --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e59357b9ea3..d07b15cbd96 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47D +export BUILD_ID=LMY47E From dce4c51a5750864e6754ce053765dd49e18b90d0 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 24 Feb 2015 13:09:34 -0800 Subject: [PATCH 0622/1096] "LVY47E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 650c49b6c14..38c9c68be10 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY47D +export BUILD_ID=LVY47E From be9ec017d7645cc957a6cedff0ef817e0829865f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 25 Feb 2015 11:45:17 -0800 Subject: [PATCH 0623/1096] "LMY47F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d07b15cbd96..23fd09ce8f5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47E +export BUILD_ID=LMY47F From 16eea6e59a64fe1554dd85df85561d2225ad1517 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 27 Feb 2015 15:05:35 -0800 Subject: [PATCH 0624/1096] LMY47G --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 23fd09ce8f5..67ce9558cce 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47F +export BUILD_ID=LMY47G From 8d5f0f9f6007082c74e8a554d4b3b0e9ea7b2f29 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 2 Mar 2015 10:50:32 -0800 Subject: [PATCH 0625/1096] "LMY47H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 67ce9558cce..ff0694c407e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47G +export BUILD_ID=LMY47H From 35a48c63e1eb9c7e8cfb6d1254d2bd7f64739fbc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 3 Mar 2015 14:09:18 -0800 Subject: [PATCH 0626/1096] "LVY62" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e59357b9ea3..8f9a8995454 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47D +export BUILD_ID=LVY62 From 609e3fd0f3c29e5136c554f02ccc09427bd67a0e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 3 Mar 2015 14:18:05 -0800 Subject: [PATCH 0627/1096] "LVY47F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8f9a8995454..9de28bdfb56 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY62 +export BUILD_ID=LVY47F From d61ef571a7fa0d6fa84c19410a9b3a5911c55917 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 3 Mar 2015 20:05:34 -0800 Subject: [PATCH 0628/1096] "LMY47I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ff0694c407e..09e5c6b2e03 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47H +export BUILD_ID=LMY47I From 5a0b3c77d318fad0f79d9d982dc1ed13de2999c5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 4 Mar 2015 19:54:17 -0800 Subject: [PATCH 0629/1096] "LMY47J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e59357b9ea3..09c131e7e73 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47D +export BUILD_ID=LMY47J From bd5479c36e631cbf186027c7706f1a77aaac2809 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Mar 2015 17:57:51 -0800 Subject: [PATCH 0630/1096] "LMY47K" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 09c131e7e73..c5d26556552 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47J +export BUILD_ID=LMY47K From 29f45d8b82df44b319783331da51d8d1c1e2441f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 5 Mar 2015 18:39:34 -0800 Subject: [PATCH 0631/1096] "LVY47G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 9de28bdfb56..17e0bb5f6c9 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY47F +export BUILD_ID=LVY47G From 4522f419e9e51a35fd225ef0b0ecab84ba6a44b9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 6 Mar 2015 13:15:34 -0800 Subject: [PATCH 0632/1096] "LMY47L" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c5d26556552..57c9109a32a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47K +export BUILD_ID=LMY47L From 42785298907f49c2447eeb664eab8e753485cf3d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 6 Mar 2015 15:55:18 -0800 Subject: [PATCH 0633/1096] "LMY47M" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 57c9109a32a..6036f4e3059 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47L +export BUILD_ID=LMY47M From 9830104dac00ceccb6956a4e538672a45ec9773c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 9 Mar 2015 18:20:47 -0700 Subject: [PATCH 0634/1096] "LVY47H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 17e0bb5f6c9..f59c56c4962 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY47G +export BUILD_ID=LVY47H From 128bb23c675e4dca5875d4202ff10d0617bb0e83 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 10 Mar 2015 17:13:58 -0700 Subject: [PATCH 0635/1096] "LMY47N" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 09e5c6b2e03..b048f4dd236 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47I +export BUILD_ID=LMY47N From 1ac5b83b11ff41d4ce2dd3d582d2af0f1a88262a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 11 Mar 2015 19:35:44 -0700 Subject: [PATCH 0636/1096] "LMY47O" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b048f4dd236..29b44b78178 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47N +export BUILD_ID=LMY47O From fbd04b338a856b8c484946d748202d6aa6b27158 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Tue, 12 Apr 2011 10:57:22 +0100 Subject: [PATCH 0637/1096] Allow a device to generically define its own headers We have a few cases of devices including specific versions of projects just because of modified headers (msm_mdp.h comes to mind), and I just had enough of ifdeffing header files for specific cases (the P990 needs a lot of these). Now... if a target defines a TARGET_SPECIFIC_HEADER_PATH, any headers in there will take precedence over the standard ones; for example, on the p990, I have TARGET_SPECIFIC_HEADER_PATH := device/lge/p990/include which makes, for example, the device/lge/p990/include/hardware_legacy/AudioHardwareInterface.h be used instead of hardware/libhardware_legacy/include/hardware_legacy/AudioHardwareInterface.h whenever a source file uses Change-Id: I41b62668b60e3f62a6ebd3738d8d2675103a81e6a build: fix target header overlay LOCAL_C_INCLUDES as defined by the makefile should be put AFTER the overlay includes so the overlay always takes precedence. Change-Id: I489b2aab6dbacd9122d834f85e07b63ed1271f07 --- core/binary.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/binary.mk b/core/binary.mk index 6a14cb5ab7c..9eb67fe7310 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -817,6 +817,11 @@ normal_objects := \ all_objects := $(normal_objects) $(gen_o_objects) +## Allow a device's own headers to take precedence over global ones +ifneq ($(TARGET_SPECIFIC_HEADER_PATH),) +my_c_includes := $(TOPDIR)$(TARGET_SPECIFIC_HEADER_PATH) $(my_c_includes) +endif + my_c_includes += $(TOPDIR)$(LOCAL_PATH) $(intermediates) $(generated_sources_dir) ifndef LOCAL_SDK_VERSION From adf7826cc7a26a6837ab2643f99b3c09f7c558fe Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Wed, 11 Apr 2012 11:21:23 +0100 Subject: [PATCH 0638/1096] build: Inline kernel building as a buildtime task Kernel image integration is now done in the build system. The "one true way" of doing this is to download the kernel source into kernel/TARGET_BOOTLOADER_NAME (by usage of the cm.dependencies mechanism or otherwise), and defining the TARGET_KERNEL_CONFIG variable in the device's BoardConfig makefile If the kernel's location doesn't match the automagic location (multi-device kernel source, for instance), TARGET_KERNEL_SOURCE can be used to specify a kernel path (i.e., "TARGET_KERNEL_SOURCE := kernel/shared-whatever") If the device requires out-of-kernel-tree modules to be built, the TARGET_KERNEL_MODULES variable can be used, pointing to a _make target_ that will build and install such modules. Definition of such a target is the device author's responsibility, the only restriction is that it is a normal makefile recipe (example below) Optionally (or as an alternative), a prebuilt binary can also be defined at BoardConfig, by usage of the TARGET_PREBUILT_KERNEL variable. This binary will be used if the kernel source is absent (or undefined). A minimal BoardConfig.mk should look something like this: TARGET_KERNEL_CONFIG := cyanogenmod__defconfig TARGET_PREBUILT_KERNEL := device///kernel To include, for example, the TI WLAN modules, this can be used: ----------------------------- TIWLAN_MODULES: make -C hardware/ti/wlan/wl1283/platforms/os/linux/ KERNEL_DIR=$(KERNEL_OUT) ARCH="arm" CROSS_COMPILE="arm-eabi-" TNETW=1273 RANDOM_MAC=n REPORT_LOG=n mv hardware/ti/wlan/wl1283/platforms/os/linux/tiwlan_drv.ko $(KERNEL_MODULES_OUT) make -C hardware/ti/wlan/wl1283_softAP/platforms/os/linux/ KERNEL_DIR=$(KERNEL_OUT) ARCH="arm" CROSS_COMPILE="arm-eabi-" TNETW=1273 REPORT_LOG=n mv hardware/ti/wlan/wl1283_softAP/platforms/os/linux/tiap_drv.ko $(KERNEL_MODULES_OUT) TARGET_KERNEL_MODULES := TIWLAN_MODULES --------------------------- Change-Id: I8634fa4c788a42dc6f62e62ca170825b66db126a build: Fix kernel module building on Darwin/OSX Darwin/OSX build host does not have module-init-tools which is required to generated modules.dep file. Switch to modules.order file marker which is always generated instead. Change-Id: I20c0fccd905fa668202c3e7284a8778db3728a65 kernel: Change path to kernel// Derive the kernel path from the device's own path (just replace "device" with "kernel") Change-Id: Idd44a0489e1ce280adf5ec4d9cfe2385c75dd115 kernel: Improve support for non-arm architectures Remove hardwired references to the ARM arch and toolchains, and replace them with the respective android build variables Change-Id: Iae3eb548ca1d58ac808b5fa430d415283a809106 kernel: Fix ARM building The default android ARM compiler, arm-androideabi-, does NOT work for the Linux kernel. Special-case the ARM architecture to target the ARM_EABI_TOOLCHAIN path directly Change-Id: Ib672c99f114cb89d5fda3343d4dc68810d042d35 kernel: allow TARGET_KERNEL_MODULES to overwrite kernel modules This is necessary to use compat-wireless since it needs to build a newer version of cfg80211 (and sometimes mac80211) than the kernel sources version. There are probably other instances of this type of need. Change-Id: Ib5bf818286bc20987d8b9f9480a43f3e7690e239 kernel.mk: make use of ccache when requested Change-Id: I9b6e28711bd5f590a76ac2b62a50b1d2de014e3e kernel: Fix ccache inclusion logic Builds were broken when CCACHE was missing from the environment Change-Id: Ie8d6048f4600f1dc9c298593a50e37af04b96438 build: show accurate information on inline kernel warnings/errors Having the variables on AndroidBoard as suggested causes errors with mm/mmm, whereas having them on BoardConfig doesn't. Adjust the warnings to reflect this. Change-Id: I554c1f1073df678d36521f73bc236a1f4b02212e This is causing generic_armv5-userdebug builds to fail. Commenting out for now to fix recovery build servers. Will fix properly later. Change-Id: Ibe1cda8cd2b4c1914dfa3b8a29724c9069e047a6 kernel.mk: Also search PRODUCT_COPY_FILES for the kernel copy, as that is how AOSP does it now. Change-Id: Id2d1cf079694d1996d4a85d8435c2e4562e5d444 kernel.mk: fix compiled kernel copy Change-Id: Ifb2a3d4968e56eed236eaa2db9258cd0b8865fda kernel.mk: workaround to fix kernel builds on darwin until the prebuilts/gcc is checked in by upstream. Change-Id: I6321fb7f6814b207c821d974766d945351b3f546 build: fix ccache usage when building kernels Change-Id: Id4edd4d85d9ba3ef42575f5fdebf22ed14957a99 kernel.mk: set KERNEL_OUT properly It was hardcoded to $(ANDROID_BUILD_TOP)/$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ which wouldn't exist if OUT_DIR_COMMON_BASE was set to use another dir (e.g. ramdisk) Fix it so that it now points to $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ if OUT_DIR is not out Change-Id: I1bf767d86548e41270d9cbb8f0c00512708501c5 build: add support for uncompressed kernels build: kernel: remove hard coded darwin toolchain. * Use latest kernel toolchain from $(ARM_EABI_TOOLCHAIN) variable. Change-Id: I3b43408937dd5f193fcba19c034f868272de8963 envsetup: set OUT_DIR to an absolute path always OUT_DIR was set to $(TOPDIR)out previously, but $(TOPDIR) was null, so it was a relative path. This broke releasetools, inline kernel building, etc since they require absolute paths. Fix it so that it is set to $(shell readlink -f .)/out if $(TOPDIR) is null. Also remove hacks which checked if (OUT_DIR) was out and changed it to $(ANDROID_BUILD_TOP)/out to workaround the aforementioned problem. Change-Id: I459a3b1325a1bbea0565cd73f6acf160d4ed9b39 build: add strip on kernel modules kernel modules are huge for prima wlan and we need to strip them unstriped size 40mb striped size 2mb Change-Id: Iefd572732cad0a6f608439618673068a3586fcd5 kernel: Ignore errors with module building Let kernel fully disable loadable modules Change-Id: Ia37ec927b092c041ee4c68bf9fd0f28b7339c8ca build: Add support for extra kernel build variables * This allows specifying a variant defconfig, and an selinux defconfig which are simply configuration fragments. Change-Id: I97882ae3b8c2e16ff6a7dce8dd3a70d70f8aa866 s/cyanogenmod.com/cyanogenmod.org/ * And fixup a wiki link while I'm at it. Change-Id: I0355b9a47eac1becc07e81659fbb2d11b14ece36 Fixes for Xcode 5 and OSX 10.9. kernel.mk: Put elf.h into the include path on Darwin builds. Change-Id: I7069b956965d27caac3b2e4c3cc2e8b4c1da7a82 Make the kernel image format parametric instead of a chain of if/elses Change-Id: I54bfcdecb8647f7bcf744e72b2de19fcf4e4e7ac build: Add "dtbs" target when building the kernel * This is needed for 3.10 Change-Id: I4044ea9e67017452efc25097a3327141a6627c24 --- core/tasks/kernel.mk | 188 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 core/tasks/kernel.mk diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk new file mode 100644 index 00000000000..4d519a07cdf --- /dev/null +++ b/core/tasks/kernel.mk @@ -0,0 +1,188 @@ +# Copyright (C) 2012 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Android makefile to build kernel as a part of Android Build + +TARGET_AUTO_KDIR := $(shell echo $(TARGET_DEVICE_DIR) | sed -e 's/^device/kernel/g') + +## Externally influenced variables +# kernel location - optional, defaults to kernel// +TARGET_KERNEL_SOURCE ?= $(TARGET_AUTO_KDIR) +KERNEL_SRC := $(TARGET_KERNEL_SOURCE) +# kernel configuration - mandatory +KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG) +VARIANT_DEFCONFIG := $(TARGET_KERNEL_VARIANT_CONFIG) +SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG) + +## Internal variables +KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ +KERNEL_CONFIG := $(KERNEL_OUT)/.config + +ifneq ($(BOARD_KERNEL_IMAGE_NAME),) + TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME) + TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE) +else + TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/zImage + TARGET_PREBUILT_INT_KERNEL_TYPE := zImage +endif + +## Do be discontinued in a future version. Notify builder about target +## kernel format requirement +ifeq ($(BOARD_KERNEL_IMAGE_NAME),) +ifeq ($(BOARD_USES_UBOOT),true) + $(error "Please set BOARD_KERNEL_IMAGE_NAME to uImage") +else ifeq ($(BOARD_USES_UNCOMPRESSED_BOOT),true) + $(error "Please set BOARD_KERNEL_IMAGE_NAME to Image") +endif +endif + +ifeq "$(wildcard $(KERNEL_SRC) )" "" + ifneq ($(TARGET_PREBUILT_KERNEL),) + HAS_PREBUILT_KERNEL := true + NEEDS_KERNEL_COPY := true + else + $(foreach cf,$(PRODUCT_COPY_FILES), \ + $(eval _src := $(call word-colon,1,$(cf))) \ + $(eval _dest := $(call word-colon,2,$(cf))) \ + $(ifeq kernel,$(_dest), \ + $(eval HAS_PREBUILT_KERNEL := true))) + endif + + ifneq ($(HAS_PREBUILT_KERNEL),) + $(warning ***************************************************************) + $(warning * Using prebuilt kernel binary instead of source *) + $(warning * THIS IS DEPRECATED, AND WILL BE DISCONTINUED *) + $(warning * Please configure your device to download the kernel *) + $(warning * source repository to $(KERNEL_SRC)) + $(warning * See http://wiki.cyanogenmod.org/w/Doc:_integrated_kernel_building) + $(warning * for more information *) + $(warning ***************************************************************) + FULL_KERNEL_BUILD := false + KERNEL_BIN := $(TARGET_PREBUILT_KERNEL) + else + $(warning ***************************************************************) + $(warning * *) + $(warning * No kernel source found, and no fallback prebuilt defined. *) + $(warning * Please make sure your device is properly configured to *) + $(warning * download the kernel repository to $(KERNEL_SRC)) + $(warning * and add the TARGET_KERNEL_CONFIG variable to BoardConfig.mk *) + $(warning * *) + $(warning * As an alternative, define the TARGET_PREBUILT_KERNEL *) + $(warning * variable with the path to the prebuilt binary kernel image *) + $(warning * in your BoardConfig.mk file *) + $(warning * *) + $(warning ***************************************************************) + $(error "NO KERNEL") + endif +else + NEEDS_KERNEL_COPY := true + ifeq ($(TARGET_KERNEL_CONFIG),) + $(warning **********************************************************) + $(warning * Kernel source found, but no configuration was defined *) + $(warning * Please add the TARGET_KERNEL_CONFIG variable to your *) + $(warning * BoardConfig.mk file *) + $(warning **********************************************************) + # $(error "NO KERNEL CONFIG") + else + #$(info Kernel source found, building it) + FULL_KERNEL_BUILD := true + ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true) + $(info Using uncompressed kernel) + KERNEL_BIN := $(KERNEL_OUT)/piggy + else + KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL) + endif + endif +endif + +ifeq ($(FULL_KERNEL_BUILD),true) + +KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr +KERNEL_MODULES_INSTALL := system +KERNEL_MODULES_OUT := $(TARGET_OUT)/lib/modules + +define mv-modules + mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.order`;\ + if [ "$$mdpath" != "" ];then\ + mpath=`dirname $$mdpath`;\ + ko=`find $$mpath/kernel -type f -name *.ko`;\ + for i in $$ko; do $(ARM_EABI_TOOLCHAIN)/arm-eabi-strip --strip-unneeded $$i;\ + mv $$i $(KERNEL_MODULES_OUT)/; done;\ + fi +endef + +define clean-module-folder + mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.order`;\ + if [ "$$mdpath" != "" ];then\ + mpath=`dirname $$mdpath`; rm -rf $$mpath;\ + fi +endef + +ifeq ($(TARGET_ARCH),arm) + ifneq ($(USE_CCACHE),) + ccache := $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache + # Check that the executable is here. + ccache := $(strip $(wildcard $(ccache))) + endif + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ARM_EABI_TOOLCHAIN)/arm-eabi-" + ccache = +endif + +ifeq ($(HOST_OS),darwin) + MAKE_FLAGS := C_INCLUDE_PATH=$(ANDROID_BUILD_TOP)/external/elfutils/libelf +endif + +ifeq ($(TARGET_KERNEL_MODULES),) + TARGET_KERNEL_MODULES := no-external-modules +endif + +$(KERNEL_OUT): + mkdir -p $(KERNEL_OUT) + mkdir -p $(KERNEL_MODULES_OUT) + +$(KERNEL_CONFIG): $(KERNEL_OUT) + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG) + +$(KERNEL_OUT)/piggy : $(TARGET_PREBUILT_INT_KERNEL) + $(hide) gunzip -c $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/compressed/piggy.gzip > $(KERNEL_OUT)/piggy + +TARGET_KERNEL_BINARIES: $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL) + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE) + -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) dtbs + -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules + -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules_install + $(mv-modules) + $(clean-module-folder) + +$(TARGET_KERNEL_MODULES): TARGET_KERNEL_BINARIES + +$(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES) + $(mv-modules) + $(clean-module-folder) + +$(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG) + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) headers_install + +endif # FULL_KERNEL_BUILD + +## Install it + +ifeq ($(NEEDS_KERNEL_COPY),true) +file := $(INSTALLED_KERNEL_TARGET) +ALL_PREBUILT += $(file) +$(file) : $(KERNEL_BIN) | $(ACP) + $(transform-prebuilt-to-target) + +ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET) +endif From 8ffa613cc32547764ae18abb142262f0ccd05d5a Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Wed, 16 Nov 2011 23:14:27 +0000 Subject: [PATCH 0639/1096] ota: Remove cruft we don't care about Skip the date check (downgrade to your content), and don't include recovery in otapackages. 5.0.0 update: We want the recovery patchstuff back --- tools/releasetools/ota_from_target_files | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 945f11a0bbd..e2e73df4dd0 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -495,10 +495,10 @@ def WriteFullOTAPackage(input_zip, output_zip): has_recovery_patch = HasRecoveryPatch(input_zip) block_based = OPTIONS.block_based and has_recovery_patch - if not OPTIONS.omit_prereq: - ts = GetBuildProp("ro.build.date.utc", OPTIONS.info_dict) - ts_text = GetBuildProp("ro.build.date", OPTIONS.info_dict) - script.AssertOlderBuild(ts, ts_text) + #if not OPTIONS.omit_prereq: + # ts = GetBuildProp("ro.build.date.utc", OPTIONS.info_dict) + # ts_text = GetBuildProp("ro.build.date", OPTIONS.info_dict) + # script.AssertOlderBuild(ts, ts_text) AppendAssertions(script, OPTIONS.info_dict, oem_dict) device_specific.FullOTA_Assertions() @@ -574,7 +574,6 @@ else if get_stage("%(bcb_dev)s") == "3/3" then if not has_recovery_patch: script.UnpackPackageDir("recovery", "/system") script.UnpackPackageDir("system", "/system") - symlinks = CopyPartitionFiles(system_items, input_zip, output_zip) script.MakeSymlinks(symlinks) From a7591a36e27e9c5b09062f5a1866cc3f66acc43f Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Mon, 7 Mar 2011 19:48:45 -0800 Subject: [PATCH 0640/1096] fix up ota_from_target_files symlink detection. --- tools/releasetools/ota_from_target_files | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index e2e73df4dd0..e570eadd51f 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -138,7 +138,7 @@ def MostPopularKey(d, default): def IsSymlink(info): """Return true if the zipfile.ZipInfo object passed in represents a symlink.""" - return (info.external_attr >> 16) == 0120777 + return (info.external_attr >> 16) & 0770000 == 0120000 def IsRegular(info): """Return true if the zipfile.ZipInfo object passed in represents a From c7ca3b959fc0ac31215abc9ea668cae61e571836 Mon Sep 17 00:00:00 2001 From: Andrew Sutherland Date: Fri, 18 Nov 2011 00:45:55 -0600 Subject: [PATCH 0641/1096] envsetup: cmremote,cmgerrit,cmrebase,mka,reposync Add the cm specific functions (cmremote, cmgerrit, cmrebase, mka, reposync) that are present in the gingerbread branch Change-Id: If28a5a206b8bb9ead5242c60f6c1e6af27141b57 --- envsetup.sh | 323 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 323 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index d80e95c39bb..eac432cf0a7 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -16,6 +16,11 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - resgrep: Greps on all local res/*.xml files. - sgrep: Greps on all local source files. - godir: Go to the directory containing a file. +- cmremote: Add git remote for CM Gerrit Review +- cmgerrit: A Git wrapper that fetches/pushes patch from/to CM Gerrit Review +- cmrebase: Rebase a Gerrit change and push it again +- mka: Builds using SCHED_BATCH on all processors +- reposync: Parallel repo sync using ionice and SCHED_BATCH Look at the source to view more functions. The complete list is: EOF @@ -1631,6 +1636,324 @@ function godir () { \cd $T/$pathname } +function cmremote() +{ + git remote rm cmremote 2> /dev/null + if [ ! -d .git ] + then + echo .git directory not found. Please run this from the root directory of the Android repository you wish to set up. + fi + GERRIT_REMOTE=$(cat .git/config | grep git://github.com | awk '{ print $NF }' | sed s#git://github.com/##g) + if [ -z "$GERRIT_REMOTE" ] + then + echo Unable to set up the git remote, are you in the root of the repo? + return 0 + fi + CMUSER=`git config --get review.review.cyanogenmod.com.username` + if [ -z "$CMUSER" ] + then + git remote add cmremote ssh://review.cyanogenmod.com:29418/$GERRIT_REMOTE + else + git remote add cmremote ssh://$CMUSER@review.cyanogenmod.com:29418/$GERRIT_REMOTE + fi + echo You can now push to "cmremote". +} + +function cmgerrit() { + if [ $# -eq 0 ]; then + $FUNCNAME help + return 1 + fi + local user=`git config --get review.review.cyanogenmod.com.username` + local review=`git config --get remote.github.review` + local project=`git config --get remote.github.projectname` + local command=$1 + shift + case $command in + help) + if [ $# -eq 0 ]; then + cat <&2 "Gerrit username not found." + return 1 + fi + local local_branch remote_branch + case $1 in + *:*) + local_branch=${1%:*} + remote_branch=${1##*:} + ;; + *) + local_branch=HEAD + remote_branch=$1 + ;; + esac + shift + git push $@ ssh://$user@$review:29418/$project \ + $local_branch:refs/for/$remote_branch || return 1 + ;; + changes|for) + if [ "$FUNCNAME" = "cmgerrit" ]; then + echo >&2 "'$FUNCNAME $command' is deprecated." + fi + ;; + __cmg_err_no_arg) + if [ $# -lt 2 ]; then + echo >&2 "'$FUNCNAME $command' missing argument." + elif [ $2 -eq 0 ]; then + if [ -n "$3" ]; then + $FUNCNAME help $1 + else + echo >&2 "'$FUNCNAME $1' missing argument." + fi + else + return 1 + fi + ;; + __cmg_err_not_repo) + if [ -z "$review" -o -z "$project" ]; then + echo >&2 "Not currently in any reviewable repository." + else + return 1 + fi + ;; + __cmg_err_not_supported) + $FUNCNAME __cmg_err_no_arg $command $# && return + case $1 in + #TODO: filter more git commands that don't use refname + init|add|rm|mv|status|clone|remote|bisect|config|stash) + echo >&2 "'$FUNCNAME $1' is not supported." + ;; + *) return 1 ;; + esac + ;; + #TODO: other special cases? + *) + $FUNCNAME __cmg_err_not_supported $command && return 1 + $FUNCNAME __cmg_err_no_arg $command $# help && return 1 + $FUNCNAME __cmg_err_not_repo && return 1 + local args="$@" + local change pre_args refs_arg post_args + case "$args" in + *--\ *) + pre_args=${args%%-- *} + post_args="-- ${args#*-- }" + ;; + *) pre_args="$args" ;; + esac + args=($pre_args) + pre_args= + if [ ${#args[@]} -gt 0 ]; then + change=${args[${#args[@]}-1]} + fi + if [ ${#args[@]} -gt 1 ]; then + pre_args=${args[0]} + for ((i=1; i<${#args[@]}-1; i++)); do + pre_args="$pre_args ${args[$i]}" + done + fi + while ((1)); do + case $change in + ""|--) + $FUNCNAME help $command + return 1 + ;; + *@*) + if [ -z "$refs_arg" ]; then + refs_arg="@${change#*@}" + change=${change%%@*} + fi + ;; + *~*) + if [ -z "$refs_arg" ]; then + refs_arg="~${change#*~}" + change=${change%%~*} + fi + ;; + *^*) + if [ -z "$refs_arg" ]; then + refs_arg="^${change#*^}" + change=${change%%^*} + fi + ;; + *:*) + if [ -z "$refs_arg" ]; then + refs_arg=":${change#*:}" + change=${change%%:*} + fi + ;; + *) break ;; + esac + done + $FUNCNAME fetch $change \ + && git $command $pre_args FETCH_HEAD$refs_arg $post_args \ + || return 1 + ;; + esac +} + +function cmrebase() { + local repo=$1 + local refs=$2 + local pwd="$(pwd)" + local dir="$(gettop)/$repo" + + if [ -z $repo ] || [ -z $refs ]; then + echo "CyanogenMod Gerrit Rebase Usage: " + echo " cmrebase " + echo " The patch IDs appear on the Gerrit commands that are offered." + echo " They consist on a series of numbers and slashes, after the text" + echo " refs/changes. For example, the ID in the following command is 26/8126/2" + echo "" + echo " git[...]ges_apps_Camera refs/changes/26/8126/2 && git cherry-pick FETCH_HEAD" + echo "" + return + fi + + if [ ! -d $dir ]; then + echo "Directory $dir doesn't exist in tree." + return + fi + cd $dir + repo=$(cat .git/config | grep git://github.com | awk '{ print $NF }' | sed s#git://github.com/##g) + echo "Starting branch..." + repo start tmprebase . + echo "Bringing it up to date..." + repo sync . + echo "Fetching change..." + git fetch "http://review.cyanogenmod.com/p/$repo" "refs/changes/$refs" && git cherry-pick FETCH_HEAD + if [ "$?" != "0" ]; then + echo "Error cherry-picking. Not uploading!" + return + fi + echo "Uploading..." + repo upload . + echo "Cleaning up..." + repo abandon tmprebase . + cd $pwd +} + +function mka() { + case `uname -s` in + Darwin) + make -j `sysctl hw.ncpu|cut -d" " -f2` "$@" + ;; + *) + schedtool -B -n 1 -e ionice -n 1 make -j `cat /proc/cpuinfo | grep "^processor" | wc -l` "$@" + ;; + esac +} + +function reposync() { + case `uname -s` in + Darwin) + repo sync -j 4 "$@" + ;; + *) + schedtool -B -n 1 -e ionice -n 1 repo sync -j 4 "$@" + ;; + esac +} # Force JAVA_HOME to point to java 1.7 or java 1.6 if it isn't already set. # # Note that the MacOS path for java 1.7 includes a minor revision number (sigh). From b2520f5e2ecf5feafc85632675fabe2d77f341c9 Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Sat, 19 Nov 2011 01:34:12 +0100 Subject: [PATCH 0642/1096] make bacon and custom releasetool (for squished zips) Change-Id: I4f61b6a6b9b8bab8582fa5423c4134c07af17606 --- core/Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index a0938c3d71b..ff76ed2fe74 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1512,8 +1512,13 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(BUILT_TARGET_FILES_PACKAGE) $@ -.PHONY: otapackage +.PHONY: otapackage bacon otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) +bacon: otapackage +ifneq ($(TARGET_CUSTOM_RELEASETOOL),) + $(hide) \ + $(TARGET_CUSTOM_RELEASETOOL) +endif endif # recovery_fstab is defined endif # TARGET_NO_KERNEL != true From 5406a045eccf2023c76dc0c91ad4fb011818fec9 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sat, 26 Jun 2010 22:53:55 -0700 Subject: [PATCH 0643/1096] add support for overriding build.prop settings. Change-Id: Ie4224d608b7bcb0c2087bd77bc954f8f5f9b6495 --- core/Makefile | 1 + core/product.mk | 1 + core/product_config.mk | 3 +++ 3 files changed, 5 insertions(+) diff --git a/core/Makefile b/core/Makefile index ff76ed2fe74..10823ae9362 100644 --- a/core/Makefile +++ b/core/Makefile @@ -228,6 +228,7 @@ endif TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \ TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \ TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \ + $(PRODUCT_BUILD_PROP_OVERRIDES) \ bash $(BUILDINFO_SH) >> $@ $(hide) $(foreach file,$(system_prop_file), \ if [ -f "$(file)" ]; then \ diff --git a/core/product.mk b/core/product.mk index f0fc9210291..0918357a8e8 100644 --- a/core/product.mk +++ b/core/product.mk @@ -65,6 +65,7 @@ endef # _product_var_list := \ + PRODUCT_BUILD_PROP_OVERRIDES \ PRODUCT_NAME \ PRODUCT_MODEL \ PRODUCT_LOCALES \ diff --git a/core/product_config.mk b/core/product_config.mk index 496399e5bb8..541dfd8408f 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -375,6 +375,9 @@ PRODUCT_PROPERTY_OVERRIDES := \ PRODUCT_DEFAULT_PROPERTY_OVERRIDES := \ $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEFAULT_PROPERTY_OVERRIDES)) +PRODUCT_BUILD_PROP_OVERRIDES := \ + $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_BUILD_PROP_OVERRIDES)) + # Should we use the default resources or add any product specific overlays PRODUCT_PACKAGE_OVERLAYS := \ $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGE_OVERLAYS)) From 9ca9e722240bf19531dde895a9c9c5d2af64a874 Mon Sep 17 00:00:00 2001 From: codeworkx Date: Thu, 17 Nov 2011 17:33:44 +0100 Subject: [PATCH 0644/1096] add support for custom releasetools --- core/Makefile | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/core/Makefile b/core/Makefile index 10823ae9362..ad42b3738a9 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1503,23 +1503,29 @@ INTERNAL_OTA_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip $(INTERNAL_OTA_PACKAGE_TARGET): KEY_CERT_PAIR := $(DEFAULT_KEY_CERT_PAIR) +ifeq ($(TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT),) + OTA_FROM_TARGET_SCRIPT := ./build/tools/releasetools/ota_from_target_files +else + OTA_FROM_TARGET_SCRIPT := $(TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT) +endif + $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) @echo "Package OTA: $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ - ./build/tools/releasetools/ota_from_target_files -v \ + $(OTA_FROM_TARGET_SCRIPT) -v \ --block \ -p $(HOST_OUT) \ -k $(KEY_CERT_PAIR) \ $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(BUILT_TARGET_FILES_PACKAGE) $@ +ifneq ($(TARGET_CUSTOM_RELEASETOOL),) + @echo "Running releasetool" + $(TARGET_CUSTOM_RELEASETOOL) +endif .PHONY: otapackage bacon otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) bacon: otapackage -ifneq ($(TARGET_CUSTOM_RELEASETOOL),) - $(hide) \ - $(TARGET_CUSTOM_RELEASETOOL) -endif endif # recovery_fstab is defined endif # TARGET_NO_KERNEL != true @@ -1537,10 +1543,16 @@ name := $(name)-img-$(FILE_NAME_TAG) INTERNAL_UPDATE_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip +ifeq ($(TARGET_RELEASETOOL_IMG_FROM_TARGET_SCRIPT),) + IMG_FROM_TARGET_SCRIPT := ./build/tools/releasetools/img_from_target_files +else + IMG_FROM_TARGET_SCRIPT := $(TARGET_RELEASETOOL_IMG_FROM_TARGET_SCRIPT) +endif + $(INTERNAL_UPDATE_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) @echo "Package: $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ - ./build/tools/releasetools/img_from_target_files -v \ + $(IMG_FROM_TARGET_SCRIPT) -v \ -p $(HOST_OUT) \ $(BUILT_TARGET_FILES_PACKAGE) $@ From b4afc9dbc0129f2a25c27075dff7286a1a2dd92c Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Fri, 25 Nov 2011 15:30:36 +0000 Subject: [PATCH 0645/1096] build: Preliminary support for CM product builds If building a cm_* product, skip crawling the filesystem for AndroidProduct makefiles (and, of course, parsing their contents) and aim directly for the device/cm/ device configuration Change-Id: I2a5e70dda973a6fcdbba0d5e26b35b99d3f1aea2 Change how we search for CM makefiles. build: Fix fastpath code for CM_BUILD * We need to adjust to the new validations Change-Id: I9066d4f437beb9597027ee6bbb52504b5e7e84c5 build: Fix cm builds the setup variable wasn't exported, and was being missed by part of the scripts --- core/product_config.mk | 17 ++++++++++++++--- envsetup.sh | 8 ++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/core/product_config.mk b/core/product_config.mk index 541dfd8408f..70fcd5e3fbd 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -184,11 +184,16 @@ ifneq ($(strip $(TARGET_BUILD_APPS)),) all_product_configs := $(call get-product-makefiles,\ $(SRC_TARGET_DIR)/product/AndroidProducts.mk) else -# Read in all of the product definitions specified by the AndroidProducts.mk -# files in the tree. -all_product_configs := $(get-all-product-makefiles) + ifneq ($(CM_BUILD),) + all_product_configs := $(shell ls device/*/$(CM_BUILD)/cm.mk) + else + # Read in all of the product definitions specified by the AndroidProducts.mk + # files in the tree. + all_product_configs := $(get-all-product-makefiles) + endif endif +ifeq ($(CM_BUILD),) # Find the product config makefile for the current product. # all_product_configs consists items like: # : @@ -207,12 +212,18 @@ $(foreach f, $(all_product_configs),\ $(eval all_product_makefiles += $(f))\ $(if $(filter $(TARGET_PRODUCT),$(basename $(notdir $(f)))),\ $(eval current_product_makefile += $(f)),))) + _cpm_words := _cpm_word1 := _cpm_word2 := +else + current_product_makefile := $(strip $(all_product_configs)) + all_product_makefiles := $(strip $(all_product_configs)) +endif current_product_makefile := $(strip $(current_product_makefile)) all_product_makefiles := $(strip $(all_product_makefiles)) + ifneq (,$(filter product-graph dump-products, $(MAKECMDGOALS))) # Import all product makefiles. $(call import-products, $(all_product_makefiles)) diff --git a/envsetup.sh b/envsetup.sh index eac432cf0a7..3d01475488a 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -65,6 +65,14 @@ function check_product() echo "Couldn't locate the top of the tree. Try setting TOP." >&2 return fi + + if (echo -n $1 | grep -q -e "^cm_") ; then + CM_BUILD=$(echo -n $1 | sed -e 's/^cm_//g') + else + CM_BUILD= + fi + export CM_BUILD + TARGET_PRODUCT=$1 \ TARGET_BUILD_VARIANT= \ TARGET_BUILD_TYPE= \ From 696da4a9c3995a3d1134ef6eac1a079257605968 Mon Sep 17 00:00:00 2001 From: Chris Soyars Date: Thu, 23 Dec 2010 00:44:33 +0100 Subject: [PATCH 0646/1096] Add otapackage support for backuptool Change-Id: I512554c579d444067cd3ccbb0e6946a5eb6bc964a --- core/Makefile | 7 +++++++ core/config.mk | 1 + tools/releasetools/edify_generator.py | 5 +++++ tools/releasetools/ota_from_target_files | 15 +++++++++++++++ 4 files changed, 28 insertions(+) diff --git a/core/Makefile b/core/Makefile index ad42b3738a9..e1e6cd572ba 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1509,6 +1509,12 @@ else OTA_FROM_TARGET_SCRIPT := $(TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT) endif +ifneq ($(CM_BUILD),) + $(INTERNAL_OTA_PACKAGE_TARGET): backuptool := true +else + $(INTERNAL_OTA_PACKAGE_TARGET): backuptool := false +endif + $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) @echo "Package OTA: $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ @@ -1516,6 +1522,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) --block \ -p $(HOST_OUT) \ -k $(KEY_CERT_PAIR) \ + --backup=$(backuptool) \ $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(BUILT_TARGET_FILES_PACKAGE) $@ ifneq ($(TARGET_CUSTOM_RELEASETOOL),) diff --git a/core/config.mk b/core/config.mk index 141e8f328e3..fed54f314b5 100644 --- a/core/config.mk +++ b/core/config.mk @@ -391,6 +391,7 @@ MKBOOTIMG := $(BOARD_CUSTOM_MKBOOTIMG) endif MKYAFFS2 := $(HOST_OUT_EXECUTABLES)/mkyaffs2image$(HOST_EXECUTABLE_SUFFIX) APICHECK := $(HOST_OUT_EXECUTABLES)/apicheck$(HOST_EXECUTABLE_SUFFIX) +MKIMAGE := $(HOST_OUT_EXECUTABLES)/mkimage$(HOST_EXECUTABLE_SUFFIX) FS_GET_STATS := $(HOST_OUT_EXECUTABLES)/fs_get_stats$(HOST_EXECUTABLE_SUFFIX) MKEXT2IMG := $(HOST_OUT_EXECUTABLES)/genext2fs$(HOST_EXECUTABLE_SUFFIX) MAKE_EXT4FS := $(HOST_OUT_EXECUTABLES)/make_ext4fs$(HOST_EXECUTABLE_SUFFIX) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index e52c2641561..501ba13b8f3 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -130,6 +130,11 @@ def AssertSomeBootloader(self, *bootloaders): ");") self.script.append(self._WordWrap(cmd)) + def RunBackup(self, command): + self.script.append('package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");') + self.script.append('set_perm(0, 0, 0777, "/tmp/backuptool.sh");') + self.script.append(('run_program("/tmp/backuptool.sh", "%s");' % command)) + def ShowProgress(self, frac, dur): """Update the progress bar, advancing it over 'frac' over the next 'dur' seconds. 'dur' may be zero to advance it via SetProgress diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index e570eadd51f..90ff8c32281 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -79,6 +79,10 @@ Usage: ota_from_target_files [flags] input_target_files output_ota_package Specifies the number of worker-threads that will be used when generating patches for incremental updates (defaults to 3). + --backup + Enable or disable the execution of backuptool.sh. + Disabled by default. + """ import sys @@ -125,6 +129,7 @@ OPTIONS.block_based = False OPTIONS.updater_binary = None OPTIONS.oem_source = None OPTIONS.fallback_to_full = True +OPTIONS.backuptool = False def MostPopularKey(d, default): """Given a dict, return the key corresponding to the largest @@ -544,6 +549,9 @@ else if get_stage("%(bcb_dev)s") == "3/3" then device_specific.FullOTA_InstallBegin() + if OPTIONS.backuptool: + script.RunBackup("backup") + system_progress = 0.75 if OPTIONS.wipe_user_data: @@ -614,6 +622,10 @@ else if get_stage("%(bcb_dev)s") == "3/3" then common.CheckSize(boot_img.data, "boot.img", OPTIONS.info_dict) common.ZipWriteStr(output_zip, "boot.img", boot_img.data) + if OPTIONS.backuptool: + script.ShowProgress(0.02, 10) + script.RunBackup("restore") + script.ShowProgress(0.05, 5) script.WriteRawImage("/boot", "boot.img") @@ -1424,6 +1436,8 @@ def main(argv): OPTIONS.updater_binary = a elif o in ("--no_fallback_to_full",): OPTIONS.fallback_to_full = False + elif o in ("--backup"): + OPTIONS.backuptool = bool(a.lower() == 'true') else: return False return True @@ -1445,6 +1459,7 @@ def main(argv): "oem_settings=", "verify", "no_fallback_to_full", + "backup=", ], extra_option_handler=option_handler) From d8308d9e4076d0cef9536ee7bd6b786960287e7a Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sat, 26 Nov 2011 18:51:42 -0800 Subject: [PATCH 0647/1096] roomservice delivers you lunch combos from the CyanogenMod github. fix roomservice formatting support product names with _ in them fix roomservice to handle pagination Change-Id: I4923c2f768094dbad8e06a72d9f27d46414030ab --- envsetup.sh | 9 ++++++++ tools/roomservice.py | 55 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100755 tools/roomservice.py diff --git a/envsetup.sh b/envsetup.sh index 3d01475488a..ddc19a4c9cc 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -531,6 +531,15 @@ function lunch() local product=$(echo -n $selection | sed -e "s/-.*$//") check_product $product if [ $? -ne 0 ] + then + # if we can't find a product, try to grab it off the CM github + T=$(gettop) + pushd $T > /dev/null + build/tools/roomservice.py $product + popd > /dev/null + check_product $product + fi + if [ $? -ne 0 ] then echo echo "** Don't have a product spec for: '$product'" diff --git a/tools/roomservice.py b/tools/roomservice.py new file mode 100755 index 00000000000..61f8555c9dc --- /dev/null +++ b/tools/roomservice.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python +import os +import sys +import urllib2 +import json +from xml.etree import ElementTree + +product = sys.argv[1]; +device = product[product.index("_") + 1:] +print "Device %s not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod)." % device + +repositories = [] + +page = 1 +while True: + result = json.loads(urllib2.urlopen("http://github.com/api/v2/json/repos/show/CyanogenMod?page=%d" % page).read()) + if len(result['repositories']) == 0: + break + repositories = repositories + result['repositories'] + page = page + 1 + +for repository in repositories: + repo_name = repository['name'] + if repo_name.startswith("android_device_") and repo_name.endswith("_" + device): + print "Found repository: %s" % repository['name'] + manufacturer = repo_name.replace("android_device_", "").replace("_" + device, "") + + try: + lm = ElementTree.parse(".repo/local_manifest.xml") + lm = lm.getroot() + except: + lm = ElementTree.Element("manifest") + + for child in lm.getchildren(): + if child.attrib['name'].endswith("_" + device): + print "Duplicate device '%s' found in local_manifest.xml." % child.attrib['name'] + sys.exit() + + repo_path = "device/%s/%s" % (manufacturer, device) + project = ElementTree.Element("project", attrib = { "path": repo_path, "remote": "github", "name": "CyanogenMod/%s" % repository['name'] }) + lm.append(project) + + raw_xml = ElementTree.tostring(lm) + raw_xml = '\n' + raw_xml + + f = open('.repo/local_manifest.xml', 'w') + f.write(raw_xml) + f.close() + + print "Syncing repository to retrieve project." + os.system('repo sync %s' % repo_path) + print "Done!" + sys.exit() + +print "Repository for %s not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml." % device From 105bb226972d24d90a337bacfebf4acc05a9a22a Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Mon, 31 Jan 2011 00:49:49 +0000 Subject: [PATCH 0648/1096] Squashed commit of breakfast/brunch commands Add a CM-specific breakfast menu We usually don't wan't all the devices in the lunch menu, so we can now choose to pick up breakfast or brunch and get a smaller selection of devices (i.e., those we support) Make brunch more nutritious * "breakfast device-name" will set up the environment, just like lunch. * "brunch device-name" will actually do the whole setup and build :) brunch: add a lazier mode Since all of CM's targets have a predictable PRODUCT_NAME and BUILD_VARIANT (i.e., "cyanogen_$(PRODUCT_DEVICE)-eng"), brunch can now be invoked passing just the PRODUCT_DEVICE ("brunch passion" for the N1 setup+build, for example). The "classic" long form of $(PRODUCT_NAME)-$(BUILD_VARIANT) can still be used if desired ("brunch cyanogen_passion-eng" still works). breakfast in bed breakfast in bed (aliased to "bib") is the baconless friend of lazy brunch. You can now use "breakfast passion", or "bib passion", to setup the corresponding CM build without actually building it Fix breakfast for the undecided The menu presentation (i.e., giving no arguments to breakfast or brunch) was broken, so if you didn't know the name of your target you weren't given a list to choose from, just an error. Change-Id: I85b8217daa2d511c16a1e82c700e1b0fadbb36ac CyanogenNom: Now moar helpful! --- envsetup.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index ddc19a4c9cc..7d11a7ef895 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -477,8 +477,15 @@ function print_lunch_menu() local uname=$(uname) echo echo "You're building on" $uname + if [ "$(uname)" = "Darwin" ] ; then + echo " (ohai, koush!)" + fi echo - echo "Lunch menu... pick a combo:" + if [ "z${CM_DEVICES_ONLY}" != "z" ]; then + echo "Breakfast menu... pick a combo:" + else + echo "Lunch menu... pick a combo:" + fi local i=1 local choice @@ -488,9 +495,56 @@ function print_lunch_menu() i=$(($i+1)) done + if [ "z${CM_DEVICES_ONLY}" != "z" ]; then + echo "... and don't forget the bacon!" + fi + echo } +function brunch() +{ + breakfast $* + if [ $? -eq 0 ]; then + mka bacon + else + echo "No such item in brunch menu. Try 'breakfast'" + return 1 + fi + return $? +} + +function breakfast() +{ + target=$1 + CM_DEVICES_ONLY="true" + unset LUNCH_MENU_CHOICES + add_lunch_combo full-eng + for f in `/bin/ls vendor/cm/vendorsetup.sh 2> /dev/null` + do + echo "including $f" + . $f + done + unset f + + if [ $# -eq 0 ]; then + # No arguments, so let's have the full menu + lunch + else + echo "z$target" | grep -q "-" + if [ $? -eq 0 ]; then + # A buildtype was specified, assume a full device name + lunch $target + else + # This is probably just the CM model name + lunch cm_$target-userdebug + fi + fi + return $? +} + +alias bib=breakfast + function lunch() { local answer From 4a6c856db2f3b091fbefc7879fd8c57d37c4841c Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Wed, 21 Apr 2010 11:39:48 -0400 Subject: [PATCH 0649/1096] Allow override of device asserts, including multi-device support. Set in board file with TARGET_OTA_ASSERT_DEVICE. (cherry-picked from commit 0f452f21fc9323b9d1fe746161761cf40aaa5030) Change-Id: I3d06bdc0e3e26bde0c0e646accd050364f9713b9 --- core/Makefile | 6 ++++++ tools/releasetools/edify_generator.py | 10 ++++++---- tools/releasetools/ota_from_target_files | 14 +++++++++++--- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/core/Makefile b/core/Makefile index e1e6cd572ba..a4375efc863 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1515,6 +1515,12 @@ else $(INTERNAL_OTA_PACKAGE_TARGET): backuptool := false endif +ifeq ($(TARGET_OTA_ASSERT_DEVICE),) + $(INTERNAL_OTA_PACKAGE_TARGET): override_device := auto +else + $(INTERNAL_OTA_PACKAGE_TARGET): override_device := $(TARGET_OTA_ASSERT_DEVICE) +endif + $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) @echo "Package OTA: $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index 501ba13b8f3..e79a58cbcaf 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -116,10 +116,12 @@ def AssertOlderBuild(self, timestamp, timestamp_text): def AssertDevice(self, device): """Assert that the device identifier is the given string.""" - cmd = ('getprop("ro.product.device") == "%s" || ' - 'abort("This package is for \\"%s\\" devices; ' - 'this is a \\"" + getprop("ro.product.device") + "\\".");' - ) % (device, device) + cmd = ('assert(' + + ' || \0'.join(['getprop("ro.product.device") == "%s" || getprop("ro.build.product") == "%s"' + % (i, i) for i in device.split(",")]) + + ' || abort("This package is for device: %s; ' + + 'this device is " + getprop("ro.product.device") + ".");' + + ');') % device self.script.append(cmd) def AssertSomeBootloader(self, *bootloaders): diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 90ff8c32281..de2f5898966 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -83,6 +83,9 @@ Usage: ota_from_target_files [flags] input_target_files output_ota_package Enable or disable the execution of backuptool.sh. Disabled by default. + --override_device + Override device-specific asserts. Can be a comma-separated list. + """ import sys @@ -130,6 +133,7 @@ OPTIONS.updater_binary = None OPTIONS.oem_source = None OPTIONS.fallback_to_full = True OPTIONS.backuptool = False +OPTIONS.override_device = 'auto' def MostPopularKey(d, default): """Given a dict, return the key corresponding to the largest @@ -390,7 +394,10 @@ def SignOutput(temp_zip_name, output_zip_name): def AppendAssertions(script, info_dict, oem_dict = None): oem_props = info_dict.get("oem_fingerprint_properties") if oem_props is None or len(oem_props) == 0: - device = GetBuildProp("ro.product.device", info_dict) + if OPTIONS.override_device == "auto": + device = GetBuildProp("ro.product.device", info_dict) + else: + device = OPTIONS.override_device script.AssertDevice(device) else: if oem_dict is None: @@ -420,7 +427,6 @@ def GetOemProperty(name, oem_props, oem_dict, info_dict): return oem_dict[name] return GetBuildProp(name, info_dict) - def CalculateFingerprint(oem_props, oem_dict, info_dict): if oem_props is None: return GetBuildProp("ro.build.fingerprint", info_dict) @@ -1438,6 +1444,8 @@ def main(argv): OPTIONS.fallback_to_full = False elif o in ("--backup"): OPTIONS.backuptool = bool(a.lower() == 'true') + elif o in ("--override_device"): + OPTIONS.override_device = a else: return False return True @@ -1460,7 +1468,7 @@ def main(argv): "verify", "no_fallback_to_full", "backup=", - ], + "override_device="], extra_option_handler=option_handler) if len(args) != 2: From 7edb03aa7fd1fc0fe27a2ac0d290932f7f9e7fac Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Thu, 1 Dec 2011 00:21:02 -0800 Subject: [PATCH 0650/1096] build: Run squisher for the bacon target Change-Id: If33402a5eb1661345c7d37ec1778742096449c70 TARGET_CUSTOM_RELEASETOOL is a squisher replacement Change-Id: I9c7126d6bbe0303c1d35bb54ec2f0c9187b131e0 Fix tabs, sorry bad commit --amend :p Change-Id: Ia981edb520d7b5f91e0717f6b4d8180386c8a20d --- core/Makefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/Makefile b/core/Makefile index a4375efc863..fba2acb3a43 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1529,16 +1529,19 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) -p $(HOST_OUT) \ -k $(KEY_CERT_PAIR) \ --backup=$(backuptool) \ + --override_device=$(override_device) \ $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(BUILT_TARGET_FILES_PACKAGE) $@ -ifneq ($(TARGET_CUSTOM_RELEASETOOL),) - @echo "Running releasetool" - $(TARGET_CUSTOM_RELEASETOOL) -endif .PHONY: otapackage bacon otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) bacon: otapackage +ifneq ($(TARGET_CUSTOM_RELEASETOOL),) + @echo "Running releasetool" + $(hide) $(TARGET_CUSTOM_RELEASETOOL) +else + $(hide) ./vendor/cm/tools/squisher +endif endif # recovery_fstab is defined endif # TARGET_NO_KERNEL != true From 4bcf43f17abe1a5ed2a8b2417b9e41b7ba3ae05b Mon Sep 17 00:00:00 2001 From: Robert Burns Date: Wed, 4 Jan 2012 20:14:36 -0500 Subject: [PATCH 0651/1096] Add ro.cm.device to build.prop As requested by Ricardo Cerqueira: http://r.cyanogenmod.com/#change,11423,patchset=1 Change-Id: If08cc13c0f0e92e0dd262a2f71610070a54aaead --- core/Makefile | 1 + tools/buildinfo.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/core/Makefile b/core/Makefile index fba2acb3a43..fb75acf3d9b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -202,6 +202,7 @@ endif $(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \ TARGET_BUILD_FLAVOR="$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)" \ TARGET_DEVICE="$(TARGET_DEVICE)" \ + CM_DEVICE="$(TARGET_DEVICE)" \ PRODUCT_NAME="$(TARGET_PRODUCT)" \ PRODUCT_BRAND="$(PRODUCT_BRAND)" \ PRODUCT_DEFAULT_LANGUAGE="$(call default-locale-language,$(PRODUCT_LOCALES))" \ diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh index a80b2db47aa..7865e2fa384 100755 --- a/tools/buildinfo.sh +++ b/tools/buildinfo.sh @@ -56,4 +56,6 @@ if [ -n "$BUILD_THUMBPRINT" ] ; then fi echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS" +echo "ro.cm.device=$CM_DEVICE" + echo "# end build properties" From 7bee259d28c5d717bba346bb413966b7c923935f Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Mon, 9 Jan 2012 15:42:26 +0100 Subject: [PATCH 0652/1096] build in colors: Install outputs in blue/yellow [basic ics version] "target prefix:" in yellow "Install: file" in cyan should be in a single command line else there are sync problems in multithread (-j X) These colors can be tuned in core/Makefile if you use a white terminal. can be disabled with "export BUILD_WITH_COLORS=0" Only the most important output is colored to reduce ics merge problems Change-Id: I0e585079fde6900799ef209367a523d94a51cda5 Colors: add more colors to final build steps also fix releasetool echo and visible recovery echos Change-Id: Icf5d88468572f935610c544bf1d5d356ec9870d3 build in colors: host C/C++ Change-Id: Ic415cab53a2efa104c9d4b31ddbe8c8eb74e493d --- core/Makefile | 31 +++++++++++++++++++++++-------- core/base_rules.mk | 4 ++-- core/definitions.mk | 18 +++++++++--------- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/core/Makefile b/core/Makefile index fb75acf3d9b..39cc0440b74 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1,5 +1,16 @@ # Put some miscellaneous rules here +# Build system colors +# +# PFX: Prefix "target C++:" in yellow +# INS: Module "Install:" output color (cyan for ics) + +ifneq ($(BUILD_WITH_COLORS),0) + CL_PFX="\033[33m" + CL_INS="\033[36m" + CL_RST="\033[0m" +endif + # HACK: clear LOCAL_PATH from including last build target before calling # intermedites-dir-for LOCAL_PATH := $(BUILD_SYSTEM) @@ -509,6 +520,7 @@ endif $(INSTALLED_BOOTIMAGE_TARGET): $(MKEXT2IMG) $(INTERNAL_BOOTIMAGE_FILES) $(call pretty,"Target boot image: $@") $(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $@ + @echo -e ${CL_INS}"Made boot image: $@"${CL_RST} .PHONY: bootimage-nodeps bootimage-nodeps: $(MKEXT2IMG) @@ -536,12 +548,14 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOTIM $(call pretty,"Target boot image: $@") $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE)) + @echo -e ${CL_INS}"Made boot image: $@"${CL_RST} .PHONY: bootimage-nodeps bootimage-nodeps: $(MKBOOTIMG) @echo "make $@: ignoring dependencies" $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) + @echo -e ${CL_INS}"Made boot image: $@"${CL_RST} endif # TARGET_BOOTIMAGE_USE_EXT2 @@ -885,7 +899,7 @@ ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) $(BOOT_SIGNER) /recovery $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).pk8 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).x509.pem $@ endif $(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE)) - @echo ----- Made recovery image: $@ -------- + @echo -e ${CL_INS}"Made recovery image: $@"${CL_RST} $(RECOVERY_RESOURCE_ZIP): $(INSTALLED_RECOVERYIMAGE_TARGET) $(hide) mkdir -p $(dir $@) @@ -1008,7 +1022,7 @@ endif $(INSTALLED_SYSTEMIMAGE): $(BUILT_SYSTEMIMAGE) $(RECOVERY_FROM_BOOT_PATCH) | $(ACP) - @echo "Install system fs image: $@" + @echo -e ${CL_INS}"Install system fs image: $@"${CL_RST} $(copy-file-to-target) $(hide) $(call assert-max-image-size,$@ $(RECOVERY_FROM_BOOT_PATCH),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE)) @@ -1349,7 +1363,7 @@ $(BUILT_TARGET_FILES_PACKAGE): \ $(APKCERTS_FILE) \ $(HOST_OUT_EXECUTABLES)/fs_config \ | $(ACP) - @echo "Package target files: $@" + @echo -e ${CL_PFX}"Package target files:"${CL_RST}" $@" $(hide) rm -rf $@ $(zip_root) $(hide) mkdir -p $(dir $@) $(zip_root) @# Components of the recovery image @@ -1523,7 +1537,7 @@ else endif $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) - @echo "Package OTA: $@" + @echo -e ${CL_PFX}"Package OTA:"${CL_RST}" $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ $(OTA_FROM_TARGET_SCRIPT) -v \ --block \ @@ -1538,9 +1552,10 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) bacon: otapackage ifneq ($(TARGET_CUSTOM_RELEASETOOL),) - @echo "Running releasetool" + @echo "Running custom releasetool..." $(hide) $(TARGET_CUSTOM_RELEASETOOL) else + @echo "Running releasetool..." $(hide) ./vendor/cm/tools/squisher endif @@ -1567,7 +1582,7 @@ else endif $(INTERNAL_UPDATE_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) - @echo "Package: $@" + @echo -e ${CL_PFX}"Package:"${CL_RST}" $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ $(IMG_FROM_TARGET_SCRIPT) -v \ -p $(HOST_OUT) \ @@ -1609,7 +1624,7 @@ name := $(name)-apps-$(FILE_NAME_TAG) APPS_ZIP := $(PRODUCT_OUT)/$(name).zip $(APPS_ZIP): $(INSTALLED_SYSTEMIMAGE) - @echo "Package apps: $@" + @echo -e ${CL_PFX}"Package apps:"${CL_RST}" $@" $(hide) rm -rf $@ $(hide) mkdir -p $(dir $@) $(hide) zip -qj $@ $(TARGET_OUT_APPS)/*/*.apk $(TARGET_OUT_APPS_PRIVILEGED)/*/*.apk @@ -1671,7 +1686,7 @@ name := $(TARGET_PRODUCT)-emulator-$(FILE_NAME_TAG) INTERNAL_EMULATOR_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip $(INTERNAL_EMULATOR_PACKAGE_TARGET): $(INTERNAL_EMULATOR_PACKAGE_FILES) - @echo "Package: $@" + @echo -e ${CL_PFX}"Package:"${CL_RST}" $@" $(hide) zip -qj $@ $(INTERNAL_EMULATOR_PACKAGE_FILES) endif diff --git a/core/base_rules.mk b/core/base_rules.mk index 8c25897e56d..706c6c1b7fe 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -547,12 +547,12 @@ ifndef LOCAL_UNINSTALLABLE_MODULE $(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := $(LOCAL_POST_INSTALL_CMD) ifneq ($(LOCAL_ACP_UNAVAILABLE),true) $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) | $(ACP) - @echo "Install: $@" + @echo -e ${CL_INS}"Install: $@"${CL_RST} $(copy-file-to-new-target) $(PRIVATE_POST_INSTALL_CMD) else $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) - @echo "Install: $@" + @echo -e ${CL_INS}"Install: $@"${CL_RST} $(copy-file-to-target-with-cp) endif diff --git a/core/definitions.mk b/core/definitions.mk index 89661067e61..0ec1414ac20 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -971,7 +971,7 @@ endef define transform-cpp-to-o @mkdir -p $(dir $@) -@echo "target $(PRIVATE_ARM_MODE) C++: $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_PFX}"target $(PRIVATE_ARM_MODE) C++:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(hide) $(PRIVATE_CXX) \ $(addprefix -I , $(PRIVATE_C_INCLUDES)) \ $(shell cat $(PRIVATE_IMPORT_INCLUDES)) \ @@ -1020,12 +1020,12 @@ $(hide) $(PRIVATE_CC) \ endef define transform-c-to-o-no-deps -@echo "target $(PRIVATE_ARM_MODE) C: $(PRIVATE_MODULE) <= $<" +@echo ${CL_PFX}"target $(PRIVATE_ARM_MODE) C:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-c-or-s-to-o-no-deps, $(PRIVATE_CFLAGS) $(PRIVATE_CONLYFLAGS) $(PRIVATE_DEBUG_CFLAGS)) endef define transform-s-to-o-no-deps -@echo "target asm: $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_PFX}"target asm:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-c-or-s-to-o-no-deps, $(PRIVATE_ASFLAGS)) endef @@ -1056,7 +1056,7 @@ endef ########################################################### define transform-m-to-o-no-deps -@echo "target ObjC: $(PRIVATE_MODULE) <= $<" +@echo ${CL_PFX}"target ObjC:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-c-or-s-to-o-no-deps, $(PRIVATE_CFLAGS) $(PRIVATE_DEBUG_CFLAGS)) endef @@ -1071,7 +1071,7 @@ endef define transform-host-cpp-to-o @mkdir -p $(dir $@) -@echo "host C++: $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_PFX}"host C++:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(hide) $(PRIVATE_CXX) \ $(addprefix -I , $(PRIVATE_C_INCLUDES)) \ $(shell cat $(PRIVATE_IMPORT_INCLUDES)) \ @@ -1117,7 +1117,7 @@ $(hide) $(PRIVATE_CC) \ endef define transform-host-c-to-o-no-deps -@echo "host C: $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_PFX}"host C:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-host-c-or-s-to-o-no-deps, $(PRIVATE_CFLAGS) $(PRIVATE_CONLYFLAGS) $(PRIVATE_DEBUG_CFLAGS)) endef @@ -1615,7 +1615,7 @@ $(if $(PRIVATE_JAR_MANIFEST), \ endef define transform-java-to-classes.jar -@echo "target Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" +@echo -e ${CL_PFX}"target Java:"${CL_RST}" $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" $(call compile-java,$(TARGET_JAVAC),$(PRIVATE_BOOTCLASSPATH)) endef @@ -1676,7 +1676,7 @@ $(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp $(PRIVATE_CLASS_INTERMEDI endef define transform-java-to-classes.jar -@echo "target Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" +@echo -e ${CL_PFX}"target Java:"${CL_RST}" $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" $(call compile-java,$(TARGET_JAVAC),$(PRIVATE_BOOTCLASSPATH)) endef endif # ENABLE_INCREMENTALJAVAC @@ -1988,7 +1988,7 @@ endef ########################################################### define transform-generated-source -@echo "target Generated: $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_PFX}"target Generated:"${CL_RST}" $(PRIVATE_MODULE) <= $<" @mkdir -p $(dir $@) $(hide) $(PRIVATE_CUSTOM_TOOL) endef From 225f8f1a06b0a2839428f2ddd5be7eb8a0649bb0 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sat, 13 Oct 2012 13:05:29 +0530 Subject: [PATCH 0653/1096] build-with-colors: moar colors - rename CL_PFX and CL_INS to better match the colors they show. - add more colors. Output of: - most host stuff is yellow - most target stuff is green - installing/copying files is cyan - import/export includes and notice files is cyan - bootimage/recoveryimage is cyan - and some more colors in many places ;) Change-Id: I5532afa4ba608e0a7c408516dc9f912f9ca389f7 --- core/Makefile | 43 +++++++++++---------- core/base_rules.mk | 6 +-- core/binary.mk | 4 +- core/cleanbuild.mk | 4 +- core/definitions.mk | 64 +++++++++++++++---------------- core/distdir.mk | 2 +- core/droiddoc.mk | 6 +-- core/dynamic_binary.mk | 8 ++-- core/host_java_library.mk | 3 +- core/java.mk | 12 +++--- core/java_library.mk | 6 +-- core/main.mk | 6 +-- core/notice_files.mk | 2 +- core/pdk_config.mk | 2 +- core/raw_executable.mk | 2 +- core/static_java_library.mk | 2 +- core/tasks/apicheck.mk | 4 +- core/tasks/collect_gpl_sources.mk | 2 +- core/tasks/product-graph.mk | 2 +- core/tasks/sdk-addon.mk | 2 +- tools/apicheck/Android.mk | 2 +- 21 files changed, 92 insertions(+), 92 deletions(-) diff --git a/core/Makefile b/core/Makefile index 39cc0440b74..9e04bff3480 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1,13 +1,14 @@ # Put some miscellaneous rules here # Build system colors -# -# PFX: Prefix "target C++:" in yellow -# INS: Module "Install:" output color (cyan for ics) ifneq ($(BUILD_WITH_COLORS),0) - CL_PFX="\033[33m" - CL_INS="\033[36m" + CL_RED="\033[31m" + CL_GRN="\033[32m" + CL_YLW="\033[33m" + CL_BLU="\033[34m" + CL_MAG="\033[35m" + CL_CYN="\033[36m" CL_RST="\033[0m" endif @@ -520,7 +521,7 @@ endif $(INSTALLED_BOOTIMAGE_TARGET): $(MKEXT2IMG) $(INTERNAL_BOOTIMAGE_FILES) $(call pretty,"Target boot image: $@") $(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $@ - @echo -e ${CL_INS}"Made boot image: $@"${CL_RST} + @echo -e ${CL_CYN}"Made boot image: $@"${CL_RST} .PHONY: bootimage-nodeps bootimage-nodeps: $(MKEXT2IMG) @@ -548,7 +549,7 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOTIM $(call pretty,"Target boot image: $@") $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE)) - @echo -e ${CL_INS}"Made boot image: $@"${CL_RST} + @echo -e ${CL_CYN}"Made boot image: $@"${CL_RST} .PHONY: bootimage-nodeps bootimage-nodeps: $(MKBOOTIMG) @@ -661,7 +662,7 @@ endif # TARGET_BUILD_APPS $(kernel_notice_file): \ prebuilts/qemu-kernel/arm/LINUX_KERNEL_COPYING \ | $(ACP) - @echo Copying: $@ + @echo -e ${CL_CYN}"Copying:"${CL_RST}" $@" $(hide) mkdir -p $(dir $@) $(hide) $(ACP) $< $@ @@ -869,13 +870,13 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) $(RECOVE $(recovery_build_prop) $(recovery_resource_deps) \ $(recovery_fstab) \ $(RECOVERY_INSTALL_OTA_KEYS) - @echo ----- Making recovery image ------ + @echo -e ${CL_CYN}"----- Making recovery image ------"${CL_RST} $(hide) rm -rf $(TARGET_RECOVERY_OUT) $(hide) mkdir -p $(TARGET_RECOVERY_OUT) $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/etc $(TARGET_RECOVERY_ROOT_OUT)/tmp - @echo Copying baseline ramdisk... + @echo -e ${CL_CYN}"Copying baseline ramdisk..."${CL_RST} $(hide) cp -R $(TARGET_ROOT_OUT) $(TARGET_RECOVERY_OUT) - @echo Modifying ramdisk contents... + @echo -e ${CL_CYN}"Modifying ramdisk contents..."${CL_RST} $(hide) rm -f $(TARGET_RECOVERY_ROOT_OUT)/init*.rc $(hide) cp -f $(recovery_initrc) $(TARGET_RECOVERY_ROOT_OUT)/ $(hide) rm -f $(TARGET_RECOVERY_ROOT_OUT)/sepolicy @@ -899,7 +900,7 @@ ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) $(BOOT_SIGNER) /recovery $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).pk8 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).x509.pem $@ endif $(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE)) - @echo -e ${CL_INS}"Made recovery image: $@"${CL_RST} + @echo -e ${CL_CYN}"Made recovery image: $@"${CL_RST} $(RECOVERY_RESOURCE_ZIP): $(INSTALLED_RECOVERYIMAGE_TARGET) $(hide) mkdir -p $(dir $@) @@ -1015,14 +1016,14 @@ $(RECOVERY_FROM_BOOT_PATCH): $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(HOST_OUT_EXECUTABLES)/imgdiff \ $(HOST_OUT_EXECUTABLES)/bsdiff - @echo "Construct recovery from boot" + @echo -e ${CL_CYN}"Construct recovery from boot"${CL_RST} mkdir -p $(dir $@) PATH=$(HOST_OUT_EXECUTABLES):$$PATH $(HOST_OUT_EXECUTABLES)/imgdiff $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_RECOVERYIMAGE_TARGET) $@ endif $(INSTALLED_SYSTEMIMAGE): $(BUILT_SYSTEMIMAGE) $(RECOVERY_FROM_BOOT_PATCH) | $(ACP) - @echo -e ${CL_INS}"Install system fs image: $@"${CL_RST} + @echo -e ${CL_CYN}"Install system fs image: $@"${CL_RST} $(copy-file-to-target) $(hide) $(call assert-max-image-size,$@ $(RECOVERY_FROM_BOOT_PATCH),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE)) @@ -1363,7 +1364,7 @@ $(BUILT_TARGET_FILES_PACKAGE): \ $(APKCERTS_FILE) \ $(HOST_OUT_EXECUTABLES)/fs_config \ | $(ACP) - @echo -e ${CL_PFX}"Package target files:"${CL_RST}" $@" + @echo -e ${CL_YLW}"Package target files:"${CL_RST}" $@" $(hide) rm -rf $@ $(zip_root) $(hide) mkdir -p $(dir $@) $(zip_root) @# Components of the recovery image @@ -1537,7 +1538,7 @@ else endif $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) - @echo -e ${CL_PFX}"Package OTA:"${CL_RST}" $@" + @echo -e ${CL_YLW}"Package OTA:"${CL_RST}" $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ $(OTA_FROM_TARGET_SCRIPT) -v \ --block \ @@ -1552,10 +1553,10 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) bacon: otapackage ifneq ($(TARGET_CUSTOM_RELEASETOOL),) - @echo "Running custom releasetool..." + @echo -e ${CL_YLW}"Running custom releasetool..."${CL_RST} $(hide) $(TARGET_CUSTOM_RELEASETOOL) else - @echo "Running releasetool..." + @echo -e ${CL_YLW}"Running releasetool..."${CL_RST} $(hide) ./vendor/cm/tools/squisher endif @@ -1582,7 +1583,7 @@ else endif $(INTERNAL_UPDATE_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) - @echo -e ${CL_PFX}"Package:"${CL_RST}" $@" + @echo -e ${CL_YLW}"Package:"${CL_RST}" $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ $(IMG_FROM_TARGET_SCRIPT) -v \ -p $(HOST_OUT) \ @@ -1624,7 +1625,7 @@ name := $(name)-apps-$(FILE_NAME_TAG) APPS_ZIP := $(PRODUCT_OUT)/$(name).zip $(APPS_ZIP): $(INSTALLED_SYSTEMIMAGE) - @echo -e ${CL_PFX}"Package apps:"${CL_RST}" $@" + @echo -e ${CL_YLW}"Package apps:"${CL_RST}" $@" $(hide) rm -rf $@ $(hide) mkdir -p $(dir $@) $(hide) zip -qj $@ $(TARGET_OUT_APPS)/*/*.apk $(TARGET_OUT_APPS_PRIVILEGED)/*/*.apk @@ -1686,7 +1687,7 @@ name := $(TARGET_PRODUCT)-emulator-$(FILE_NAME_TAG) INTERNAL_EMULATOR_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip $(INTERNAL_EMULATOR_PACKAGE_TARGET): $(INTERNAL_EMULATOR_PACKAGE_FILES) - @echo -e ${CL_PFX}"Package:"${CL_RST}" $@" + @echo -e ${CL_YLW}"Package:"${CL_RST}" $@" $(hide) zip -qj $@ $(INTERNAL_EMULATOR_PACKAGE_FILES) endif diff --git a/core/base_rules.mk b/core/base_rules.mk index 706c6c1b7fe..0deb7814354 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -485,7 +485,7 @@ $(cleantarget) : PRIVATE_CLEAN_FILES := \ $(LOCAL_INSTALLED_MODULE) \ $(intermediates) $(cleantarget):: - @echo "Clean: $(PRIVATE_MODULE)" + @echo -e ${CL_GRN}"Clean:"${CL_RST}" $(PRIVATE_MODULE)" $(hide) rm -rf $(PRIVATE_CLEAN_FILES) ########################################################### @@ -547,12 +547,12 @@ ifndef LOCAL_UNINSTALLABLE_MODULE $(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := $(LOCAL_POST_INSTALL_CMD) ifneq ($(LOCAL_ACP_UNAVAILABLE),true) $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) | $(ACP) - @echo -e ${CL_INS}"Install: $@"${CL_RST} + @echo -e ${CL_CYN}"Install: $@"${CL_RST} $(copy-file-to-new-target) $(PRIVATE_POST_INSTALL_CMD) else $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) - @echo -e ${CL_INS}"Install: $@"${CL_RST} + @echo -e ${CL_CYN}"Install: $@"${CL_RST} $(copy-file-to-target-with-cp) endif diff --git a/core/binary.mk b/core/binary.mk index 9eb67fe7310..170e20c5e63 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -786,7 +786,7 @@ import_includes_deps := $(strip \ $(foreach l, $(my_static_libraries) $(my_whole_static_libraries), \ $(call intermediates-dir-for,STATIC_LIBRARIES,$(l),$(LOCAL_IS_HOST_MODULE),,$(LOCAL_2ND_ARCH_VAR_PREFIX))/export_includes)) $(import_includes) : $(import_includes_deps) - @echo Import includes file: $@ + @echo -e ${CL_CYN}Import includes file:${CL_RST} $@ $(hide) mkdir -p $(dir $@) && rm -f $@ ifdef import_includes_deps $(hide) for f in $^; do \ @@ -986,7 +986,7 @@ export_includes := $(intermediates)/export_includes $(export_includes): PRIVATE_EXPORT_C_INCLUDE_DIRS := $(LOCAL_EXPORT_C_INCLUDE_DIRS) # Make sure .pb.h are already generated before any dependent source files get compiled. $(export_includes) : $(LOCAL_MODULE_MAKEFILE) $(proto_generated_headers) - @echo Export includes file: $< -- $@ + @echo -e ${CL_CYN}Export includes file:${CL_RST} $< -- $@ $(hide) mkdir -p $(dir $@) && rm -f $@ ifdef LOCAL_EXPORT_C_INCLUDE_DIRS $(hide) for d in $(PRIVATE_EXPORT_C_INCLUDE_DIRS); do \ diff --git a/core/cleanbuild.mk b/core/cleanbuild.mk index cf980d8e024..8a1cf5b7aad 100644 --- a/core/cleanbuild.mk +++ b/core/cleanbuild.mk @@ -232,13 +232,13 @@ endif dataclean: FILES := $(dataclean_files) dataclean: $(hide) rm -rf $(FILES) - @echo "Deleted emulator userdata images." + @echo -e ${CL_GRN}"Deleted emulator userdata images."${CL_RST} .PHONY: installclean installclean: FILES := $(installclean_files) installclean: dataclean $(hide) rm -rf $(FILES) - @echo "Deleted images and staging directories." + @echo -e ${CL_GRN}"Deleted images and staging directories."${CL_RST} ifeq "$(force_installclean)" "true" $(info *** Forcing "make installclean"...) diff --git a/core/definitions.mk b/core/definitions.mk index 0ec1414ac20..90bea179653 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -971,7 +971,7 @@ endef define transform-cpp-to-o @mkdir -p $(dir $@) -@echo -e ${CL_PFX}"target $(PRIVATE_ARM_MODE) C++:"${CL_RST}" $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_GRN}"target $(PRIVATE_ARM_MODE) C++:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(hide) $(PRIVATE_CXX) \ $(addprefix -I , $(PRIVATE_C_INCLUDES)) \ $(shell cat $(PRIVATE_IMPORT_INCLUDES)) \ @@ -1020,12 +1020,12 @@ $(hide) $(PRIVATE_CC) \ endef define transform-c-to-o-no-deps -@echo ${CL_PFX}"target $(PRIVATE_ARM_MODE) C:"${CL_RST}" $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_GRN}"target $(PRIVATE_ARM_MODE) C:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-c-or-s-to-o-no-deps, $(PRIVATE_CFLAGS) $(PRIVATE_CONLYFLAGS) $(PRIVATE_DEBUG_CFLAGS)) endef define transform-s-to-o-no-deps -@echo -e ${CL_PFX}"target asm:"${CL_RST}" $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_GRN}"target asm:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-c-or-s-to-o-no-deps, $(PRIVATE_ASFLAGS)) endef @@ -1056,7 +1056,7 @@ endef ########################################################### define transform-m-to-o-no-deps -@echo ${CL_PFX}"target ObjC:"${CL_RST}" $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_GRN}"target ObjC:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-c-or-s-to-o-no-deps, $(PRIVATE_CFLAGS) $(PRIVATE_DEBUG_CFLAGS)) endef @@ -1071,7 +1071,7 @@ endef define transform-host-cpp-to-o @mkdir -p $(dir $@) -@echo -e ${CL_PFX}"host C++:"${CL_RST}" $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_YLW}"host C++:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(hide) $(PRIVATE_CXX) \ $(addprefix -I , $(PRIVATE_C_INCLUDES)) \ $(shell cat $(PRIVATE_IMPORT_INCLUDES)) \ @@ -1117,12 +1117,12 @@ $(hide) $(PRIVATE_CC) \ endef define transform-host-c-to-o-no-deps -@echo -e ${CL_PFX}"host C:"${CL_RST}" $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_YLW}"host C:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-host-c-or-s-to-o-no-deps, $(PRIVATE_CFLAGS) $(PRIVATE_CONLYFLAGS) $(PRIVATE_DEBUG_CFLAGS)) endef define transform-host-s-to-o-no-deps -@echo "host asm: $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_YLW}"host asm:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-host-c-or-s-to-o-no-deps, $(PRIVATE_ASFLAGS)) endef @@ -1141,7 +1141,7 @@ endef ########################################################### define transform-host-m-to-o-no-deps -@echo "host ObjC: $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_YLW}"host ObjC:"${CL_RST}" $(PRIVATE_MODULE) <= $<" $(call transform-host-c-or-s-to-o-no-deps, $(PRIVATE_CFLAGS) $(PRIVATE_DEBUG_CFLAGS)) endef @@ -1176,7 +1176,7 @@ endef # $(1): the full path of the source static library. define _extract-and-include-single-target-whole-static-lib -@echo "preparing StaticLib: $(PRIVATE_MODULE) [including $(1)]" +@echo -e ${CL_YLW}"preparing StaticLib:"${CL_RST}" $(PRIVATE_MODULE) [including $(1)]" $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ rm -rf $$ldir; \ mkdir -p $$ldir; \ @@ -1201,7 +1201,7 @@ define transform-o-to-static-lib @mkdir -p $(dir $@) @rm -f $@ $(extract-and-include-target-whole-static-libs) -@echo "target StaticLib: $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_GRN}"target StaticLib:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(call split-long-arguments,$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \ $(PRIVATE_ARFLAGS) $@,$(filter %.o, $^)) @@ -1213,7 +1213,7 @@ endef # $(1): the full path of the source static library. define _extract-and-include-single-host-whole-static-lib -@echo "preparing StaticLib: $(PRIVATE_MODULE) [including $(1)]" +@echo -e ${CL_YLW}"preparing StaticLib:"${CL_RST}" $(PRIVATE_MODULE) [including $(1)]" $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ rm -rf $$ldir; \ mkdir -p $$ldir; \ @@ -1238,7 +1238,7 @@ define transform-host-o-to-static-lib @mkdir -p $(dir $@) @rm -f $@ $(extract-and-include-host-whole-static-libs) -@echo "host StaticLib: $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_YLW}"host StaticLib:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(call split-long-arguments,$($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_GLOBAL_ARFLAGS) \ $(PRIVATE_ARFLAGS) $@,$(filter %.o, $^)) @@ -1277,13 +1277,13 @@ endif define transform-host-o-to-shared-lib @mkdir -p $(dir $@) -@echo "host SharedLib: $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_YLW}"host SharedLib:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(transform-host-o-to-shared-lib-inner) endef define transform-host-o-to-package @mkdir -p $(dir $@) -@echo "host Package: $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_YLW}"host Package:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(transform-host-o-to-shared-lib-inner) endef @@ -1327,7 +1327,7 @@ endif define transform-o-to-shared-lib @mkdir -p $(dir $@) -@echo "target SharedLib: $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_GRN}"target SharedLib:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $($(PRIVATE_2ND_ARCH_VAR_PREFIX)transform-o-to-shared-lib-inner) endef @@ -1343,13 +1343,13 @@ endif define transform-to-stripped @mkdir -p $(dir $@) -@echo "target Strip: $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_GRN}"target Strip:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(hide) $(PRIVATE_STRIP) --strip-all $< -o $@ $(TARGET_STRIP_EXTRA) endef define transform-to-stripped-keep-symbols @mkdir -p $(dir $@) -@echo "target Strip (keep symbols): $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_GRN}"target Strip (keep symbols):"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(hide) $(PRIVATE_OBJCOPY) \ `$(PRIVATE_READELF) -S $< | awk '/.debug_/ {print "-R " $$2}' | xargs` \ $(TARGET_STRIP_KEEP_SYMBOLS_EXTRA) $< $@ @@ -1383,7 +1383,7 @@ endif define transform-o-to-executable @mkdir -p $(dir $@) -@echo "target Executable: $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_GRN}"target Executable:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $($(PRIVATE_2ND_ARCH_VAR_PREFIX)transform-o-to-executable-inner) endef @@ -1402,7 +1402,7 @@ endif define transform-o-to-static-executable @mkdir -p $(dir $@) -@echo "target StaticExecutable: $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_GRN}"target StaticExecutable:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $($(PRIVATE_2ND_ARCH_VAR_PREFIX)transform-o-to-static-executable-inner) endef @@ -1446,7 +1446,7 @@ endif define transform-host-o-to-executable @mkdir -p $(dir $@) -@echo "host Executable: $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_YLW}"host Executable:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(transform-host-o-to-executable-inner) endef @@ -1615,7 +1615,7 @@ $(if $(PRIVATE_JAR_MANIFEST), \ endef define transform-java-to-classes.jar -@echo -e ${CL_PFX}"target Java:"${CL_RST}" $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" +@echo -e ${CL_GRN}"target Java:"${CL_RST}" $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" $(call compile-java,$(TARGET_JAVAC),$(PRIVATE_BOOTCLASSPATH)) endef @@ -1635,7 +1635,7 @@ $(hide) if [ -e $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp ] ; then \ fi $(hide) tr ' ' '\n' < $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list \ | sort -u > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq -@echo "(Incremental) build source files:" +@echo -e ${CL_YLW}"(Incremental) build source files:"${CL_RST}"" @cat $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq $(hide) if [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq ] ; then \ $(1) -encoding UTF-8 \ @@ -1676,7 +1676,7 @@ $(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp $(PRIVATE_CLASS_INTERMEDI endef define transform-java-to-classes.jar -@echo -e ${CL_PFX}"target Java:"${CL_RST}" $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" +@echo -e ${CL_GRN}"target Java:"${CL_RST}" $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" $(call compile-java,$(TARGET_JAVAC),$(PRIVATE_BOOTCLASSPATH)) endef endif # ENABLE_INCREMENTALJAVAC @@ -1691,7 +1691,7 @@ endef # only core.jar and framework.jar need a heap this big. # Avoid the memory arguments on Windows, dx fails to load for some reason with them. define transform-classes.jar-to-dex -@echo "target Dex: $(PRIVATE_MODULE)" +@echo -e ${CL_GRN}"target Dex:"${CL_RST}" $(PRIVATE_MODULE)" @mkdir -p $(dir $@) $(hide) rm -f $(dir $@)classes*.dex $(hide) $(DX) \ @@ -1829,7 +1829,7 @@ endef # Note: we intentionally don't clean PRIVATE_CLASS_INTERMEDIATES_DIR # in transform-java-to-classes for the sake of vm-tests. define transform-host-java-to-package -@echo "host Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" +@echo -e ${CL_YLW}"host Java:"${CL_RST}" $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" $(call compile-java,$(HOST_JAVAC),$(PRIVATE_BOOTCLASSPATH)) $(if $(PRIVATE_EXTRA_JAR_ARGS), $(call add-java-resources-to-package)) endef @@ -1843,7 +1843,7 @@ endef # $(2): destination header define copy-one-header $(2): $(1) - @echo "Header: $$@" + @echo -e ${CL_YLW}"Header:"${CL_RST}" $$@" $$(copy-file-to-new-target-with-cp) endef @@ -1852,7 +1852,7 @@ endef # $(2): destination file define copy-one-file $(2): $(1) | $(ACP) - @echo "Copy: $$@" + @echo -e ${CL_YLW}"Copy:"${CL_RST}" $$@" $$(copy-file-to-target) endef @@ -1873,7 +1873,7 @@ endef # $(2): destination file, must end with .xml. define copy-xml-file-checked $(2): $(1) | $(ACP) - @echo "Copy xml: $$@" + @echo -e ${CL_YLW}"Copy xml:"${CL_RST}" $$@" $(hide) xmllint $$< >/dev/null # Don't print the xml file to stdout. $$(copy-file-to-target) endef @@ -1931,19 +1931,19 @@ endef # Copy a prebuilt file to a target location. define transform-prebuilt-to-target -@echo "$(if $(PRIVATE_IS_HOST_MODULE),host,target) Prebuilt: $(PRIVATE_MODULE) ($@)" +@echo -e "$(if $(PRIVATE_IS_HOST_MODULE),host,target) "${CL_CYN}"Prebuilt:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) endef # Copy a prebuilt file to a target location, using zipalign on it. define transform-prebuilt-to-target-with-zipalign -@echo "$(if $(PRIVATE_IS_HOST_MODULE),host,target) Prebuilt APK: $(PRIVATE_MODULE) ($@)" +@echo "$(if $(PRIVATE_IS_HOST_MODULE),host,target) "${CL_CYN}"Prebuilt APK:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target-with-zipalign) endef # Copy a prebuilt file to a target location, stripping "# comment" comments. define transform-prebuilt-to-target-strip-comments -@echo "$(if $(PRIVATE_IS_HOST_MODULE),host,target) Prebuilt: $(PRIVATE_MODULE) ($@)" +@echo "$(if $(PRIVATE_IS_HOST_MODULE),host,target) "${CL_CYN}"Prebuilt:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target-strip-comments) endef @@ -1988,7 +1988,7 @@ endef ########################################################### define transform-generated-source -@echo -e ${CL_PFX}"target Generated:"${CL_RST}" $(PRIVATE_MODULE) <= $<" +@echo -e ${CL_GRN}"target Generated:"${CL_RST}" $(PRIVATE_MODULE) <= $<" @mkdir -p $(dir $@) $(hide) $(PRIVATE_CUSTOM_TOOL) endef diff --git a/core/distdir.mk b/core/distdir.mk index 51ec46efeff..829951e8d79 100644 --- a/core/distdir.mk +++ b/core/distdir.mk @@ -37,7 +37,7 @@ ifdef dist_goal define copy-one-dist-file $(3): $(2) $(2): $(1) - @echo "Dist: $$@" + @echo -e ${CL_YLW}"Dist:"${CL_RST}" $$@" $$(copy-file-to-new-target-with-cp) endef diff --git a/core/droiddoc.mk b/core/droiddoc.mk index d3e61d57c5b..2f95eb2c0bb 100644 --- a/core/droiddoc.mk +++ b/core/droiddoc.mk @@ -155,7 +155,7 @@ endif $(full_target): PRIVATE_LOCAL_PATH := $(LOCAL_PATH) $(full_target): $(full_src_files) $(droiddoc_templates) $(droiddoc) $(html_dir_files) $(full_java_lib_deps) $(LOCAL_ADDITIONAL_DEPENDENCIES) - @echo Docs droiddoc: $(PRIVATE_OUT_DIR) + @echo -e ${CL_YLW}"Docs droiddoc:"${CL_RST}" $(PRIVATE_OUT_DIR)" $(hide) mkdir -p $(dir $@) $(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \ $(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR)) @@ -190,7 +190,7 @@ else ## ## $(full_target): $(full_src_files) $(full_java_lib_deps) - @echo Docs javadoc: $(PRIVATE_OUT_DIR) + @echo -e ${CL_YLW}"Docs javadoc:"${CL_RST}" $(PRIVATE_OUT_DIR)" @mkdir -p $(dir $@) $(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \ $(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR)) @@ -230,7 +230,7 @@ ifeq ($(strip $(LOCAL_UNINSTALLABLE_MODULE)),) out_zip := $(OUT_DOCS)/$(LOCAL_MODULE)-docs.zip $(out_zip): PRIVATE_DOCS_DIR := $(out_dir) $(out_zip): $(full_target) - @echo Package docs: $@ + @echo -e ${CL_YLW}"Package docs:"${CL_RST}" $@" @rm -f $@ @mkdir -p $(dir $@) $(hide) ( F=$$(pwd)/$@ ; cd $(PRIVATE_DOCS_DIR) && zip -rq $$F * ) diff --git a/core/dynamic_binary.mk b/core/dynamic_binary.mk index 08fb176008f..aefaea64dd3 100644 --- a/core/dynamic_binary.mk +++ b/core/dynamic_binary.mk @@ -55,7 +55,7 @@ compress_output := $(intermediates)/COMPRESSED-$(my_built_module_stem) #TODO: define a rule to build TARGET_SYMBOL_FILTER_FILE, and # make it depend on ALL_ORIGINAL_DYNAMIC_BINARIES. $(compress_output): $(compress_input) $(TARGET_SYMBOL_FILTER_FILE) | $(ACP) - @echo "target Compress Symbols: $(PRIVATE_MODULE) ($@)" + @echo -e ${CL_GRN}"target Compress Symbols:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) else # Skip this step. @@ -73,7 +73,7 @@ endif symbolic_input := $(compress_output) symbolic_output := $(my_unstripped_path)/$(my_installed_module_stem) $(symbolic_output) : $(symbolic_input) | $(ACP) - @echo "target Symbolic: $(PRIVATE_MODULE) ($@)" + @echo -e ${CL_GRN}"target Symbolic:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) @@ -119,11 +119,11 @@ else # use cp(1) instead. ifneq ($(LOCAL_ACP_UNAVAILABLE),true) $(strip_output): $(strip_input) | $(ACP) - @echo "target Unstripped: $(PRIVATE_MODULE) ($@)" + @echo -e ${CL_GRN}"target Unstripped:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) else $(strip_output): $(strip_input) - @echo "target Unstripped: $(PRIVATE_MODULE) ($@)" + @echo -e ${CL_GRN}"target Unstripped:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target-with-cp) endif endif diff --git a/core/host_java_library.mk b/core/host_java_library.mk index 7e0e4372ec6..be4517076a2 100644 --- a/core/host_java_library.mk +++ b/core/host_java_library.mk @@ -59,7 +59,7 @@ $(full_classes_emma_jar) : $(full_classes_compiled_jar) | $(EMMA_JAR) $(transform-classes.jar-to-emma) $(LOCAL_BUILT_MODULE) : $(full_classes_emma_jar) - @echo Copying: $@ + @echo -e ${CL_YLW}"Copying:"${CL_RST}" $@" $(hide) $(ACP) -fp $< $@ else # LOCAL_EMMA_INSTRUMENT @@ -68,7 +68,6 @@ full_classes_compiled_jar := $(LOCAL_BUILT_MODULE) endif # LOCAL_EMMA_INSTRUMENT $(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g - # The layers file allows you to enforce a layering between java packages. # Run build/tools/java-layers.py for more details. layers_file := $(addprefix $(LOCAL_PATH)/, $(LOCAL_JAVA_LAYERS_FILE)) diff --git a/core/java.mk b/core/java.mk index a969254677a..9e563b1715a 100644 --- a/core/java.mk +++ b/core/java.mk @@ -316,7 +316,7 @@ ifdef full_classes_jar # PRIVATE_ vars to be preserved. $(full_classes_stubs_jar): PRIVATE_SOURCE_FILE := $(full_classes_jar) $(full_classes_stubs_jar) : $(LOCAL_BUILT_MODULE) | $(ACP) - @echo Copying $(PRIVATE_SOURCE_FILE) + @echo -e ${CL_GRN}"Copying"${CL_RST}" $(PRIVATE_SOURCE_FILE)" $(hide) $(ACP) -fp $(PRIVATE_SOURCE_FILE) $@ ALL_MODULES.$(LOCAL_MODULE).STUBS := $(full_classes_stubs_jar) @@ -351,11 +351,11 @@ $(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g ifneq ($(strip $(LOCAL_JARJAR_RULES)),) $(full_classes_jarjar_jar): PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES) $(full_classes_jarjar_jar): $(full_classes_compiled_jar) $(LOCAL_JARJAR_RULES) | $(JARJAR) - @echo JarJar: $@ + @echo -e ${CL_GRN}"JarJar:"${CL_RST}" $@" $(hide) java -jar $(JARJAR) process $(PRIVATE_JARJAR_RULES) $< $@ else $(full_classes_jarjar_jar): $(full_classes_compiled_jar) | $(ACP) - @echo Copying: $@ + @echo -e ${CL_GRN}"Copying:"${CL_RST}" $@" $(hide) $(ACP) -fp $< $@ endif @@ -378,13 +378,13 @@ $(full_classes_emma_jar): $(full_classes_jarjar_jar) | $(EMMA_JAR) else $(full_classes_emma_jar): $(full_classes_jarjar_jar) | $(ACP) - @echo Copying: $@ + @echo -e ${CL_GRN}"Copying:"${CL_RST}" $@" $(copy-file-to-target) endif # Keep a copy of the jar just before proguard processing. $(full_classes_jar): $(full_classes_emma_jar) | $(ACP) - @echo Copying: $@ + @echo -e ${CL_GRN}"Copying:"${CL_GRN}" $@" $(hide) $(ACP) -fp $< $@ # Run proguard if necessary, otherwise just copy the file. @@ -483,7 +483,7 @@ endif $(built_dex_intermediate): $(full_classes_proguard_jar) $(DX) $(transform-classes.jar-to-dex) $(built_dex): $(built_dex_intermediate) | $(ACP) - @echo Copying: $@ + @echo -e ${CL_GRN}"Copying:"${CL_RST}" $@" $(hide) mkdir -p $(dir $@) $(hide) rm -f $(dir $@)/classes*.dex $(hide) $(ACP) -fp $(dir $<)/classes*.dex $(dir $@) diff --git a/core/java_library.mk b/core/java_library.mk index dffc7d90aad..267f1460012 100644 --- a/core/java_library.mk +++ b/core/java_library.mk @@ -56,7 +56,7 @@ $(common_javalib.jar) : $(full_classes_proguard_jar) else $(common_javalib.jar) : $(full_classes_jar) endif - @echo "target Static Jar: $(PRIVATE_MODULE) ($@)" + @echo -e ${CL_GRN}"target Static Jar:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) ifneq ($(extra_jar_args),) $(add-java-resources-to-package) @@ -69,7 +69,7 @@ else # !LOCAL_IS_STATIC_JAVA_LIBRARY $(common_javalib.jar): PRIVATE_DEX_FILE := $(built_dex) $(common_javalib.jar) : $(built_dex) $(java_resource_sources) - @echo "target Jar: $(PRIVATE_MODULE) ($@)" + @echo -e ${CL_GRN}"target Jar:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(create-empty-package) $(add-dex-to-package) $(add-carried-java-resources) @@ -95,7 +95,7 @@ else # ! boot jar $(built_odex): PRIVATE_MODULE := $(LOCAL_MODULE) # Use pattern rule - we may have multiple built odex files. $(built_odex) : $(dir $(LOCAL_BUILT_MODULE))% : $(common_javalib.jar) - @echo "Dexpreopt Jar: $(PRIVATE_MODULE) ($@)" + @echo -e ${CL_GRN}"Dexpreopt Jar:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(call dexpreopt-one-file,$<,$@) $(LOCAL_BUILT_MODULE) : $(common_javalib.jar) | $(ACP) diff --git a/core/main.mk b/core/main.mk index ee5df497828..50699dfe2b2 100644 --- a/core/main.mk +++ b/core/main.mk @@ -1039,7 +1039,7 @@ $(foreach module,$(sample_MODULES),$(eval $(call \ sample_ADDITIONAL_INSTALLED := \ $(filter-out $(modules_to_install) $(modules_to_check) $(ALL_PREBUILT),$(sample_MODULES)) samplecode: $(sample_APKS_COLLECTION) - @echo "Collect sample code apks: $^" + @echo -e ${CL_GRN}"Collect sample code apks:"${CL_RST}" $^" # remove apks that are not intended to be installed. rm -f $(sample_ADDITIONAL_INSTALLED) endif # samplecode in $(MAKECMDGOALS) @@ -1050,7 +1050,7 @@ findbugs: $(INTERNAL_FINDBUGS_HTML_TARGET) $(INTERNAL_FINDBUGS_XML_TARGET) .PHONY: clean clean: @rm -rf $(OUT_DIR)/* - @echo "Entire build directory removed." + @echo -e ${CL_GRN}"Entire build directory removed."${CL_RST} .PHONY: clobber clobber: clean @@ -1060,7 +1060,7 @@ clobber: clean #xxx scrape this from ALL_MODULE_NAME_TAGS .PHONY: modules modules: - @echo "Available sub-modules:" + @echo -e ${CL_GRN}"Available sub-modules:"${CL_RST} @echo "$(call module-names-for-tag-list,$(ALL_MODULE_TAGS))" | \ tr -s ' ' '\n' | sort -u | $(COLUMN) diff --git a/core/notice_files.mk b/core/notice_files.mk index e63cd84b5f9..1e1d9546686 100644 --- a/core/notice_files.mk +++ b/core/notice_files.mk @@ -62,7 +62,7 @@ installed_notice_file := $($(my_prefix)OUT_NOTICE_FILES)/src/$(module_installed_ $(installed_notice_file): PRIVATE_INSTALLED_MODULE := $(module_installed_filename) $(installed_notice_file): $(notice_file) - @echo Notice file: $< -- $@ + @echo -e ${CL_CYN}Notice file:${CL_RST} $< -- $@ $(hide) mkdir -p $(dir $@) $(hide) cat $< > $@ diff --git a/core/pdk_config.mk b/core/pdk_config.mk index 838754fa821..58364d76157 100644 --- a/core/pdk_config.mk +++ b/core/pdk_config.mk @@ -114,7 +114,7 @@ endif endif $(_pdk_fusion_stamp) : $(PDK_FUSION_PLATFORM_ZIP) - @echo "Unzip $(dir $@) <- $<" + @echo -e ${CL_YLW}"Unzip"${CL_RST}" $(dir $@) <- $<" $(hide) rm -rf $(dir $@) && mkdir -p $(dir $@) $(hide) unzip -qo $< -d $(dir $@) $(call split-long-arguments,-touch,$(_pdk_fusion_files)) diff --git a/core/raw_executable.mk b/core/raw_executable.mk index b64173a696a..d43bff030a7 100644 --- a/core/raw_executable.mk +++ b/core/raw_executable.mk @@ -14,7 +14,7 @@ $(all_objects) : PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(LOCAL_BUILT_MODULE): $(all_objects) $(all_libraries) @$(mkdir -p $(dir $@) - @echo "target Linking: $(PRIVATE_MODULE)" + @echo -e ${CL_GRN}"target Linking:"${CL_RST}" $(PRIVATE_MODULE)" $(hide) $(TARGET_LD) \ $(addprefix --script ,$(PRIVATE_LINK_SCRIPT)) \ $(PRIVATE_RAW_EXECUTABLE_LDFLAGS) \ diff --git a/core/static_java_library.mk b/core/static_java_library.mk index 02078e01724..b4457a7ac00 100644 --- a/core/static_java_library.mk +++ b/core/static_java_library.mk @@ -109,7 +109,7 @@ $(R_file_stamp): PRIVATE_MANIFEST_PACKAGE_NAME := $(R_file_stamp): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_res_package_export_deps) - @echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)" + @echo -e ${CL_YLW}"target R.java/Manifest.java:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(create-resource-java-files) $(hide) find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name R.java | xargs cat > $@ diff --git a/core/tasks/apicheck.mk b/core/tasks/apicheck.mk index 683a075ff38..f109527cbb3 100644 --- a/core/tasks/apicheck.mk +++ b/core/tasks/apicheck.mk @@ -76,9 +76,9 @@ $(eval $(call check-api, \ .PHONY: update-public-api update-public-api: $(INTERNAL_PLATFORM_API_FILE) | $(ACP) - @echo Copying current.txt + @echo -e ${CL_GRN}"Copying current.txt"${CL_RST} $(hide) $(ACP) $(INTERNAL_PLATFORM_API_FILE) frameworks/base/api/current.txt - @echo Copying removed.txt + @echo -e ${CL_GRN}"Copying removed.txt"${CL_RST} $(hide) $(ACP) $(INTERNAL_PLATFORM_REMOVED_API_FILE) frameworks/base/api/removed.txt update-api : update-public-api diff --git a/core/tasks/collect_gpl_sources.mk b/core/tasks/collect_gpl_sources.mk index 30ba62b6091..fc03f48b77e 100644 --- a/core/tasks/collect_gpl_sources.mk +++ b/core/tasks/collect_gpl_sources.mk @@ -17,7 +17,7 @@ gpl_source_tgz := $(call intermediates-dir-for,PACKAGING,gpl_source,HOST,COMMON) # FORCE since we can't know whether any of the sources changed $(gpl_source_tgz): PRIVATE_PATHS := $(sort $(patsubst %/, %, $(dir $(ALL_GPL_MODULE_LICENSE_FILES)))) $(gpl_source_tgz) : $(ALL_GPL_MODULE_LICENSE_FILES) FORCE - @echo Package gpl sources: $@ + @echo -e ${CL_GRN}"Package gpl sources:"${CL_RST}" $@" @rm -rf $(dir $@) && mkdir -p $(dir $@) $(hide) tar cfz $@ --exclude ".git*" $(PRIVATE_PATHS) diff --git a/core/tasks/product-graph.mk b/core/tasks/product-graph.mk index fcec27775dc..f761915426d 100644 --- a/core/tasks/product-graph.mk +++ b/core/tasks/product-graph.mk @@ -136,7 +136,7 @@ $(foreach p,$(really_all_products), \ ) $(products_pdf): $(products_graph) - @echo Product graph PDF: $@ + @echo -e ${CL_GRN}"Product graph PDF:"${CL_RST}" $@" dot -Tpdf -Nshape=box -o $@ $< $(products_svg): $(products_graph) $(product_debug_files) diff --git a/core/tasks/sdk-addon.mk b/core/tasks/sdk-addon.mk index 5ac9b7d47b0..620c50cd001 100644 --- a/core/tasks/sdk-addon.mk +++ b/core/tasks/sdk-addon.mk @@ -105,7 +105,7 @@ $(full_target): PRIVATE_DOCS_DIRS := $(addprefix $(OUT_DOCS)/, $(doc_modules)) $(full_target): PRIVATE_STAGING_DIR := $(call append-path,$(staging),$(addon_dir_leaf)) $(full_target): $(sdk_addon_deps) | $(ACP) - @echo Packaging SDK Addon: $@ + @echo -e ${CL_GRN}"Packaging SDK Addon:"${CL_RST}" $@" $(hide) mkdir -p $(PRIVATE_STAGING_DIR)/docs $(hide) for d in $(PRIVATE_DOCS_DIRS); do \ $(ACP) -r $$d $(PRIVATE_STAGING_DIR)/docs ;\ diff --git a/tools/apicheck/Android.mk b/tools/apicheck/Android.mk index 1674a17e93d..1505c8d7b52 100644 --- a/tools/apicheck/Android.mk +++ b/tools/apicheck/Android.mk @@ -32,7 +32,7 @@ include $(BUILD_SYSTEM)/base_rules.mk $(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) $(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/apicheck | $(ACP) - @echo "Copy: $(PRIVATE_MODULE) ($@)" + @echo -e ${CL_CYN}"Copy:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-new-target) $(hide) chmod 755 $@ From 01ab00d656509d84c95dc2ef03f2cb23057a67df Mon Sep 17 00:00:00 2001 From: Diogo Ferreira Date: Sun, 18 Mar 2012 21:18:29 +0000 Subject: [PATCH 0654/1096] roomservice: Add lightweight dependencies to repositories Roomservice can already fetch your cm_ without the need for a manifest entry. However, when working with common repositories, there is no way of actually fetching them without adding to the manifest. This patch introduces a lightweight dependency system. Each repository can have a cm.dependencies in the following json format: [ { "repository": "repository_name_on_cm_organization" "target_path": "target/path" }, ... ] For instance, for cm_anzu I need android_device_semc_msm7x30-common and android_device_semc_mogami-common. I would add both to cm.dependencies as follows: [ { "repository": "android_device_semc_msm7x30-common", "target_path": "device/semc/msm7x30-common" }, { "repository": "android_device_semc_mogami-common", "target_path": "device/semc/mogami-common" } ] Roomservice would then fetch the anzu repository, parse the dependency files and add/fetch/sync these additional repositories if they don't exist already. This also adds pretty printing to the output xml. Change-Id: I9cc847adfc717a06439bc6094213ed6492343158 roomservice: Add branch support to cm.dependencies Allow the cm.dependencies entries to provide an optional "branch" for the repository dependencies. Added to fully support http://wiki.cyanogenmod.com/wiki/Integrated_kernel_building Change-Id: I35b51920d296afa329411af6172c7bd9aeef4af8 roomservice: Fill in dependencies for already-deployed repositories Change-Id: I01fd408c9c4bfa78097c7f848b2556d2b2b180f3 roomservice: Extend dependency-checks to devices in main manifest CM currently keeps devices inherited from AOSP in the main manifest, so take that into account as well when checking device paths Change-Id: I9663f283617f237428b4eaa0cd60b5de2b86a7b9 make compatible with github v3 api Change-Id: Iff6f1f9099cdc5d2b49e04000b5fe3d04aa5d7e4 Fixed build for full-eng Previously Traceback (most recent call last): File "build/tools/roomservice.py", line 153, in repo_path = get_from_manifest(device) NameError: name 'device' is not defined ** Don't have a product spec for: 'full' ** Do you have the right repo manifest? Now ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.0.4 TARGET_PRODUCT=full TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=IMM76L ============================================ Change-Id: Ib513705aba9a7a52a971ab64102ecbe9fddfb97a roomservice: Bump github request per_page to 100 Change the number of repos per page from the default 30 to 100. We seem to be hitting the rate limit on the jenkins server. Change-Id: Ie733feaa0414cbfebb7efcfc1e24d94e1e466d1b roomservice: Add support for netrc Change-Id: I1f5e11e40125abd0c4e4c8d8294d4fc09bfdc30a roomservice: Handle missing netrc file Change-Id: If981fe79dc3e2191434301239b0cd585be8b4730 roomservice.py: Verbose error when a branch is missing. Also add ROOMSERVICE_BRANCHES environment variable to use fallback branches. Change-Id: I3c2b1d79fc185c1f1e1d658e5ca4f78e688780e2 roomservice.py: Fixups around fallback branches not being used by dependencies when ROOMSERVICE_BRANCHES is defined. Change-Id: Ifb42a023cae5f62ac8f9cf7832125b91b431169c roomservice: Allow following up tag references This is now needed for release builds Change-Id: I8c5f87341059b3b15ee853312b71df73790ad0d8 build: local_manifest.xml deprecated, use local_manifests Patch Set 2:- Use roomservice.xml instead of cm.xml. Change-Id: I3d8a6ef3907b92808662cbba912cea5ed38d0bde Fix fallback branch search in roomservice If you provided a fallback branch to roomservice via the ROOMSERVICE_BRANCHES environment var the branch search would fail if the device repo had any tags. Fixed this by appending the tag search results to the branch search results instead of overwriting them Change-Id: I73a11af1500bd04e346f08ec3f83454502f3a169 roomservice: Fix wrong assumption about path of active manifest Change-Id: Id740ff4b848e6ccbfd658be4846197b8ca519237 roomservice: When validating the presence of a repo, check main manifest too Change-Id: If680536484074b473458723d93e783d074d7f669 roomservice: Bump devices per page to 200 Limit was reached again when attempting to lunch various projects, such as steelhead. Change-Id: I2f3b9705e07e1e47b86857aeb383cf7c99fcdbdc Signed-off-by: William Roberts roomservice: Fix assumptions about the branch naming We can't just split from the last slash anymore, since we're using those to distinguish the stabilization branches Change-Id: Ia175dd317f508e99b275b56e9c83bd4729a75ddb roomservice: Add recursive dependencies Dependency repositories can now have dependencies themselves Change-Id: I33a28709170da52bc98f4a62387927e3a11b2450 --- envsetup.sh | 2 + tools/roomservice.py | 298 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 261 insertions(+), 39 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 7d11a7ef895..b81a62e6805 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -592,6 +592,8 @@ function lunch() build/tools/roomservice.py $product popd > /dev/null check_product $product + else + build/tools/roomservice.py $product true fi if [ $? -ne 0 ] then diff --git a/tools/roomservice.py b/tools/roomservice.py index 61f8555c9dc..f5aac069554 100755 --- a/tools/roomservice.py +++ b/tools/roomservice.py @@ -1,55 +1,275 @@ #!/usr/bin/env python +# Copyright (C) 2012-2013, The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import os import sys import urllib2 import json +import re +import netrc, base64 from xml.etree import ElementTree product = sys.argv[1]; -device = product[product.index("_") + 1:] -print "Device %s not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod)." % device + +if len(sys.argv) > 2: + depsonly = sys.argv[2] +else: + depsonly = None + +try: + device = product[product.index("_") + 1:] +except: + device = product + +if not depsonly: + print "Device %s not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod)." % device repositories = [] +try: + authtuple = netrc.netrc().authenticators("api.github.com") + + if authtuple: + githubauth = base64.encodestring('%s:%s' % (authtuple[0], authtuple[2])).replace('\n', '') + else: + githubauth = None +except: + githubauth = None + +def add_auth(githubreq): + if githubauth: + githubreq.add_header("Authorization","Basic %s" % githubauth) + page = 1 -while True: - result = json.loads(urllib2.urlopen("http://github.com/api/v2/json/repos/show/CyanogenMod?page=%d" % page).read()) - if len(result['repositories']) == 0: +while not depsonly: + githubreq = urllib2.Request("https://api.github.com/users/CyanogenMod/repos?per_page=200&page=%d" % page) + add_auth(githubreq) + result = json.loads(urllib2.urlopen(githubreq).read()) + if len(result) == 0: break - repositories = repositories + result['repositories'] + for res in result: + repositories.append(res) page = page + 1 -for repository in repositories: - repo_name = repository['name'] - if repo_name.startswith("android_device_") and repo_name.endswith("_" + device): - print "Found repository: %s" % repository['name'] - manufacturer = repo_name.replace("android_device_", "").replace("_" + device, "") - - try: - lm = ElementTree.parse(".repo/local_manifest.xml") - lm = lm.getroot() - except: - lm = ElementTree.Element("manifest") - - for child in lm.getchildren(): - if child.attrib['name'].endswith("_" + device): - print "Duplicate device '%s' found in local_manifest.xml." % child.attrib['name'] - sys.exit() - - repo_path = "device/%s/%s" % (manufacturer, device) - project = ElementTree.Element("project", attrib = { "path": repo_path, "remote": "github", "name": "CyanogenMod/%s" % repository['name'] }) +local_manifests = r'.repo/local_manifests' +if not os.path.exists(local_manifests): os.makedirs(local_manifests) + +def exists_in_tree(lm, repository): + for child in lm.getchildren(): + if child.attrib['name'].endswith(repository): + return True + return False + +# in-place prettyprint formatter +def indent(elem, level=0): + i = "\n" + level*" " + if len(elem): + if not elem.text or not elem.text.strip(): + elem.text = i + " " + if not elem.tail or not elem.tail.strip(): + elem.tail = i + for elem in elem: + indent(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = i + else: + if level and (not elem.tail or not elem.tail.strip()): + elem.tail = i + +def get_default_revision(): + m = ElementTree.parse(".repo/manifest.xml") + d = m.findall('default')[0] + r = d.get('revision') + return r.replace('refs/heads/', '').replace('refs/tags/', '') + +def get_from_manifest(devicename): + try: + lm = ElementTree.parse(".repo/local_manifests/roomservice.xml") + lm = lm.getroot() + except: + lm = ElementTree.Element("manifest") + + for localpath in lm.findall("project"): + if re.search("android_device_.*_%s$" % device, localpath.get("name")): + return localpath.get("path") + + # Devices originally from AOSP are in the main manifest... + try: + mm = ElementTree.parse(".repo/manifest.xml") + mm = mm.getroot() + except: + mm = ElementTree.Element("manifest") + + for localpath in mm.findall("project"): + if re.search("android_device_.*_%s$" % device, localpath.get("name")): + return localpath.get("path") + + return None + +def is_in_manifest(projectname): + try: + lm = ElementTree.parse(".repo/local_manifests/roomservice.xml") + lm = lm.getroot() + except: + lm = ElementTree.Element("manifest") + + for localpath in lm.findall("project"): + if localpath.get("name") == projectname: + return 1 + + ## Search in main manifest, too + try: + lm = ElementTree.parse(".repo/manifest.xml") + lm = lm.getroot() + except: + lm = ElementTree.Element("manifest") + + for localpath in lm.findall("project"): + if localpath.get("name") == projectname: + return 1 + + return None + +def add_to_manifest(repositories, fallback_branch = None): + try: + lm = ElementTree.parse(".repo/local_manifests/roomservice.xml") + lm = lm.getroot() + except: + lm = ElementTree.Element("manifest") + + for repository in repositories: + repo_name = repository['repository'] + repo_target = repository['target_path'] + if exists_in_tree(lm, repo_name): + print 'CyanogenMod/%s already exists' % (repo_name) + continue + + print 'Adding dependency: CyanogenMod/%s -> %s' % (repo_name, repo_target) + project = ElementTree.Element("project", attrib = { "path": repo_target, + "remote": "github", "name": "CyanogenMod/%s" % repo_name }) + + if 'branch' in repository: + project.set('revision',repository['branch']) + elif fallback_branch: + print "Using fallback branch %s for %s" % (fallback_branch, repo_name) + project.set('revision', fallback_branch) + else: + print "Using default branch for %s" % repo_name + lm.append(project) - - raw_xml = ElementTree.tostring(lm) - raw_xml = '\n' + raw_xml - - f = open('.repo/local_manifest.xml', 'w') - f.write(raw_xml) - f.close() - - print "Syncing repository to retrieve project." - os.system('repo sync %s' % repo_path) - print "Done!" - sys.exit() - -print "Repository for %s not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml." % device + + indent(lm, 0) + raw_xml = ElementTree.tostring(lm) + raw_xml = '\n' + raw_xml + + f = open('.repo/local_manifests/roomservice.xml', 'w') + f.write(raw_xml) + f.close() + +def fetch_dependencies(repo_path, fallback_branch = None): + print 'Looking for dependencies' + dependencies_path = repo_path + '/cm.dependencies' + syncable_repos = [] + + if os.path.exists(dependencies_path): + dependencies_file = open(dependencies_path, 'r') + dependencies = json.loads(dependencies_file.read()) + fetch_list = [] + + for dependency in dependencies: + if not is_in_manifest("CyanogenMod/%s" % dependency['repository']): + fetch_list.append(dependency) + syncable_repos.append(dependency['target_path']) + + dependencies_file.close() + + if len(fetch_list) > 0: + print 'Adding dependencies to manifest' + add_to_manifest(fetch_list, fallback_branch) + else: + print 'Dependencies file not found, bailing out.' + + if len(syncable_repos) > 0: + print 'Syncing dependencies' + os.system('repo sync %s' % ' '.join(syncable_repos)) + + for deprepo in syncable_repos: + fetch_dependencies(deprepo) + +def has_branch(branches, revision): + return revision in [branch['name'] for branch in branches] + +if depsonly: + repo_path = get_from_manifest(device) + if repo_path: + fetch_dependencies(repo_path) + else: + print "Trying dependencies-only mode on a non-existing device tree?" + + sys.exit() + +else: + for repository in repositories: + repo_name = repository['name'] + if repo_name.startswith("android_device_") and repo_name.endswith("_" + device): + print "Found repository: %s" % repository['name'] + + manufacturer = repo_name.replace("android_device_", "").replace("_" + device, "") + + default_revision = get_default_revision() + print "Default revision: %s" % default_revision + print "Checking branch info" + githubreq = urllib2.Request(repository['branches_url'].replace('{/branch}', '')) + add_auth(githubreq) + result = json.loads(urllib2.urlopen(githubreq).read()) + + ## Try tags, too, since that's what releases use + if not has_branch(result, default_revision): + githubreq = urllib2.Request(repository['tags_url'].replace('{/tag}', '')) + add_auth(githubreq) + result.extend (json.loads(urllib2.urlopen(githubreq).read())) + + repo_path = "device/%s/%s" % (manufacturer, device) + adding = {'repository':repo_name,'target_path':repo_path} + + fallback_branch = None + if not has_branch(result, default_revision): + if os.getenv('ROOMSERVICE_BRANCHES'): + fallbacks = filter(bool, os.getenv('ROOMSERVICE_BRANCHES').split(' ')) + for fallback in fallbacks: + if has_branch(result, fallback): + print "Using fallback branch: %s" % fallback + fallback_branch = fallback + break + + if not fallback_branch: + print "Default revision %s not found in %s. Bailing." % (default_revision, repo_name) + print "Branches found:" + for branch in [branch['name'] for branch in result]: + print branch + print "Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches." + sys.exit() + + add_to_manifest([adding], fallback_branch) + + print "Syncing repository to retrieve project." + os.system('repo sync %s' % repo_path) + print "Repository synced!" + + fetch_dependencies(repo_path, fallback_branch) + print "Done" + sys.exit() + +print "Repository for %s not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml." % device From 476a77f49a2353fdc8bf87033ac85c1aff87c29a Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Tue, 30 Apr 2013 17:08:17 +0530 Subject: [PATCH 0655/1096] roomservice: python3 support Change-Id: I7621818ba7ed997676728fe865f37a25b3a5b8b5 Signed-off-by: Chirayu Desai --- tools/roomservice.py | 85 ++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 34 deletions(-) diff --git a/tools/roomservice.py b/tools/roomservice.py index f5aac069554..4ec9afa8eec 100755 --- a/tools/roomservice.py +++ b/tools/roomservice.py @@ -13,12 +13,29 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os -import sys -import urllib2 +from __future__ import print_function + +import base64 import json +import netrc +import os import re -import netrc, base64 +import sys +try: + # For python3 + import urllib.error + import urllib.parse + import urllib.request +except ImportError: + # For python2 + import imp + import urllib2 + import urlparse + urllib = imp.new_module('urllib') + urllib.error = urllib2 + urllib.parse = urlparse + urllib.request = urllib2 + from xml.etree import ElementTree product = sys.argv[1]; @@ -34,7 +51,7 @@ device = product if not depsonly: - print "Device %s not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod)." % device + print("Device %s not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod)." % device) repositories = [] @@ -54,9 +71,9 @@ def add_auth(githubreq): page = 1 while not depsonly: - githubreq = urllib2.Request("https://api.github.com/users/CyanogenMod/repos?per_page=200&page=%d" % page) + githubreq = urllib.request.Request("https://api.github.com/users/CyanogenMod/repos?per_page=200&page=%d" % page) add_auth(githubreq) - result = json.loads(urllib2.urlopen(githubreq).read()) + result = json.loads(urllib.request.urlopen(githubreq).read().decode()) if len(result) == 0: break for res in result: @@ -153,25 +170,25 @@ def add_to_manifest(repositories, fallback_branch = None): repo_name = repository['repository'] repo_target = repository['target_path'] if exists_in_tree(lm, repo_name): - print 'CyanogenMod/%s already exists' % (repo_name) + print('CyanogenMod/%s already exists' % (repo_name)) continue - print 'Adding dependency: CyanogenMod/%s -> %s' % (repo_name, repo_target) + print('Adding dependency: CyanogenMod/%s -> %s' % (repo_name, repo_target)) project = ElementTree.Element("project", attrib = { "path": repo_target, "remote": "github", "name": "CyanogenMod/%s" % repo_name }) if 'branch' in repository: project.set('revision',repository['branch']) elif fallback_branch: - print "Using fallback branch %s for %s" % (fallback_branch, repo_name) + print("Using fallback branch %s for %s" % (fallback_branch, repo_name)) project.set('revision', fallback_branch) else: - print "Using default branch for %s" % repo_name + print("Using default branch for %s" % repo_name) lm.append(project) indent(lm, 0) - raw_xml = ElementTree.tostring(lm) + raw_xml = ElementTree.tostring(lm).decode() raw_xml = '\n' + raw_xml f = open('.repo/local_manifests/roomservice.xml', 'w') @@ -179,7 +196,7 @@ def add_to_manifest(repositories, fallback_branch = None): f.close() def fetch_dependencies(repo_path, fallback_branch = None): - print 'Looking for dependencies' + print('Looking for dependencies') dependencies_path = repo_path + '/cm.dependencies' syncable_repos = [] @@ -196,13 +213,13 @@ def fetch_dependencies(repo_path, fallback_branch = None): dependencies_file.close() if len(fetch_list) > 0: - print 'Adding dependencies to manifest' + print('Adding dependencies to manifest') add_to_manifest(fetch_list, fallback_branch) else: - print 'Dependencies file not found, bailing out.' + print('Dependencies file not found, bailing out.') if len(syncable_repos) > 0: - print 'Syncing dependencies' + print('Syncing dependencies') os.system('repo sync %s' % ' '.join(syncable_repos)) for deprepo in syncable_repos: @@ -216,7 +233,7 @@ def has_branch(branches, revision): if repo_path: fetch_dependencies(repo_path) else: - print "Trying dependencies-only mode on a non-existing device tree?" + print("Trying dependencies-only mode on a non-existing device tree?") sys.exit() @@ -224,22 +241,22 @@ def has_branch(branches, revision): for repository in repositories: repo_name = repository['name'] if repo_name.startswith("android_device_") and repo_name.endswith("_" + device): - print "Found repository: %s" % repository['name'] + print("Found repository: %s" % repository['name']) manufacturer = repo_name.replace("android_device_", "").replace("_" + device, "") default_revision = get_default_revision() - print "Default revision: %s" % default_revision - print "Checking branch info" - githubreq = urllib2.Request(repository['branches_url'].replace('{/branch}', '')) + print("Default revision: %s" % default_revision) + print("Checking branch info") + githubreq = urllib.request.Request(repository['branches_url'].replace('{/branch}', '')) add_auth(githubreq) - result = json.loads(urllib2.urlopen(githubreq).read()) + result = json.loads(urllib.request.urlopen(githubreq).read().decode()) ## Try tags, too, since that's what releases use if not has_branch(result, default_revision): - githubreq = urllib2.Request(repository['tags_url'].replace('{/tag}', '')) + githubreq = urllib.request.Request(repository['tags_url'].replace('{/tag}', '')) add_auth(githubreq) - result.extend (json.loads(urllib2.urlopen(githubreq).read())) + result.extend (json.loads(urllib.request.urlopen(githubreq).read().decode())) repo_path = "device/%s/%s" % (manufacturer, device) adding = {'repository':repo_name,'target_path':repo_path} @@ -247,29 +264,29 @@ def has_branch(branches, revision): fallback_branch = None if not has_branch(result, default_revision): if os.getenv('ROOMSERVICE_BRANCHES'): - fallbacks = filter(bool, os.getenv('ROOMSERVICE_BRANCHES').split(' ')) + fallbacks = list(filter(bool, os.getenv('ROOMSERVICE_BRANCHES').split(' '))) for fallback in fallbacks: if has_branch(result, fallback): - print "Using fallback branch: %s" % fallback + print("Using fallback branch: %s" % fallback) fallback_branch = fallback break if not fallback_branch: - print "Default revision %s not found in %s. Bailing." % (default_revision, repo_name) - print "Branches found:" + print("Default revision %s not found in %s. Bailing." % (default_revision, repo_name)) + print("Branches found:") for branch in [branch['name'] for branch in result]: - print branch - print "Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches." + print(branch) + print("Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.") sys.exit() add_to_manifest([adding], fallback_branch) - print "Syncing repository to retrieve project." + print("Syncing repository to retrieve project.") os.system('repo sync %s' % repo_path) - print "Repository synced!" + print("Repository synced!") fetch_dependencies(repo_path, fallback_branch) - print "Done" + print("Done") sys.exit() -print "Repository for %s not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml." % device +print("Repository for %s not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml." % device) From ebd3def3bd1e96951106025bb6ed0823bce415d5 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Sat, 28 Jan 2012 09:05:16 +0700 Subject: [PATCH 0656/1096] Disable dataroaming by default The property is removed so that the property in vendor/cm can take effect Change-Id: Iefadc1a6e71cbf92ecb7363c953f4b5a82064446 --- target/product/full_base_telephony.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/product/full_base_telephony.mk b/target/product/full_base_telephony.mk index 2fd2ce803ff..ac35833d086 100644 --- a/target/product/full_base_telephony.mk +++ b/target/product/full_base_telephony.mk @@ -23,8 +23,7 @@ PRODUCT_PACKAGES := \ VoiceDialer PRODUCT_PROPERTY_OVERRIDES := \ - keyguard.no_require_sim=true \ - ro.com.android.dataroaming=true + keyguard.no_require_sim=true PRODUCT_COPY_FILES := \ device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ From f5e379c9ccc74b8d500b5b7c9ed44486dc8113b0 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Fri, 19 Aug 2011 20:37:12 +0100 Subject: [PATCH 0657/1096] eat: Automated install of fresh builds Needs: 1 - a build 2 - a connected device Change-Id: I24820b984e79430b7af7ccedc171fc69269c0a32 envsetup: eat safely Change-Id: I2d8b52206213d8f4d8dcce3518cadb2be59e78d8 eat more safely, if there is something to eat Check for zip file presence before trying to eat Change-Id: I7913be619d189bbd723263edad878d6d05b8a5a7 Fixed eat not waiting for device if adb server was not started $(adb get-state) returned unexpected starting server message causing the if statement to fail. Calling "adb start-server" beforehand remedies that. Patch Set 2: $(adb get-state) returns 'unknown' if Clockwork recovery is running on the device look for /sbin/recovery and 'pass' the state test also adb wait-for-device will result in endless loop, replace with until loop using with get-state OR 'recovery' tests Patch Set 3: fix the initial adb state test, use AND instead of OR Patch Set 4: Rebased and prevent "device not found" message from spamming the screen by redirecting error output to null Change-Id: I2d41b8853567cde80bf7fc08b5e4f0ad5ba1fdf5 Signed-off-by: Firerat Updated for CM9 variables eat: Adapt to new file naming scheme Change-Id: I101e333918bc215bebcc594c97bdd68307c90aaa eat: Adapt to new storage paths Change-Id: Ic060304275c2d19858636c84740b3f60dfdc6193 envsetup: Make eat restart adbd as root before pushing the recovery command Without adbd running as root we can't write to /cache/recovery and eat fails with a permission denied. Change-Id: I015b50f29c001605cdc1a0088f68296b62809b56 Eat: Option to specify directory of zip in recovery mode It pushes to /mnt/sdcard0, which may be /emmc/ in recovery. Now the user can specify another path other than /sdcard/ where the zip is Change-Id: Ie39615132ae39d9f6b304a3049b2395b2a2af182 fix "eat" Assume user 0 is the active one when flashing... Change-Id: Ibdc28ef49f8023e786ee82c9e42c221409dfd6bb eat: Use /cache if possible * Check the size of /cache and use it if possible. Change-Id: I72fecf3f8d2311c04e63fe81a7ca9a8a6a40419d --- envsetup.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index b81a62e6805..57368d67cdb 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -693,6 +693,58 @@ function tapas() printconfig } +function eat() +{ + if [ "$OUT" ] ; then + MODVERSION=`sed -n -e'/ro\.cm\.version/s/.*=//p' $OUT/system/build.prop` + ZIPFILE=cm-$MODVERSION.zip + ZIPPATH=$OUT/$ZIPFILE + if [ ! -f $ZIPPATH ] ; then + echo "Nothing to eat" + return 1 + fi + adb start-server # Prevent unexpected starting server message from adb get-state in the next line + if [ $(adb get-state) != device -a $(adb shell busybox test -e /sbin/recovery 2> /dev/null; echo $?) != 0 ] ; then + echo "No device is online. Waiting for one..." + echo "Please connect USB and/or enable USB debugging" + until [ $(adb get-state) = device -o $(adb shell busybox test -e /sbin/recovery 2> /dev/null; echo $?) = 0 ];do + sleep 1 + done + echo "Device Found.." + fi + # if adbd isn't root we can't write to /cache/recovery/ + adb root + sleep 1 + adb wait-for-device + SZ=`stat -c %s $ZIPPATH` + CACHESIZE=`adb shell busybox df -PB1 /cache | grep /cache | tr -s ' ' | cut -d ' ' -f 4` + if [ $CACHESIZE -gt $SZ ]; + then + PUSHDIR=/cache/ + DIR=cache + else + PUSHDIR=/storage/sdcard0/ + # Optional path for sdcard0 in recovery + [ -z "$1" ] && DIR=sdcard/0 || DIR=$1 + fi + echo "Pushing $ZIPFILE to $PUSHDIR" + if adb push $ZIPPATH $PUSHDIR ; then + cat << EOF > /tmp/command +--update_package=/$DIR/$ZIPFILE +EOF + if adb push /tmp/command /cache/recovery/ ; then + echo "Rebooting into recovery for installation" + adb reboot recovery + fi + rm /tmp/command + fi + else + echo "Nothing to eat" + return 1 + fi + return $? +} + function gettop { local TOPFILE=build/core/envsetup.mk From a977ca7c5cb885c8d9a537e446363426a46f6e4d Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sat, 25 Feb 2012 14:24:20 -0800 Subject: [PATCH 0658/1096] Note that update-api is a lie. Change-Id: Idc2d92630e94ccbd60b5d5447c3762db8e5096f8 --- core/apicheck_msg_current.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/apicheck_msg_current.txt b/core/apicheck_msg_current.txt index 440e7f8862e..2e065aeffaf 100644 --- a/core/apicheck_msg_current.txt +++ b/core/apicheck_msg_current.txt @@ -9,6 +9,10 @@ To make these errors go away, you have two choices: 2) You can update current.txt by executing the following command: make update-api + ^^^^^^^^^^^^^^^^^^ + NO. NO. STOP BEING LAZY. SERIOUSLY. + DO NOT DO THIS in CM. THIS IS A LIE. IT WILL BREAK THINGS. + To submit the revised current.txt to the main Android repository, you will need approval. ****************************** From 46820f1a85ec97089ae39f6dcaf1ba40adb57398 Mon Sep 17 00:00:00 2001 From: Warren Togami Date: Sat, 3 Mar 2012 23:10:09 -1000 Subject: [PATCH 0659/1096] Modular backuptool.sh. Executes backup and restore methods defined in arbitrary /system/addon.d/*.sh scripts. * Copy backuptool.functions alongside backuptool.sh. * Delete both from /system/bin as they are not useful there. Patch Series ============ http://review.cyanogenmod.com/#change,13265 CyanogenMod/android_build * edify generator http://review.cyanogenmod.com/#change,13266 CyanogenMod/android_system_core * permissions on /system/addon.d http://review.cyanogenmod.com/#change,13267 CyanogenMod/android_vendor_cm * 50-cm.sh reference backup script * modular backuptool.sh * support backuptool.functions used by /system/addon.d/*.sh scripts Change-Id: I26b4907d28f49c69627699d2accd2f0fa2d1b112 --- tools/releasetools/edify_generator.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index e79a58cbcaf..0a780bcec0c 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -134,8 +134,13 @@ def AssertSomeBootloader(self, *bootloaders): def RunBackup(self, command): self.script.append('package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");') + self.script.append('package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");') self.script.append('set_perm(0, 0, 0777, "/tmp/backuptool.sh");') + self.script.append('set_perm(0, 0, 0644, "/tmp/backuptool.functions");') self.script.append(('run_program("/tmp/backuptool.sh", "%s");' % command)) + if command == "restore": + self.script.append('delete("/system/bin/backuptool.sh");') + self.script.append('delete("/system/bin/backuptool.functions");') def ShowProgress(self, frac, dur): """Update the progress bar, advancing it over 'frac' over the next From a650e473c42f7956115848ad69db4418c8036a32 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Mon, 14 May 2012 16:14:36 -0700 Subject: [PATCH 0660/1096] makerecipe: WIP to generate manifest branches for releases Change-Id: I1804c180844043692f788275c8998307e348001b --- envsetup.sh | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 57368d67cdb..4ff3c67f244 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1771,8 +1771,12 @@ function cmremote() GERRIT_REMOTE=$(cat .git/config | grep git://github.com | awk '{ print $NF }' | sed s#git://github.com/##g) if [ -z "$GERRIT_REMOTE" ] then - echo Unable to set up the git remote, are you in the root of the repo? - return 0 + GERRIT_REMOTE=$(cat .git/config | grep http://github.com | awk '{ print $NF }' | sed s#http://github.com/##g) + if [ -z "$GERRIT_REMOTE" ] + then + echo Unable to set up the git remote, are you in the root of the repo? + return 0 + fi fi CMUSER=`git config --get review.review.cyanogenmod.com.username` if [ -z "$CMUSER" ] @@ -1783,6 +1787,29 @@ function cmremote() fi echo You can now push to "cmremote". } +export -f cmremote + +function makerecipe() { + if [ -z "$1" ] + then + echo "No branch name provided." + return 1 + fi + cd android + sed -i s/'default revision=.*'/'default revision="refs\/heads\/'$1'"'/ default.xml + git commit -a -m "$1" + cd .. + + repo forall -c ' + + if [ "$REPO_REMOTE" == "github" ] + then + pwd + cmremote + git push cmremote HEAD:refs/heads/'$1' + fi + ' +} function cmgerrit() { if [ $# -eq 0 ]; then From 127e645de68bc0615975e53ed4b9b1e26aa7dd42 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sun, 20 May 2012 22:10:30 -0700 Subject: [PATCH 0661/1096] build: Stop installing the sample APN list * Sample APN list is always being installed, we don't want this in CM. Change-Id: I74b97f3af545c4a7568d3001e1435c63cfbc7de8 --- target/product/full_base_telephony.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/target/product/full_base_telephony.mk b/target/product/full_base_telephony.mk index ac35833d086..307991982f0 100644 --- a/target/product/full_base_telephony.mk +++ b/target/product/full_base_telephony.mk @@ -26,7 +26,6 @@ PRODUCT_PROPERTY_OVERRIDES := \ keyguard.no_require_sim=true PRODUCT_COPY_FILES := \ - device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk) From fce8e0a111a989b68575fef7925e477b80a477f2 Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Wed, 6 Jun 2012 21:39:23 +0200 Subject: [PATCH 0662/1096] env: implement the repodiff command sample usage: repodiff ics repodiff github/ics --numstat repodiff android-4.0.4_r1.2 android-4.0.4_r2 Change-Id: Id1c1e504c75676707e59f051fd5ff9ce748d4297 Signed-off-by: Tanguy Pruvot --- envsetup.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 4ff3c67f244..4b3e7255acb 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2106,6 +2106,16 @@ function reposync() { ;; esac } + +function repodiff() { + if [ -z "$*" ]; then + echo "Usage: repodiff [[ref-to] [--numstat]]" + return + fi + diffopts=$* repo forall -c \ + 'echo "$REPO_PATH ($REPO_REMOTE)"; git diff ${diffopts} 2>/dev/null ;' +} + # Force JAVA_HOME to point to java 1.7 or java 1.6 if it isn't already set. # # Note that the MacOS path for java 1.7 includes a minor revision number (sigh). From 837b0e3fc956393ef56504307c4776c1853db204 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sun, 20 Nov 2011 21:14:29 -0800 Subject: [PATCH 0663/1096] Add recoveryzip target. Import recovery building/porting tools. echo args Change-Id: Ib346a27d94ccab3e992fe3bc3be9e0010e7b89a0 mkvendor.sh: fixes for Android 4.2. Change-Id: Id7ff9ef03700d595734811ccf868371ffb024384 mkvendor: fix echoed build commands cm.mk.template uses PRODUCT_NAME := cm___DEVICE__ Change-Id: I063fc4b93d90ebb034637bf3e92d83c77aa439ca --- core/Makefile | 9 +- tools/device/AndroidBoard.mk.template | 8 ++ tools/device/AndroidProducts.mk.template | 2 + tools/device/BoardConfig.mk.template | 25 +++++ tools/device/device.mk.template | 24 +++++ tools/device/makerecoveries.sh | 69 ++++++++++++++ tools/device/mkrecoveryzip.sh | 97 +++++++++++++++++++ tools/device/mkvendor.sh | 115 +++++++++++++++++++++++ tools/device/recovery.fstab.template | 10 ++ tools/device/system.prop.template | 3 + 10 files changed, 361 insertions(+), 1 deletion(-) create mode 100644 tools/device/AndroidBoard.mk.template create mode 100644 tools/device/AndroidProducts.mk.template create mode 100644 tools/device/BoardConfig.mk.template create mode 100644 tools/device/device.mk.template create mode 100644 tools/device/makerecoveries.sh create mode 100755 tools/device/mkrecoveryzip.sh create mode 100755 tools/device/mkvendor.sh create mode 100644 tools/device/recovery.fstab.template create mode 100644 tools/device/system.prop.template diff --git a/core/Makefile b/core/Makefile index 9e04bff3480..425b5925b70 100644 --- a/core/Makefile +++ b/core/Makefile @@ -46,7 +46,6 @@ unique_product_copy_files_destinations := $(foreach cf,$(unique_product_copy_files_pairs), \ $(eval _src := $(call word-colon,1,$(cf))) \ $(eval _dest := $(call word-colon,2,$(cf))) \ - $(call check-product-copy-files,$(cf)) \ $(if $(filter $(unique_product_copy_files_destinations),$(_dest)), \ $(info PRODUCT_COPY_FILES $(cf) ignored.), \ $(eval _fulldest := $(call append-path,$(PRODUCT_OUT),$(_dest))) \ @@ -914,6 +913,14 @@ endif .PHONY: recoveryimage recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_RESOURCE_ZIP) +INSTALLED_RECOVERYZIP_TARGET := $(PRODUCT_OUT)/utilities/update.zip +$(INSTALLED_RECOVERYZIP_TARGET): $(INSTALLED_RECOVERYIMAGE_TARGET) $(TARGET_OUT)/bin/updater + @echo ----- Making recovery zip ----- + ./build/tools/device/mkrecoveryzip.sh $(PRODUCT_OUT) $(HOST_OUT_JAVA_LIBRARIES)/signapk.jar + +.PHONY: recoveryzip +recoveryzip: $(INSTALLED_RECOVERYZIP_TARGET) + ifneq ($(BOARD_NAND_PAGE_SIZE),) mkyaffs2_extra_flags := -c $(BOARD_NAND_PAGE_SIZE) else diff --git a/tools/device/AndroidBoard.mk.template b/tools/device/AndroidBoard.mk.template new file mode 100644 index 00000000000..55a36d52357 --- /dev/null +++ b/tools/device/AndroidBoard.mk.template @@ -0,0 +1,8 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET) + +# include the non-open-source counterpart to this file +-include vendor/__MANUFACTURER__/__DEVICE__/AndroidBoardVendor.mk diff --git a/tools/device/AndroidProducts.mk.template b/tools/device/AndroidProducts.mk.template new file mode 100644 index 00000000000..f31c5bf7999 --- /dev/null +++ b/tools/device/AndroidProducts.mk.template @@ -0,0 +1,2 @@ +PRODUCT_MAKEFILES := \ + $(LOCAL_DIR)/device___DEVICE__.mk diff --git a/tools/device/BoardConfig.mk.template b/tools/device/BoardConfig.mk.template new file mode 100644 index 00000000000..66538e35a3c --- /dev/null +++ b/tools/device/BoardConfig.mk.template @@ -0,0 +1,25 @@ +USE_CAMERA_STUB := true + +# inherit from the proprietary version +-include vendor/__MANUFACTURER__/__DEVICE__/BoardConfigVendor.mk + +TARGET_ARCH := arm +TARGET_NO_BOOTLOADER := true +TARGET_BOARD_PLATFORM := unknown +TARGET_CPU_ABI := armeabi +TARGET_BOOTLOADER_BOARD_NAME := __DEVICE__ + +BOARD_KERNEL_CMDLINE := __CMDLINE__ +BOARD_KERNEL_BASE := 0x__BASE__ +BOARD_KERNEL_PAGESIZE := __PAGE_SIZE__ + +# fix this up by examining /proc/mtd on a running device +BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00380000 +BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00480000 +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x08c60000 +BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x105c0000 +BOARD_FLASH_BLOCK_SIZE := 131072 + +TARGET_PREBUILT_KERNEL := device/__MANUFACTURER__/__DEVICE__/kernel + +BOARD_HAS_NO_SELECT_BUTTON := true diff --git a/tools/device/device.mk.template b/tools/device/device.mk.template new file mode 100644 index 00000000000..91ffdc951cc --- /dev/null +++ b/tools/device/device.mk.template @@ -0,0 +1,24 @@ +$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk) + +# The gps config appropriate for this device +$(call inherit-product, device/common/gps/gps_us_supl.mk) + +$(call inherit-product-if-exists, vendor/__MANUFACTURER__/__DEVICE__/__DEVICE__-vendor.mk) + +DEVICE_PACKAGE_OVERLAYS += device/__MANUFACTURER__/__DEVICE__/overlay + + +ifeq ($(TARGET_PREBUILT_KERNEL),) + LOCAL_KERNEL := device/__MANUFACTURER__/__DEVICE__/kernel +else + LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL) +endif + +PRODUCT_COPY_FILES += \ + $(LOCAL_KERNEL):kernel + +$(call inherit-product, build/target/product/full.mk) + +PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0 +PRODUCT_NAME := full___DEVICE__ +PRODUCT_DEVICE := __DEVICE__ diff --git a/tools/device/makerecoveries.sh b/tools/device/makerecoveries.sh new file mode 100644 index 00000000000..f561c81f6c4 --- /dev/null +++ b/tools/device/makerecoveries.sh @@ -0,0 +1,69 @@ +if [ -z "$1" ] +then + echo "Please provide a lunch option." + return +fi + +PRODUCTS=$1 + +for product in $PRODUCTS +do + echo $product +done + +echo $(echo $PRODUCTS | wc -w) Products + +unset PUBLISHED_RECOVERIES + +MCP=$(which mcp) +if [ -z "$MCP" ] +then + NO_UPLOAD=true +fi + +function mcpguard () { + if [ -z $NO_UPLOAD ] + then + mcp $1 $2 + md5sum $1 > $1.md5sum.txt + mcp $1.md5sum.txt $2.md5sum.txt + fi +} + +VERSION=$(cat bootable/recovery/Android.mk | grep RECOVERY_VERSION | grep RECOVERY_NAME | awk '{ print $4 }' | sed s/v//g) +echo Recovery Version: $VERSION + +for lunchoption in $PRODUCTS +do + lunch $lunchoption + if [ -z $NO_CLEAN ] + then + rm -rf $OUT/obj/EXECUTABLES/recovery_intermediates + rm -rf $OUT/recovery* + rm -rf $OUT/root* + fi + DEVICE_NAME=$(echo $TARGET_PRODUCT | sed s/koush_// | sed s/aosp_// | sed s/motorola// | sed s/huawei_// | sed s/htc_// | sed s/_us// | sed s/cyanogen_// | sed s/generic_// | sed s/full_//) + PRODUCT_NAME=$(basename $OUT) + make -j16 recoveryzip + RESULT=$? + if [ $RESULT != "0" ] + then + echo build error! + break + fi + mcpguard $OUT/recovery.img recoveries/recovery-clockwork-$VERSION-$DEVICE_NAME.img + mcpguard $OUT/utilities/update.zip recoveries/recovery-clockwork-$VERSION-$DEVICE_NAME.zip + + if [ -f "ROMManagerManifest/devices.rb" ] + then + pushd ROMManagerManifest + ruby devices.rb $DEVICE_NAME $VERSION $lunchoption + popd + fi +done + +for published_recovery in $PUBLISHED_RECOVERIES +do + echo $published_recovery +done + diff --git a/tools/device/mkrecoveryzip.sh b/tools/device/mkrecoveryzip.sh new file mode 100755 index 00000000000..e6fae3708b5 --- /dev/null +++ b/tools/device/mkrecoveryzip.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +OUT=$1 +SIGNAPK=$2 + +if [ -z "$OUT" -o -z "$SIGNAPK" ] +then + echo "Android build environment not detected." + exit 1 +fi + +ANDROID_ROOT=$(pwd) +OUT=$ANDROID_ROOT/$OUT +SIGNAPK=$ANDROID_ROOT/$SIGNAPK + +pushd . > /dev/null 2> /dev/null + +UTILITIES_DIR=$OUT/utilities +mkdir -p $UTILITIES_DIR +RECOVERY_DIR=$UTILITIES_DIR/recovery +rm -rf $RECOVERY_DIR +mkdir -p $RECOVERY_DIR +cd $RECOVERY_DIR +cp -R $OUT/recovery/root/etc etc +cp -R $OUT/recovery/root/sbin sbin +cp -R $OUT/recovery/root/res res +SCRIPT_DIR=META-INF/com/google/android +mkdir -p $SCRIPT_DIR +cp $OUT/system/bin/updater $SCRIPT_DIR/update-binary + + +UPDATER_SCRIPT=$SCRIPT_DIR/updater-script +rm -f $UPDATER_SCRIPT +touch $UPDATER_SCRIPT +mkdir -p $(dirname $UPDATER_SCRIPT) + +FILES= +SYMLINKS= + +for file in $(find .) +do + +if [ -d $file ] +then + continue +fi + +META_INF=$(echo $file | grep META-INF) +if [ ! -z $META_INF ] +then + continue; +fi + +if [ -h $file ] +then + SYMLINKS=$SYMLINKS' '$file +elif [ -f $file ] +then + FILES=$FILES' '$file +fi +done + + +echo 'ui_print("Replacing stock recovery with ClockworkMod recovery...");' >> $UPDATER_SCRIPT + +echo 'delete("sbin/recovery");' >> $UPDATER_SCRIPT +echo 'package_extract_file("sbin/recovery", "/sbin/recovery");' >> $UPDATER_SCRIPT +echo 'set_perm(0, 0, 0755, "/sbin/recovery");' >> $UPDATER_SCRIPT +echo 'symlink("recovery", "/sbin/busybox");' >> $UPDATER_SCRIPT + +echo 'run_program("/sbin/busybox", "sh", "-c", "busybox rm -f /etc ; busybox mkdir -p /etc;");' >> $UPDATER_SCRIPT + +for file in $FILES +do + echo 'delete("'$(echo $file | sed s!\\./!!g)'");' >> $UPDATER_SCRIPT + echo 'package_extract_file("'$(echo $file | sed s!\\./!!g)'", "'$(echo $file | sed s!\\./!/!g)'");' >> $UPDATER_SCRIPT + if [ -x $file ] + then + echo 'set_perm(0, 0, 0755, "'$(echo $file | sed s!\\./!/!g)'");' >> $UPDATER_SCRIPT + fi +done + +for file in $SYMLINKS +do + echo 'symlink("'$(readlink $file)'", "'$(echo $file | sed s!\\./!/!g)'");' >> $UPDATER_SCRIPT +done + +echo 'set_perm_recursive(0, 2000, 0755, 0755, "/sbin");' >> $UPDATER_SCRIPT +echo 'run_program("/sbin/busybox", "sh", "-c", "/sbin/killrecovery.sh");' >> $UPDATER_SCRIPT +rm -f $UTILITIES_DIR/unsigned.zip +rm -f $UTILITIES_DIR/update.zip +echo zip -ry $UTILITIES_DIR/unsigned.zip . -x $SYMLINKS '*\[*' '*\[\[*' +zip -ry $UTILITIES_DIR/unsigned.zip . -x $SYMLINKS '*\[*' '*\[\[*' +java -jar $SIGNAPK -w $ANDROID_ROOT/build/target/product/security/testkey.x509.pem $ANDROID_ROOT/build/target/product/security/testkey.pk8 $UTILITIES_DIR/unsigned.zip $UTILITIES_DIR/update.zip + +echo Recovery FakeFlash is now available at $OUT/utilities/update.zip +popd > /dev/null 2> /dev/null diff --git a/tools/device/mkvendor.sh b/tools/device/mkvendor.sh new file mode 100755 index 00000000000..778d82d9736 --- /dev/null +++ b/tools/device/mkvendor.sh @@ -0,0 +1,115 @@ +#!/bin/bash + +function usage +{ + echo Usage: + echo " $(basename $0) manufacturer device [boot.img]" + echo " The boot.img argument is the extracted recovery or boot image." + echo " The boot.img argument should not be provided for devices" + echo " that have non standard boot images (ie, Samsung)." + echo + echo Example: + echo " $(basename $0) motorola sholes ~/Downloads/recovery-sholes.img" + exit 0 +} + +MANUFACTURER=$1 +DEVICE=$2 +BOOTIMAGE=$3 + +UNPACKBOOTIMG=$(which unpackbootimg) + +echo Arguments: $@ + +if [ -z "$MANUFACTURER" ] +then + usage +fi + +if [ -z "$DEVICE" ] +then + usage +fi + +ANDROID_TOP=$(dirname $0)/../../../ +pushd $ANDROID_TOP > /dev/null +ANDROID_TOP=$(pwd) +popd > /dev/null + +TEMPLATE_DIR=$(dirname $0) +pushd $TEMPLATE_DIR > /dev/null +TEMPLATE_DIR=$(pwd) +popd > /dev/null + +DEVICE_DIR=$ANDROID_TOP/device/$MANUFACTURER/$DEVICE + +if [ ! -z "$BOOTIMAGE" ] +then + if [ -z "$UNPACKBOOTIMG" ] + then + echo unpackbootimg not found. Is your android build environment set up and have the host tools been built? + exit 0 + fi + + BOOTIMAGEFILE=$(basename $BOOTIMAGE) + + echo Output will be in $DEVICE_DIR + mkdir -p $DEVICE_DIR + + TMPDIR=/tmp/$(whoami)/bootimg + rm -rf $TMPDIR + mkdir -p $TMPDIR + cp $BOOTIMAGE $TMPDIR + pushd $TMPDIR > /dev/null + unpackbootimg -i $BOOTIMAGEFILE > /dev/null + mkdir ramdisk + pushd ramdisk > /dev/null + gunzip -c ../$BOOTIMAGEFILE-ramdisk.gz | cpio -i + popd > /dev/null + BASE=$(cat $TMPDIR/$BOOTIMAGEFILE-base) + CMDLINE=$(cat $TMPDIR/$BOOTIMAGEFILE-cmdline) + PAGESIZE=$(cat $TMPDIR/$BOOTIMAGEFILE-pagesize) + export SEDCMD="s#__CMDLINE__#$CMDLINE#g" + echo $SEDCMD > $TMPDIR/sedcommand + cp $TMPDIR/$BOOTIMAGEFILE-zImage $DEVICE_DIR/kernel + popd > /dev/null +else + mkdir -p $DEVICE_DIR + touch $DEVICE_DIR/kernel + BASE=10000000 + CMDLINE=no_console_suspend + PAGESIZE=00000800 + export SEDCMD="s#__CMDLINE__#$CMDLINE#g" + echo $SEDCMD > $TMPDIR/sedcommand +fi + +for file in $(find $TEMPLATE_DIR -name '*.template') +do + OUTPUT_FILE=$DEVICE_DIR/$(basename $(echo $file | sed s/\\.template//g)) + cat $file | sed s/__DEVICE__/$DEVICE/g | sed s/__MANUFACTURER__/$MANUFACTURER/g | sed -f $TMPDIR/sedcommand | sed s/__BASE__/$BASE/g | sed s/__PAGE_SIZE__/$PAGESIZE/g > $OUTPUT_FILE +done + +if [ ! -z "$TMPDIR" ] +then + RECOVERY_FSTAB=$TMPDIR/ramdisk/etc/recovery.fstab + if [ -f "$RECOVERY_FSTAB" ] + then + cp $RECOVERY_FSTAB $DEVICE_DIR/recovery.fstab + fi +fi + + +mv $DEVICE_DIR/device.mk $DEVICE_DIR/device_$DEVICE.mk + +echo Creating initial git repository. +pushd $DEVICE_DIR +git init +git add . +git commit -a -m "mkvendor.sh: Initial commit of $DEVICE" +popd + +echo Done! +echo Use the following command to set up your build environment: +echo ' 'lunch cm_$DEVICE-eng +echo And use the follwowing command to build a recovery: +echo ' '. build/tools/device/makerecoveries.sh cm_$DEVICE-eng diff --git a/tools/device/recovery.fstab.template b/tools/device/recovery.fstab.template new file mode 100644 index 00000000000..41fb92e8bd3 --- /dev/null +++ b/tools/device/recovery.fstab.template @@ -0,0 +1,10 @@ +# mount point fstype device [device2] + +/boot mtd boot +/cache yaffs2 cache +/data yaffs2 userdata +/misc mtd misc +/recovery mtd recovery +/sdcard vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0 +/system yaffs2 system +/sd-ext ext4 /dev/block/mmcblk0p2 diff --git a/tools/device/system.prop.template b/tools/device/system.prop.template new file mode 100644 index 00000000000..4113929395e --- /dev/null +++ b/tools/device/system.prop.template @@ -0,0 +1,3 @@ +# +# system.prop for __DEVICE__ +# From c9f2f4790abe7d1c888a20893df1d28efa9fdbcf Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Wed, 11 Apr 2012 10:11:52 -0700 Subject: [PATCH 0664/1096] add cm.mk.template file for mkvendor.sh Change-Id: Iba150a5350a7a7dbc9e3444d71d4ff293d51f3d7 fix template for mkvendor.sh Change-Id: I2c78ed013053efa0c399e022502fd9ec4a1de8e6 mkvendor.sh: force armeabi-v7a Change-Id: I9f29eec73a13144b47ff7b1db1d59cb1e5a4ef64 mkvendor.sh: typo Change-Id: I8cc2303fde7c815384e09f65b6d4a1116ac29ee4 mkvendor.sh: more fixes Change-Id: I0c641d42a96e44bb9170475d5de21cb8644e4d3d BoardConfig.mk.template: Add TARGET_CPU_VARIANT Change-Id: I8cd74a794e0d1a6818b5479cf7f5264e87d565f3 BoardConfig.mk.template: Add TARGET_CPU_SMP This one is easy forget if not in the template Change-Id: If65e557a661ecc81c6bfc434525b3c9937ff988e --- tools/device/BoardConfig.mk.template | 8 +++++++- tools/device/cm.mk.template | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 tools/device/cm.mk.template diff --git a/tools/device/BoardConfig.mk.template b/tools/device/BoardConfig.mk.template index 66538e35a3c..617673f9807 100644 --- a/tools/device/BoardConfig.mk.template +++ b/tools/device/BoardConfig.mk.template @@ -6,7 +6,13 @@ USE_CAMERA_STUB := true TARGET_ARCH := arm TARGET_NO_BOOTLOADER := true TARGET_BOARD_PLATFORM := unknown -TARGET_CPU_ABI := armeabi +TARGET_CPU_ABI := armeabi-v7a +TARGET_CPU_ABI2 := armeabi +TARGET_ARCH_VARIANT := armv7-a-neon +TARGET_CPU_VARIANT := cortex-a7 +TARGET_CPU_SMP := true +ARCH_ARM_HAVE_TLS_REGISTER := true + TARGET_BOOTLOADER_BOARD_NAME := __DEVICE__ BOARD_KERNEL_CMDLINE := __CMDLINE__ diff --git a/tools/device/cm.mk.template b/tools/device/cm.mk.template new file mode 100644 index 00000000000..ed5ce1d73dc --- /dev/null +++ b/tools/device/cm.mk.template @@ -0,0 +1,18 @@ +## Specify phone tech before including full_phone +$(call inherit-product, vendor/cm/config/gsm.mk) + +# Release name +PRODUCT_RELEASE_NAME := __DEVICE__ + +# Inherit some common CM stuff. +$(call inherit-product, vendor/cm/config/common_full_phone.mk) + +# Inherit device configuration +$(call inherit-product, device/__MANUFACTURER__/__DEVICE__/device___DEVICE__.mk) + +## Device identifier. This must come after all inclusions +PRODUCT_DEVICE := __DEVICE__ +PRODUCT_NAME := cm___DEVICE__ +PRODUCT_BRAND := __MANUFACTURER__ +PRODUCT_MODEL := __DEVICE__ +PRODUCT_MANUFACTURER := __MANUFACTURER__ From 1a6a6e4ae3b86c606866a93d7b7656689407c784 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Sun, 15 Jul 2012 15:25:49 +0200 Subject: [PATCH 0665/1096] Use less heap space for dex on 32-bit build hosts Run dex with -JXmx1024M instead of 2048M if running on a 32-bit host. Surprisingly this appears to also work for framework and services; if not, a little fine-tuning will be needed. This does not change anything for non-32-bit hosts. Change-Id: I1d87c3e394acc934af6f7770ea54ba265a1df838 --- core/definitions.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/definitions.mk b/core/definitions.mk index 90bea179653..f51221d2bb8 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1695,7 +1695,7 @@ define transform-classes.jar-to-dex @mkdir -p $(dir $@) $(hide) rm -f $(dir $@)classes*.dex $(hide) $(DX) \ - $(if $(findstring windows,$(HOST_OS)),,-JXms16M -JXmx2048M) \ + $(if $(findstring windows,$(HOST_OS)),,-JXms16M -JXmx$(if $(call streq,$(HOST_BITS),32),1024,2048)M) \ --dex --output=$(dir $@) \ $(incremental_dex) \ $(if $(NO_OPTIMIZE_DX), \ From 6e2585273f2e7a70660a22ee9589dd80d1810f99 Mon Sep 17 00:00:00 2001 From: Austen Dicken Date: Sun, 15 Jul 2012 16:28:05 -0500 Subject: [PATCH 0666/1096] update ota_from_target_files to handle mounting/unmounting for backupscript backupscript should not be mounting/unmounting itself as it makes other scripts have unexpected results (such as modelid_cfg, which expects /system to be mounted) instead have the ota script handle the mounting/unmounting Change-Id: I94511f4147c624d975cb3ecbeaa8b0e98f63437c --- tools/releasetools/edify_generator.py | 6 ++++++ tools/releasetools/ota_from_target_files | 2 ++ 2 files changed, 8 insertions(+) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index 0a780bcec0c..3b30cbd8706 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -197,6 +197,12 @@ def Mount(self, mount_point, mount_options_by_format=""): p.device, p.mount_point, mount_dict.get(p.fs_type, ""))) self.mounts.add(p.mount_point) + def Unmount(self, mount_point): + """Unmount the partiiton with the given mount_point.""" + if mount_point in self.mounts: + self.mounts.remove(mount_point) + self.script.append('unmount("%s");' % (mount_point,)) + def UnpackPackageDir(self, src, dst): """Unpack a given directory from the OTA package into the given destination directory.""" diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index de2f5898966..0de1b39b8da 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -556,7 +556,9 @@ else if get_stage("%(bcb_dev)s") == "3/3" then device_specific.FullOTA_InstallBegin() if OPTIONS.backuptool: + script.Mount("/system") script.RunBackup("backup") + script.Unmount("/system") system_progress = 0.75 From 87c5c5aec08fffa2e9a58913d8332bd01b7154d1 Mon Sep 17 00:00:00 2001 From: Daniel Bateman Date: Sat, 4 Aug 2012 03:48:09 -0500 Subject: [PATCH 0667/1096] envsetup: Add some more commands * mmp: Like mm but pushes the built files afterward. * mmmp: Like mmm but pushes the built files afterward. These may be useful when doing debugging on a individual library, since it builds the library and pushes the new library to the device. Examples: mmmp -B device/samsung/vibrantmtd/libgps mmmp -B packages/apps/Torch Thanks: tpruvot for revisions Change-Id: Ia6bdd2b63797ea86e164af69496b70ea6d7c5156 --- envsetup.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 4b3e7255acb..90417f0a709 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -9,6 +9,8 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - mmm: Builds all of the modules in the supplied directories, but not their dependencies. To limit the modules being built use the syntax: mmm dir/:target1,target2. - mma: Builds all of the modules in the current directory, and their dependencies. +- mmp: Builds all of the modules in the current directory and pushes them to the device. +- mmmp: Builds all of the modules in the supplied directories and pushes them to the device. - mmma: Builds all of the modules in the supplied directories, and their dependencies. - cgrep: Greps on all local C/C++ files. - ggrep: Greps on all local Gradle files. @@ -745,6 +747,59 @@ EOF return $? } +# Credit for color strip sed: http://goo.gl/BoIcm +function mmmp() +{ + if [[ $# < 1 || $1 == "--help" || $1 == "-h" ]]; then + echo "mmmp [make arguments] " + return 1 + fi + + # Get product name from cm_ + PRODUCT=`echo $TARGET_PRODUCT | tr "_" "\n" | tail -n 1` + + adb start-server # Prevent unexpected starting server message from adb get-state in the next line + if [ $(adb get-state) != device -a $(adb shell busybox test -e /sbin/recovery 2> /dev/null; echo $?) != 0 ] ; then + echo "No device is online. Waiting for one..." + echo "Please connect USB and/or enable USB debugging" + until [ $(adb get-state) = device -o $(adb shell busybox test -e /sbin/recovery 2> /dev/null; echo $?) = 0 ];do + sleep 1 + done + echo "Device Found.." + fi + + adb root &> /dev/null + sleep 0.3 + adb wait-for-device &> /dev/null + sleep 0.3 + adb remount &> /dev/null + + mmm $* | tee .log + + # Install: + LOC=$(cat .log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep 'Install' | cut -d ':' -f 2) + + # Copy: + LOC=$LOC $(cat .log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep 'Copy' | cut -d ':' -f 2) + + for FILE in $LOC; do + # Get target file name (i.e. system/bin/adb) + TARGET=$(echo $FILE | sed "s/\/$PRODUCT\//\n/" | tail -n 1) + + # Don't send files that are not in /system. + if ! echo $TARGET | egrep '^system\/' > /dev/null ; then + continue + else + echo "Pushing: $TARGET" + adb push $FILE $TARGET + fi + done + rm -f .log + return 0 +} + +alias mmp='mmmp .' + function gettop { local TOPFILE=build/core/envsetup.mk From 106646565931b44c5fc2d0a17f60e0ad2b2b0420 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Mon, 20 Aug 2012 11:00:51 -0700 Subject: [PATCH 0668/1096] build: Add Qualcomm's helper macros * This is used everywhere in Qualcomm's code. There's no reason we need to constantly replace it with uglier stuff in our Makefiles. Change-Id: I0183a338470ec96a38f356a47bae65a0d3fb2c95 --- core/main.mk | 3 + core/qcom_utils.mk | 191 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100755 core/qcom_utils.mk diff --git a/core/main.mk b/core/main.mk index 50699dfe2b2..22cece99c33 100644 --- a/core/main.mk +++ b/core/main.mk @@ -259,6 +259,9 @@ endif # Bring in standard build system definitions. include $(BUILD_SYSTEM)/definitions.mk +# Bring in Qualcomm helper macros +include $(BUILD_SYSTEM)/qcom_utils.mk + # Bring in dex_preopt.mk include $(BUILD_SYSTEM)/dex_preopt.mk diff --git a/core/qcom_utils.mk b/core/qcom_utils.mk new file mode 100755 index 00000000000..76cff81aded --- /dev/null +++ b/core/qcom_utils.mk @@ -0,0 +1,191 @@ +# vars for use by utils +empty := +space := $(empty) $(empty) +colon := $(empty):$(empty) +underscore := $(empty)_$(empty) + +# $(call match-word,w1,w2) +# checks if w1 == w2 +# How it works +# if (w1-w2 not empty or w2-w1 not empty) then not_match else match +# +# returns true or empty +#$(warning :$(1): :$(2): :$(subst $(1),,$(2)):) \ +#$(warning :$(2): :$(1): :$(subst $(2),,$(1)):) \ +# +define match-word +$(strip \ + $(if $(or $(subst $(1),$(empty),$(2)),$(subst $(2),$(empty),$(1))),,true) \ +) +endef + +# $(call find-word-in-list,w,wlist) +# finds an exact match of word w in word list wlist +# +# How it works +# fill wlist spaces with colon +# wrap w with colon +# search word w in list wl, if found match m, return stripped word w +# +# returns stripped word or empty +define find-word-in-list +$(strip \ + $(eval wl:= $(colon)$(subst $(space),$(colon),$(strip $(2)))$(colon)) \ + $(eval w:= $(colon)$(strip $(1))$(colon)) \ + $(eval m:= $(findstring $(w),$(wl))) \ + $(if $(m),$(1),) \ +) +endef + +# $(call match-word-in-list,w,wlist) +# does an exact match of word w in word list wlist +# How it works +# if the input word is not empty +# return output of an exact match of word w in wordlist wlist +# else +# return empty +# returns true or empty +define match-word-in-list +$(strip \ + $(if $(strip $(1)), \ + $(call match-word,$(call find-word-in-list,$(1),$(2)),$(strip $(1))), \ + ) \ +) +endef + +# $(call match-prefix,p,delim,w/wlist) +# matches prefix p in wlist using delimiter delim +# +# How it works +# trim the words in wlist w +# if find-word-in-list returns not empty +# return true +# else +# return empty +# +define match-prefix +$(strip \ + $(eval w := $(strip $(1)$(strip $(2)))) \ + $(eval text := $(patsubst $(w)%,$(1),$(3))) \ + $(if $(call match-word-in-list,$(1),$(text)),true,) \ +) +endef + +# ---- +# The following utilities are meant for board platform specific +# featurisation + +# $(call get-vendor-board-platforms,v) +# returns list of board platforms for vendor v +define get-vendor-board-platforms +$($(1)_BOARD_PLATFORMS) +endef + +# $(call is-board-platform,bp) +# returns true or empty +define is-board-platform +$(call match-word,$(1),$(TARGET_BOARD_PLATFORM)) +endef + +# $(call is-not-board-platform,bp) +# returns true or empty +define is-not-board-platform +$(if $(call match-word,$(1),$(TARGET_BOARD_PLATFORM)),,true) +endef + +# $(call is-board-platform-in-list,bpl) +# returns true or empty +define is-board-platform-in-list +$(call match-word-in-list,$(TARGET_BOARD_PLATFORM),$(1)) +endef + +# $(call is-vendor-board-platform,vendor) +# returns true or empty +define is-vendor-board-platform +$(strip \ + $(call match-word-in-list,$(TARGET_BOARD_PLATFORM),\ + $(call get-vendor-board-platforms,$(1)) \ + ) \ +) +endef + +# $(call is-chipset-in-board-platform,chipset) +# does a prefix match of chipset in TARGET_BOARD_PLATFORM +# uses underscore as a delimiter +# +# returns true or empty +define is-chipset-in-board-platform +$(call match-prefix,$(1),$(underscore),$(TARGET_BOARD_PLATFORM)) +endef + +# $(call is-chipset-prefix-in-board-platform,prefix) +# does a chipset prefix match in TARGET_BOARD_PLATFORM +# assumes '_' and 'a' as the delimiter to the chipset prefix +# +# How it works +# if ($(prefix)_ or $(prefix)a match in board platform) +# return true +# else +# return empty +# +define is-chipset-prefix-in-board-platform +$(strip \ + $(eval delim_a := $(empty)a$(empty)) \ + $(if \ + $(or \ + $(call match-prefix,$(1),$(delim_a),$(TARGET_BOARD_PLATFORM)), \ + $(call match-prefix,$(1),$(underscore),$(TARGET_BOARD_PLATFORM)), \ + ), \ + true, \ + ) \ +) +endef + +#---- +# The following utilities are meant for Android Code Name +# specific featurisation +# +# refer http://source.android.com/source/build-numbers.html +# for code names and associated sdk versions +CUPCAKE_SDK_VERSIONS := 3 +DONUT_SDK_VERSIONS := 4 +ECLAIR_SDK_VERSIONS := 5 6 7 +FROYO_SDK_VERSIONS := 8 +GINGERBREAD_SDK_VERSIONS := 9 10 +HONEYCOMB_SDK_VERSIONS := 11 12 13 +ICECREAM_SANDWICH_SDK_VERSIONS := 14 15 +JELLY_BEAN_SDK_VERSIONS := 16 + +# $(call is-android-codename,codename) +# codename is one of cupcake,donut,eclair,froyo,gingerbread,icecream +# please refer the $(codename)_SDK_VERSIONS declared above +define is-android-codename +$(strip \ + $(if \ + $(call match-word-in-list,$(PLATFORM_SDK_VERSION),$($(1)_SDK_VERSIONS)), \ + true, \ + ) \ +) +endef + +# $(call is-android-codename-in-list,cnlist) +# cnlist is combination/list of android codenames +define is-android-codename-in-list +$(strip \ + $(eval acn := $(empty)) \ + $(foreach \ + i,$(1),\ + $(eval acn += \ + $(if \ + $(call \ + match-word-in-list,\ + $(PLATFORM_SDK_VERSION),\ + $($(i)_SDK_VERSIONS)\ + ),\ + true,\ + )\ + )\ + ) \ + $(if $(strip $(acn)),true,) \ +) +endef From fadaf9a752362d9073b8845e58b8b727d025bf8d Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 31 Aug 2012 22:45:52 +0200 Subject: [PATCH 0669/1096] build: Remove wallpapers from full_base. They are already in the cm common config for the full phone. Change-Id: I02fc0ea73e92ae8b19931d05e6783e3cfa166af2 --- target/product/full_base.mk | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/target/product/full_base.mk b/target/product/full_base.mk index caace76eb50..69258e6ce69 100644 --- a/target/product/full_base.mk +++ b/target/product/full_base.mk @@ -27,17 +27,6 @@ PRODUCT_PACKAGES := \ libwnndict \ WAPPushManager -PRODUCT_PACKAGES += \ - Galaxy4 \ - HoloSpiralWallpaper \ - LiveWallpapers \ - LiveWallpapersPicker \ - MagicSmokeWallpapers \ - NoiseField \ - PhaseBeam \ - VisualizationWallpapers \ - PhotoTable - # Additional settings used in all AOSP builds PRODUCT_PROPERTY_OVERRIDES := \ ro.com.android.dateformat=MM-dd-yyyy \ From ef6dfbcb0ac6a0e677ab59be481959539fb9f94f Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Fri, 7 Sep 2012 11:44:27 +0300 Subject: [PATCH 0670/1096] envsetup.sh: Fix the `reposync` function It seems ionice can't find `repo` if it's in ~/bin, even if ~/bin is in the user's $PATH. Placing repo into /usr/bin or /usr/local/ bin works, but is undesirable (build instructions from both AOSP and CM tell users to put repo into ~/bin, and repo likes to update itself from time to time). This forces the reposync function to use the full path to the repo binary. Change-Id: I9dc4a3d4ec3f39563e3a84de7321189700079c2e --- envsetup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 90417f0a709..3c1f2202fc8 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2157,7 +2157,7 @@ function reposync() { repo sync -j 4 "$@" ;; *) - schedtool -B -n 1 -e ionice -n 1 repo sync -j 4 "$@" + schedtool -B -n 1 -e ionice -n 1 `which repo` sync -j 4 "$@" ;; esac } From b99aa5757561d166971edbcdd5544a43da0eec2e Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Mon, 17 Sep 2012 11:33:18 -0700 Subject: [PATCH 0671/1096] build: Add "aospremote" command * Adds the git remote for the matching AOSP repository. Change-Id: Iad03fb95874ff39a39083218aec0d834e82b4480 --- envsetup.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 3c1f2202fc8..8a3a923185b 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -21,6 +21,7 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - cmremote: Add git remote for CM Gerrit Review - cmgerrit: A Git wrapper that fetches/pushes patch from/to CM Gerrit Review - cmrebase: Rebase a Gerrit change and push it again +- aospremote: Add git remote for matching AOSP repository - mka: Builds using SCHED_BATCH on all processors - reposync: Parallel repo sync using ionice and SCHED_BATCH @@ -1844,6 +1845,23 @@ function cmremote() } export -f cmremote +function aospremote() +{ + git remote rm aosp 2> /dev/null + if [ ! -d .git ] + then + echo .git directory not found. Please run this from the root directory of the Android repository you wish to set up. + fi + PROJECT=`pwd | sed s#$ANDROID_BUILD_TOP/##g` + if (echo $PROJECT | grep -qv "^device") + then + PFX="platform/" + fi + git remote add aosp https://android.googlesource.com/$PFX$PROJECT + echo "Remote 'aosp' created" +} +export -f aospremote + function makerecipe() { if [ -z "$1" ] then From 34fe268599be4edc347f7d9078e18011111443b9 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Thu, 20 Sep 2012 10:48:13 -0600 Subject: [PATCH 0672/1096] build: Pass OTAPACKAGE location to squisher Pass the OTAPACKAGE location so we don't have to guess what the package name will be. This fixes an issue when BUILD_NUMBER is defined in an environment with automated builds. Change-Id: Iab18b541de37c99d237aabc3cb7b2e9ab076617b --- core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index 425b5925b70..c742dd3e189 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1561,10 +1561,10 @@ otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) bacon: otapackage ifneq ($(TARGET_CUSTOM_RELEASETOOL),) @echo -e ${CL_YLW}"Running custom releasetool..."${CL_RST} - $(hide) $(TARGET_CUSTOM_RELEASETOOL) + $(hide) OTAPACKAGE=$(PWD)/$(INTERNAL_OTA_PACKAGE_TARGET) $(TARGET_CUSTOM_RELEASETOOL) else @echo -e ${CL_YLW}"Running releasetool..."${CL_RST} - $(hide) ./vendor/cm/tools/squisher + $(hide) OTAPACKAGE=$(PWD)/$(INTERNAL_OTA_PACKAGE_TARGET) ./vendor/cm/tools/squisher endif endif # recovery_fstab is defined From f8374f77718944e64e94bbda563aedfd26280b84 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sun, 23 Sep 2012 23:46:55 -0700 Subject: [PATCH 0673/1096] build: Add "installboot" command to install boot images * For devices that lack fastboot, this command will copy the boot image to a running device, write it out to the correct partition with dd, copy the modules and set the correct permissions. * Field surveys have discovered that a specific CM device maintainer is handling two devices, one with boot partition p7 and one at p8. * Extensive research has unveiled the fact that mixing up these partitions across these two specific devices will cause corruption of the TZ firmware, which cannot be restored and results in an unrecoverable brick. * Automate the process so this idiot (me) stops breaking shit. Change-Id: I0dc5449daf128181e2e349ea26ad5741cc87bfe7 --- envsetup.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 8a3a923185b..72150aa0be6 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1862,6 +1862,46 @@ function aospremote() } export -f aospremote +function installboot() +{ + if [ ! -e "$OUT/recovery/root/etc/recovery.fstab" ]; + then + echo "No recovery.fstab found. Build recovery first." + return 1 + fi + if [ ! -e "$OUT/boot.img" ]; + then + echo "No boot.img found. Run make bootimage first." + return 1 + fi + PARTITION=`grep "^\/boot" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}` + if [ -z "$PARTITION" ]; + then + echo "Unable to determine boot partition." + return 1 + fi + adb start-server + adb root + sleep 1 + adb wait-for-device + adb remount + adb wait-for-device + if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); + then + adb push $OUT/boot.img /cache/ + for i in $OUT/system/lib/modules/*; + do + adb push $i /system/lib/modules/ + done + adb shell dd if=/cache/boot.img of=$PARTITION + adb shell chmod 644 /system/lib/modules/* + echo "Installation complete." + else + echo "The connected device does not appear to be $CM_BUILD, run away!" + fi +} + + function makerecipe() { if [ -z "$1" ] then From 962a2553fa0e1b7bb610072e49d8c7661eb7cd7d Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Thu, 27 Sep 2012 18:11:25 +0530 Subject: [PATCH 0674/1096] envsetup: set OUT_DIR to an absolute path always OUT_DIR was set to $(TOPDIR)out previously, but $(TOPDIR) was null, so it was a relative path. This broke releasetools, inline kernel building, etc since they require absolute paths. Fix it so that it is set to $(shell readlink -f .)/out if $(TOPDIR) is null. Also remove hacks which checked if (OUT_DIR) was out and changed it to $(ANDROID_BUILD_TOP)/out to workaround the aforementioned problem. Change-Id: I459a3b1325a1bbea0565cd73f6acf160d4ed9b39 --- core/envsetup.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/envsetup.mk b/core/envsetup.mk index 124a91b4f2b..62ce78d49d1 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -199,8 +199,12 @@ endif ifeq (,$(strip $(OUT_DIR))) ifeq (,$(strip $(OUT_DIR_COMMON_BASE))) +ifneq ($(TOPDIR),) OUT_DIR := $(TOPDIR)out else +OUT_DIR := $(shell readlink -f .)/out +endif +else OUT_DIR := $(OUT_DIR_COMMON_BASE)/$(notdir $(PWD)) endif endif From 9e836c5b46587b461e82ad614f5d8f8490b2c974 Mon Sep 17 00:00:00 2001 From: David Ferguson Date: Thu, 4 Oct 2012 10:15:58 -0400 Subject: [PATCH 0675/1096] build: work around missing readlink -f on Mac Change-Id: I5d56366cf33a2b02f1886c87815d00cff279779d --- core/envsetup.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/envsetup.mk b/core/envsetup.mk index 62ce78d49d1..ebc748ae6da 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -202,7 +202,7 @@ ifeq (,$(strip $(OUT_DIR_COMMON_BASE))) ifneq ($(TOPDIR),) OUT_DIR := $(TOPDIR)out else -OUT_DIR := $(shell readlink -f .)/out +OUT_DIR := $(shell python -c 'import os,sys; print os.path.realpath(sys.argv[1])' .)/out endif else OUT_DIR := $(OUT_DIR_COMMON_BASE)/$(notdir $(PWD)) From 0935ec17a3cdac62679fa583667c9876895f948c Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Tue, 16 Oct 2012 19:40:18 +0530 Subject: [PATCH 0676/1096] dopush: improvements - use $OUT instead of replacing device name with a new line and then "tail"ing it. - adb shell stop/start if file is SystemUI.apk or framework/* - and some cleanup. Change-Id: I49278406dc53285b4919f7d41116ad849ec38250 --- envsetup.sh | 114 ++++++++++++++++++++++++++++------------------------ 1 file changed, 61 insertions(+), 53 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 72150aa0be6..7b2c1eedd5b 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -748,59 +748,6 @@ EOF return $? } -# Credit for color strip sed: http://goo.gl/BoIcm -function mmmp() -{ - if [[ $# < 1 || $1 == "--help" || $1 == "-h" ]]; then - echo "mmmp [make arguments] " - return 1 - fi - - # Get product name from cm_ - PRODUCT=`echo $TARGET_PRODUCT | tr "_" "\n" | tail -n 1` - - adb start-server # Prevent unexpected starting server message from adb get-state in the next line - if [ $(adb get-state) != device -a $(adb shell busybox test -e /sbin/recovery 2> /dev/null; echo $?) != 0 ] ; then - echo "No device is online. Waiting for one..." - echo "Please connect USB and/or enable USB debugging" - until [ $(adb get-state) = device -o $(adb shell busybox test -e /sbin/recovery 2> /dev/null; echo $?) = 0 ];do - sleep 1 - done - echo "Device Found.." - fi - - adb root &> /dev/null - sleep 0.3 - adb wait-for-device &> /dev/null - sleep 0.3 - adb remount &> /dev/null - - mmm $* | tee .log - - # Install: - LOC=$(cat .log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep 'Install' | cut -d ':' -f 2) - - # Copy: - LOC=$LOC $(cat .log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep 'Copy' | cut -d ':' -f 2) - - for FILE in $LOC; do - # Get target file name (i.e. system/bin/adb) - TARGET=$(echo $FILE | sed "s/\/$PRODUCT\//\n/" | tail -n 1) - - # Don't send files that are not in /system. - if ! echo $TARGET | egrep '^system\/' > /dev/null ; then - continue - else - echo "Pushing: $TARGET" - adb push $FILE $TARGET - fi - done - rm -f .log - return 0 -} - -alias mmp='mmmp .' - function gettop { local TOPFILE=build/core/envsetup.mk @@ -2229,6 +2176,67 @@ function repodiff() { 'echo "$REPO_PATH ($REPO_REMOTE)"; git diff ${diffopts} 2>/dev/null ;' } +# Credit for color strip sed: http://goo.gl/BoIcm +function dopush() +{ + local func=$1 + shift + + adb start-server # Prevent unexpected starting server message from adb get-state in the next line + if [ $(adb get-state) != device -a $(adb shell busybox test -e /sbin/recovery 2> /dev/null; echo $?) != 0 ] ; then + echo "No device is online. Waiting for one..." + echo "Please connect USB and/or enable USB debugging" + until [ $(adb get-state) = device -o $(adb shell busybox test -e /sbin/recovery 2> /dev/null; echo $?) = 0 ];do + sleep 1 + done + echo "Device Found." + fi + + adb root &> /dev/null + sleep 0.3 + adb wait-for-device &> /dev/null + sleep 0.3 + adb remount &> /dev/null + + $func $* | tee $OUT/.log + + # Install: + LOC=$(cat $OUT/.log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep 'Install' | cut -d ':' -f 2) + + # Copy: + LOC=$LOC $(cat $OUT/.log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep 'Copy' | cut -d ':' -f 2) + + for FILE in $LOC; do + # Get target file name (i.e. system/bin/adb) + TARGET=$(echo $FILE | sed "s#$OUT/##") + + # Don't send files that are not in /system. + if ! echo $TARGET | egrep '^system\/' > /dev/null ; then + continue + else + case $TARGET in + system/app/SystemUI.apk|system/framework/*) + stop_n_start=true + ;; + *) + stop_n_start=false + ;; + esac + if $stop_n_start ; then adb shell stop ; fi + echo "Pushing: $TARGET" + adb push $FILE $TARGET + if $stop_n_start ; then adb shell start ; fi + fi + done + rm -f $OUT/.log + return 0 +} + +alias mmp='dopush mm' +alias mmmp='dopush mmm' +alias mkap='dopush mka' +alias cmkap='dopush cmka' + # Force JAVA_HOME to point to java 1.7 or java 1.6 if it isn't already set. # # Note that the MacOS path for java 1.7 includes a minor revision number (sigh). From fa0535e3ccad786b9cc224867d84c7241011fdee Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Thu, 1 Nov 2012 12:58:45 +0530 Subject: [PATCH 0677/1096] cleanbuild: add *.zip.md5sum to installclean_files Change-Id: I4b68bb9a8d421a54b008c5318fa82ed230bd6441 --- core/cleanbuild.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/cleanbuild.mk b/core/cleanbuild.mk index 8a1cf5b7aad..8d199934d12 100644 --- a/core/cleanbuild.mk +++ b/core/cleanbuild.mk @@ -194,6 +194,7 @@ installclean_files := \ $(PRODUCT_OUT)/*.xlb \ $(PRODUCT_OUT)/*.zip \ $(PRODUCT_OUT)/kernel \ + $(PRODUCT_OUT)/*.zip.md5sum \ $(PRODUCT_OUT)/data \ $(PRODUCT_OUT)/skin \ $(PRODUCT_OUT)/obj/APPS \ From 0a9a07110716f06e47a39b99eb9bd4a13ac1043d Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Wed, 24 Oct 2012 16:40:42 -0700 Subject: [PATCH 0678/1096] build: Add "installrecovery" command * Similar to "installboot", add an "installrecovery" command which writes the recovery image to the correct partition of a running device. Change-Id: I1dcca44fd0d8afa08ece9e99cd914547acb99c83 --- envsetup.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 7b2c1eedd5b..032068a1fee 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -24,6 +24,8 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - aospremote: Add git remote for matching AOSP repository - mka: Builds using SCHED_BATCH on all processors - reposync: Parallel repo sync using ionice and SCHED_BATCH +- installboot: Installs a boot.img to the connected device. +- installrecovery: Installs a recovery.img to the connected device. Look at the source to view more functions. The complete list is: EOF @@ -1848,6 +1850,39 @@ function installboot() fi } +function installrecovery() +{ + if [ ! -e "$OUT/recovery/root/etc/recovery.fstab" ]; + then + echo "No recovery.fstab found. Build recovery first." + return 1 + fi + if [ ! -e "$OUT/recovery.img" ]; + then + echo "No recovery.img found. Run make recoveryimage first." + return 1 + fi + PARTITION=`grep "^\/recovery" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}` + if [ -z "$PARTITION" ]; + then + echo "Unable to determine recovery partition." + return 1 + fi + adb start-server + adb root + sleep 1 + adb wait-for-device + adb remount + adb wait-for-device + if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); + then + adb push $OUT/recovery.img /cache/ + adb shell dd if=/cache/recovery.img of=$PARTITION + echo "Installation complete." + else + echo "The connected device does not appear to be $CM_BUILD, run away!" + fi +} function makerecipe() { if [ -z "$1" ] From 7990b7f1f7c058142717f7bb6a09777339d45ad4 Mon Sep 17 00:00:00 2001 From: Nebojsa Cvetkovic Date: Fri, 9 Nov 2012 23:02:54 +0000 Subject: [PATCH 0679/1096] omnom (brunch + eat) command Change-Id: I524e5a1450de7ea9c93512eebcb10f320e68fa82 --- envsetup.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 032068a1fee..05d9f07642f 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -750,6 +750,12 @@ EOF return $? } +function omnom +{ + brunch $* + eat +} + function gettop { local TOPFILE=build/core/envsetup.mk From c2d7b5b0c728ad6299d007cb964ddbb736c0d494 Mon Sep 17 00:00:00 2001 From: Arnav Gupta Date: Fri, 23 Nov 2012 10:47:44 -0700 Subject: [PATCH 0680/1096] mka: change how make is called in some environments make -j N xxx results in compiling target 'N' instead of 'xxx' make -jN xxx will always make 'xxx' with N number of threads Signed-off-by: Arnav Gupta Change-Id: I77f17c9286a5ef1d61163d8f978900fb4c24e2e7 --- envsetup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 05d9f07642f..2dc3b806ed1 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2192,7 +2192,7 @@ function mka() { make -j `sysctl hw.ncpu|cut -d" " -f2` "$@" ;; *) - schedtool -B -n 1 -e ionice -n 1 make -j `cat /proc/cpuinfo | grep "^processor" | wc -l` "$@" + schedtool -B -n 1 -e ionice -n 1 make -j$(cat /proc/cpuinfo | grep "^processor" | wc -l) "$@" ;; esac } From 25958b196772451f3f082af45475a5bfa04f6e8e Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 7 Dec 2012 00:21:36 -0800 Subject: [PATCH 0681/1096] build: Add board platforms to qcom_utils Change-Id: I85458167bf2b9c04b029d09b87bf791ff4cfd04d build: Use common name for QCOM 7K boards. This is needed to build QCOM HAL without external modifications. The device would now have to specify msm7x27 or msm7x30 instead of specifying the full name. Patch Set 2: Add msm7x27a into the list. Change-Id: I25018e397b5aad27fab5244731a574ae86752e17 Add new version to qcom_utils.mk Change-Id: I1ca1532fd4968450715ecd0cca7729e0e6d507ef Build: update qcom_utils.mk Add build macro to determine Android Release Adding platform sdk version 18 for JB MR2. Change-Id: I79aa831ddd335bd14bd777506c210acc5d9960f1 --- core/qcom_utils.mk | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/core/qcom_utils.mk b/core/qcom_utils.mk index 76cff81aded..71ba3ad40f2 100755 --- a/core/qcom_utils.mk +++ b/core/qcom_utils.mk @@ -1,3 +1,20 @@ +# Board platforms lists to be used for +# TARGET_BOARD_PLATFORM specific featurization +QCOM_BOARD_PLATFORMS := msm7x27 +QCOM_BOARD_PLATFORMS += msm7x27a +QCOM_BOARD_PLATFORMS += msm7x30 +QCOM_BOARD_PLATFORMS += msm8660 +QCOM_BOARD_PLATFORMS += msm8960 +QCOM_BOARD_PLATFORMS += msm8974 + +MSM7K_BOARD_PLATFORMS := msm7x30 +MSM7K_BOARD_PLATFORMS += msm7x27 +MSM7K_BOARD_PLATFORMS += msm7x27a +MSM7K_BOARD_PLATFORMS += msm7k + +QSD8K_BOARD_PLATFORMS := qsd8k + + # vars for use by utils empty := space := $(empty) $(empty) @@ -154,7 +171,17 @@ FROYO_SDK_VERSIONS := 8 GINGERBREAD_SDK_VERSIONS := 9 10 HONEYCOMB_SDK_VERSIONS := 11 12 13 ICECREAM_SANDWICH_SDK_VERSIONS := 14 15 -JELLY_BEAN_SDK_VERSIONS := 16 +JELLY_BEAN_SDK_VERSIONS := 16 17 18 + +# $(call is-platform-sdk-version-at-least,version) +# version is a numeric SDK_VERSION defined above +define is-platform-sdk-version-at-least +$(strip \ + $(if $(filter 1,$(shell echo "$$(( $(PLATFORM_SDK_VERSION) >= $(1) ))" )), \ + true, \ + ) \ +) +endef # $(call is-android-codename,codename) # codename is one of cupcake,donut,eclair,froyo,gingerbread,icecream From 7a25fe9e7cd17ebda5aab54035e2720906527630 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Tue, 11 Dec 2012 16:41:07 +0700 Subject: [PATCH 0682/1096] build: Update domain name cyanogenmod.com -> cyanogenmod.org Change-Id: Icae50c103d94e2018027c971bf1a77f01e2602c6 --- envsetup.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 2dc3b806ed1..e30d342a2a4 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1789,12 +1789,12 @@ function cmremote() return 0 fi fi - CMUSER=`git config --get review.review.cyanogenmod.com.username` + CMUSER=`git config --get review.review.cyanogenmod.org.username` if [ -z "$CMUSER" ] then - git remote add cmremote ssh://review.cyanogenmod.com:29418/$GERRIT_REMOTE + git remote add cmremote ssh://review.cyanogenmod.org:29418/$GERRIT_REMOTE else - git remote add cmremote ssh://$CMUSER@review.cyanogenmod.com:29418/$GERRIT_REMOTE + git remote add cmremote ssh://$CMUSER@review.cyanogenmod.org:29418/$GERRIT_REMOTE fi echo You can now push to "cmremote". } @@ -1917,7 +1917,7 @@ function cmgerrit() { $FUNCNAME help return 1 fi - local user=`git config --get review.review.cyanogenmod.com.username` + local user=`git config --get review.review.cyanogenmod.org.username` local review=`git config --get remote.github.review` local project=`git config --get remote.github.projectname` local command=$1 @@ -2174,7 +2174,7 @@ function cmrebase() { echo "Bringing it up to date..." repo sync . echo "Fetching change..." - git fetch "http://review.cyanogenmod.com/p/$repo" "refs/changes/$refs" && git cherry-pick FETCH_HEAD + git fetch "http://review.cyanogenmod.org/p/$repo" "refs/changes/$refs" && git cherry-pick FETCH_HEAD if [ "$?" != "0" ]; then echo "Error cherry-picking. Not uploading!" return From ccf13934bec200b44a8b3f8b4aa3d2c8a0883257 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Wed, 26 Dec 2012 10:53:58 +0530 Subject: [PATCH 0683/1096] envsetup: push to connected device only if it is $CM_BUILD Change-Id: Icce057cb31d6fbc9abb0292311c88c32fea3540c --- envsetup.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index e30d342a2a4..51c59ade086 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -717,6 +717,8 @@ function eat() done echo "Device Found.." fi + if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); + then # if adbd isn't root we can't write to /cache/recovery/ adb root sleep 1 @@ -748,6 +750,9 @@ EOF return 1 fi return $? + else + echo "The connected device does not appear to be $CM_BUILD, run away!" + fi } function omnom @@ -2233,6 +2238,8 @@ function dopush() echo "Device Found." fi + if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); + then adb root &> /dev/null sleep 0.3 adb wait-for-device &> /dev/null @@ -2271,6 +2278,9 @@ function dopush() done rm -f $OUT/.log return 0 + else + echo "The connected device does not appear to be $CM_BUILD, run away!" + fi } alias mmp='dopush mm' From e53c87d8d8fd5a9945acf5125fb29b99ef4f0699 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Thu, 27 Dec 2012 15:28:34 -0800 Subject: [PATCH 0684/1096] envsetup: Don't tread on my $PROMPT_COMMAND * I want my own PROMPT_COMMAND to coexist with Android's, so stash it in the environment and add it to the new command. Change-Id: I200902f135d0c5c620a8eb3ce9cefdba318cf9d3 envsetup: Fix $PROMPT_COMMAND Change I200902f135d0c5c620a8eb3ce9cefdba318cf9d3 broke the android PROMPT_COMMAND on scenarios where the existing prompt already had a hardstatus adjustment, since appending it to Android's just clobbered Android's in favor of the original. So instead of appending them, inject android's at the beggining of the existing one (and create a default if none exists) Change-Id: I1fbcbfdb6220d886dda3662da498d1759a4c195b envsetup: Really fix PROMPT_COMMAND handling * Add ANDROID_NO_PROMPT_COMMAND to not change it at all. * Export ANDROID_PROMPT_PREFIX so it can be used elsewhere. Change-Id: Ib2a487404d3b8a367a21582e8a0ce69c2d212a9a envsetup: More PROMPT_COMMAND * Get rid of ANDROID_NO_PROMPT_COMMAND, the pre-existing STAY_OFF_MY_LAWN does the same thing * Remove any pre-existing android prefixes to avoid accumulation scenarios in consecutive builds (i.e., multiple build identification strings in hardstatus) Change-Id: I86661e066e18ea6ad0c742fa1dc6555780fa5441 envsetup: add quotes around PROMPT_COMMAND Better compatibility for zsh. Change-Id: Ie010c30580e67e3b5357e3cc869114a525762677 --- envsetup.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 51c59ade086..68e5c13125b 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -263,11 +263,26 @@ function settitle() local product=$TARGET_PRODUCT local variant=$TARGET_BUILD_VARIANT local apps=$TARGET_BUILD_APPS + if [ -z "$PROMPT_COMMAND" ]; then + # No prompts + PROMPT_COMMAND="echo -ne \"\033]0;${USER}@${HOSTNAME}: ${PWD}\007\"" + elif [ -z "$(echo $PROMPT_COMMAND | grep '033]0;')" ]; then + # Prompts exist, but no hardstatus + PROMPT_COMMAND="echo -ne \"\033]0;${USER}@${HOSTNAME}: ${PWD}\007\";${PROMPT_COMMAND}" + fi + if [ ! -z "$ANDROID_PROMPT_PREFIX" ]; then + PROMPT_COMMAND=$(echo $PROMPT_COMMAND | sed -e 's/$ANDROID_PROMPT_PREFIX //g') + fi + if [ -z "$apps" ]; then - export PROMPT_COMMAND="echo -ne \"\033]0;[${arch}-${product}-${variant}] ${USER}@${HOSTNAME}: ${PWD}\007\"" + ANDROID_PROMPT_PREFIX="[${arch}-${product}-${variant}]" else - export PROMPT_COMMAND="echo -ne \"\033]0;[$arch $apps $variant] ${USER}@${HOSTNAME}: ${PWD}\007\"" + ANDROID_PROMPT_PREFIX="[$arch $apps $variant]" fi + export ANDROID_PROMPT_PREFIX + + # Inject build data into hardstatus + export PROMPT_COMMAND="$(echo $PROMPT_COMMAND | sed -e 's/\\033]0;\(.*\)\\007/\\033]0;$ANDROID_PROMPT_PREFIX \1\\007/g')" fi } From 6555fb8741adcef64cc5d9657c9adafd1075d1b0 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sun, 23 Dec 2012 09:21:46 +0530 Subject: [PATCH 0685/1096] bacon: get rid of squisher Change-Id: I3cece868e56f85bfa0b31a62a51e6eab2070ab06 --- core/Makefile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/Makefile b/core/Makefile index c742dd3e189..0b96fff7b38 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1556,16 +1556,17 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(BUILT_TARGET_FILES_PACKAGE) $@ +CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(CM_VERSION).zip + .PHONY: otapackage bacon otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) bacon: otapackage ifneq ($(TARGET_CUSTOM_RELEASETOOL),) - @echo -e ${CL_YLW}"Running custom releasetool..."${CL_RST} - $(hide) OTAPACKAGE=$(PWD)/$(INTERNAL_OTA_PACKAGE_TARGET) $(TARGET_CUSTOM_RELEASETOOL) -else - @echo -e ${CL_YLW}"Running releasetool..."${CL_RST} - $(hide) OTAPACKAGE=$(PWD)/$(INTERNAL_OTA_PACKAGE_TARGET) ./vendor/cm/tools/squisher + $(error TARGET_CUSTOM_RELEASETOOL is deprecated) endif + $(hide) ln -f $(INTERNAL_OTA_PACKAGE_TARGET) $(CM_TARGET_PACKAGE) + $(hide) $(MD5SUM) $(CM_TARGET_PACKAGE) > $(CM_TARGET_PACKAGE).md5sum + @echo -e ${CL_CYN}"Package Complete: $(CM_TARGET_PACKAGE)"${CL_RST} endif # recovery_fstab is defined endif # TARGET_NO_KERNEL != true From ba788d9f5b540bcccd3d0fae959f499ea1512616 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sat, 16 Mar 2013 20:00:17 +0530 Subject: [PATCH 0686/1096] envsetup: include bash completion script from vendor/cm Change-Id: Id90d84748df41d6626dfd46befabe0054c6d14e7 --- envsetup.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 68e5c13125b..04ef268cd92 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -300,13 +300,15 @@ function addcompletions() return fi - dir="sdk/bash_completion" + dirs="sdk/bash_completion vendor/cm/bash_completion" + for dir in $dirs; do if [ -d ${dir} ]; then for f in `/bin/ls ${dir}/[a-z]*.bash 2> /dev/null`; do echo "including $f" . $f done fi + done } function choosetype() From f85678c763b93a8d78f6ffbdba75f452c590ba53 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Mon, 25 Mar 2013 12:02:12 +0530 Subject: [PATCH 0687/1096] print CM_VERSION in build config Change-Id: Iead654e30798a11e636ec743683f3431d14a858c --- core/dumpvar.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/dumpvar.mk b/core/dumpvar.mk index 510bc7d0829..1a6b1201d7c 100644 --- a/core/dumpvar.mk +++ b/core/dumpvar.mk @@ -67,6 +67,7 @@ HOST_OS_EXTRA:=$(shell python -c "import platform; print(platform.platform())") $(info ============================================) $(info PLATFORM_VERSION_CODENAME=$(PLATFORM_VERSION_CODENAME)) $(info PLATFORM_VERSION=$(PLATFORM_VERSION)) +$(info CM_VERSION=$(CM_VERSION)) $(info TARGET_PRODUCT=$(TARGET_PRODUCT)) $(info TARGET_BUILD_VARIANT=$(TARGET_BUILD_VARIANT)) $(info TARGET_BUILD_TYPE=$(TARGET_BUILD_TYPE)) From 973c5a44f4f15cecab6e897368d8c911073006ba Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Thu, 28 Mar 2013 12:55:04 +0530 Subject: [PATCH 0688/1096] bacon: name the package correctly The variable CM_VERSION gets updated each build, but the actual ro.cm.version in the build.prop doesn't on incremental builds. Name the 'bacon' package according to cm version from the build.prop (if it exists), so that the actual version and the name of the zip stay in sync. Change-Id: I2dacfbbf2ae418945a9b37fef2fd7cbd31510e26 --- core/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 0b96fff7b38..ba7fedaa9ac 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1556,7 +1556,11 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(BUILT_TARGET_FILES_PACKAGE) $@ -CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(CM_VERSION).zip +MODVERSION := $(shell sed -n -e'/ro\.cm\.version/s/^.*=//p' $(INSTALLED_BUILD_PROP_TARGET)) +ifeq ($(MODVERSION),) + MODVERSION := $(CM_VERSION) +endif +CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(MODVERSION).zip .PHONY: otapackage bacon otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) From 0ab0e7fec9c18c3c2e5c798f28b13283283d2cb9 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sat, 13 Apr 2013 07:19:52 -0700 Subject: [PATCH 0689/1096] eat: Eat using adb sideload * Requires new recovery and updated adbd Change-Id: I65990822ab63313701d74783d95611d128d90f94 --- envsetup.sh | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 04ef268cd92..15d525417fb 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -740,28 +740,16 @@ function eat() adb root sleep 1 adb wait-for-device - SZ=`stat -c %s $ZIPPATH` - CACHESIZE=`adb shell busybox df -PB1 /cache | grep /cache | tr -s ' ' | cut -d ' ' -f 4` - if [ $CACHESIZE -gt $SZ ]; - then - PUSHDIR=/cache/ - DIR=cache - else - PUSHDIR=/storage/sdcard0/ - # Optional path for sdcard0 in recovery - [ -z "$1" ] && DIR=sdcard/0 || DIR=$1 - fi - echo "Pushing $ZIPFILE to $PUSHDIR" - if adb push $ZIPPATH $PUSHDIR ; then - cat << EOF > /tmp/command ---update_package=/$DIR/$ZIPFILE + cat << EOF > /tmp/command +--sideload EOF - if adb push /tmp/command /cache/recovery/ ; then - echo "Rebooting into recovery for installation" - adb reboot recovery - fi - rm /tmp/command + if adb push /tmp/command /cache/recovery/ ; then + echo "Rebooting into recovery for sideload installation" + adb reboot recovery + adb wait-for-sideload + adb sideload $ZIPPATH fi + rm /tmp/command else echo "Nothing to eat" return 1 From 8a385c2983f3f47df9af2157c1d88e41a5243f99 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sat, 13 Apr 2013 13:23:35 -0700 Subject: [PATCH 0690/1096] envsetup: Make installboot work in recovery mode too * Needs a change to adb to allow waiting for recovery Change-Id: Ia90645513f46bcb5f20b7c74c55ef15842710d3d --- envsetup.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 15d525417fb..036248050bb 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1848,9 +1848,8 @@ function installboot() adb start-server adb root sleep 1 - adb wait-for-device - adb remount - adb wait-for-device + adb wait-for-online shell mount /system 2>&1 > /dev/null + adb wait-for-online remount if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); then adb push $OUT/boot.img /cache/ @@ -1887,9 +1886,8 @@ function installrecovery() adb start-server adb root sleep 1 - adb wait-for-device - adb remount - adb wait-for-device + adb wait-for-online shell mount /system 2>&1 >> /dev/null + adb wait-for-online remount if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); then adb push $OUT/recovery.img /cache/ From 66d4609c56540053484f6aa6926f4224077f5877 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Fri, 19 Apr 2013 17:51:43 +0100 Subject: [PATCH 0691/1096] Revert "bacon: name the package correctly" This reverts commit 724feedbd9e668e239e827b974437da85c140313. This breaks package naming, since a build.prop from a previous build can be present before the cleanup rules apply, and this is variable is generated before the build actually begins. Most notably, this happens in jenkins with consecutive builds, even if from different projects and tags. --- core/Makefile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/core/Makefile b/core/Makefile index ba7fedaa9ac..0b96fff7b38 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1556,11 +1556,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(BUILT_TARGET_FILES_PACKAGE) $@ -MODVERSION := $(shell sed -n -e'/ro\.cm\.version/s/^.*=//p' $(INSTALLED_BUILD_PROP_TARGET)) -ifeq ($(MODVERSION),) - MODVERSION := $(CM_VERSION) -endif -CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(MODVERSION).zip +CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(CM_VERSION).zip .PHONY: otapackage bacon otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) From 09d305614b23e4dcc94219671577e17b85080475 Mon Sep 17 00:00:00 2001 From: nebkat Date: Fri, 28 Dec 2012 10:40:45 +0000 Subject: [PATCH 0692/1096] cout: move to $out Change-Id: I3b5bf8a5f62dcdf267662bb97a2073150152cfa6 --- envsetup.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 036248050bb..52769bc0a1d 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -4,6 +4,7 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - lunch: lunch - - tapas: tapas [ ...] [arm|x86|mips|armv5|arm64|x86_64|mips64] [eng|userdebug|user] - croot: Changes directory to the top of the tree. +- cout: Changes directory to out. - m: Makes from the top of the tree. - mm: Builds all of the modules in the current directory, but not their dependencies. - mmm: Builds all of the modules in the supplied directories, but not their dependencies. @@ -981,6 +982,15 @@ function croot() fi } +function cout() +{ + if [ "$OUT" ]; then + cd $OUT + else + echo "Couldn't locate out directory. Try setting OUT." + fi +} + function cproj() { TOPFILE=build/core/envsetup.mk From aa3b207655c6ba870ec84e2ea5ebcb8dd3042a15 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sat, 4 May 2013 17:59:18 +0530 Subject: [PATCH 0693/1096] eat: get the proper MODVERSION * The version in system/build.prop might be different than what the zip is named on incremental builds. * Use CM_VERSION from the build system instead. Change-Id: If4508921d8fd05219a2f358a2397a13b247065bd Signed-off-by: Chirayu Desai --- envsetup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 52769bc0a1d..840dd69d56a 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -719,7 +719,7 @@ function tapas() function eat() { if [ "$OUT" ] ; then - MODVERSION=`sed -n -e'/ro\.cm\.version/s/.*=//p' $OUT/system/build.prop` + MODVERSION=$(get_build_var CM_VERSION) ZIPFILE=cm-$MODVERSION.zip ZIPPATH=$OUT/$ZIPFILE if [ ! -f $ZIPPATH ] ; then From c0a698207e13b52bd5b566c3479e91408a8d84d2 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Wed, 1 May 2013 15:48:08 +0530 Subject: [PATCH 0694/1096] envsetup: use $(CURDIR) for getting current directory Change-Id: I5f00faf64ec31d86dd2e48ec038748ce8499380b --- core/envsetup.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/envsetup.mk b/core/envsetup.mk index ebc748ae6da..468661f0546 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -202,7 +202,7 @@ ifeq (,$(strip $(OUT_DIR_COMMON_BASE))) ifneq ($(TOPDIR),) OUT_DIR := $(TOPDIR)out else -OUT_DIR := $(shell python -c 'import os,sys; print os.path.realpath(sys.argv[1])' .)/out +OUT_DIR := $(CURDIR)/out endif else OUT_DIR := $(OUT_DIR_COMMON_BASE)/$(notdir $(PWD)) From 1a07b001c5202f756232fce7132ba57482d3db1e Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Wed, 5 Jun 2013 20:14:33 +0530 Subject: [PATCH 0695/1096] repopick: initial commit Change-Id: Ie42c11d335da07f6d164a0fcb887011e5fd6dcf4 repopick: add -b shortcut option * useful for people like me who want to pick into temp branch so that the picks survive a repo sync * shortcut to "--start-branch auto --abandon-first --ignore-missing" Change-Id: Ia4d4309d27e46a15ff4b74525668d974f4251dcb repopick: handle additional error cases around subprocesses * gracefully error if the project path cannot be found * poll() was not a reliable determination of EOF on my Darwin-Python 2.7 system. Change-Id: I203c2a75820f8acc079a5c9751d1c04daf6f3a16 repopick: allow running from a subdir of ANDROID_BUILD_TOP Change-Id: I6dfcd5dfe700174ed87dc8627b23519c62b4cb27 envsetup: hmm repopick Change-Id: I483cb36721f31dbf1f67e46cbe8a306b2a9e2c15 Conflicts: envsetup.sh --- envsetup.sh | 6 ++ tools/repopick.py | 250 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 256 insertions(+) create mode 100755 tools/repopick.py diff --git a/envsetup.sh b/envsetup.sh index 840dd69d56a..f9ef31eaed2 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -25,6 +25,7 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - aospremote: Add git remote for matching AOSP repository - mka: Builds using SCHED_BATCH on all processors - reposync: Parallel repo sync using ionice and SCHED_BATCH +- repopick: Utility to fetch changes from Gerrit. - installboot: Installs a boot.img to the connected device. - installrecovery: Installs a recovery.img to the connected device. @@ -2301,6 +2302,11 @@ alias mmmp='dopush mmm' alias mkap='dopush mka' alias cmkap='dopush cmka' +function repopick() { + T=$(gettop) + $T/build/tools/repopick.py $@ +} + # Force JAVA_HOME to point to java 1.7 or java 1.6 if it isn't already set. # # Note that the MacOS path for java 1.7 includes a minor revision number (sigh). diff --git a/tools/repopick.py b/tools/repopick.py new file mode 100755 index 00000000000..ea7227e5939 --- /dev/null +++ b/tools/repopick.py @@ -0,0 +1,250 @@ +#!/usr/bin/env python +# +# Copyright (C) 2013 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# +# Run repopick.py -h for a description of this utility. +# + +from __future__ import print_function + +import sys +import json +import os +import subprocess +import re +import argparse +import textwrap + +try: + # For python3 + import urllib.request +except ImportError: + # For python2 + import imp + import urllib2 + urllib = imp.new_module('urllib') + urllib.request = urllib2 + +# Parse the command line +parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, description=textwrap.dedent('''\ + repopick.py is a utility to simplify the process of cherry picking + patches from CyanogenMod's Gerrit instance. + + Given a list of change numbers, repopick will cd into the project path + and cherry pick the latest patch available. + + With the --start-branch argument, the user can specify that a branch + should be created before cherry picking. This is useful for + cherry-picking many patches into a common branch which can be easily + abandoned later (good for testing other's changes.) + + The --abandon-first argument, when used in conjuction with the + --start-branch option, will cause repopick to abandon the specified + branch in all repos first before performing any cherry picks.''')) +parser.add_argument('change_number', nargs='+', help='change number to cherry pick') +parser.add_argument('-i', '--ignore-missing', action='store_true', help='do not error out if a patch applies to a missing directory') +parser.add_argument('-s', '--start-branch', nargs=1, help='start the specified branch before cherry picking') +parser.add_argument('-a', '--abandon-first', action='store_true', help='before cherry picking, abandon the branch specified in --start-branch') +parser.add_argument('-b', '--auto-branch', action='store_true', help='shortcut to "--start-branch auto --abandon-first --ignore-missing"') +parser.add_argument('-q', '--quiet', action='store_true', help='print as little as possible') +parser.add_argument('-v', '--verbose', action='store_true', help='print extra information to aid in debug') +args = parser.parse_args() +if args.start_branch == None and args.abandon_first: + parser.error('if --abandon-first is set, you must also give the branch name with --start-branch') +if args.auto_branch: + args.abandon_first = True + args.ignore_missing = True + if not args.start_branch: + args.start_branch = ['auto'] +if args.quiet and args.verbose: + parser.error('--quiet and --verbose cannot be specified together') + +# Helper function to determine whether a path is an executable file +def is_exe(fpath): + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + +# Implementation of Unix 'which' in Python +# +# From: http://stackoverflow.com/questions/377017/test-if-executable-exists-in-python +def which(program): + fpath, fname = os.path.split(program) + if fpath: + if is_exe(program): + return program + else: + for path in os.environ["PATH"].split(os.pathsep): + path = path.strip('"') + exe_file = os.path.join(path, program) + if is_exe(exe_file): + return exe_file + + return None + +# Simple wrapper for os.system() that: +# - exits on error +# - prints out the command if --verbose +# - suppresses all output if --quiet +def execute_cmd(cmd): + if args.verbose: + print('Executing: %s' % cmd) + if args.quiet: + cmd = cmd.replace(' && ', ' &> /dev/null && ') + cmd = cmd + " &> /dev/null" + if os.system(cmd): + if not args.verbose: + print('\nCommand that failed:\n%s' % cmd) + sys.exit(1) + +# Verifies whether pathA is a subdirectory (or the same) as pathB +def is_pathA_subdir_of_pathB(pathA, pathB): + pathA = os.path.realpath(pathA) + '/' + pathB = os.path.realpath(pathB) + '/' + return(pathB == pathA[:len(pathB)]) + +# Find the necessary bins - repo +repo_bin = which('repo') +if repo_bin == None: + repo_bin = os.path.join(os.environ["HOME"], 'repo') + if not is_exe(repo_bin): + sys.stderr.write('ERROR: Could not find the repo program in either $PATH or $HOME/bin\n') + sys.exit(1) + +# Find the necessary bins - git +git_bin = which('git') +if not is_exe(git_bin): + sys.stderr.write('ERROR: Could not find the git program in $PATH\n') + sys.exit(1) + +# Change current directory to the top of the tree +if 'ANDROID_BUILD_TOP' in os.environ: + top = os.environ['ANDROID_BUILD_TOP'] + if not is_pathA_subdir_of_pathB(os.getcwd(), top): + sys.stderr.write('ERROR: You must run this tool from within $ANDROID_BUILD_TOP!\n') + sys.exit(1) + os.chdir(os.environ['ANDROID_BUILD_TOP']) + +# Sanity check that we are being run from the top level of the tree +if not os.path.isdir('.repo'): + sys.stderr.write('ERROR: No .repo directory found. Please run this from the top of your tree.\n') + sys.exit(1) + +# If --abandon-first is given, abandon the branch before starting +if args.abandon_first: + # Determine if the branch already exists; skip the abandon if it does not + plist = subprocess.Popen([repo_bin,"info"], stdout=subprocess.PIPE) + needs_abandon = False + while(True): + pline = plist.stdout.readline().rstrip() + if not pline: + break + matchObj = re.match(r'Local Branches.*\[(.*)\]', pline.decode()) + if matchObj: + local_branches = re.split('\s*,\s*', matchObj.group(1)) + if any(args.start_branch[0] in s for s in local_branches): + needs_abandon = True + break + + if needs_abandon: + # Perform the abandon only if the branch already exists + if not args.quiet: + print('Abandoning branch: %s' % args.start_branch[0]) + cmd = '%s abandon %s' % (repo_bin, args.start_branch[0]) + execute_cmd(cmd) + if not args.quiet: + print('') + +# Iterate through the requested change numbers +for change in args.change_number: + if not args.quiet: + print('Applying change number %s ...' % change) + + # Fetch information about the change from Gerrit's REST API + # + # gerrit returns two lines, a magic string and then valid JSON: + # )]}' + # [ ... valid JSON ... ] + url = 'http://review.cyanogenmod.org/changes/?q=%s&o=CURRENT_REVISION&o=CURRENT_COMMIT&pp=0' % change + if args.verbose: + print('Fetching from: %s\n' % url) + f = urllib.request.urlopen(url) + d = f.read().decode() + + # Parse the result + if args.verbose: + print('Result from request:\n' + d) + d = d.split('\n')[1] + d = re.sub(r'\[(.*)\]', r'\1', d) + data = json.loads(d) + + # Extract information from the JSON response + project_name = data['project'] + change_number = data['_number'] + current_revision = data['revisions'][data['current_revision']] + patch_number = current_revision['_number'] + fetch_url = current_revision['fetch']['http']['url'] + fetch_ref = current_revision['fetch']['http']['ref'] + author_name = current_revision['commit']['author']['name'] + author_email = current_revision['commit']['author']['email'] + author_date = current_revision['commit']['author']['date'] + committer_name = current_revision['commit']['committer']['name'] + committer_email = current_revision['commit']['committer']['email'] + committer_date = current_revision['commit']['committer']['date'] + subject = current_revision['commit']['subject'] + + # Get the list of projects that repo knows about + # - convert the project name to a project path + plist = subprocess.Popen([repo_bin,"list"], stdout=subprocess.PIPE) + while(True): + pline = plist.stdout.readline().rstrip() + if not pline: + break + ppaths = re.split('\s*:\s*', pline.decode()) + if ppaths[1] == project_name: + project_path = ppaths[0] + break + if 'project_path' not in locals(): + sys.stderr.write('ERROR: Could not determine the project path for project %s\n' % project_name) + sys.exit(1) + + # Check that the project path exists + if not os.path.isdir(project_path): + if args.ignore_missing: + print('WARNING: Skipping %d since there is no project directory: %s\n' % (change_number, project_path)) + continue; + else: + sys.stderr.write('ERROR: For %d, there is no project directory: %s\n' % (change_number, project_path)) + sys.exit(1) + + # If --start-branch is given, create the branch (more than once per path is okay; repo ignores gracefully) + if args.start_branch: + cmd = '%s start %s %s' % (repo_bin, args.start_branch[0], project_path) + execute_cmd(cmd) + + # Print out some useful info + if not args.quiet: + print('--> Subject: "%s"' % subject) + print('--> Project path: %s' % project_path) + print('--> Change number: %d (Patch Set %d)' % (change_number, patch_number)) + print('--> Author: %s <%s> %s' % (author_name, author_email, author_date)) + print('--> Committer: %s <%s> %s' % (committer_name, committer_email, committer_date)) + + # Perform the cherry-pick + cmd = 'cd %s && git fetch %s %s && git cherry-pick FETCH_HEAD' % (project_path, fetch_url, fetch_ref) + execute_cmd(cmd) + if not args.quiet: + print('') + From 07070938979b9abd491b466c20f4ea9ef13ef748 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sat, 8 Jun 2013 15:16:37 +0530 Subject: [PATCH 0696/1096] repopick: decode the result as UTF-8 Change-Id: I51f2defa861c86b51baa7bad1df1d9666b952160 --- tools/repopick.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/repopick.py b/tools/repopick.py index ea7227e5939..7336e7837e8 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -181,7 +181,7 @@ def is_pathA_subdir_of_pathB(pathA, pathB): if args.verbose: print('Fetching from: %s\n' % url) f = urllib.request.urlopen(url) - d = f.read().decode() + d = f.read().decode("utf-8") # Parse the result if args.verbose: From 05f35746a4400c88fcfd5aab832c814247486fc9 Mon Sep 17 00:00:00 2001 From: David Ferguson Date: Wed, 19 Jun 2013 07:40:32 -0400 Subject: [PATCH 0697/1096] repopick: gracefully handle empty/non-JSON server responses Change-Id: Idbabdbfb4a910de0ad405f02b2a84cf2bc9ef3dc --- tools/repopick.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index 7336e7837e8..ca1a4da5cd6 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -182,13 +182,25 @@ def is_pathA_subdir_of_pathB(pathA, pathB): print('Fetching from: %s\n' % url) f = urllib.request.urlopen(url) d = f.read().decode("utf-8") - - # Parse the result if args.verbose: print('Result from request:\n' + d) + + # Clean up the result d = d.split('\n')[1] + matchObj = re.match(r'\[\s*\]', d) + if matchObj: + sys.stderr.write('ERROR: Change number %s was not found on the server\n' % change) + sys.exit(1) d = re.sub(r'\[(.*)\]', r'\1', d) - data = json.loads(d) + + # Parse the JSON + try: + data = json.loads(d) + except ValueError: + sys.stderr.write('ERROR: The response from the server could not be parsed properly\n') + if not args.verbose: + sys.stderr.write('The malformed response was: %s\n' % d) + sys.exit(1) # Extract information from the JSON response project_name = data['project'] From b919babed480d8086fd20092d92770b2c16d9655 Mon Sep 17 00:00:00 2001 From: David Ferguson Date: Wed, 19 Jun 2013 07:41:07 -0400 Subject: [PATCH 0698/1096] repopick: remove the superfluous information from date * '2011-11-17 06:54:52.000000000' -> '2011-11-17 06:54:52' Change-Id: I73d37c9aba13d4be6b4d2d2fc0f2f83971a3e77b --- tools/repopick.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index ca1a4da5cd6..6ed0d7e5ecd 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -203,6 +203,7 @@ def is_pathA_subdir_of_pathB(pathA, pathB): sys.exit(1) # Extract information from the JSON response + date_fluff = '.000000000' project_name = data['project'] change_number = data['_number'] current_revision = data['revisions'][data['current_revision']] @@ -211,10 +212,10 @@ def is_pathA_subdir_of_pathB(pathA, pathB): fetch_ref = current_revision['fetch']['http']['ref'] author_name = current_revision['commit']['author']['name'] author_email = current_revision['commit']['author']['email'] - author_date = current_revision['commit']['author']['date'] + author_date = current_revision['commit']['author']['date'].replace(date_fluff, '') committer_name = current_revision['commit']['committer']['name'] committer_email = current_revision['commit']['committer']['email'] - committer_date = current_revision['commit']['committer']['date'] + committer_date = current_revision['commit']['committer']['date'].replace(date_fluff, '') subject = current_revision['commit']['subject'] # Get the list of projects that repo knows about From 0e6feea4079f1f4505e262f19e44163acbb7f565 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sun, 16 Jun 2013 09:47:05 +0530 Subject: [PATCH 0699/1096] repopick: let's be nice to our servers :) * Prefer fetching changes from GitHub, and if that fails, silently fall-back to Gerrit. Change-Id: Ibf68d4b69a7e8dbee2adb8f7f4250340b8be629c --- tools/repopick.py | 59 ++++++++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index 6ed0d7e5ecd..8c18ecbd272 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -156,7 +156,6 @@ def is_pathA_subdir_of_pathB(pathA, pathB): local_branches = re.split('\s*,\s*', matchObj.group(1)) if any(args.start_branch[0] in s for s in local_branches): needs_abandon = True - break if needs_abandon: # Perform the abandon only if the branch already exists @@ -167,6 +166,18 @@ def is_pathA_subdir_of_pathB(pathA, pathB): if not args.quiet: print('') +# Get the list of projects that repo knows about +# - convert the project name to a project path +project_name_to_path = {} +plist = subprocess.Popen([repo_bin,"list"], stdout=subprocess.PIPE) +project_path = None +while(True): + pline = plist.stdout.readline().rstrip() + if not pline: + break + ppaths = re.split('\s*:\s*', pline.decode()) + project_name_to_path[ppaths[1]] = ppaths[0] + # Iterate through the requested change numbers for change in args.change_number: if not args.quiet: @@ -218,30 +229,17 @@ def is_pathA_subdir_of_pathB(pathA, pathB): committer_date = current_revision['commit']['committer']['date'].replace(date_fluff, '') subject = current_revision['commit']['subject'] - # Get the list of projects that repo knows about - # - convert the project name to a project path - plist = subprocess.Popen([repo_bin,"list"], stdout=subprocess.PIPE) - while(True): - pline = plist.stdout.readline().rstrip() - if not pline: - break - ppaths = re.split('\s*:\s*', pline.decode()) - if ppaths[1] == project_name: - project_path = ppaths[0] - break - if 'project_path' not in locals(): - sys.stderr.write('ERROR: Could not determine the project path for project %s\n' % project_name) + # Convert the project name to a project path + # - check that the project path exists + if project_name in project_name_to_path: + project_path = project_name_to_path[project_name]; + elif args.ignore_missing: + print('WARNING: Skipping %d since there is no project directory for: %s\n' % (change_number, project_name)) + continue; + else: + sys.stderr.write('ERROR: For %d, could not determine the project path for project %s\n' % (change_number, project_name)) sys.exit(1) - # Check that the project path exists - if not os.path.isdir(project_path): - if args.ignore_missing: - print('WARNING: Skipping %d since there is no project directory: %s\n' % (change_number, project_path)) - continue; - else: - sys.stderr.write('ERROR: For %d, there is no project directory: %s\n' % (change_number, project_path)) - sys.exit(1) - # If --start-branch is given, create the branch (more than once per path is okay; repo ignores gracefully) if args.start_branch: cmd = '%s start %s %s' % (repo_bin, args.start_branch[0], project_path) @@ -255,8 +253,21 @@ def is_pathA_subdir_of_pathB(pathA, pathB): print('--> Author: %s <%s> %s' % (author_name, author_email, author_date)) print('--> Committer: %s <%s> %s' % (committer_name, committer_email, committer_date)) + # Try fetching from GitHub first + if args.verbose: + print('Trying to fetch the change from GitHub') + cmd = 'cd %s && git fetch github %s' % (project_path, fetch_ref) + execute_cmd(cmd) + # Check if it worked + FETCH_HEAD = '%s/.git/FETCH_HEAD' % project_path + if os.stat(FETCH_HEAD).st_size == 0: + # That didn't work, fetch from Gerrit instead + if args.verbose: + print('Fetching from GitHub didn\'t work, trying to fetch the change from Gerrit') + cmd = 'cd %s && git fetch %s %s' % (project_path, fetch_url, fetch_ref) + execute_cmd(cmd) # Perform the cherry-pick - cmd = 'cd %s && git fetch %s %s && git cherry-pick FETCH_HEAD' % (project_path, fetch_url, fetch_ref) + cmd = 'cd %s && git cherry-pick FETCH_HEAD' % (project_path) execute_cmd(cmd) if not args.quiet: print('') From dc86e0f1e1e9dc46296f22aa432f2ef85ed22038 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Sun, 29 Sep 2013 09:02:27 -0500 Subject: [PATCH 0700/1096] repopick: skip a cherry pick if its already been merged * override this behavior with the -f argument Change-Id: I280b4945344e7483a192d1c9769c42b8fd2a2aef --- tools/repopick.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index 8c18ecbd272..09d85a9df69 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -62,6 +62,7 @@ parser.add_argument('-b', '--auto-branch', action='store_true', help='shortcut to "--start-branch auto --abandon-first --ignore-missing"') parser.add_argument('-q', '--quiet', action='store_true', help='print as little as possible') parser.add_argument('-v', '--verbose', action='store_true', help='print extra information to aid in debug') +parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if commit has been merged') args = parser.parse_args() if args.start_branch == None and args.abandon_first: parser.error('if --abandon-first is set, you must also give the branch name with --start-branch') @@ -217,10 +218,11 @@ def is_pathA_subdir_of_pathB(pathA, pathB): date_fluff = '.000000000' project_name = data['project'] change_number = data['_number'] + status = data['status'] current_revision = data['revisions'][data['current_revision']] patch_number = current_revision['_number'] - fetch_url = current_revision['fetch']['http']['url'] - fetch_ref = current_revision['fetch']['http']['ref'] + fetch_url = current_revision['fetch']['anonymous http']['url'] + fetch_ref = current_revision['fetch']['anonymous http']['ref'] author_name = current_revision['commit']['author']['name'] author_email = current_revision['commit']['author']['email'] author_date = current_revision['commit']['author']['date'].replace(date_fluff, '') @@ -229,6 +231,14 @@ def is_pathA_subdir_of_pathB(pathA, pathB): committer_date = current_revision['commit']['committer']['date'].replace(date_fluff, '') subject = current_revision['commit']['subject'] + # Check if commit has already been merged and exit if it has, unless -f is specified + if status == "MERGED": + if args.force: + print("!! Force-picking a merged commit !!\n") + else: + print("Commit already merged. Skipping the cherry pick.\nUse -f to force this pick.") + continue; + # Convert the project name to a project path # - check that the project path exists if project_name in project_name_to_path: From 6dfa27ddf1046adfbed782aa21dc6ab59f09b17d Mon Sep 17 00:00:00 2001 From: Danesh M Date: Wed, 30 Oct 2013 18:49:09 -0700 Subject: [PATCH 0701/1096] RepoPick : Add support for git pull Allow user to git pull patchsets and dependencies. Change-Id: If5520b45fe79836eac628b3caf0526f11f8953d9 (cherry picked from commit df646304bdcef329e3fe7c12b68107de1f4cd42a) --- tools/repopick.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index 09d85a9df69..0278fa39163 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -63,6 +63,7 @@ parser.add_argument('-q', '--quiet', action='store_true', help='print as little as possible') parser.add_argument('-v', '--verbose', action='store_true', help='print extra information to aid in debug') parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if commit has been merged') +parser.add_argument('-p', '--pull', action='store_true', help='execute pull instead of cherry-pick') args = parser.parse_args() if args.start_branch == None and args.abandon_first: parser.error('if --abandon-first is set, you must also give the branch name with --start-branch') @@ -266,7 +267,10 @@ def is_pathA_subdir_of_pathB(pathA, pathB): # Try fetching from GitHub first if args.verbose: print('Trying to fetch the change from GitHub') - cmd = 'cd %s && git fetch github %s' % (project_path, fetch_ref) + if args.pull: + cmd = 'cd %s && git pull --no-edit github %s' % (project_path, fetch_ref) + else: + cmd = 'cd %s && git fetch github %s' % (project_path, fetch_ref) execute_cmd(cmd) # Check if it worked FETCH_HEAD = '%s/.git/FETCH_HEAD' % project_path @@ -274,11 +278,15 @@ def is_pathA_subdir_of_pathB(pathA, pathB): # That didn't work, fetch from Gerrit instead if args.verbose: print('Fetching from GitHub didn\'t work, trying to fetch the change from Gerrit') - cmd = 'cd %s && git fetch %s %s' % (project_path, fetch_url, fetch_ref) + if args.pull: + cmd = 'cd %s && git pull --no-edit %s %s' % (project_path, fetch_url, fetch_ref) + else: + cmd = 'cd %s && git fetch %s %s' % (project_path, fetch_url, fetch_ref) execute_cmd(cmd) # Perform the cherry-pick cmd = 'cd %s && git cherry-pick FETCH_HEAD' % (project_path) - execute_cmd(cmd) + if not args.pull: + execute_cmd(cmd) if not args.quiet: print('') From 4bd9d45ce1e00c74074080fa95963cad94ebaa55 Mon Sep 17 00:00:00 2001 From: invisiblek Date: Tue, 23 Sep 2014 22:19:40 -0500 Subject: [PATCH 0702/1096] repopick: allow specifying a topic to pick all commits from Change-Id: I4fb60120794a77986bf641de063a8d41f4f45a23 --- tools/repopick.py | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/tools/repopick.py b/tools/repopick.py index 0278fa39163..e83d4408d1c 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -55,7 +55,7 @@ The --abandon-first argument, when used in conjuction with the --start-branch option, will cause repopick to abandon the specified branch in all repos first before performing any cherry picks.''')) -parser.add_argument('change_number', nargs='+', help='change number to cherry pick') +parser.add_argument('change_number', nargs='*', help='change number to cherry pick') parser.add_argument('-i', '--ignore-missing', action='store_true', help='do not error out if a patch applies to a missing directory') parser.add_argument('-s', '--start-branch', nargs=1, help='start the specified branch before cherry picking') parser.add_argument('-a', '--abandon-first', action='store_true', help='before cherry picking, abandon the branch specified in --start-branch') @@ -64,6 +64,7 @@ parser.add_argument('-v', '--verbose', action='store_true', help='print extra information to aid in debug') parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if commit has been merged') parser.add_argument('-p', '--pull', action='store_true', help='execute pull instead of cherry-pick') +parser.add_argument('-t', '--topic', help='pick all commits from a specified topic') args = parser.parse_args() if args.start_branch == None and args.abandon_first: parser.error('if --abandon-first is set, you must also give the branch name with --start-branch') @@ -74,6 +75,10 @@ args.start_branch = ['auto'] if args.quiet and args.verbose: parser.error('--quiet and --verbose cannot be specified together') +if len(args.change_number) > 0 and args.topic: + parser.error('cannot specify a topic and change number(s) together') +if len(args.change_number) == 0 and not args.topic: + parser.error('must specify at least one commit id or a topic') # Helper function to determine whether a path is an executable file def is_exe(fpath): @@ -180,6 +185,34 @@ def is_pathA_subdir_of_pathB(pathA, pathB): ppaths = re.split('\s*:\s*', pline.decode()) project_name_to_path[ppaths[1]] = ppaths[0] +# Get all commits for a specified topic +if args.topic: + url = 'http://review.cyanogenmod.org/changes/?q=topic:%s' % args.topic + if args.verbose: + print('Fetching all commits from topic: %s\n' % args.topic) + f = urllib.request.urlopen(url) + d = f.read().decode("utf-8") + if args.verbose: + print('Result from request:\n' + d) + + # Clean up the result + d = d.split(')]}\'\n')[1] + matchObj = re.match(r'\[\s*\]', d) + if matchObj: + sys.stderr.write('ERROR: Topic %s was not found on the server\n' % args.topic) + sys.exit(1) + d = re.sub(r'\[(.*)\]', r'\1', d) + if args.verbose: + print('Result from request:\n' + d) + + data = json.loads(d) + changelist = [] + for c in xrange(0, len(data)): + changelist.append(data[c]['_number']) + + # Reverse the array as we want to pick the lowest one first + args.change_number = reversed(changelist) + # Iterate through the requested change numbers for change in args.change_number: if not args.quiet: From 41bc40276f6536f8b796a4c7aab48411adef5385 Mon Sep 17 00:00:00 2001 From: invisiblek Date: Thu, 18 Sep 2014 19:29:03 -0500 Subject: [PATCH 0703/1096] repopick: support specifying a range of commits to pick * for example: repopick 12345-12350 Change-Id: I21dd0ef5f19d7b3899fa40ec4c28a0e9dba8a4df --- tools/repopick.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tools/repopick.py b/tools/repopick.py index e83d4408d1c..2600bde49a2 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -213,6 +213,19 @@ def is_pathA_subdir_of_pathB(pathA, pathB): # Reverse the array as we want to pick the lowest one first args.change_number = reversed(changelist) +# Check for range of commits and rebuild array +changelist = [] +for change in args.change_number: + c=str(change) + if '-' in c: + templist = c.split('-') + for i in range(int(templist[0]), int(templist[1]) + 1): + changelist.append(str(i)) + else: + changelist.append(c) + +args.change_number = changelist + # Iterate through the requested change numbers for change in args.change_number: if not args.quiet: From 0730b08a912998dfd7e29403f4df73a83e54a584 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Tue, 18 Jun 2013 14:17:21 -0700 Subject: [PATCH 0704/1096] add adb to the disttools Change-Id: I898fa5c9396606144e57dba8453f476b9e9440ab --- core/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/core/Makefile b/core/Makefile index 0b96fff7b38..83065011615 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1286,6 +1286,7 @@ endif # host tools needed to build dist and OTA packages DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ + $(HOST_OUT_EXECUTABLES)/adb \ $(HOST_OUT_EXECUTABLES)/mkbootfs \ $(HOST_OUT_EXECUTABLES)/mkbootimg \ $(HOST_OUT_EXECUTABLES)/fs_config \ From 2cede27957e7be06a19355201b6ffe690a8e5c55 Mon Sep 17 00:00:00 2001 From: cybojenix Date: Fri, 28 Jun 2013 20:30:00 +0100 Subject: [PATCH 0705/1096] lets make the lunch list look a little neater It's very simple, but with more and more devices coming in, a long list won't cut it There are probably better ways of doing this, feel free to comment Change-Id: I9bd1fef920f985a133c882df9987b6be29dbc7b8 --- envsetup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index f9ef31eaed2..d548d7deed5 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -515,9 +515,9 @@ function print_lunch_menu() local choice for choice in ${LUNCH_MENU_CHOICES[@]} do - echo " $i. $choice" + echo " $i. $choice " i=$(($i+1)) - done + done | column if [ "z${CM_DEVICES_ONLY}" != "z" ]; then echo "... and don't forget the bacon!" From 1349b11152bedc1a42650a5ee2232594e78f07b8 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Mon, 1 Jul 2013 23:35:26 +0100 Subject: [PATCH 0706/1096] Sign final packages with a different key if requested ...and throw it into recovery builds as well Change-Id: Ic96d4d49d821cb03d5318e3e9ad93d02fb92573e --- core/Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/Makefile b/core/Makefile index 83065011615..762f6227049 100644 --- a/core/Makefile +++ b/core/Makefile @@ -380,6 +380,9 @@ endif # exist with the suffixes ".x509.pem" and ".pk8". DEFAULT_KEY_CERT_PAIR := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) +ifneq ($(OTA_PACKAGE_SIGNING_KEY),) + DEFAULT_KEY_CERT_PAIR := $(OTA_PACKAGE_SIGNING_KEY) +endif # Rules that need to be present for the all targets, even # if they don't do anything. @@ -847,6 +850,11 @@ endif # substitute other keys for this one. OTA_PUBLIC_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE).x509.pem +ifneq ($(OTA_PACKAGE_SIGNING_KEY),) + OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem + PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) +endif + # Generate a file containing the keys that will be read by the # recovery binary. RECOVERY_INSTALL_OTA_KEYS := \ From 0d24ddfa11da67eb2ca8da8d21aea8a01a3f9315 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sun, 19 May 2013 19:54:32 +0530 Subject: [PATCH 0707/1096] dopush: push files to /data too Change-Id: I85e24575a04955ae17b978f038edc46e1e6bfa2c --- envsetup.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index d548d7deed5..6fac174ece2 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2272,8 +2272,9 @@ function dopush() # Get target file name (i.e. system/bin/adb) TARGET=$(echo $FILE | sed "s#$OUT/##") - # Don't send files that are not in /system. - if ! echo $TARGET | egrep '^system\/' > /dev/null ; then + # Don't send files that are not under /system or /data + if [ ! "echo $TARGET | egrep '^system\/' > /dev/null" -o \ + "echo $TARGET | egrep '^data\/' > /dev/null" ] ; then continue else case $TARGET in From eff125482905048b77ac4c9abdc907b5dc170e9f Mon Sep 17 00:00:00 2001 From: Christopher Lais Date: Mon, 3 Jun 2013 15:15:39 -0500 Subject: [PATCH 0708/1096] envsetup.sh: add missing dquotes Change-Id: Ic86a5dd36b0f32cd7dc4d2f9c187566398796ed6 --- envsetup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 6fac174ece2..17ab1a8d7d3 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -273,7 +273,7 @@ function settitle() PROMPT_COMMAND="echo -ne \"\033]0;${USER}@${HOSTNAME}: ${PWD}\007\";${PROMPT_COMMAND}" fi if [ ! -z "$ANDROID_PROMPT_PREFIX" ]; then - PROMPT_COMMAND=$(echo $PROMPT_COMMAND | sed -e 's/$ANDROID_PROMPT_PREFIX //g') + PROMPT_COMMAND="$(echo $PROMPT_COMMAND | sed -e 's/$ANDROID_PROMPT_PREFIX //g')" fi if [ -z "$apps" ]; then From ceb2b7287b62bd84621c8950bea4dfa323ad5e8f Mon Sep 17 00:00:00 2001 From: Shareef Ali Date: Tue, 28 May 2013 22:44:31 -0500 Subject: [PATCH 0709/1096] build: get rid of the sparse expand stuff * i don't see a reason why we are doing this because we never deal with flashing system img rawly * This will put useless write on ssd.. * we don't have space on ssd Change-Id: Icd53d161b8515f5eca238b98ad68515d69caa34f --- tools/releasetools/build_image.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 302aa0c7faf..0082a64a452 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -236,7 +236,7 @@ def BuildImage(in_dir, prop_dict, out_file, build_command = ["mkuserimg.sh"] if "extfs_sparse_flag" in prop_dict: build_command.append(prop_dict["extfs_sparse_flag"]) - run_fsck = True + #run_fsck = True build_command.extend([in_dir, out_file, fs_type, prop_dict["mount_point"]]) build_command.append(prop_dict["partition_size"]) From 069ff05e89e59164baeb1c95fae323720077c7b5 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sun, 30 Jun 2013 10:04:25 +0530 Subject: [PATCH 0710/1096] envsetup: add a helper to fix "out/target/common" not being really common * out/target/common isn't really common, and if you do back to back builds for multiple devices, that is noticable. * Use out/target/common-$device instead, and link the appropriate dir to out/target/common every time lunch() is run, if CM_FIXUP_COMMON_OUT is set. * Refer https://groups.google.com/forum/#!topic/android-building/ispbOgzoyg8 for more info. Change-Id: I11e7df0e68e2a60ce32576f06397d60fc9465b60 --- envsetup.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 17ab1a8d7d3..0424d1157e6 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -649,6 +649,8 @@ function lunch() echo + fixup_common_out_dir + set_stuff_for_environment printconfig } @@ -2308,6 +2310,24 @@ function repopick() { $T/build/tools/repopick.py $@ } +function fixup_common_out_dir() { + common_out_dir=$(get_build_var OUT_DIR)/target/common + target_device=$(get_build_var TARGET_DEVICE) + if [ ! -z $CM_FIXUP_COMMON_OUT ]; then + if [ -d ${common_out_dir} ] && [ ! -L ${common_out_dir} ]; then + mv ${common_out_dir} ${common_out_dir}-${target_device} + ln -s ${common_out_dir}-${target_device} ${common_out_dir} + else + [ -L ${common_out_dir} ] && rm ${common_out_dir} + mkdir -p ${common_out_dir}-${target_device} + ln -s ${common_out_dir}-${target_device} ${common_out_dir} + fi + else + [ -L ${common_out_dir} ] && rm ${common_out_dir} + mkdir -p ${common_out_dir} + fi +} + # Force JAVA_HOME to point to java 1.7 or java 1.6 if it isn't already set. # # Note that the MacOS path for java 1.7 includes a minor revision number (sigh). From c72f67f94e5ed72e4bc19fb2bfe8e57acb08f94a Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Sat, 27 Jul 2013 13:51:56 +0100 Subject: [PATCH 0711/1096] eat: Support v2 fstabs Change-Id: I5220d7e9232174e2acbdc2d6c931827af959f212 --- envsetup.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 0424d1157e6..536c44b2299 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1855,8 +1855,14 @@ function installboot() PARTITION=`grep "^\/boot" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}` if [ -z "$PARTITION" ]; then - echo "Unable to determine boot partition." - return 1 + # Try for RECOVERY_FSTAB_VERSION = 2 + PARTITION=`grep "[[:space:]]\/boot[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $1'}` + PARTITION_TYPE=`grep "[[:space:]]\/boot[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}` + if [ -z "$PARTITION" ]; + then + echo "Unable to determine boot partition." + return 1 + fi fi adb start-server adb root From ca3875579f3c9c9d1f6a2f0078bc6858de6fc2d7 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 9 Aug 2013 21:03:42 -0700 Subject: [PATCH 0712/1096] envsetup: Fix installrecovery for new fstab format Change-Id: I26ab441c28350cce70bb976b249b16c6b83ab8da --- envsetup.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 536c44b2299..0c6d96d21a3 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1899,8 +1899,14 @@ function installrecovery() PARTITION=`grep "^\/recovery" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}` if [ -z "$PARTITION" ]; then - echo "Unable to determine recovery partition." - return 1 + # Try for RECOVERY_FSTAB_VERSION = 2 + PARTITION=`grep "[[:space:]]\/boot[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $1'}` + PARTITION_TYPE=`grep "[[:space:]]\/boot[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}` + if [ -z "$PARTITION" ]; + then + echo "Unable to determine recovery partition." + return 1 + fi fi adb start-server adb root From 7e874f6140f60812e246655a05c746d1626bce0b Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sat, 10 Aug 2013 21:02:09 -0700 Subject: [PATCH 0713/1096] envsetup: Fix giant derp Change-Id: I490556f18c40c3614e4e554d7db3306a16ff99d8 --- envsetup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 0c6d96d21a3..a6e095c43c6 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1900,8 +1900,8 @@ function installrecovery() if [ -z "$PARTITION" ]; then # Try for RECOVERY_FSTAB_VERSION = 2 - PARTITION=`grep "[[:space:]]\/boot[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $1'}` - PARTITION_TYPE=`grep "[[:space:]]\/boot[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}` + PARTITION=`grep "[[:space:]]\/recovery[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $1'}` + PARTITION_TYPE=`grep "[[:space:]]\/recovery[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}` if [ -z "$PARTITION" ]; then echo "Unable to determine recovery partition." From cf75a0983cf3d9dff18c3ba0b691404cc59e5831 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Wed, 3 Jul 2013 23:06:02 +0100 Subject: [PATCH 0714/1096] recovery: Always allow the CM release key Avoid the "Untrusted" warning in recovery when flashing a CM-signed build Change-Id: I13900bd7e2539fdc7442477a844391b8c5d87dda --- core/Makefile | 2 ++ target/product/security/cm.x509.pem | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 target/product/security/cm.x509.pem diff --git a/core/Makefile b/core/Makefile index 762f6227049..7e9ec73d46b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -855,6 +855,8 @@ ifneq ($(OTA_PACKAGE_SIGNING_KEY),) PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) endif +PRODUCT_EXTRA_RECOVERY_KEYS += build/target/product/security/cm + # Generate a file containing the keys that will be read by the # recovery binary. RECOVERY_INSTALL_OTA_KEYS := \ diff --git a/target/product/security/cm.x509.pem b/target/product/security/cm.x509.pem new file mode 100644 index 00000000000..5ff19db7213 --- /dev/null +++ b/target/product/security/cm.x509.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDZDCCAkygAwIBAgIEUfbexjANBgkqhkiG9w0BAQUFADB0MQswCQYDVQQGEwJV +UzELMAkGA1UECBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxFjAUBgNVBAoTDUN5YW5v +Z2VuIEluYy4xFjAUBgNVBAsTDUN5YW5vZ2VuIEluYy4xFjAUBgNVBAMTDUN5YW5v +Z2VuIEluYy4wHhcNMTMwNzI5MjEyOTQyWhcNNDAxMjE0MjEyOTQyWjB0MQswCQYD +VQQGEwJVUzELMAkGA1UECBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxFjAUBgNVBAoT +DUN5YW5vZ2VuIEluYy4xFjAUBgNVBAsTDUN5YW5vZ2VuIEluYy4xFjAUBgNVBAMT +DUN5YW5vZ2VuIEluYy4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCP ++K2NPqdZ6UmexXQ8tsc2TkLXYhiuEsifO66qlpwsTTw1522HcbKPVoPRr/JBXqOv +E3K0HuZ/IsYYGsP/wJWWvpaWs+5xC+YkLkittK2uUzTqndpLFiDRAeICKpvDJI57 +Z0DkzVYXBPn+yw+x8ttjT/vWcJ3PEVYuew8MYPUOgKpdZlQtUBeoEBDSL8JPGViq +e6jWOlSAWekhlgb+wb9RoXhu/v2HYzp89GG0sIrAgj7vZCior5XuFmm8eWhqUhTp +TUBv/nNI/ORYt3G8IQyI2pJN1GNPAAv1uA5i4y/deX1x4GCWyN9feiD9fOj2oc3z +Hwf5Frs9BjOb9XMXecbNAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAGudhFe9VnES +fWynTYO4kWNlMC++yB6qD3pHW6HtBiaANj9wxrLCTFzf+boHNPeZ8HDkW01zAaQK +fd9/fnGmHf4q/QvxrvGbnb3Fqhw+2hknbbMUoAa+Qp+2ouf9oJaNRquZ+rHEHX8g +Rx8wGyvjaWYfQrwyZRgXj/Jrc/NXxQCmSJeexHVNXgQD6aOLHJYrJ+s+U/hwVNiM +5L+psOh89itwt8DGGSLW16HjQKmPPbWbqxgnfRbOlxWrLDq3agcrskYpDP2aGGBA +5STq/bvh9yZkrNYvMGzrXDhcJ44QRS8e1Jw/ZtfFvJD192e7KKVdy7CJWmOckCNK +gl0KCQ3MBx4= +-----END CERTIFICATE----- From 349bd41657d11c3a9ba58c889495038cb584141b Mon Sep 17 00:00:00 2001 From: Sam Mortimer Date: Sat, 10 Aug 2013 22:57:08 -0700 Subject: [PATCH 0715/1096] build: allow dopush to work properly with network adb Change-Id: I9efe60814d66dc8eb17544e6c2b94473dc903133 --- envsetup.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index a6e095c43c6..75c0b41b0d6 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2268,8 +2268,17 @@ function dopush() if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); then + # retrieve IP and PORT info if we're using a TCP connection + TCPIPPORT=$(adb devices | egrep '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+[^0-9]+' \ + | head -1 | awk '{print $1}') adb root &> /dev/null sleep 0.3 + if [ -n "$TCPIPPORT" ] + then + # adb root just killed our connection + # so reconnect... + adb connect "$TCPIPPORT" + fi adb wait-for-device &> /dev/null sleep 0.3 adb remount &> /dev/null From 6cb90ec408913ce4ae8d73d586205b6d407a08df Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 30 Aug 2013 17:34:37 -0700 Subject: [PATCH 0716/1096] envsetup: Wait for device in installboot/installrecovery * Useful when you're racing against a bug that causes a kernel panic shortly after USB turns on :( Change-Id: I2a503e4b195e632ed5b67a77b942e80c47d0ff45 envsetup: Use wait-for-online so these cmds work in recovery Change-Id: I7a85e7068f373b1d726aa6b27a51862fa9b7c6fd --- envsetup.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 75c0b41b0d6..d5fd87f41c1 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1865,6 +1865,7 @@ function installboot() fi fi adb start-server + adb wait-for-online adb root sleep 1 adb wait-for-online shell mount /system 2>&1 > /dev/null @@ -1909,6 +1910,7 @@ function installrecovery() fi fi adb start-server + adb wait-for-online adb root sleep 1 adb wait-for-online shell mount /system 2>&1 >> /dev/null From c51366939f2820e7f99fd1c58096714bf82f4580 Mon Sep 17 00:00:00 2001 From: William Roberts Date: Tue, 20 Aug 2013 16:02:53 -0700 Subject: [PATCH 0717/1096] Add PRODUCT_BOOTANIMATION Just add PRODUCT_BOOTANIMATION in your product makefiles and point it to the zip file you would like to have used as the boot animation. The coresponsing build system handles picking the last one, which is the last product to set this. Change-Id: I8c95a515a8fbb92d363141eb79e254712dccc162 Signed-off-by: William Roberts Fix for build break when PRODUCT_BOOTANIMATION is unset Change-Id: I236c2dd35ba0e632ed327ed6dc36324c9e59587a Restore original behavior when PRODUCT_BOOTANIMATION is undefined Change-Id: I3ee7141f7c26cee033b8a30824caf38fcacec5a8 --- core/product.mk | 1 + core/product_config.mk | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/core/product.mk b/core/product.mk index 0918357a8e8..30687f66373 100644 --- a/core/product.mk +++ b/core/product.mk @@ -65,6 +65,7 @@ endef # _product_var_list := \ + PRODUCT_BOOTANIMATION \ PRODUCT_BUILD_PROP_OVERRIDES \ PRODUCT_NAME \ PRODUCT_MODEL \ diff --git a/core/product_config.mk b/core/product_config.mk index 70fcd5e3fbd..f0245312ab3 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -374,6 +374,12 @@ endif # The optional : is used to indicate the owner of a vendor file. PRODUCT_COPY_FILES := \ $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_COPY_FILES)) +_boot_animation := $(strip $(lastword $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_BOOTANIMATION))) +ifneq ($(_boot_animation),) +PRODUCT_COPY_FILES += \ + $(_boot_animation):system/media/bootanimation.zip +endif +_boot_animation := # A list of property assignments, like "key = value", with zero or more # whitespace characters on either side of the '='. From 136f0e57b9de87410a2f25e4074fd7f8adb1af11 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Thu, 26 Sep 2013 00:10:20 +0100 Subject: [PATCH 0718/1096] Add a unique build number to every build SDK-readable via android.os.Build.INCREMENTAL Change-Id: If9885adebe12a56b2b2e353285721be695bc411b Fix exporting the unique build identifier Change-Id: Ie58e981b7e83a4351d137dfd8995dce7d365d950 Fix incremental build number on Darwin Darwin does not include sha1sum, but it should have openssl. Change-Id: If2b685c1478f9486bed21dfba0c655d9e02db72b Use openssl instead of sha1sum Change-Id: Iab8a74d4af6646104cb23312853f811a38bdec0d --- envsetup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/envsetup.sh b/envsetup.sh index d5fd87f41c1..04adc550bbb 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -75,6 +75,7 @@ function check_product() if (echo -n $1 | grep -q -e "^cm_") ; then CM_BUILD=$(echo -n $1 | sed -e 's/^cm_//g') + export BUILD_NUMBER=$((date +%s%N ; echo $CM_BUILD; hostname) | openssl sha1 | sed -e 's/.*=//g; s/ //g' | cut -c1-10) else CM_BUILD= fi From 04145aaaf446b5a54578704eb2b9e8f775fce73d Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Mon, 7 Oct 2013 02:34:47 -0700 Subject: [PATCH 0719/1096] build: Don't run backuptool on GMS builds Change-Id: I5dde27f9d16b88049171db9805221d92e67f3e5d --- core/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/Makefile b/core/Makefile index 7e9ec73d46b..14ddd94b14a 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1543,11 +1543,15 @@ else OTA_FROM_TARGET_SCRIPT := $(TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT) endif +ifeq ($(WITH_GMS),true) + $(INTERNAL_OTA_PACKAGE_TARGET): backuptool := false +else ifneq ($(CM_BUILD),) $(INTERNAL_OTA_PACKAGE_TARGET): backuptool := true else $(INTERNAL_OTA_PACKAGE_TARGET): backuptool := false endif +endif ifeq ($(TARGET_OTA_ASSERT_DEVICE),) $(INTERNAL_OTA_PACKAGE_TARGET): override_device := auto From 896c3f36e6b7ada977e6c3119e095f7f52b70bda Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Fri, 18 Oct 2013 21:48:46 +0100 Subject: [PATCH 0720/1096] Store the path to the ota file generator where it can be reused Change-Id: I8896713c79a751b79fbbcc75f6ba30dad4ea9fac --- core/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/core/Makefile b/core/Makefile index 14ddd94b14a..addafdc89e9 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1560,6 +1560,7 @@ else endif $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) + @echo "$(OTA_FROM_TARGET_SCRIPT)" > $(PRODUCT_OUT)/ota_script_path @echo -e ${CL_YLW}"Package OTA:"${CL_RST}" $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ $(OTA_FROM_TARGET_SCRIPT) -v \ From 3ba272431d6b04f9a392f145f61223642cad5a24 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sat, 26 Oct 2013 12:58:57 -0700 Subject: [PATCH 0721/1096] build: Add support for vendor product and device name * CM's build system assumes some convention-over-configuration which we might need to override in order to conform to vendor requirements. * Allow overriding of target and product names using these new variables. This allows for CM conventions to work, while generating the correct fingerprint dynamically without post processing the strings. Change-Id: Ic5913e587400dd38c04aa05de3a7becced77a59e --- core/Makefile | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/core/Makefile b/core/Makefile index addafdc89e9..4fc9bb17a9b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -116,8 +116,18 @@ endif BUILD_VERSION_TAGS += $(BUILD_KEYS) BUILD_VERSION_TAGS := $(subst $(space),$(comma),$(sort $(BUILD_VERSION_TAGS))) +# If the final fingerprint should be different than what was used by the build system, +# we can allow that too. +ifeq ($(TARGET_VENDOR_PRODUCT_NAME),) +TARGET_VENDOR_PRODUCT_NAME := $(TARGET_PRODUCT) +endif + +ifeq ($(TARGET_VENDOR_DEVICE_NAME),) +TARGET_VENDOR_DEVICE_NAME := $(TARGET_DEVICE) +endif + # A human-readable string that descibes this build in detail. -build_desc := $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER) $(BUILD_VERSION_TAGS) +build_desc := $(TARGET_VENDOR_PRODUCT_NAME)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER) $(BUILD_VERSION_TAGS) $(INSTALLED_BUILD_PROP_TARGET): PRIVATE_BUILD_DESC := $(build_desc) # The string used to uniquely identify the combined build and product; used by the OTA server. @@ -129,7 +139,7 @@ ifeq (,$(strip $(BUILD_FINGERPRINT))) else BF_BUILD_NUMBER := $(BUILD_NUMBER) endif - BUILD_FINGERPRINT := $(PRODUCT_BRAND)/$(TARGET_PRODUCT)/$(TARGET_DEVICE):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BF_BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS) + BUILD_FINGERPRINT := $(PRODUCT_BRAND)/$(TARGET_VENDOR_PRODUCT_NAME)/$(TARGET_VENDOR_DEVICE_NAME):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS) endif ifneq ($(words $(BUILD_FINGERPRINT)),1) $(error BUILD_FINGERPRINT cannot contain spaces: "$(BUILD_FINGERPRINT)") @@ -212,9 +222,9 @@ ifneq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_OEM_PROPERTIES),) endif $(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \ TARGET_BUILD_FLAVOR="$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)" \ - TARGET_DEVICE="$(TARGET_DEVICE)" \ + TARGET_DEVICE="$(TARGET_VENDOR_DEVICE_NAME)" \ CM_DEVICE="$(TARGET_DEVICE)" \ - PRODUCT_NAME="$(TARGET_PRODUCT)" \ + PRODUCT_NAME="$(TARGET_VENDOR_PRODUCT_NAME)" \ PRODUCT_BRAND="$(PRODUCT_BRAND)" \ PRODUCT_DEFAULT_LANGUAGE="$(call default-locale-language,$(PRODUCT_LOCALES))" \ PRODUCT_DEFAULT_REGION="$(call default-locale-region,$(PRODUCT_LOCALES))" \ From 5ab033ad32d58bc7165cd1072fe2f2989147284f Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Tue, 22 Oct 2013 22:23:27 -0700 Subject: [PATCH 0722/1096] build: Add script to generate extra images Change-Id: I53081c7a2b4f18bc8c8a27b04d311a6b078b2022 Use CM standard qcom naming Change-Id: I360b3dcf1fe82140a7993189e881f9d77b571bef --- core/generate_extra_images.mk | 318 ++++++++++++++++++++++++++++++++++ 1 file changed, 318 insertions(+) create mode 100644 core/generate_extra_images.mk diff --git a/core/generate_extra_images.mk b/core/generate_extra_images.mk new file mode 100644 index 00000000000..a0aa542e469 --- /dev/null +++ b/core/generate_extra_images.mk @@ -0,0 +1,318 @@ +# This makefile is used to generate extra images for QCOM targets +# persist, device tree & NAND images required for different QCOM targets. + +# These variables are required to make sure that the required +# files/targets are available before generating NAND images. +# This file is included from device/qcom//AndroidBoard.mk +# and gets parsed before build/core/Makefile, which has these +# variables defined. build/core/Makefile will overwrite these +# variables again. +INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img +INSTALLED_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img +INSTALLED_SYSTEMIMAGE := $(PRODUCT_OUT)/system.img +INSTALLED_USERDATAIMAGE_TARGET := $(PRODUCT_OUT)/userdata.img +INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img +recovery_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.img + +#---------------------------------------------------------------------- +# Generate secure boot & recovery image +#---------------------------------------------------------------------- +ifeq ($(TARGET_BOOTIMG_SIGNED),true) +INSTALLED_SEC_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img.secure +INSTALLED_SEC_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img.secure + +ifneq ($(BUILD_TINY_ANDROID),true) +intermediates := $(call intermediates-dir-for,PACKAGING,recovery_patch) +RECOVERY_FROM_BOOT_PATCH := $(intermediates)/recovery_from_boot.p +endif + +ifndef TARGET_SHA_TYPE + TARGET_SHA_TYPE := sha256 +endif + +define build-sec-image + $(hide) mv -f $(1) $(1).nonsecure + $(hide) openssl dgst -$(TARGET_SHA_TYPE) -binary $(1).nonsecure > $(1).$(TARGET_SHA_TYPE) + $(hide) openssl rsautl -sign -in $(1).$(TARGET_SHA_TYPE) -inkey $(PRODUCT_PRIVATE_KEY) -out $(1).sig + $(hide) dd if=/dev/zero of=$(1).sig.padded bs=$(BOARD_KERNEL_PAGESIZE) count=1 + $(hide) dd if=$(1).sig of=$(1).sig.padded conv=notrunc + $(hide) cat $(1).nonsecure $(1).sig.padded > $(1).secure + $(hide) rm -rf $(1).$(TARGET_SHA_TYPE) $(1).sig $(1).sig.padded + $(hide) mv -f $(1).secure $(1) +endef + +$(INSTALLED_SEC_BOOTIMAGE_TARGET): $(INSTALLED_BOOTIMAGE_TARGET) $(RECOVERY_FROM_BOOT_PATCH) + $(hide) $(call build-sec-image,$(INSTALLED_BOOTIMAGE_TARGET)) + +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SEC_BOOTIMAGE_TARGET) +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SEC_BOOTIMAGE_TARGET) + +$(INSTALLED_SEC_RECOVERYIMAGE_TARGET): $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_FROM_BOOT_PATCH) + $(hide) $(call build-sec-image,$(INSTALLED_RECOVERYIMAGE_TARGET)) + +ifneq ($(BUILD_TINY_ANDROID),true) +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SEC_RECOVERYIMAGE_TARGET) +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SEC_RECOVERYIMAGE_TARGET) +endif # !BUILD_TINY_ANDROID +endif # TARGET_BOOTIMG_SIGNED + +#---------------------------------------------------------------------- +# Generate persist image (persist.img) +#---------------------------------------------------------------------- +TARGET_OUT_PERSIST := $(PRODUCT_OUT)/persist + +INTERNAL_PERSISTIMAGE_FILES := \ + $(filter $(TARGET_OUT_PERSIST)/%,$(ALL_DEFAULT_INSTALLED_MODULES)) + +INSTALLED_PERSISTIMAGE_TARGET := $(PRODUCT_OUT)/persist.img + +define build-persistimage-target + $(call pretty,"Target persist fs image: $(INSTALLED_PERSISTIMAGE_TARGET)") + @mkdir -p $(TARGET_OUT_PERSIST) + $(hide) $(MKEXTUSERIMG) -s $(TARGET_OUT_PERSIST) $@ ext4 persist $(BOARD_PERSISTIMAGE_PARTITION_SIZE) + $(hide) chmod a+r $@ + $(hide) $(call assert-max-image-size,$@,$(BOARD_PERSISTIMAGE_PARTITION_SIZE),yaffs) +endef + +$(INSTALLED_PERSISTIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INTERNAL_PERSISTIMAGE_FILES) + $(build-persistimage-target) + +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_PERSISTIMAGE_TARGET) +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_PERSISTIMAGE_TARGET) + + +#---------------------------------------------------------------------- +# Generate device tree image (dt.img) +#---------------------------------------------------------------------- +ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) +ifeq ($(strip $(BUILD_TINY_ANDROID)),true) +include device/qcom/common/dtbtool/Android.mk +endif + +DTBTOOL := $(HOST_OUT_EXECUTABLES)/dtbTool$(HOST_EXECUTABLE_SUFFIX) + +INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img + +define build-dtimage-target + $(call pretty,"Target dt image: $(INSTALLED_DTIMAGE_TARGET)") + $(hide) $(DTBTOOL) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(KERNEL_OUT)/arch/arm/boot/ + $(hide) chmod a+r $@ +endef + +$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET) + $(build-dtimage-target) + +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET) +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET) +endif + + +#---------------------------------------------------------------------- +# Generate 1GB userdata image for 8930 +#---------------------------------------------------------------------- +ifeq ($(call is-board-platform-in-list,msm8960),true) + +1G_USER_OUT := $(PRODUCT_OUT)/1g_user_image +BOARD_1G_USERDATAIMAGE_PARTITION_SIZE := 5368709120 +INSTALLED_1G_USERDATAIMAGE_TARGET := $(1G_USER_OUT)/userdata.img + +define build-1g-userdataimage-target + $(call pretty,"Target 1G userdata fs image: $(INSTALLED_1G_USERDATAIMAGE_TARGET)") + @mkdir -p $(1G_USER_OUT) + $(hide) $(MKEXTUSERIMG) -s $(TARGET_OUT_DATA) $@ ext4 data $(BOARD_1G_USERDATAIMAGE_PARTITION_SIZE) + $(hide) chmod a+r $@ + $(hide) $(call assert-max-image-size,$@,$(BOARD_1G_USERDATAIMAGE_PARTITION_SIZE),yaffs) +endef + +$(INSTALLED_1G_USERDATAIMAGE_TARGET): $(INSTALLED_USERDATAIMAGE_TARGET) + $(build-1g-userdataimage-target) + +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_1G_USERDATAIMAGE_TARGET) +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_1G_USERDATAIMAGE_TARGET) + +endif + + +#---------------------------------------------------------------------- +# Generate NAND images +#---------------------------------------------------------------------- +ifeq ($(call is-board-platform-in-list,msm7x27a msm7x30),true) + +2K_NAND_OUT := $(PRODUCT_OUT)/2k_nand_images +4K_NAND_OUT := $(PRODUCT_OUT)/4k_nand_images +BCHECC_OUT := $(PRODUCT_OUT)/bchecc_images + +INSTALLED_2K_BOOTIMAGE_TARGET := $(2K_NAND_OUT)/boot.img +INSTALLED_2K_SYSTEMIMAGE_TARGET := $(2K_NAND_OUT)/system.img +INSTALLED_2K_USERDATAIMAGE_TARGET := $(2K_NAND_OUT)/userdata.img +INSTALLED_2K_PERSISTIMAGE_TARGET := $(2K_NAND_OUT)/persist.img +INSTALLED_2K_RECOVERYIMAGE_TARGET := $(2K_NAND_OUT)/recovery.img + +INSTALLED_4K_BOOTIMAGE_TARGET := $(4K_NAND_OUT)/boot.img +INSTALLED_4K_SYSTEMIMAGE_TARGET := $(4K_NAND_OUT)/system.img +INSTALLED_4K_USERDATAIMAGE_TARGET := $(4K_NAND_OUT)/userdata.img +INSTALLED_4K_PERSISTIMAGE_TARGET := $(4K_NAND_OUT)/persist.img +INSTALLED_4K_RECOVERYIMAGE_TARGET := $(4K_NAND_OUT)/recovery.img + +INSTALLED_BCHECC_BOOTIMAGE_TARGET := $(BCHECC_OUT)/boot.img +INSTALLED_BCHECC_SYSTEMIMAGE_TARGET := $(BCHECC_OUT)/system.img +INSTALLED_BCHECC_USERDATAIMAGE_TARGET := $(BCHECC_OUT)/userdata.img +INSTALLED_BCHECC_PERSISTIMAGE_TARGET := $(BCHECC_OUT)/persist.img +INSTALLED_BCHECC_RECOVERYIMAGE_TARGET := $(BCHECC_OUT)/recovery.img + +recovery_nand_fstab := $(TARGET_DEVICE_DIR)/recovery_nand.fstab + +NAND_BOOTIMAGE_ARGS := \ + --kernel $(INSTALLED_KERNEL_TARGET) \ + --ramdisk $(INSTALLED_RAMDISK_TARGET) \ + --cmdline "$(BOARD_KERNEL_CMDLINE)" \ + --base $(BOARD_KERNEL_BASE) + +NAND_RECOVERYIMAGE_ARGS := \ + --kernel $(INSTALLED_KERNEL_TARGET) \ + --ramdisk $(recovery_ramdisk) \ + --cmdline "$(BOARD_KERNEL_CMDLINE)" \ + --base $(BOARD_KERNEL_BASE) + +INTERNAL_4K_BOOTIMAGE_ARGS := $(NAND_BOOTIMAGE_ARGS) +INTERNAL_4K_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE) + +INTERNAL_2K_BOOTIMAGE_ARGS := $(NAND_BOOTIMAGE_ARGS) +INTERNAL_2K_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_2KPAGESIZE) + +INTERNAL_4K_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_PAGESIZE) +INTERNAL_4K_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_SPARESIZE) + +INTERNAL_2K_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_2KPAGESIZE) +INTERNAL_2K_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_2KSPARESIZE) + +INTERNAL_BCHECC_MKYAFFS2_FLAGS := -c $(BOARD_KERNEL_PAGESIZE) +INTERNAL_BCHECC_MKYAFFS2_FLAGS += -s $(BOARD_KERNEL_BCHECC_SPARESIZE) + +INTERNAL_4K_RECOVERYIMAGE_ARGS := $(NAND_RECOVERYIMAGE_ARGS) +INTERNAL_4K_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE) + +INTERNAL_2K_RECOVERYIMAGE_ARGS := $(NAND_RECOVERYIMAGE_ARGS) +INTERNAL_2K_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_2KPAGESIZE) + +# Generate boot image for NAND +ifeq ($(TARGET_BOOTIMG_SIGNED),true) + +ifndef TARGET_SHA_TYPE + TARGET_SHA_TYPE := sha256 +endif + +define build-nand-bootimage + @echo "target NAND boot image: $(3)" + $(hide) mkdir -p $(1) + $(hide) $(MKBOOTIMG) $(2) --output $(3).nonsecure + $(hide) openssl dgst -$(TARGET_SHA_TYPE) -binary $(3).nonsecure > $(3).$(TARGET_SHA_TYPE) + $(hide) openssl rsautl -sign -in $(3).$(TARGET_SHA_TYPE) -inkey $(PRODUCT_PRIVATE_KEY) -out $(3).sig + $(hide) dd if=/dev/zero of=$(3).sig.padded bs=$(BOARD_KERNEL_PAGESIZE) count=1 + $(hide) dd if=$(3).sig of=$(3).sig.padded conv=notrunc + $(hide) cat $(3).nonsecure $(3).sig.padded > $(3) + $(hide) rm -rf $(3).$(TARGET_SHA_TYPE) $(3).sig $(3).sig.padded +endef +else +define build-nand-bootimage + @echo "target NAND boot image: $(3)" + $(hide) mkdir -p $(1) + $(hide) $(MKBOOTIMG) $(2) --output $(3) +endef + $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw) +endif + +# Generate system image for NAND +define build-nand-systemimage + @echo "target NAND system image: $(3)" + $(hide) mkdir -p $(1) + $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT) $(3) + $(hide) chmod a+r $(3) + $(hide) $(call assert-max-image-size,$@,$(BOARD_SYSTEMIMAGE_PARTITION_SIZE),yaffs) +endef + +# Generate userdata image for NAND +define build-nand-userdataimage + @echo "target NAND userdata image: $(3)" + $(hide) mkdir -p $(1) + $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT_DATA) $(3) + $(hide) chmod a+r $(3) + $(hide) $(call assert-max-image-size,$@,$(BOARD_USERDATAIMAGE_PARTITION_SIZE),yaffs) +endef + +# Generate persist image for NAND +define build-nand-persistimage + @echo "target NAND persist image: $(3)" + $(hide) mkdir -p $(1) + $(hide) $(MKYAFFS2) -f $(2) $(TARGET_OUT_PERSIST) $(3) + $(hide) chmod a+r $(3) + $(hide) $(call assert-max-image-size,$@,$(BOARD_PERSISTIMAGE_PARTITION_SIZE),yaffs) +endef + +$(INSTALLED_4K_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_BOOTIMAGE_TARGET) + $(hide) $(call build-nand-bootimage,$(4K_NAND_OUT),$(INTERNAL_4K_BOOTIMAGE_ARGS),$(INSTALLED_4K_BOOTIMAGE_TARGET)) +ifeq ($(call is-board-platform,msm7x27a),true) + $(hide) $(call build-nand-bootimage,$(2K_NAND_OUT),$(INTERNAL_2K_BOOTIMAGE_ARGS),$(INSTALLED_2K_BOOTIMAGE_TARGET)) + $(hide) $(call build-nand-bootimage,$(BCHECC_OUT),$(INTERNAL_4K_BOOTIMAGE_ARGS),$(INSTALLED_BCHECC_BOOTIMAGE_TARGET)) +endif # is-board-platform + +$(INSTALLED_4K_SYSTEMIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_SYSTEMIMAGE) + $(hide) $(call build-nand-systemimage,$(4K_NAND_OUT),$(INTERNAL_4K_MKYAFFS2_FLAGS),$(INSTALLED_4K_SYSTEMIMAGE_TARGET)) +ifeq ($(call is-board-platform,msm7x27a),true) + $(hide) $(call build-nand-systemimage,$(2K_NAND_OUT),$(INTERNAL_2K_MKYAFFS2_FLAGS),$(INSTALLED_2K_SYSTEMIMAGE_TARGET)) + $(hide) $(call build-nand-systemimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_SYSTEMIMAGE_TARGET)) +endif # is-board-platform + +$(INSTALLED_4K_USERDATAIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_USERDATAIMAGE_TARGET) + $(hide) $(call build-nand-userdataimage,$(4K_NAND_OUT),$(INTERNAL_4K_MKYAFFS2_FLAGS),$(INSTALLED_4K_USERDATAIMAGE_TARGET)) +ifeq ($(call is-board-platform,msm7x27a),true) + $(hide) $(call build-nand-userdataimage,$(2K_NAND_OUT),$(INTERNAL_2K_MKYAFFS2_FLAGS),$(INSTALLED_2K_USERDATAIMAGE_TARGET)) + $(hide) $(call build-nand-userdataimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_USERDATAIMAGE_TARGET)) +endif # is-board-platform + +$(INSTALLED_4K_PERSISTIMAGE_TARGET): $(MKYAFFS2) $(INSTALLED_PERSISTIMAGE_TARGET) + $(hide) $(call build-nand-persistimage,$(4K_NAND_OUT),$(INTERNAL_4K_MKYAFFS2_FLAGS),$(INSTALLED_4K_PERSISTIMAGE_TARGET)) +ifeq ($(call is-board-platform,msm7x27a),true) + $(hide) $(call build-nand-persistimage,$(2K_NAND_OUT),$(INTERNAL_2K_MKYAFFS2_FLAGS),$(INSTALLED_2K_PERSISTIMAGE_TARGET)) + $(hide) $(call build-nand-persistimage,$(BCHECC_OUT),$(INTERNAL_BCHECC_MKYAFFS2_FLAGS),$(INSTALLED_BCHECC_PERSISTIMAGE_TARGET)) +endif # is-board-platform + +$(INSTALLED_4K_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_RECOVERYIMAGE_TARGET) $(recovery_nand_fstab) + $(hide) cp -f $(recovery_nand_fstab) $(TARGET_RECOVERY_ROOT_OUT)/etc + $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk) + $(hide) $(call build-nand-bootimage,$(4K_NAND_OUT),$(INTERNAL_4K_RECOVERYIMAGE_ARGS),$(INSTALLED_4K_RECOVERYIMAGE_TARGET)) +ifeq ($(call is-board-platform,msm7x27a),true) + $(hide) $(call build-nand-bootimage,$(2K_NAND_OUT),$(INTERNAL_2K_RECOVERYIMAGE_ARGS),$(INSTALLED_2K_RECOVERYIMAGE_TARGET)) + $(hide) $(call build-nand-bootimage,$(BCHECC_OUT),$(INTERNAL_4K_RECOVERYIMAGE_ARGS),$(INSTALLED_BCHECC_RECOVERYIMAGE_TARGET)) +endif # is-board-platform + +ALL_DEFAULT_INSTALLED_MODULES += \ + $(INSTALLED_4K_BOOTIMAGE_TARGET) \ + $(INSTALLED_4K_SYSTEMIMAGE_TARGET) \ + $(INSTALLED_4K_USERDATAIMAGE_TARGET) \ + $(INSTALLED_4K_PERSISTIMAGE_TARGET) + +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += \ + $(INSTALLED_4K_BOOTIMAGE_TARGET) \ + $(INSTALLED_4K_SYSTEMIMAGE_TARGET) \ + $(INSTALLED_4K_USERDATAIMAGE_TARGET) \ + $(INSTALLED_4K_PERSISTIMAGE_TARGET) + +ifneq ($(BUILD_TINY_ANDROID),true) +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_4K_RECOVERYIMAGE_TARGET) +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_4K_RECOVERYIMAGE_TARGET) +endif # !BUILD_TINY_ANDROID + +endif # is-board-platform-in-list + +.PHONY: aboot +aboot: $(INSTALLED_BOOTLOADER_MODULE) + +.PHONY: kernel +kernel: $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_SEC_BOOTIMAGE_TARGET) $(INSTALLED_4K_BOOTIMAGE_TARGET) + +.PHONY: recoveryimage +recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(INSTALLED_SEC_RECOVERYIMAGE_TARGET) $(INSTALLED_4K_RECOVERYIMAGE_TARGET) + +.PHONY: persistimage +persistimage: $(INSTALLED_PERSISTIMAGE_TARGET) $(INSTALLED_4K_PERSISTIMAGE_TARGET) From df6ecbdaadd03cc5f8f656615b20c27343286a93 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Tue, 5 Nov 2013 22:17:59 +0000 Subject: [PATCH 0723/1096] cm: Fix global selinux policy inclusion We're adding CM-specific policies to an overlay instead of patching external/sepolicy, so we need to make sure it's included to prevent misbehaving systems Change-Id: I7989a1093f9abc8360d492e73a860eb4afad10ad --- core/config.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/config.mk b/core/config.mk index fed54f314b5..a9e28d1e5b4 100644 --- a/core/config.mk +++ b/core/config.mk @@ -617,4 +617,10 @@ RS_PREBUILT_CLCORE := prebuilts/sdk/renderscript/lib/$(TARGET_ARCH)/librsrt_$(TA RS_PREBUILT_LIBPATH := -L prebuilts/ndk/8/platforms/android-9/arch-$(TARGET_ARCH)/usr/lib RS_PREBUILT_COMPILER_RT := prebuilts/sdk/renderscript/lib/$(TARGET_ARCH)/libcompiler_rt.a +ifneq ($(CM_BUILD),) +## We need to be sure the global selinux policies are included +## last, to avoid accidental resetting by device configs +$(eval include vendor/cm/sepolicy/sepolicy.mk) +endif + include $(BUILD_SYSTEM)/dumpvar.mk From 745cdc98a166edd87181f3c030ea03fff37e33f1 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Fri, 1 Nov 2013 00:47:32 +0000 Subject: [PATCH 0724/1096] Don't make assumptions about the formats of build descriptions Change-Id: Id83a7594e9e1b9b4ffbdbaba695506d8d0d21a46 --- tools/releasetools/sign_target_files_apks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/releasetools/sign_target_files_apks b/tools/releasetools/sign_target_files_apks index 931acb81ae8..1a19445eba9 100755 --- a/tools/releasetools/sign_target_files_apks +++ b/tools/releasetools/sign_target_files_apks @@ -308,7 +308,7 @@ def RewriteProps(data, misc_info): value = "/".join(pieces) elif key == "ro.build.description": pieces = value.split(" ") - assert len(pieces) == 5 + #assert len(pieces) == 5 pieces[-1] = EditTags(pieces[-1]) value = " ".join(pieces) elif key == "ro.build.tags": From cf5cb7f300a4d00fa093174e9a704bddbf65bb36 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Mon, 11 Nov 2013 00:51:48 +0000 Subject: [PATCH 0725/1096] For user builds, use a release build id in the description if one exists Companion change to Ic5913e587400dd38c04aa05de3a7becced77a59e Change-Id: If5edbf56d567701f96f0ba46af9a90ffa8310c24 --- core/Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index 4fc9bb17a9b..537b26331a6 100644 --- a/core/Makefile +++ b/core/Makefile @@ -126,8 +126,12 @@ ifeq ($(TARGET_VENDOR_DEVICE_NAME),) TARGET_VENDOR_DEVICE_NAME := $(TARGET_DEVICE) endif +ifeq ($(TARGET_VENDOR_RELEASE_BUILD_ID),) +TARGET_VENDOR_RELEASE_BUILD_ID := $(BUILD_NUMBER) +endif + # A human-readable string that descibes this build in detail. -build_desc := $(TARGET_VENDOR_PRODUCT_NAME)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER) $(BUILD_VERSION_TAGS) +build_desc := $(TARGET_VENDOR_PRODUCT_NAME)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(TARGET_VENDOR_RELEASE_BUILD_ID) $(BUILD_VERSION_TAGS) $(INSTALLED_BUILD_PROP_TARGET): PRIVATE_BUILD_DESC := $(build_desc) # The string used to uniquely identify the combined build and product; used by the OTA server. @@ -139,7 +143,7 @@ ifeq (,$(strip $(BUILD_FINGERPRINT))) else BF_BUILD_NUMBER := $(BUILD_NUMBER) endif - BUILD_FINGERPRINT := $(PRODUCT_BRAND)/$(TARGET_VENDOR_PRODUCT_NAME)/$(TARGET_VENDOR_DEVICE_NAME):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS) + BUILD_FINGERPRINT := $(PRODUCT_BRAND)/$(TARGET_VENDOR_PRODUCT_NAME)/$(TARGET_VENDOR_DEVICE_NAME):$(PLATFORM_VERSION)/$(BUILD_ID)/$(TARGET_VENDOR_RELEASE_BUILD_ID):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS) endif ifneq ($(words $(BUILD_FINGERPRINT)),1) $(error BUILD_FINGERPRINT cannot contain spaces: "$(BUILD_FINGERPRINT)") From 263c041a79bffd7797b0b598eb26c399ab64e610 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sun, 27 Oct 2013 13:34:36 -0700 Subject: [PATCH 0726/1096] build: Add cafremote command to envsetup * So lazy! Change-Id: I99a988180abb4fb486d4ebbb842bb9eda03bf1bc --- envsetup.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 04adc550bbb..c3eb240357d 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -23,6 +23,7 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - cmgerrit: A Git wrapper that fetches/pushes patch from/to CM Gerrit Review - cmrebase: Rebase a Gerrit change and push it again - aospremote: Add git remote for matching AOSP repository +- cafremote: Add git remote for matching CodeAurora repository. - mka: Builds using SCHED_BATCH on all processors - reposync: Parallel repo sync using ionice and SCHED_BATCH - repopick: Utility to fetch changes from Gerrit. @@ -1841,6 +1842,24 @@ function aospremote() } export -f aospremote +function cafremote() +{ + git remote rm caf 2> /dev/null + if [ ! -d .git ] + then + echo .git directory not found. Please run this from the root directory of the Android repository you wish to set up. + fi + PROJECT=`pwd | sed s#$ANDROID_BUILD_TOP/##g` + if (echo $PROJECT | grep -qv "^device") + then + PFX="platform/" + fi + git remote add caf git://codeaurora.org/$PFX$PROJECT + echo "Remote 'caf' created" +} +export -f cafremote + + function installboot() { if [ ! -e "$OUT/recovery/root/etc/recovery.fstab" ]; From 8d97615ede7aca4ee617a91293106c6458a01a12 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sat, 16 Nov 2013 03:48:30 -0800 Subject: [PATCH 0727/1096] envsetup: Fix remote functions to deal with symlinks Change-Id: I6f35dc30dda22149b2c37e1c6c7d41ea7239d3bb --- envsetup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index c3eb240357d..cfdf8c9bc23 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1832,7 +1832,7 @@ function aospremote() then echo .git directory not found. Please run this from the root directory of the Android repository you wish to set up. fi - PROJECT=`pwd | sed s#$ANDROID_BUILD_TOP/##g` + PROJECT=`pwd -P | sed s#$ANDROID_BUILD_TOP/##g` if (echo $PROJECT | grep -qv "^device") then PFX="platform/" @@ -1849,7 +1849,7 @@ function cafremote() then echo .git directory not found. Please run this from the root directory of the Android repository you wish to set up. fi - PROJECT=`pwd | sed s#$ANDROID_BUILD_TOP/##g` + PROJECT=`pwd -P | sed s#$ANDROID_BUILD_TOP/##g` if (echo $PROJECT | grep -qv "^device") then PFX="platform/" From f64527ace9dc6d265929130f6ddd179c79ce0032 Mon Sep 17 00:00:00 2001 From: cybojenix Date: Sat, 2 Nov 2013 17:18:36 +0400 Subject: [PATCH 0728/1096] core: main: remove all the spam about including make files Change-Id: Ifd2ef0e239d16b169c572472416c2c31df62a367 --- core/main.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/main.mk b/core/main.mk index 22cece99c33..b3936ce5683 100644 --- a/core/main.mk +++ b/core/main.mk @@ -518,7 +518,7 @@ ifneq ($(dont_bother),true) subdir_makefiles := \ $(shell build/tools/findleaves.py --prune=$(OUT_DIR) --prune=.repo --prune=.git $(subdirs) Android.mk) -$(foreach mk, $(subdir_makefiles), $(info including $(mk) ...)$(eval include $(mk))) +$(foreach mk, $(subdir_makefiles), $(eval include $(mk))) endif # dont_bother From 53d3738d76a326058ec388ebe4999f85508f5cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= Date: Sun, 3 Nov 2013 13:02:13 -0300 Subject: [PATCH 0729/1096] envsetup: do not print an error if complete fails complete is a bashism; so it will fail on other shells. Avoid printing an error if that is the case. Change-Id: Id6d6311792f409cc3a697c7a2bb003863f1afe60 --- envsetup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index cfdf8c9bc23..551a1afab4f 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -668,7 +668,7 @@ function _lunch() COMPREPLY=( $(compgen -W "${LUNCH_MENU_CHOICES[*]}" -- ${cur}) ) return 0 } -complete -F _lunch lunch +complete -F _lunch lunch 2>/dev/null # Configures the build to build unbundled apps. # Run tapas with one or more app names (from LOCAL_PACKAGE_NAME) From 194437ec17b2d3feabe2bc0104b359d0dc9617c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= Date: Sun, 3 Nov 2013 13:04:27 -0300 Subject: [PATCH 0730/1096] envsetup: drop unnecesary exports export -f is a bashism and we don't actually need it, so lets remove it. Change-Id: I9228cef0c4a9543b3d34fdc39a368ad0238431e2 --- envsetup.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 551a1afab4f..336350c3a2f 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1823,7 +1823,6 @@ function cmremote() fi echo You can now push to "cmremote". } -export -f cmremote function aospremote() { @@ -1840,7 +1839,6 @@ function aospremote() git remote add aosp https://android.googlesource.com/$PFX$PROJECT echo "Remote 'aosp' created" } -export -f aospremote function cafremote() { @@ -1857,8 +1855,6 @@ function cafremote() git remote add caf git://codeaurora.org/$PFX$PROJECT echo "Remote 'caf' created" } -export -f cafremote - function installboot() { From 807976c29c403948f5d65d7bf07dfce8e6542efa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= Date: Sun, 3 Nov 2013 13:05:43 -0300 Subject: [PATCH 0731/1096] envsetup: Mark zsh as compatible Basic functionality has been tested on zsh 5.0.2 and has been found to work correctly. Change-Id: I02e5e3bedf56b43104c280d9737ae7b334357643 --- envsetup.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 336350c3a2f..fe1b731e42d 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2462,8 +2462,10 @@ if [ "x$SHELL" != "x/bin/bash" ]; then case `ps -o command -p $$` in *bash*) ;; + *zsh*) + ;; *) - echo "WARNING: Only bash is supported, use of other shell would lead to erroneous results" + echo "WARNING: Only bash and zsh are supported, use of other shell may lead to erroneous results" ;; esac fi From 802b1a000dfee8fc09d56a08f5d852c22c344f5c Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 13 Dec 2013 12:47:42 -0500 Subject: [PATCH 0732/1096] build: Add support for PRODUCT_COPY_FILES_OVERRIDES * We may have a case where prebuilts need to be built from source instead based on an externalized config. * New directive takes a list of destination files to remove from PRODUCT_COPY_FILES so that other instructions can be supplied. Change-Id: I7feff16440e54d1676ffddbbd96d5947efa43ede --- core/product.mk | 1 + core/product_config.mk | 16 ++++++++++++++++ core/tasks/product-graph.mk | 1 + 3 files changed, 18 insertions(+) diff --git a/core/product.mk b/core/product.mk index 30687f66373..bd2f50c21b7 100644 --- a/core/product.mk +++ b/core/product.mk @@ -84,6 +84,7 @@ _product_var_list := \ PRODUCT_DEFAULT_PROPERTY_OVERRIDES \ PRODUCT_CHARACTERISTICS \ PRODUCT_COPY_FILES \ + PRODUCT_COPY_FILES_OVERRIDES \ PRODUCT_OTA_PUBLIC_KEYS \ PRODUCT_EXTRA_RECOVERY_KEYS \ PRODUCT_PACKAGE_OVERLAYS \ diff --git a/core/product_config.mk b/core/product_config.mk index f0245312ab3..ee72cb3073c 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -381,6 +381,22 @@ PRODUCT_COPY_FILES += \ endif _boot_animation := +# We might want to skip items listed in PRODUCT_COPY_FILES for +# various reasons. This is useful for replacing a binary module with one +# built from source. This should be a list of destination files under $OUT +PRODUCT_COPY_FILES_OVERRIDES := \ + $(addprefix %:, $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_COPY_FILES_OVERRIDES))) + +ifneq ($(PRODUCT_COPY_FILES_OVERRIDES),) + PRODUCT_COPY_FILES := $(filter-out $(PRODUCT_COPY_FILES_OVERRIDES), $(PRODUCT_COPY_FILES)) +endif + +.PHONY: listcopies +listcopies: + @echo "Copy files: $(PRODUCT_COPY_FILES)" + @echo "Overrides: $(PRODUCT_COPY_FILES_OVERRIDES)" + + # A list of property assignments, like "key = value", with zero or more # whitespace characters on either side of the '='. PRODUCT_PROPERTY_OVERRIDES := \ diff --git a/core/tasks/product-graph.mk b/core/tasks/product-graph.mk index f761915426d..b1c943c635d 100644 --- a/core/tasks/product-graph.mk +++ b/core/tasks/product-graph.mk @@ -105,6 +105,7 @@ $(OUT_DIR)/products/$(strip $(1)).txt: $(this_makefile) $(hide) echo 'PRODUCT_DEFAULT_PROPERTY_OVERRIDES=$$(PRODUCTS.$(strip $(1)).PRODUCT_DEFAULT_PROPERTY_OVERRIDES)' >> $$@ $(hide) echo 'PRODUCT_CHARACTERISTICS=$$(PRODUCTS.$(strip $(1)).PRODUCT_CHARACTERISTICS)' >> $$@ $(hide) echo 'PRODUCT_COPY_FILES=$$(PRODUCTS.$(strip $(1)).PRODUCT_COPY_FILES)' >> $$@ + $(hide) echo 'PRODUCT_COPY_FILES_OVERRIDES=$$(PRODUCTS.$(strip $(1)).PRODUCT_COPY_FILES_OVERRIDES)' >> $$@ $(hide) echo 'PRODUCT_OTA_PUBLIC_KEYS=$$(PRODUCTS.$(strip $(1)).PRODUCT_OTA_PUBLIC_KEYS)' >> $$@ $(hide) echo 'PRODUCT_EXTRA_RECOVERY_KEYS=$$(PRODUCTS.$(strip $(1)).PRODUCT_EXTRA_RECOVERY_KEYS)' >> $$@ $(hide) echo 'PRODUCT_PACKAGE_OVERLAYS=$$(PRODUCTS.$(strip $(1)).PRODUCT_PACKAGE_OVERLAYS)' >> $$@ From 58883e28c57c39fbc49dfe88d6b5fc6a4e986d78 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sat, 28 Dec 2013 15:48:20 -0800 Subject: [PATCH 0733/1096] build: Add QCOM target-specific config * Needed to support global DirectTract config on legacy targets * Let's also eliminate some boilerplate Change-Id: I736c10a5e7e1f3d1e0de9e60f29b60add276f151 --- core/config.mk | 3 +++ core/qcom_target.mk | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 core/qcom_target.mk diff --git a/core/config.mk b/core/config.mk index a9e28d1e5b4..c42a13d83de 100644 --- a/core/config.mk +++ b/core/config.mk @@ -617,6 +617,9 @@ RS_PREBUILT_CLCORE := prebuilts/sdk/renderscript/lib/$(TARGET_ARCH)/librsrt_$(TA RS_PREBUILT_LIBPATH := -L prebuilts/ndk/8/platforms/android-9/arch-$(TARGET_ARCH)/usr/lib RS_PREBUILT_COMPILER_RT := prebuilts/sdk/renderscript/lib/$(TARGET_ARCH)/libcompiler_rt.a +# Rules for QCOM targets +include $(BUILD_SYSTEM)/qcom_target.mk + ifneq ($(CM_BUILD),) ## We need to be sure the global selinux policies are included ## last, to avoid accidental resetting by device configs diff --git a/core/qcom_target.mk b/core/qcom_target.mk new file mode 100644 index 00000000000..b993e8f76db --- /dev/null +++ b/core/qcom_target.mk @@ -0,0 +1,19 @@ +# Target-specific configuration + +# Enable DirectTrack on QCOM legacy boards +ifeq ($(BOARD_USES_QCOM_HARDWARE),true) + + TARGET_GLOBAL_CFLAGS += -DQCOM_HARDWARE + + ifeq ($(TARGET_USES_QCOM_BSP),true) + TARGET_GLOBAL_CFLAGS += -DQCOM_BSP + endif + + # Enable DirectTrack for legacy targets + ifneq ($(filter caf bfam,$(TARGET_QCOM_AUDIO_VARIANT)),) + ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true) + TARGET_GLOBAL_CFLAGS += -DQCOM_DIRECTTRACK + endif + endif +endif + From f13f9bd2c27357c730af7e319c998dc00c8bc04e Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Thu, 19 Dec 2013 01:00:32 -0600 Subject: [PATCH 0734/1096] qcom_utils: Update list of QCOM_BOARD_PLATFORMS Add msm8226 (Moto G) and other upcoming platforms Change-Id: Icf895cbcf86791ca800636a1c0893b3a905a27a0 --- core/qcom_utils.mk | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/qcom_utils.mk b/core/qcom_utils.mk index 71ba3ad40f2..279f06f2db8 100755 --- a/core/qcom_utils.mk +++ b/core/qcom_utils.mk @@ -1,11 +1,15 @@ # Board platforms lists to be used for # TARGET_BOARD_PLATFORM specific featurization -QCOM_BOARD_PLATFORMS := msm7x27 -QCOM_BOARD_PLATFORMS += msm7x27a QCOM_BOARD_PLATFORMS += msm7x30 +QCOM_BOARD_PLATFORMS += msm8226 +QCOM_BOARD_PLATFORMS += msm8610 QCOM_BOARD_PLATFORMS += msm8660 +QCOM_BOARD_PLATFORMS += msm8916 QCOM_BOARD_PLATFORMS += msm8960 QCOM_BOARD_PLATFORMS += msm8974 +QCOM_BOARD_PLATFORMS += mpq8092 +QCOM_BOARD_PLATFORMS += msm_bronze +QCOM_BOARD_PLATFORMS += apq8084 MSM7K_BOARD_PLATFORMS := msm7x30 MSM7K_BOARD_PLATFORMS += msm7x27 From 1c084499281b534aa9c72f7f8a86d0f967586473 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Mon, 30 Dec 2013 11:15:18 -0800 Subject: [PATCH 0735/1096] build: Fix cflags for QC targets Change-Id: I2281bec3afb4d80e80845718d880dc24ef7baf32 --- core/qcom_target.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index b993e8f76db..e65a6fc0cd5 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -4,16 +4,18 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) TARGET_GLOBAL_CFLAGS += -DQCOM_HARDWARE + TARGET_GLOBAL_CPPFLAGS += -DQCOM_HARDWARE ifeq ($(TARGET_USES_QCOM_BSP),true) TARGET_GLOBAL_CFLAGS += -DQCOM_BSP + TARGET_GLOBAL_CPPFLAGS += -DQCOM_BSP endif # Enable DirectTrack for legacy targets ifneq ($(filter caf bfam,$(TARGET_QCOM_AUDIO_VARIANT)),) ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true) TARGET_GLOBAL_CFLAGS += -DQCOM_DIRECTTRACK + TARGET_GLOBAL_CPPFLAGS += -DQCOM_DIRECTTRACK endif endif endif - From 86a374eccc13a41a30a2539eed4c63f07b40eab6 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Fri, 3 Jan 2014 02:46:15 +0000 Subject: [PATCH 0736/1096] Allow individual projects to enforce a property's value Some projects require system properties to be set to a specific value (for example, a shared library needing a property pointing to its own path) in order to work correctly, but some device configurations are mistakenly setting those properties with the wrong value (usually inherited from the original OEM build). "PRODUCT_PROPERTY_UBER_OVERRIDES += property=value" can (and should) be used in that project's makefile to ensure the value is the correct one. This variable is intended for software projects, and should never be used in product makefiles (BoardConfig, cm.mk, AndroidProduct) Change-Id: I1986e7c444e51cce8b198e43fdc793fad16d6276 --- core/Makefile | 2 +- tools/post_process_props.py | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/core/Makefile b/core/Makefile index 537b26331a6..fa6dbdeecac 100644 --- a/core/Makefile +++ b/core/Makefile @@ -271,7 +271,7 @@ endif echo "#" >> $@; ) $(hide) $(foreach line,$(ADDITIONAL_BUILD_PROPERTIES), \ echo "$(line)" >> $@;) - $(hide) build/tools/post_process_props.py $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_PROPERTY_BLACKLIST) + $(hide) build/tools/post_process_props.py $@ "$(PRODUCT_PROPERTY_UBER_OVERRIDES)" $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_PROPERTY_BLACKLIST) build_desc := diff --git a/tools/post_process_props.py b/tools/post_process_props.py index 223770780f0..a20ded968f0 100755 --- a/tools/post_process_props.py +++ b/tools/post_process_props.py @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys +import os, sys # Usage: post_process_props.py file.prop [blacklist_key, ...] # Blacklisted keys are removed from the property file, if present @@ -27,7 +27,14 @@ # Put the modifications that you need to make into the /system/build.prop into this # function. The prop object has get(name) and put(name,value) methods. -def mangle_build_prop(prop): +def mangle_build_prop(prop, overrides): + if len(overrides) == 0: + return + overridelist = overrides.replace(" ",",").split(",") + for proppair in overridelist: + values = proppair.split("=") + prop.put(values[0], values[1]) + pass # Put the modifications that you need to make into the /default.prop into this @@ -121,6 +128,10 @@ def write(self, f): def main(argv): filename = argv[1] + if (len(argv) > 2): + extraargs = argv[2] + else: + extraargs = "" f = open(filename) lines = f.readlines() f.close() @@ -128,7 +139,7 @@ def main(argv): properties = PropFile(lines) if filename.endswith("/build.prop"): - mangle_build_prop(properties) + mangle_build_prop(properties, extraargs) elif filename.endswith("/default.prop"): mangle_default_prop(properties) else: @@ -139,7 +150,7 @@ def main(argv): sys.exit(1) # Drop any blacklisted keys - for key in argv[2:]: + for key in argv[3:]: properties.delete(key) f = open(filename, 'w+') From 073b43345982d045370aabcbb2b8d67c05021b6d Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Wed, 22 Jan 2014 15:51:46 -0800 Subject: [PATCH 0737/1096] Store the value from TARGET_OTA_ASSERT_DEVICE to a file This is needed so it can be read in when re-signing a package to allow for the proper device asserts. Change-Id: I8f3bb491bbbaa4d2b827a45ef83f12c6c83e6712 --- core/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/core/Makefile b/core/Makefile index fa6dbdeecac..6f2987ac3de 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1575,6 +1575,7 @@ endif $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) @echo "$(OTA_FROM_TARGET_SCRIPT)" > $(PRODUCT_OUT)/ota_script_path + @echo "$(override_device)" > $(PRODUCT_OUT)/ota_override_device @echo -e ${CL_YLW}"Package OTA:"${CL_RST}" $@" $(hide) MKBOOTIMG=$(MKBOOTIMG) \ $(OTA_FROM_TARGET_SCRIPT) -v \ From 21cf03af8baf46e4ed0721e330da04f301e240fe Mon Sep 17 00:00:00 2001 From: Tom Marshall Date: Wed, 9 Apr 2014 16:14:07 -0700 Subject: [PATCH 0738/1096] build: edify: use set_metadata for backuptool Also use saner permissions on backuptool.sh Change-Id: I50742b51867aa358f5924b8dc208833092a35bd9 --- tools/releasetools/edify_generator.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index 3b30cbd8706..7eb3f127b1b 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -135,8 +135,12 @@ def AssertSomeBootloader(self, *bootloaders): def RunBackup(self, command): self.script.append('package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");') self.script.append('package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");') - self.script.append('set_perm(0, 0, 0777, "/tmp/backuptool.sh");') - self.script.append('set_perm(0, 0, 0644, "/tmp/backuptool.functions");') + if not self.info.get("use_set_metadata", False): + self.script.append('set_perm(0, 0, 0755, "/tmp/backuptool.sh");') + self.script.append('set_perm(0, 0, 0644, "/tmp/backuptool.functions");') + else: + self.script.append('set_metadata("/tmp/backuptool.sh", "uid", 0, "gid", 0, "mode", 0755);') + self.script.append('set_metadata("/tmp/backuptool.functions", "uid", 0, "gid", 0, "mode", 0644);') self.script.append(('run_program("/tmp/backuptool.sh", "%s");' % command)) if command == "restore": self.script.append('delete("/system/bin/backuptool.sh");') From 2d9c372dcc72999705e9f3dd6933e8b026d430d0 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Tue, 1 Oct 2013 20:42:45 +0100 Subject: [PATCH 0739/1096] tools: getb64key - print the base64 version of a PEM public key file Change-Id: Ia94ff560c88dfe85c3fa55db5c8219aa0d3419ee --- tools/getb64key.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100755 tools/getb64key.py diff --git a/tools/getb64key.py b/tools/getb64key.py new file mode 100755 index 00000000000..0bb63e1a88d --- /dev/null +++ b/tools/getb64key.py @@ -0,0 +1,17 @@ +#!/usr/bin/python + +import base64 +import sys +import os + +pkFile = open(sys.argv[1], 'rb').readlines() +base64Key = "" +inCert = False +for line in pkFile: + if line.startswith("-"): + inCert = not inCert + continue + + base64Key += line.strip() + +print base64.b16encode(base64.b64decode(base64Key)).lower() From 3d8686c593643910d035e1177dfb3207d783a065 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Wed, 7 May 2014 17:28:49 +0100 Subject: [PATCH 0740/1096] Store the base64 release key in the OTA zips This can be directly grepped in pre-existing package.xml tables to make sure we're not trying to update to a differently signed build Change-Id: I7528a8e7c484ea9209cd665b9263328ae834586a --- core/Makefile | 5 +++++ tools/releasetools/ota_from_target_files | 3 ++- tools/releasetools/sign_target_files_apks | 8 ++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 6f2987ac3de..69424575acf 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1515,6 +1515,11 @@ ifneq ($(OEM_THUMBPRINT_PROPERTIES),) endif $(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt) $(hide) ./build/tools/releasetools/make_recovery_patch $(zip_root) $(zip_root) +ifdef PRODUCT_DEFAULT_DEV_CERTIFICATE + $(hide) build/tools/getb64key.py $(PRODUCT_DEFAULT_DEV_CERTIFICATE).x509.pem > $(zip_root)/META/releasekey.txt +else + $(hide) build/tools/getb64key.py $(DEFAULT_SYSTEM_DEV_CERTIFICATE).x509.pem > $(zip_root)/META/releasekey.txt +endif @# Zip everything up, preserving symlinks $(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .) @# Run fs_config on all the system, vendor, boot ramdisk, diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 0de1b39b8da..73b79d5e838 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -664,6 +664,8 @@ endif; script.AddToZip(input_zip, output_zip, input_path=OPTIONS.updater_binary) WriteMetadata(metadata, output_zip) + common.ZipWriteStr(output_zip, "META-INF/org/cyanogenmod/releasekey", + ""+input_zip.read("META/releasekey.txt")) def WritePolicyConfig(file_context, output_zip): f = open(file_context, 'r'); @@ -1403,7 +1405,6 @@ endif; WriteMetadata(metadata, output_zip) - def main(argv): def option_handler(o, a): diff --git a/tools/releasetools/sign_target_files_apks b/tools/releasetools/sign_target_files_apks index 1a19445eba9..9c86686eacf 100755 --- a/tools/releasetools/sign_target_files_apks +++ b/tools/releasetools/sign_target_files_apks @@ -375,6 +375,14 @@ def ReplaceOtaKeys(input_tf_zip, output_tf_zip, misc_info): common.ZipWriteStr(output_tf_zip, "RECOVERY/RAMDISK/res/keys", new_recovery_keys) + # Save the base64 key representation in the update for key-change + # validations + p = common.Run(["python", "build/tools/getb64key.py", mapped_keys[0]], + stdout=subprocess.PIPE) + data, _ = p.communicate() + if p.returncode == 0: + common.ZipWriteStr(output_tf_zip, "META/releasekey.txt", data) + # SystemUpdateActivity uses the x509.pem version of the keys, but # put into a zipfile system/etc/security/otacerts.zip. # We DO NOT include the extra_recovery_keys (if any) here. From b9468fe40e839f5529b32a782427730160406700 Mon Sep 17 00:00:00 2001 From: Andrew Bartholomew Date: Sat, 10 May 2014 10:58:07 -0400 Subject: [PATCH 0741/1096] build: use /usr/bin/env to call python Hardcoding the path to python instead of env is not recommended. This can break the build in some Linux environments that link /usr/bin/python to python3. Change-Id: I4c62eb391acc6d468ce24ac8640834e965e76e78 --- core/checktree | 2 +- tools/getb64key.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/checktree b/core/checktree index b0b9cfab6d2..287268328b2 100755 --- a/core/checktree +++ b/core/checktree @@ -1,4 +1,4 @@ -#!/usr/bin/python -E +#!/usr/bin/env python -E import sys, os, re diff --git a/tools/getb64key.py b/tools/getb64key.py index 0bb63e1a88d..a0cd1c3ec34 100755 --- a/tools/getb64key.py +++ b/tools/getb64key.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python import base64 import sys From 2ff1e4dd2e69165fc0ab6a42308e645f9eef6f0a Mon Sep 17 00:00:00 2001 From: Tom Marshall Date: Fri, 16 May 2014 13:46:24 -0700 Subject: [PATCH 0742/1096] build: Set ccache base to build top This enables ccache sharing between different build tree paths. Change-Id: I99636bdd2779a6ccf0649f027e35cf67df44b6ae --- core/combo/select.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/combo/select.mk b/core/combo/select.mk index d495c6ff1dd..8a4d68c4486 100644 --- a/core/combo/select.mk +++ b/core/combo/select.mk @@ -80,7 +80,7 @@ ifneq ($(USE_CCACHE),) # We don't really use system headers much so the rootdir is # fine; ensures these paths are relative for all Android trees # on a workstation. - export CCACHE_BASEDIR := / + export CCACHE_BASEDIR := $(ANDROID_BUILD_TOP) # Workaround for ccache with clang. # See http://petereisentraut.blogspot.com/2011/09/ccache-and-clang-part-2.html From 3f963942d9b2f213cde3270e24b0daf16f254cc3 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Thu, 15 May 2014 12:30:37 -0700 Subject: [PATCH 0743/1096] build: Add new public keys to recovery Change-Id: I11dea464297813be36e60c23728dde8893535c46 --- core/Makefile | 7 +++++-- target/product/security/bacon.x509.pem | 23 ++++++++++++++++++++++ target/product/security/cm-devkey.x509.pem | 23 ++++++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 target/product/security/bacon.x509.pem create mode 100644 target/product/security/cm-devkey.x509.pem diff --git a/core/Makefile b/core/Makefile index 69424575acf..c9d4537abe8 100644 --- a/core/Makefile +++ b/core/Makefile @@ -867,10 +867,13 @@ OTA_PUBLIC_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE).x509.pem ifneq ($(OTA_PACKAGE_SIGNING_KEY),) OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) +else + PRODUCT_EXTRA_RECOVERY_KEYS += \ + build/target/product/security/cm \ + build/target/product/security/cm-devkey \ + build/target/product/security/bacon endif -PRODUCT_EXTRA_RECOVERY_KEYS += build/target/product/security/cm - # Generate a file containing the keys that will be read by the # recovery binary. RECOVERY_INSTALL_OTA_KEYS := \ diff --git a/target/product/security/bacon.x509.pem b/target/product/security/bacon.x509.pem new file mode 100644 index 00000000000..8f55bd89851 --- /dev/null +++ b/target/product/security/bacon.x509.pem @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIID3zCCAsegAwIBAgIJAMAEaDG2oZE8MA0GCSqGSIb3DQEBBQUAMIGFMQswCQYD +VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEX +MBUGA1UECgwOQ3lhbm9nZW4sIEluYy4xGzAZBgNVBAsMElJlbGVhc2UgTWFuYWdl +bWVudDEZMBcGA1UEAwwQQ3lhbm9nZW4gUmVsZWFzZTAeFw0xNDA0MzAwMjE4NTFa +Fw00MTA5MTUwMjE4NTFaMIGFMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGlu +Z3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEXMBUGA1UECgwOQ3lhbm9nZW4sIEluYy4x +GzAZBgNVBAsMElJlbGVhc2UgTWFuYWdlbWVudDEZMBcGA1UEAwwQQ3lhbm9nZW4g +UmVsZWFzZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMLEPlqqjB5b +fnylUIqCqN40pXNieEavUTIozE/mocMEb57kReaQPCf611MaOe/LlHvCKfPgYZTa +dzs7c6iFzza5wmeorJW+jnOuCEytIAK1U1t2cRgqezuaUB8GqPbsCy4nP2+3Ch63 +4oaS+m3BTNijEykNBBswCGglxIt+1d3UaUTg9cGf7fCtSnLew4mQ7G6gy12gpoea +21NSkLp9iRmcvOeFoxgi4SEo/4VR8NzhjvN1ZUCWl9s9tosHcNcW6ibzHz/P3SkD +AxK1ZCix0OTYVVe+4yjeOgjjLt4QP1ZOSBd0e2u06DhadsuwXivK5DH0vkC6vjpO +mkAOBV4+oucCAwEAAaNQME4wHQYDVR0OBBYEFLnnevtXiuaduDhDNch66eOzRh6E +MB8GA1UdIwQYMBaAFLnnevtXiuaduDhDNch66eOzRh6EMAwGA1UdEwQFMAMBAf8w +DQYJKoZIhvcNAQEFBQADggEBAHx3TDbdacWTq8I89oUyN+HcoUvI6ItlXSc7LUMj +KBKp5dlweu9BP9Mpv9IlS90nCZZUbQ3WIA8lrEWaZ98LQRsNM7tdgoGniqWSpg4D +rmUVzIRe0XDZHEWeN3zbASHrSOP84oGGw0ChGJuwdEezJVvBxi6WHeNzjxCqUxd7 +XwDkL/sadRgUSIVc9bkv49TOZuZyq0MUFcNtvFAS1t5LpUp6Zt9vjgAixq7XDLh+ +Sx8cmT0JNYf1ISq24cev1vQYBgrktNpRcjZXw/5q0bMBepmZ6KG86rVmKUDiBqVM +Rpty9+c2AELMFu1zQp22LDYttn7e8JXijIgOjF7UKlhzmDo= +-----END CERTIFICATE----- diff --git a/target/product/security/cm-devkey.x509.pem b/target/product/security/cm-devkey.x509.pem new file mode 100644 index 00000000000..b7a6ae404b0 --- /dev/null +++ b/target/product/security/cm-devkey.x509.pem @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIID1TCCAr2gAwIBAgIJANO67t8hIti6MA0GCSqGSIb3DQEBBQUAMIGAMQswCQYD +VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEX +MBUGA1UECgwOQ3lhbm9nZW4sIEluYy4xGzAZBgNVBAsMElJlbGVhc2UgTWFuYWdl +bWVudDEUMBIGA1UEAwwLRGV2ZWxvcG1lbnQwHhcNMTQwNDI4MjAyODM3WhcNNDEw +OTEzMjAyODM3WjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x +EDAOBgNVBAcMB1NlYXR0bGUxFzAVBgNVBAoMDkN5YW5vZ2VuLCBJbmMuMRswGQYD +VQQLDBJSZWxlYXNlIE1hbmFnZW1lbnQxFDASBgNVBAMMC0RldmVsb3BtZW50MIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz/V9RvYnr18fraPWNeQEZNeg +Kc0A3QskImQyGY22EGBZ63KUxa6zAfAug0OYSjofVJRaTtdvBXjO/C71XZRh4wun +xhOUAJt8zIJ0lRx8GMC0GHzePEnEVvoiu3zSAPHCNf5lmdhyhccMOtC18J+evPf4 +EVBb3cis+F1m6ZoZKPgSFBR5A9CV5Tai8iiZluGGg15Wt12Rp2vmbmQxiOJZxBs4 +Ps40XR5gjO1q4R3HiGnFyql9qeecwaTUWXAd76lhNiLUr7K8IRs+96i+t5vSKajB +M8O99BtYyBtf8ItMnHSZJxtsMw+TFXNLmMtaQarpsjp0LLGuHb/vsrjgBPvzsQID +AQABo1AwTjAdBgNVHQ4EFgQUTpNgXBqV7j+33bi8B80YLQq6EL8wHwYDVR0jBBgw +FoAUTpNgXBqV7j+33bi8B80YLQq6EL8wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQUFAAOCAQEAVlVBNksK+1C3J8uQ9kVemYMozfbboV9c4PLbtVzNSO8vwZ3X5E4T +2zfQPcFsfSMIa51a1tETBcDA6k+72xHZ+xEQJQNrX+o1F1RIIrXp0OKAz/k5cXyk +OS0+nd0EXP/A1EW0m8N/X6E9wpRkIhfqtEsqeCf8GH7O9Ua2qHZ9zkTBpbAVH0oe +ZWorHBdo3GdMJ5vcjFqnDdRs8F0BnZmjS+NrgXRLhLb6ZARS/bkUQyr5TX82dgG6 +vzvKsdKyX34gsKAsjxwLWo7XXgehFfjY+SGjjilJtardr+y/KlHNEw9s9aLe+Xny +Qoa9j9Ut6/KwRaC6lSEQ7HZk6SdzFsdugA== +-----END CERTIFICATE----- From e4b5b5b27779c52e0e018159e7227b421c49d28d Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sun, 18 May 2014 15:34:30 -0700 Subject: [PATCH 0744/1096] build: Include an extra device.mk Change-Id: I4373f78f57c81e46affc2f6a6bc854bf4c3d00db --- core/main.mk | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/main.mk b/core/main.mk index b3936ce5683..367e7a7c759 100644 --- a/core/main.mk +++ b/core/main.mk @@ -98,10 +98,17 @@ include $(BUILD_SYSTEM)/config.mk # be generated correctly include $(BUILD_SYSTEM)/cleanbuild.mk +# Bring in Qualcomm helper macros +include $(BUILD_SYSTEM)/qcom_utils.mk + # Include the google-specific config -include vendor/google/build/config.mk +# Include the extra device config +-include vendor/extra/device.mk + VERSION_CHECK_SEQUENCE_NUMBER := 5 + -include $(OUT_DIR)/versions_checked.mk ifneq ($(VERSION_CHECK_SEQUENCE_NUMBER),$(VERSIONS_CHECKED)) @@ -259,9 +266,6 @@ endif # Bring in standard build system definitions. include $(BUILD_SYSTEM)/definitions.mk -# Bring in Qualcomm helper macros -include $(BUILD_SYSTEM)/qcom_utils.mk - # Bring in dex_preopt.mk include $(BUILD_SYSTEM)/dex_preopt.mk From 19fd2df262c16f39d8e0f7741ed8b6a65f87f450 Mon Sep 17 00:00:00 2001 From: Mike Grissom Date: Mon, 26 Aug 2013 16:09:51 -0700 Subject: [PATCH 0745/1096] Don't set CCACHE_BASEDIR if its already set * enable use of shared ccache Change-Id: Ic708a5d5169291d674b167aa2c87bf2c8adaafae --- core/combo/select.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/combo/select.mk b/core/combo/select.mk index 8a4d68c4486..d66156c16cd 100644 --- a/core/combo/select.mk +++ b/core/combo/select.mk @@ -80,7 +80,9 @@ ifneq ($(USE_CCACHE),) # We don't really use system headers much so the rootdir is # fine; ensures these paths are relative for all Android trees # on a workstation. - export CCACHE_BASEDIR := $(ANDROID_BUILD_TOP) + ifeq ($(CCACHE_BASEDIR),) + export CCACHE_BASEDIR := $(ANDROID_BUILD_TOP) + endif # Workaround for ccache with clang. # See http://petereisentraut.blogspot.com/2011/09/ccache-and-clang-part-2.html From eeab3b72a274e154e8027ecb2fb2e8145c4c537f Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Fri, 9 May 2014 22:21:28 +0100 Subject: [PATCH 0746/1096] ota: Make sure we don't install on top of an incompatible system If the system has data present, make sure said data doesn't depend on a system signature different from our own. If we can't find our platform key, abort the installation Change-Id: I16572daf9464de326a9d0d126597cfbf03208f94 --- tools/releasetools/edify_generator.py | 11 +++++++++++ tools/releasetools/ota_from_target_files | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index 7eb3f127b1b..c3835494c38 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -146,6 +146,17 @@ def RunBackup(self, command): self.script.append('delete("/system/bin/backuptool.sh");') self.script.append('delete("/system/bin/backuptool.functions");') + def ValidateSignatures(self, command): + if command == "cleanup": + self.script.append('delete("/system/bin/otasigcheck.sh");') + else: + self.script.append('package_extract_file("system/bin/otasigcheck.sh", "/tmp/otasigcheck.sh");') + self.script.append('package_extract_file("META-INF/org/cyanogenmod/releasekey", "/tmp/releasekey");') + self.script.append('set_metadata("/tmp/otasigcheck.sh", "uid", 0, "gid", 0, "mode", 0755);') + self.script.append('run_program("/tmp/otasigcheck.sh");') + ## Hax: a failure from run_program doesn't trigger an abort, so have it change the key value and check for "INVALID" + self.script.append('sha1_check(read_file("/tmp/releasekey"),"7241e92725436afc79389d4fc2333a2aa8c20230") && abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') + def ShowProgress(self, frac, dur): """Update the progress bar, advancing it over 'frac' over the next 'dur' seconds. 'dur' may be zero to advance it via SetProgress diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 73b79d5e838..7d95e8b1aad 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -555,6 +555,10 @@ else if get_stage("%(bcb_dev)s") == "3/3" then device_specific.FullOTA_InstallBegin() + script.Mount("/data") + script.ValidateSignatures("data") + script.Unmount("/data") + if OPTIONS.backuptool: script.Mount("/system") script.RunBackup("backup") @@ -630,6 +634,8 @@ else if get_stage("%(bcb_dev)s") == "3/3" then common.CheckSize(boot_img.data, "boot.img", OPTIONS.info_dict) common.ZipWriteStr(output_zip, "boot.img", boot_img.data) + script.ValidateSignatures("cleanup") + if OPTIONS.backuptool: script.ShowProgress(0.02, 10) script.RunBackup("restore") From 62437a79e7ff6671e8b77769682921ac11a72565 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Thu, 10 Jul 2014 10:38:59 -0700 Subject: [PATCH 0747/1096] build: Store the jenkins build number in misc_info If the jenkins build number is available, list it as build_number in the misc_info.txt file. Change-Id: I6500c6b53661f2904dff738d25d8a8d24a7dca80 --- core/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/Makefile b/core/Makefile index c9d4537abe8..2e39958de8a 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1515,6 +1515,9 @@ endif ifneq ($(OEM_THUMBPRINT_PROPERTIES),) # OTA scripts are only interested in fingerprint related properties $(hide) echo "oem_fingerprint_properties=$(OEM_THUMBPRINT_PROPERTIES)" >> $(zip_root)/META/misc_info.txt +endif +ifdef BUILD_NO + $(hide) echo "build_number=$(BUILD_NO)" >> $(zip_root)/META/misc_info.txt endif $(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt) $(hide) ./build/tools/releasetools/make_recovery_patch $(zip_root) $(zip_root) From a3fa39a90a8425694fa53ff6266d0490e2dff89b Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Tue, 20 May 2014 02:52:23 -0500 Subject: [PATCH 0748/1096] envsetup: fixup dopush * After clobber, $OUT does not exist and tee cannot create .log; fix this by calling mkdir -p $OUT * Make sure Copy and Install are at the beginning of the log line being analyzed and also search for ':' so that "Copying:" lines don't count * Fix Copy file list by quoting so shell doesn't think this is a command: $LOC $(...) * Fix 'only copy files from $OUT' now that multiple file pushing works right * Only stop java services once (if needed) and then wait to restart services until after all files have been pushed * Change location of SystemUI.apk to priv-app Signed-off-by: Chirayu Desai Change-Id: I65edd34bf445b28c2638cb3e9621719121fb962f --- envsetup.sh | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index fe1b731e42d..ad6cec25128 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2301,37 +2301,45 @@ function dopush() sleep 0.3 adb remount &> /dev/null + mkdir -p $OUT $func $* | tee $OUT/.log # Install: - LOC=$(cat $OUT/.log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep 'Install' | cut -d ':' -f 2) + LOC="$(cat $OUT/.log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep '^Install: ' | cut -d ':' -f 2)" # Copy: - LOC=$LOC $(cat $OUT/.log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep 'Copy' | cut -d ':' -f 2) + LOC="$LOC $(cat $OUT/.log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep '^Copy: ' | cut -d ':' -f 2)" + stop_n_start=false for FILE in $LOC; do - # Get target file name (i.e. system/bin/adb) - TARGET=$(echo $FILE | sed "s#$OUT/##") + # Make sure file is in $OUT/system + case $FILE in + $OUT/system/*) + # Get target file name (i.e. /system/bin/adb) + TARGET=$(echo $FILE | sed "s#$OUT##") + ;; + *) continue ;; + esac - # Don't send files that are not under /system or /data - if [ ! "echo $TARGET | egrep '^system\/' > /dev/null" -o \ - "echo $TARGET | egrep '^data\/' > /dev/null" ] ; then - continue - else - case $TARGET in - system/app/SystemUI.apk|system/framework/*) - stop_n_start=true + case $TARGET in + /system/priv-app/SystemUI.apk|/system/framework/*) + # Only need to stop services once + if ! $stop_n_start; then + adb shell stop + stop_n_start=true + fi + echo "Pushing: $TARGET" + adb push $FILE $TARGET ;; *) - stop_n_start=false + echo "Pushing: $TARGET" + adb push $FILE $TARGET ;; - esac - if $stop_n_start ; then adb shell stop ; fi - echo "Pushing: $TARGET" - adb push $FILE $TARGET - if $stop_n_start ; then adb shell start ; fi - fi + esac done + if $stop_n_start; then + adb shell start + fi rm -f $OUT/.log return 0 else From 47c4b083f9ed5d48aa45c789f44663c77aaa770c Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Tue, 20 May 2014 02:52:23 -0500 Subject: [PATCH 0749/1096] envsetup: dopush: set file permissions on files pushed to /data too * If pushing to /data, transfer old file owner, group, permissions to pushed files, then restorecon Signed-off-by: Chirayu Desai Change-Id: Ibf2945adee457a680a288f2bdfba3d2e29ba25a1 --- envsetup.sh | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index ad6cec25128..87a4ada603f 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2310,11 +2310,29 @@ function dopush() # Copy: LOC="$LOC $(cat $OUT/.log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep '^Copy: ' | cut -d ':' -f 2)" + # If any files are going to /data, push an octal file permissions reader to device + if [ -n "$(echo $LOC | egrep '(^|\s)/data')" ]; then + CHKPERM="/data/local/tmp/chkfileperm.sh" +( +cat <<'EOF' +#!/system/xbin/sh +FILE=$@ +if [ -e $FILE ]; then + ls -l $FILE | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}' | cut -d ' ' -f1 +fi +EOF +) > $OUT/.chkfileperm.sh + echo "Pushing file permissions checker to device" + adb push $OUT/.chkfileperm.sh $CHKPERM + adb shell chmod 755 $CHKPERM + rm -f $OUT/.chkfileperm.sh + fi + stop_n_start=false for FILE in $LOC; do - # Make sure file is in $OUT/system + # Make sure file is in $OUT/system or $OUT/data case $FILE in - $OUT/system/*) + $OUT/system/*|$OUT/data/*) # Get target file name (i.e. /system/bin/adb) TARGET=$(echo $FILE | sed "s#$OUT##") ;; @@ -2322,6 +2340,25 @@ function dopush() esac case $TARGET in + /data/*) + # fs_config only sets permissions and se labels for files pushed to /system + if [ -n "$CHKPERM" ]; then + OLDPERM=$(adb shell $CHKPERM $TARGET) + OLDPERM=$(echo $OLDPERM | tr -d '\r' | tr -d '\n') + OLDOWN=$(adb shell ls -al $TARGET | awk '{print $2}') + OLDGRP=$(adb shell ls -al $TARGET | awk '{print $3}') + fi + echo "Pushing: $TARGET" + adb push $FILE $TARGET + if [ -n "$OLDPERM" ]; then + echo "Setting file permissions: $OLDPERM, $OLDOWN":"$OLDGRP" + adb shell chown "$OLDOWN":"$OLDGRP" $TARGET + adb shell chmod "$OLDPERM" $TARGET + else + echo "$TARGET did not exist previously, you should set file permissions manually" + fi + adb shell restorecon "$TARGET" + ;; /system/priv-app/SystemUI.apk|/system/framework/*) # Only need to stop services once if ! $stop_n_start; then @@ -2337,6 +2374,9 @@ function dopush() ;; esac done + if [ -n "$CHKPERM" ]; then + adb shell rm $CHKPERM + fi if $stop_n_start; then adb shell start fi From 7a184d6996cef1ded391fad4d2695b61c02a5691 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Wed, 5 Nov 2014 17:08:57 +0000 Subject: [PATCH 0750/1096] qcom_utils: Make "is-vendor-board-platform,XX" depend on BOARD_HAS_XX_HARDWARE Prevent qc's code from wrongly kicking in for AOSP-derived configurations --- core/qcom_utils.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/qcom_utils.mk b/core/qcom_utils.mk index 279f06f2db8..1177ad438db 100755 --- a/core/qcom_utils.mk +++ b/core/qcom_utils.mk @@ -99,7 +99,7 @@ endef # $(call get-vendor-board-platforms,v) # returns list of board platforms for vendor v define get-vendor-board-platforms -$($(1)_BOARD_PLATFORMS) +$(if $(call match-word,$(BOARD_USES_$(1)_HARDWARE),true),$($(1)_BOARD_PLATFORMS)) endef # $(call is-board-platform,bp) From d8c76a4cb5db01adfdb1a2336485078bdc1f193b Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Wed, 5 Nov 2014 18:16:43 +0000 Subject: [PATCH 0751/1096] ota: Include copies of the recovery scripts even if shipping in block mode --- tools/releasetools/ota_from_target_files | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 7d95e8b1aad..d57a5cd8bba 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -555,11 +555,17 @@ else if get_stage("%(bcb_dev)s") == "3/3" then device_specific.FullOTA_InstallBegin() + if block_based: + common.ZipWriteStr(output_zip, "system/bin/otasigcheck.sh", + ""+input_zip.read("SYSTEM/bin/otasigcheck.sh")) script.Mount("/data") script.ValidateSignatures("data") script.Unmount("/data") if OPTIONS.backuptool: + if block_based: + common.ZipWriteStr(output_zip, "system/bin/backuptool.sh", + ""+input_zip.read("SYSTEM/bin/backuptool.sh")) script.Mount("/system") script.RunBackup("backup") script.Unmount("/system") From ea9cd9753727d52f46e63a38447509897be07619 Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Thu, 28 Aug 2014 16:51:02 -0500 Subject: [PATCH 0752/1096] Edify: Add AssertSomeBaseband Allow releasetools.py to assert a baseband version. Works just like AssertSomeBootloader. Change-Id: Ic8eb341cef1d777d983be25ba21a3bc545819c29 --- tools/releasetools/edify_generator.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index c3835494c38..1606bd89158 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -132,6 +132,14 @@ def AssertSomeBootloader(self, *bootloaders): ");") self.script.append(self._WordWrap(cmd)) + def AssertSomeBaseband(self, *basebands): + """Assert that the baseband version is one of *basebands.""" + cmd = ("assert(" + + " ||\0".join(['getprop("ro.baseband") == "%s"' % (b,) + for b in basebands]) + + ");") + self.script.append(self._WordWrap(cmd)) + def RunBackup(self, command): self.script.append('package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");') self.script.append('package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");') From 61a4c2b3c88b6391b2e0decadc38a5cd68a79b17 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Mon, 18 Aug 2014 14:28:42 -0700 Subject: [PATCH 0753/1096] ota_from_target_files: Validate signatures after possible data wipe If the data is being wiped, we want to validate the signature after this step. This is also a good check that the data wipe succeeded. Change-Id: Iaecfddfb2010944de0c97e7bb21d8e581f20deec --- tools/releasetools/ota_from_target_files | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index d57a5cd8bba..8e9eaa6f6bf 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -555,13 +555,6 @@ else if get_stage("%(bcb_dev)s") == "3/3" then device_specific.FullOTA_InstallBegin() - if block_based: - common.ZipWriteStr(output_zip, "system/bin/otasigcheck.sh", - ""+input_zip.read("SYSTEM/bin/otasigcheck.sh")) - script.Mount("/data") - script.ValidateSignatures("data") - script.Unmount("/data") - if OPTIONS.backuptool: if block_based: common.ZipWriteStr(output_zip, "system/bin/backuptool.sh", @@ -577,6 +570,13 @@ else if get_stage("%(bcb_dev)s") == "3/3" then if HasVendorPartition(input_zip): system_progress -= 0.1 + if block_based: + common.ZipWriteStr(output_zip, "system/bin/otasigcheck.sh", + ""+input_zip.read("SYSTEM/bin/otasigcheck.sh")) + script.Mount("/data") + script.ValidateSignatures("data") + script.Unmount("/data") + if "selinux_fc" in OPTIONS.info_dict: WritePolicyConfig(OPTIONS.info_dict["selinux_fc"], output_zip) From 9f72221bd426c3d0676298467c223fd1a74e9223 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Wed, 5 Nov 2014 19:58:59 +0000 Subject: [PATCH 0754/1096] ota: Fix recovery-script cleanups in block mode Change-Id: Iadb480f8062cfb7a0e6c9024e32ac0d71a7481d7 --- tools/releasetools/ota_from_target_files | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 8e9eaa6f6bf..eff9f4372ff 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -559,6 +559,8 @@ else if get_stage("%(bcb_dev)s") == "3/3" then if block_based: common.ZipWriteStr(output_zip, "system/bin/backuptool.sh", ""+input_zip.read("SYSTEM/bin/backuptool.sh")) + common.ZipWriteStr(output_zip, "system/bin/backuptool.functions", + ""+input_zip.read("SYSTEM/bin/backuptool.functions")) script.Mount("/system") script.RunBackup("backup") script.Unmount("/system") @@ -640,11 +642,19 @@ else if get_stage("%(bcb_dev)s") == "3/3" then common.CheckSize(boot_img.data, "boot.img", OPTIONS.info_dict) common.ZipWriteStr(output_zip, "boot.img", boot_img.data) + if block_based: + script.Mount("/system") script.ValidateSignatures("cleanup") + if block_based: + script.Unmount("/system") if OPTIONS.backuptool: script.ShowProgress(0.02, 10) + if block_based: + script.Mount("/system") script.RunBackup("restore") + if block_based: + script.Unmount("/system") script.ShowProgress(0.05, 5) script.WriteRawImage("/boot", "boot.img") From 144278a550d99b2f57b084383cfe27c086d8c933 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Sun, 22 Jun 2014 14:37:30 +0200 Subject: [PATCH 0755/1096] Build: Add support for specifying build variant in brunch/breakfast This little modification allows specifying build variant in brunch/ breakfast commands. For example we can use "brunch i9300 user" to build user variant instead of default userdebug. When no extra argument is given, userdebug is default. Change-Id: I935327252098ee74b34a815a023d2ac6b9a53a30 --- envsetup.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 87a4ada603f..7206bd9eb6c 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -543,6 +543,7 @@ function brunch() function breakfast() { target=$1 + local variant=$2 CM_DEVICES_ONLY="true" unset LUNCH_MENU_CHOICES add_lunch_combo full-eng @@ -563,7 +564,10 @@ function breakfast() lunch $target else # This is probably just the CM model name - lunch cm_$target-userdebug + if [ -z "$variant" ]; then + variant="userdebug" + fi + lunch cm_$target-$variant fi fi return $? From 79c4efae4de41dc558379d652022164a90211558 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Wed, 10 Sep 2014 15:17:16 -0700 Subject: [PATCH 0756/1096] build: Clean up use of vendor/extra * extra_config.mk is not needed anymore * Include BoardConfigExtra.mk if available Change-Id: Icd0db0852ceee5cb5c701c9a40b829e1f3ebd69e --- core/config.mk | 1 + core/dumpvar.mk | 4 ++++ core/main.mk | 3 --- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/config.mk b/core/config.mk index c42a13d83de..4fb38a1def0 100644 --- a/core/config.mk +++ b/core/config.mk @@ -150,6 +150,7 @@ endif # are specific to the user's build configuration. include $(BUILD_SYSTEM)/envsetup.mk +-include vendor/extra/BoardConfigExtra.mk # The build system exposes several variables for where to find the kernel # headers: # TARGET_DEVICE_KERNEL_HEADERS is automatically created for the current diff --git a/core/dumpvar.mk b/core/dumpvar.mk index 1a6b1201d7c..47ba476c5a4 100644 --- a/core/dumpvar.mk +++ b/core/dumpvar.mk @@ -84,5 +84,9 @@ $(info HOST_OS_EXTRA=$(HOST_OS_EXTRA)) $(info HOST_BUILD_TYPE=$(HOST_BUILD_TYPE)) $(info BUILD_ID=$(BUILD_ID)) $(info OUT_DIR=$(OUT_DIR)) +ifeq ($(CYNGN_TARGET),true) +$(info CYNGN_TARGET=$(CYNGN_TARGET)) +$(info CYNGN_FEATURES=$(CYNGN_FEATURES)) +endif $(info ============================================) endif diff --git a/core/main.mk b/core/main.mk index 367e7a7c759..dca7d60fa79 100644 --- a/core/main.mk +++ b/core/main.mk @@ -104,9 +104,6 @@ include $(BUILD_SYSTEM)/qcom_utils.mk # Include the google-specific config -include vendor/google/build/config.mk -# Include the extra device config --include vendor/extra/device.mk - VERSION_CHECK_SEQUENCE_NUMBER := 5 -include $(OUT_DIR)/versions_checked.mk From 9ae43f406edfc376266a2bc7de457fe562a699e0 Mon Sep 17 00:00:00 2001 From: Tom Marshall Date: Thu, 18 Sep 2014 09:45:33 -0700 Subject: [PATCH 0757/1096] build: qcom: Set QCOM_*_PATH variables for hardware/qcom-* projects This consolidates a bunch of one-off logic scattered throughout the code base. Usage in Android.mk files is trivial: At top level, use e.g. "ifeq ($(call my-dir),$(QCOM_AUDIO_PATH))". This works for all variants, including non-variants (i.e. AOSP). Within subdirs, use e.g. hardware/qcom/audio => $(QCOM_AUDIO_PATH) Change-Id: Iee2497ea9a7efeb4ae9e861b84c532b19da7b69d build: Introduce project pathmap and use it for qcom variants The project pathmap tracks the path to the top level of a project. The following functions are provided: * project-set-path adds an entry. * project-set-path-variant adds a "variant" entry. * project-path-for retrieves an entry. To use as a guard in Android.mk: ifeq ($(call my-dir),$(call project-path-for,projectname)) To use for include paths in Android.mk: LOCAL_C_INCLUDES += $(call project-path-for,projectname)/... Set project pathmap for qcom project variants. Change-Id: I8dceca72a1ba80fc7b1830c5ab285d444f530457 build: Set QCOM variants for non-QCOM_HARDWARE defined targets * Nexus devices and others typically do not define the QCOM_HARDWARE flag, so the variant path should always default to the AOSP variant. * Unconditionally set the variant to the AOSP HAL by default. Change-Id: I714170897128f92718af266366cfcbf3136e8981 --- core/pathmap.mk | 30 ++++++++++++++++++++++++++++++ core/qcom_target.mk | 11 +++++++++++ 2 files changed, 41 insertions(+) diff --git a/core/pathmap.mk b/core/pathmap.mk index ff22a228dde..d7bc26e837c 100644 --- a/core/pathmap.mk +++ b/core/pathmap.mk @@ -63,6 +63,36 @@ define include-path-for $(foreach n,$(1),$(patsubst $(n):%,%,$(filter $(n):%,$(pathmap_INCL)))) endef +# Enter project path into pathmap +# +# $(1): name +# $(2): path +# +define project-set-path +$(eval pathmap_PROJ += $(1):$(2)) +endef + +# Enter variant project path into pathmap +# +# $(1): name +# $(2): variable to check +# $(3): base path +# +define project-set-path-variant + $(call project-set-path,$(1),$(strip \ + $(if $($(2)), \ + $(3)-$($(2)), \ + $(3)))) +endef + +# Returns the path to the requested module's include directory, +# relative to the root of the source tree. +# +# $(1): a list of modules (or other named entities) to find the projects for +define project-path-for +$(foreach n,$(1),$(patsubst $(n):%,%,$(filter $(n):%,$(pathmap_PROJ)))) +endef + # # Many modules expect to be able to say "#include ", # so make it easy for them to find the correct path. diff --git a/core/qcom_target.mk b/core/qcom_target.mk index e65a6fc0cd5..ea91257a0f2 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -19,3 +19,14 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) endif endif endif + +# Populate the qcom hardware variants in the project pathmap. +define qcom-set-path-variant +$(call project-set-path-variant,qcom-$(2),TARGET_QCOM_$(1)_VARIANT,hardware/qcom/$(2)) +endef +$(call qcom-set-path-variant,AUDIO,audio) +$(call qcom-set-path-variant,CAMERA,camera) +$(call qcom-set-path-variant,DISPLAY,display) +$(call qcom-set-path-variant,GPS,gps) +$(call qcom-set-path-variant,MEDIA,media) +$(call qcom-set-path-variant,SENSORS,sensors) From e03ffdf4c5b47c133f406e5b96fdcef3eb18e84d Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sun, 23 Feb 2014 23:36:22 +0100 Subject: [PATCH 0758/1096] [HAX] Allow per-target dtbTool * Revert this when fixed Change-Id: I97ecb0448ae7bd5859454be290c5dde6248b2859 build: Default to dtbToolCM * The default dtbTool isn't the correct module name for the module that actually lives in device/qcom/common/dtbtool Change-Id: I80b427e3652b99742573bc4d2829e51645a8822b --- core/generate_extra_images.mk | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/generate_extra_images.mk b/core/generate_extra_images.mk index a0aa542e469..8cd18fd0d32 100644 --- a/core/generate_extra_images.mk +++ b/core/generate_extra_images.mk @@ -89,7 +89,13 @@ ifeq ($(strip $(BUILD_TINY_ANDROID)),true) include device/qcom/common/dtbtool/Android.mk endif -DTBTOOL := $(HOST_OUT_EXECUTABLES)/dtbTool$(HOST_EXECUTABLE_SUFFIX) +ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),) +DTBTOOL_NAME := dtbToolCM +else +DTBTOOL_NAME := $(TARGET_CUSTOM_DTBTOOL) +endif + +DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX) INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img From d22599be55f8a229ea47cd9329da4e3b23245078 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Wed, 5 Nov 2014 21:30:23 +0000 Subject: [PATCH 0759/1096] Redo BOARD_CUSTOM_BOOTIMG_MK support Simplified version of the previous implementation. Recovery's ramdisk is spun off from the main recovery target again to allow overriding just the image-generation step --- core/Makefile | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/core/Makefile b/core/Makefile index 2e39958de8a..5dd0e7454aa 100644 --- a/core/Makefile +++ b/core/Makefile @@ -544,7 +544,9 @@ bootimage-nodeps: $(MKEXT2IMG) @echo "make $@: ignoring dependencies" $(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET) -else ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) # TARGET_BOOTIMAGE_USE_EXT2 != true +else ifndef BOARD_CUSTOM_BOOTIMG_MK + + ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) # TARGET_BOOTIMAGE_USE_EXT2 != true $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOT_SIGNER) $(BOOTIMAGE_EXTRA_DEPS) $(call pretty,"Target boot image: $@") @@ -559,7 +561,7 @@ bootimage-nodeps: $(MKBOOTIMG) $(BOOT_SIGNER) $(BOOT_SIGNER) /boot $(INSTALLED_BOOTIMAGE_TARGET) $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).pk8 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).x509.pem $(INSTALLED_BOOTIMAGE_TARGET) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) -else # PRODUCT_SUPPORTS_VERITY != true + else # PRODUCT_SUPPORTS_VERITY != true $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOTIMAGE_EXTRA_DEPS) $(call pretty,"Target boot image: $@") @@ -574,7 +576,8 @@ bootimage-nodeps: $(MKBOOTIMG) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) @echo -e ${CL_INS}"Made boot image: $@"${CL_RST} -endif # TARGET_BOOTIMAGE_USE_EXT2 + endif # PRODUCT_SUPPORTS_VERITY +endif # TARGET_BOOTIMAGE_USE_EXT2 / BOARD_CUSTOM_BOOTIMG_MK else # TARGET_NO_KERNEL # HACK: The top-level targets depend on the bootimage. Not all targets @@ -887,11 +890,11 @@ $(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) $(extra_keys) @mkdir -p $(dir $@) java -jar $(DUMPKEY_JAR) $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys) > $@ -$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ +$(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(recovery_binary) \ - $(recovery_initrc) $(recovery_sepolicy) $(recovery_kernel) \ + $(recovery_initrc) $(recovery_sepolicy) \ $(INSTALLED_2NDBOOTLOADER_TARGET) \ $(recovery_build_prop) $(recovery_resource_deps) \ $(recovery_fstab) \ @@ -921,6 +924,10 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) $(RECOVE $(hide) cat $(INSTALLED_DEFAULT_PROP_TARGET) $(recovery_build_prop) \ > $(TARGET_RECOVERY_ROOT_OUT)/default.prop $(hide) $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk) + +ifndef BOARD_CUSTOM_BOOTIMG_MK +$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(recovery_ramdisk) \ + $(recovery_kernel) $(hide) $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) $(BOOT_SIGNER) /recovery $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).pk8 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).x509.pem $@ @@ -928,6 +935,8 @@ endif $(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE)) @echo -e ${CL_CYN}"Made recovery image: $@"${CL_RST} +endif # BOARD_CUSTOM_BOOTIMG_MK + $(RECOVERY_RESOURCE_ZIP): $(INSTALLED_RECOVERYIMAGE_TARGET) $(hide) mkdir -p $(dir $@) $(hide) find $(TARGET_RECOVERY_ROOT_OUT)/res -type f | sort | zip -0qrj $@ -@ @@ -961,6 +970,11 @@ else BOARD_NAND_SPARE_SIZE := 64 endif +ifdef BOARD_CUSTOM_BOOTIMG_MK +include $(BOARD_CUSTOM_BOOTIMG_MK) +endif + + # ----------------------------------------------------------------- # system image # From 2e40678244e2a8430badffade394309d52802e47 Mon Sep 17 00:00:00 2001 From: James Roberts-Thomson Date: Tue, 16 Apr 2013 15:53:39 +1200 Subject: [PATCH 0760/1096] Consolidate bash version checks There were two checks for bash version, the 2nd was superfluous; this patch removes the duplicate checks, and shifts the bash version check to being back after the "are we in bash" check. Change-Id: I57ff8c1fedce80f739c06643d2976d2c1465db1b --- envsetup.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 7206bd9eb6c..14fd33a2173 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -292,18 +292,18 @@ function settitle() function addcompletions() { - local T dir f - # Keep us from trying to run in something that isn't bash. if [ -z "${BASH_VERSION}" ]; then return fi # Keep us from trying to run in bash that's too old. - if [ ${BASH_VERSINFO[0]} -lt 3 ]; then + if [ "${BASH_VERSINFO[0]}" -lt 4 ] ; then return fi + local T dir f + dirs="sdk/bash_completion vendor/cm/bash_completion" for dir in $dirs; do if [ -d ${dir} ]; then From 432f3dcc55e0e5de4049605e9025a541914c08b3 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Tue, 19 Mar 2013 17:50:37 +0530 Subject: [PATCH 0761/1096] envsetup: export ANDROID_BUILD_TOP earlier Change-Id: Ia3497f61f4e9aaeeb793cecd3b4f488f0a48181a --- envsetup.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 14fd33a2173..c2f3d46c1fb 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -250,7 +250,6 @@ function set_stuff_for_environment() setpaths set_sequence_number - export ANDROID_BUILD_TOP=$(gettop) # With this environment variable new GCC can apply colors to warnings/errors export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' } @@ -2532,3 +2531,5 @@ done unset f addcompletions + +export ANDROID_BUILD_TOP=$(gettop) From dea4f87171b9fcacd1053f475246a3abbe538899 Mon Sep 17 00:00:00 2001 From: Kyle Ladd Date: Wed, 11 Sep 2013 20:43:42 -0400 Subject: [PATCH 0762/1096] build: fix bash completion sourcing Sourcing functions in files from a function within a file being sourced was giving bash a hard time. This fixes 'repo' command tab completions. Change-Id: Iac1b3078e20749fb474ed1270e0886cf435e24d9 --- envsetup.sh | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index c2f3d46c1fb..83711d94845 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -289,29 +289,19 @@ function settitle() fi } -function addcompletions() +function check_bash_version() { # Keep us from trying to run in something that isn't bash. if [ -z "${BASH_VERSION}" ]; then - return + return 1 fi # Keep us from trying to run in bash that's too old. if [ "${BASH_VERSINFO[0]}" -lt 4 ] ; then - return + return 2 fi - local T dir f - - dirs="sdk/bash_completion vendor/cm/bash_completion" - for dir in $dirs; do - if [ -d ${dir} ]; then - for f in `/bin/ls ${dir}/[a-z]*.bash 2> /dev/null`; do - echo "including $f" - . $f - done - fi - done + return 0 } function choosetype() @@ -2530,6 +2520,17 @@ do done unset f -addcompletions +# Add completions +check_bash_version && { + dirs="sdk/bash_completion vendor/cm/bash_completion" + for dir in $dirs; do + if [ -d ${dir} ]; then + for f in `/bin/ls ${dir}/[a-z]*.bash 2> /dev/null`; do + echo "including $f" + . $f + done + fi + done +} export ANDROID_BUILD_TOP=$(gettop) From 74162f018e416d63cd5647e2463672f479e94b58 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Fri, 1 Jun 2012 13:30:25 -0700 Subject: [PATCH 0763/1096] Fix file-size stats on OSX Kernel makefiles that the stat on the system is GNU stat. GNU stat uses the "-c" option to specify format. Darwin stat uses the "-f" option to specify format. This discrepency will cause kernel build breaks. On my system, I symlink stat to GNU stat. This causes the "get-file-size" define to fail. The fix for this is to detect "gstat", aka GNU stat, and use that appropriately. Change-Id: I987c155b7dc3ff14ffe6da40edf834ca34b7df75 Fix up the get-file-size function that was broken due to the prior commit that made it utilize gnu stat (gstat) Change-Id: I24bba2bfcb509ad1ad76d2260eedd685ba45c393 --- core/combo/HOST_darwin-x86.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/combo/HOST_darwin-x86.mk b/core/combo/HOST_darwin-x86.mk index ec379936f5c..2f25b6d846f 100644 --- a/core/combo/HOST_darwin-x86.mk +++ b/core/combo/HOST_darwin-x86.mk @@ -116,5 +116,10 @@ endef # $(1): The file to check define get-file-size -stat -f "%z" $(1) +GSTAT=$(which gstat) ; \ +if [ ! -z "$GSTAT" ]; then \ +gstat -c "%s" $(1) ; \ +else \ +stat -f "%z" $(1) ; \ +fi endef From 67eb7a231aa1b0ba6953fa6303da5f7058a101eb Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Sat, 8 Nov 2014 23:03:53 +0000 Subject: [PATCH 0764/1096] Remove nulls from the edify generator. These would break the scripts. WTF are they doing here? Change-Id: I0c52335a27f7ae974279fde1c2461b2dba24d263 --- tools/releasetools/edify_generator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index 1606bd89158..5c7793e2050 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -117,7 +117,7 @@ def AssertOlderBuild(self, timestamp, timestamp_text): def AssertDevice(self, device): """Assert that the device identifier is the given string.""" cmd = ('assert(' + - ' || \0'.join(['getprop("ro.product.device") == "%s" || getprop("ro.build.product") == "%s"' + ' || '.join(['getprop("ro.product.device") == "%s" || getprop("ro.build.product") == "%s"' % (i, i) for i in device.split(",")]) + ' || abort("This package is for device: %s; ' + 'this device is " + getprop("ro.product.device") + ".");' + @@ -127,7 +127,7 @@ def AssertDevice(self, device): def AssertSomeBootloader(self, *bootloaders): """Asert that the bootloader version is one of *bootloaders.""" cmd = ("assert(" + - " ||\0".join(['getprop("ro.bootloader") == "%s"' % (b,) + " || ".join(['getprop("ro.bootloader") == "%s"' % (b,) for b in bootloaders]) + ");") self.script.append(self._WordWrap(cmd)) @@ -135,7 +135,7 @@ def AssertSomeBootloader(self, *bootloaders): def AssertSomeBaseband(self, *basebands): """Assert that the baseband version is one of *basebands.""" cmd = ("assert(" + - " ||\0".join(['getprop("ro.baseband") == "%s"' % (b,) + " || ".join(['getprop("ro.baseband") == "%s"' % (b,) for b in basebands]) + ");") self.script.append(self._WordWrap(cmd)) From 3df1234870f02b83b8a74a05d17bf7b137f823d8 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Tue, 30 Jul 2013 20:04:32 +0530 Subject: [PATCH 0765/1096] Add auditd Change-Id: I54717edbeb9677e53bdd01e6519edd30c387bfe8 --- target/product/embedded.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/product/embedded.mk b/target/product/embedded.mk index b60c9488ea3..2daa9046546 100644 --- a/target/product/embedded.mk +++ b/target/product/embedded.mk @@ -72,6 +72,7 @@ PRODUCT_PACKAGES += \ # SELinux packages PRODUCT_PACKAGES += \ + auditd \ sepolicy \ file_contexts \ seapp_contexts \ From 50ca98d86e4e998abeba23ff6e8b5307c0b0f0af Mon Sep 17 00:00:00 2001 From: Ethan Chen Date: Sat, 8 Nov 2014 23:07:16 -0800 Subject: [PATCH 0766/1096] build: Automatically set QCOM audio, display, media variants * Device platform should determing the HAL that ought to be used. This commit forces QCOM_HARDWARE to select the -caf HAL variants, which are then broken down by platform within the variant path. Change-Id: I6fc7a3def7b93112f034a3b89552f302727cdbf8 --- core/qcom_target.mk | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index ea91257a0f2..a6b572adb6f 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -1,5 +1,10 @@ # Target-specific configuration +# Populate the qcom hardware variants in the project pathmap. +define qcom-set-path-variant +$(call project-set-path-variant,qcom-$(2),TARGET_QCOM_$(1)_VARIANT,hardware/qcom/$(2)) +endef + # Enable DirectTrack on QCOM legacy boards ifeq ($(BOARD_USES_QCOM_HARDWARE),true) @@ -12,21 +17,22 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) endif # Enable DirectTrack for legacy targets - ifneq ($(filter caf bfam,$(TARGET_QCOM_AUDIO_VARIANT)),) - ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true) - TARGET_GLOBAL_CFLAGS += -DQCOM_DIRECTTRACK - TARGET_GLOBAL_CPPFLAGS += -DQCOM_DIRECTTRACK - endif + ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true) + TARGET_GLOBAL_CFLAGS += -DQCOM_DIRECTTRACK + TARGET_GLOBAL_CPPFLAGS += -DQCOM_DIRECTTRACK endif -endif -# Populate the qcom hardware variants in the project pathmap. -define qcom-set-path-variant -$(call project-set-path-variant,qcom-$(2),TARGET_QCOM_$(1)_VARIANT,hardware/qcom/$(2)) -endef -$(call qcom-set-path-variant,AUDIO,audio) +$(call project-set-path,qcom-audio,hardware/qcom/audio-caf) $(call qcom-set-path-variant,CAMERA,camera) -$(call qcom-set-path-variant,DISPLAY,display) +$(call project-set-path,qcom-display,hardware/qcom/display-caf) $(call qcom-set-path-variant,GPS,gps) -$(call qcom-set-path-variant,MEDIA,media) +$(call project-set-path,qcom-media,hardware/qcom/media-caf) $(call qcom-set-path-variant,SENSORS,sensors) +else +$(call project-set-path,qcom-audio,hardware/qcom/audio) +$(call qcom-set-path-variant,CAMERA,camera) +$(call project-set-path,qcom-display,hardware/qcom/display) +$(call qcom-set-path-variant,GPS,gps) +$(call project-set-path,qcom-media,hardware/qcom/media) +$(call qcom-set-path-variant,SENSORS,sensors) +endif From 7cc4a99fa3c9e743405c18e8d089bd168089c46c Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Tue, 11 Nov 2014 13:54:31 -0600 Subject: [PATCH 0767/1096] base: build javax.btobex Change-Id: Ia82f74e7eb0f5758732399064277cf18a1fc15d9 --- target/product/core_tiny.mk | 1 + target/product/generic_no_telephony.mk | 1 + 2 files changed, 2 insertions(+) diff --git a/target/product/core_tiny.mk b/target/product/core_tiny.mk index 9637e341321..477bd8fa709 100644 --- a/target/product/core_tiny.mk +++ b/target/product/core_tiny.mk @@ -54,6 +54,7 @@ PRODUCT_PACKAGES += \ ip-up-vpn \ ip6tables \ iptables \ + javax.btobex \ keystore \ keystore.default \ libOpenMAXAL \ diff --git a/target/product/generic_no_telephony.mk b/target/product/generic_no_telephony.mk index 7af62ce46ad..a71f8f50c1c 100644 --- a/target/product/generic_no_telephony.mk +++ b/target/product/generic_no_telephony.mk @@ -31,6 +31,7 @@ PRODUCT_PACKAGES := \ PRODUCT_PACKAGES += \ clatd \ clatd.conf \ + javax.btobex \ pppd \ screenrecord From 3db499a0c9a42b2d626a1b897d3e38598c0e52d1 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Wed, 16 Nov 2011 16:45:03 -0800 Subject: [PATCH 0768/1096] recovery: build uncompressed ramdisk Change-Id: I6027868864ec2696f20705faf4c68c684e7ef459 Signed-off-by: Chirayu Desai --- core/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/Makefile b/core/Makefile index 5dd0e7454aa..969901c12f1 100644 --- a/core/Makefile +++ b/core/Makefile @@ -791,6 +791,7 @@ recovery_initrc := $(call include-path-for, recovery)/etc/init.rc recovery_sepolicy := $(call intermediates-dir-for,ETC,sepolicy.recovery)/sepolicy.recovery recovery_kernel := $(INSTALLED_KERNEL_TARGET) # same as a non-recovery system recovery_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.img +recovery_uncompressed_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.cpio recovery_build_prop := $(INSTALLED_BUILD_PROP_TARGET) recovery_binary := $(call intermediates-dir-for,EXECUTABLES,recovery)/recovery recovery_resources_common := $(call include-path-for, recovery)/res @@ -925,6 +926,10 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ > $(TARGET_RECOVERY_ROOT_OUT)/default.prop $(hide) $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk) +$(recovery_uncompressed_ramdisk): $(MINIGZIP) $(recovery_ramdisk) + @echo -e ${CL_CYN}"----- Making uncompressed recovery ramdisk ------"${CL_RST} + $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) > $@ + ifndef BOARD_CUSTOM_BOOTIMG_MK $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(recovery_ramdisk) \ $(recovery_kernel) From a5662727d02ebea05089f1171208e7ca240e48e4 Mon Sep 17 00:00:00 2001 From: Danesh Mondegarian Date: Thu, 7 Nov 2013 18:44:02 -0800 Subject: [PATCH 0769/1096] Remove HomeSample from builds As good as it looks, we already have a launcher (Launcher3) Change-Id: I87cac70eec30fd62d6f7ecb7777caa9d240fe0ee --- target/product/core_base.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/target/product/core_base.mk b/target/product/core_base.mk index aa07ad1bb15..f001a889f99 100644 --- a/target/product/core_base.mk +++ b/target/product/core_base.mk @@ -23,7 +23,6 @@ PRODUCT_PROPERTY_OVERRIDES := \ PRODUCT_PACKAGES += \ ContactsProvider \ DefaultContainerService \ - Home \ TelephonyProvider \ UserDictionaryProvider \ atrace \ From f16bdfac50ab789cc9a7f5957a6331c0a6479a4b Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Tue, 14 Oct 2014 12:43:28 -0700 Subject: [PATCH 0770/1096] product_config: Set CM_BUILD priority above TARGET_BUILD_APPS Even if we are doing TARGET_BUILD_APPS, we may want to use a cm target for building. Change-Id: Ic8053bc679fa8b726be90e611aeaacdf1850cabc --- core/product_config.mk | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/core/product_config.mk b/core/product_config.mk index ee72cb3073c..e33b48db1a0 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -179,19 +179,20 @@ include $(BUILD_SYSTEM)/node_fns.mk include $(BUILD_SYSTEM)/product.mk include $(BUILD_SYSTEM)/device.mk -ifneq ($(strip $(TARGET_BUILD_APPS)),) -# An unbundled app build needs only the core product makefiles. -all_product_configs := $(call get-product-makefiles,\ - $(SRC_TARGET_DIR)/product/AndroidProducts.mk) +# A CM build needs only the CM product makefiles. +ifneq ($(CM_BUILD),) + all_product_configs := $(shell ls device/*/$(CM_BUILD)/cm.mk) else - ifneq ($(CM_BUILD),) - all_product_configs := $(shell ls device/*/$(CM_BUILD)/cm.mk) + ifneq ($(strip $(TARGET_BUILD_APPS)),) + # An unbundled app build needs only the core product makefiles. + all_product_configs := $(call get-product-makefiles,\ + $(SRC_TARGET_DIR)/product/AndroidProducts.mk) else # Read in all of the product definitions specified by the AndroidProducts.mk # files in the tree. all_product_configs := $(get-all-product-makefiles) - endif -endif + endif # TARGET_BUILD_APPS +endif # CM_BUILD ifeq ($(CM_BUILD),) # Find the product config makefile for the current product. From 05793c9e630019a53d7321faee977814b5d97476 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Sat, 24 Nov 2012 17:37:34 +0700 Subject: [PATCH 0771/1096] build: don't clear recovery ramdisk Clearing recovery ramdisk removes all files place there by the device tree and all busybox symlinks placed there by recovery Change-Id: I19e6164856a01a83a6e2c50ef96742edcb9f570f --- core/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 969901c12f1..811c0e179ea 100644 --- a/core/Makefile +++ b/core/Makefile @@ -901,7 +901,6 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(recovery_fstab) \ $(RECOVERY_INSTALL_OTA_KEYS) @echo -e ${CL_CYN}"----- Making recovery image ------"${CL_RST} - $(hide) rm -rf $(TARGET_RECOVERY_OUT) $(hide) mkdir -p $(TARGET_RECOVERY_OUT) $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/etc $(TARGET_RECOVERY_ROOT_OUT)/tmp @echo -e ${CL_CYN}"Copying baseline ramdisk..."${CL_RST} From 07e95f7b21a33051ed86d632ede274bcbfa7020a Mon Sep 17 00:00:00 2001 From: Ethan Chen Date: Mon, 10 Nov 2014 14:34:48 -0800 Subject: [PATCH 0772/1096] build: Enable QCOM_BSP, QC_AV with QCOM_HARDWARE Change-Id: Ibf9dd35272521109fea52e46bacf6e1e3074ed6a --- core/qcom_target.mk | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index a6b572adb6f..476548f1b49 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -11,16 +11,19 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) TARGET_GLOBAL_CFLAGS += -DQCOM_HARDWARE TARGET_GLOBAL_CPPFLAGS += -DQCOM_HARDWARE - ifeq ($(TARGET_USES_QCOM_BSP),true) - TARGET_GLOBAL_CFLAGS += -DQCOM_BSP - TARGET_GLOBAL_CPPFLAGS += -DQCOM_BSP - endif + TARGET_USES_QCOM_BSP := true + TARGET_GLOBAL_CFLAGS += -DQCOM_BSP + TARGET_GLOBAL_CPPFLAGS += -DQCOM_BSP + + TARGET_ENABLE_QC_AV_ENHANCEMENTS := true # Enable DirectTrack for legacy targets + ifneq ($(filter msm7x30 msm8660 msm8960,$(TARGET_BOARD_PLATFORM)),) ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true) TARGET_GLOBAL_CFLAGS += -DQCOM_DIRECTTRACK TARGET_GLOBAL_CPPFLAGS += -DQCOM_DIRECTTRACK endif + endif $(call project-set-path,qcom-audio,hardware/qcom/audio-caf) $(call qcom-set-path-variant,CAMERA,camera) From c2ed7b8c5cf59483c54fbec3b6ab591acd042e06 Mon Sep 17 00:00:00 2001 From: Anthony King Date: Mon, 17 Nov 2014 22:06:31 +0000 Subject: [PATCH 0773/1096] pathmap: Point QC HAL pathmaps directly to the source Directly map to the actual HAL directory, including the board platform. This lets project-path-for point directly to the respective HALs. Change-Id: Ic4ed61bbdea9d0b5683502bf84a8410e76858527 --- core/qcom_target.mk | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 476548f1b49..ae94150f89d 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -25,17 +25,17 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) endif endif -$(call project-set-path,qcom-audio,hardware/qcom/audio-caf) +$(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,CAMERA,camera) -$(call project-set-path,qcom-display,hardware/qcom/display-caf) +$(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,GPS,gps) -$(call project-set-path,qcom-media,hardware/qcom/media-caf) +$(call project-set-path,qcom-media,hardware/qcom/media-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,SENSORS,sensors) else -$(call project-set-path,qcom-audio,hardware/qcom/audio) +$(call project-set-path,qcom-audio,hardware/qcom/audio/default) $(call qcom-set-path-variant,CAMERA,camera) -$(call project-set-path,qcom-display,hardware/qcom/display) +$(call project-set-path,qcom-display,hardware/qcom/display/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,GPS,gps) -$(call project-set-path,qcom-media,hardware/qcom/media) +$(call project-set-path,qcom-media,hardware/qcom/media/default) $(call qcom-set-path-variant,SENSORS,sensors) endif From 37f2f2fbb3f5677f599aa95082f27022bfcb210e Mon Sep 17 00:00:00 2001 From: Marcos Marado Date: Wed, 22 Oct 2014 14:19:34 +0100 Subject: [PATCH 0774/1096] Force colorsheme to SVG, since darkblue doesn't exist on X11 Change-Id: I1b9e13dd4ca63ba27a49a55d95130bdceb187669 --- core/tasks/product-graph.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tasks/product-graph.mk b/core/tasks/product-graph.mk index b1c943c635d..bf46f424830 100644 --- a/core/tasks/product-graph.mk +++ b/core/tasks/product-graph.mk @@ -61,7 +61,7 @@ define emit-product-node-props $(hide) echo \"$(1)\" [ \ label=\"$(dir $(1))\\n$(notdir $(1))\\n\\n$(subst $(close_parenthesis),,$(subst $(open_parethesis),,$(PRODUCTS.$(strip $(1)).PRODUCT_MODEL)))\\n$(PRODUCTS.$(strip $(1)).PRODUCT_DEVICE)\" \ $(if $(filter $(1),$(PRIVATE_PRODUCTS_FILTER)), style=\"filled\" fillcolor=\"#FFFDB0\",) \ -fontcolor=\"darkblue\" href=\"products/$(1).html\" \ +colorscheme=\"svg\" fontcolor=\"darkblue\" href=\"products/$(1).html\" \ ] >> $(2) endef From 809735e71171c03f8c1d847695a4dd4929b2a878 Mon Sep 17 00:00:00 2001 From: nuclearmistake Date: Sun, 27 Apr 2014 21:59:42 -0400 Subject: [PATCH 0775/1096] Colorize javac errors You know those multi-line ones that are frequently interspersed with other buld output? The ones that don't even have the word "error" in them to search for? This makes them red. ps2: fix jar_check failures cause by leaving empty stderr files in intermediates dirs this is probably not the best place to store stderr before colorizing it if javac exits non-zero, but it seems much lighter than mkdiring a bunch of temp directories or using sed to mangle the paths to point to per-intermediates directory unique temporary file names Change-Id: I3b9b7d8a0c76958588ac1603b6742987d6dde54c Signed-off-by: nuclearmistake --- core/definitions.mk | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/core/definitions.mk b/core/definitions.mk index f51221d2bb8..1162664e0be 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1587,7 +1587,11 @@ $(hide) if [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq ] ; the -extdirs "" -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) \ $(PRIVATE_JAVACFLAGS) \ \@$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq \ - || ( rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) ; exit 41 ) \ + 2>$(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr \ + && rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr \ + || ( if [ -e $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ]; then \ + echo -e ${CL_RED}"`cat $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr`"${CL_RST} 1>&2; \ + fi; rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR); exit 41 ) \ fi $(if $(PRIVATE_JAVA_LAYERS_FILE), $(hide) build/tools/java-layers.py \ $(PRIVATE_JAVA_LAYERS_FILE) \@$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq,) @@ -1648,7 +1652,11 @@ $(hide) if [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq ] ; the -extdirs "" -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) \ $(PRIVATE_JAVACFLAGS) \ \@$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq \ - || ( exit 41 ) \ + 2>$(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr \ + && rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr \ + || ( if [ -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ]; then \ + echo -e ${CL_RED}"`cat $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr`"${CL_RST} 1>&2; \ + fi; exit 41 ) \ fi $(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list $(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq @@ -1977,8 +1985,9 @@ endif ########################################################### ## Commands to call Proguard ########################################################### +@echo -e ${CL_CYN}"Copying:"${CL_RST}" $@" +@echo -e ${CL_GRN}"Proguard:"${CL_RST}" $@" define transform-jar-to-proguard -@echo Proguard: $@ $(hide) $(PROGUARD) -injars $< -outjars $@ $(PRIVATE_PROGUARD_FLAGS) \ $(addprefix -injars , $(PRIVATE_EXTRA_INPUT_JAR)) endef From ce0946eba952d410d1132620a7adfcdbcdac7891 Mon Sep 17 00:00:00 2001 From: nuclearmistake Date: Thu, 15 May 2014 10:30:26 -0400 Subject: [PATCH 0776/1096] colorize non-fatal javac stderr yellow (and actually display it... at all) woops! Signed-off-by: nuclearmistake Change-Id: I984f428022a68a825aa041866e8d459bd6611f71 --- core/definitions.mk | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/definitions.mk b/core/definitions.mk index 1162664e0be..eaf8cd0e050 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1588,10 +1588,12 @@ $(hide) if [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq ] ; the $(PRIVATE_JAVACFLAGS) \ \@$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq \ 2>$(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr \ - && rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr \ - || ( if [ -e $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ]; then \ + && ( [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ] && \ + echo -e ${CL_YLW}"`cat $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr`"${CL_RST} 1>&2; \ + rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ) \ + || ( [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ] && \ echo -e ${CL_RED}"`cat $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr`"${CL_RST} 1>&2; \ - fi; rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR); exit 41 ) \ + rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR); exit 41 ) \ fi $(if $(PRIVATE_JAVA_LAYERS_FILE), $(hide) build/tools/java-layers.py \ $(PRIVATE_JAVA_LAYERS_FILE) \@$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq,) @@ -1653,10 +1655,12 @@ $(hide) if [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq ] ; the $(PRIVATE_JAVACFLAGS) \ \@$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq \ 2>$(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr \ - && rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr \ - || ( if [ -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ]; then \ + && ( [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ] && \ + echo -e ${CL_YLW}"`cat $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr`"${CL_RST} 1>&2; \ + rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ) \ + || ( [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr ] && \ echo -e ${CL_RED}"`cat $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stderr`"${CL_RST} 1>&2; \ - fi; exit 41 ) \ + rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/srderr; exit 41 ) \ fi $(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list $(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq From 3bbfa4bf35cb6f787f3c39bfe885dfa73e7556a9 Mon Sep 17 00:00:00 2001 From: Oliver Middleton Date: Sun, 12 Oct 2014 22:11:26 +0100 Subject: [PATCH 0777/1096] build: Fix some colored build issues * Fix some broken lines in definitions.mk * Finish adding colors to product-graph.mk Change-Id: I235a60c967b1f10ec6dd1cac25740badbd3b64c9 --- core/definitions.mk | 6 +++--- core/tasks/product-graph.mk | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/definitions.mk b/core/definitions.mk index eaf8cd0e050..2c3a5c1837e 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1943,19 +1943,19 @@ endef # Copy a prebuilt file to a target location. define transform-prebuilt-to-target -@echo -e "$(if $(PRIVATE_IS_HOST_MODULE),host,target) "${CL_CYN}"Prebuilt:"${CL_RST}" $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_CYN}"$(if $(PRIVATE_IS_HOST_MODULE),host,target) Prebuilt:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) endef # Copy a prebuilt file to a target location, using zipalign on it. define transform-prebuilt-to-target-with-zipalign -@echo "$(if $(PRIVATE_IS_HOST_MODULE),host,target) "${CL_CYN}"Prebuilt APK:"${CL_RST}" $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_CYN}"$(if $(PRIVATE_IS_HOST_MODULE),host,target) Prebuilt APK:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target-with-zipalign) endef # Copy a prebuilt file to a target location, stripping "# comment" comments. define transform-prebuilt-to-target-strip-comments -@echo "$(if $(PRIVATE_IS_HOST_MODULE),host,target) "${CL_CYN}"Prebuilt:"${CL_RST}" $(PRIVATE_MODULE) ($@)" +@echo -e ${CL_CYN}"$(if $(PRIVATE_IS_HOST_MODULE),host,target) Prebuilt:"${CL_RST}" $(PRIVATE_MODULE) ($@)" $(copy-file-to-target-strip-comments) endef diff --git a/core/tasks/product-graph.mk b/core/tasks/product-graph.mk index bf46f424830..c209b458c6b 100644 --- a/core/tasks/product-graph.mk +++ b/core/tasks/product-graph.mk @@ -70,7 +70,7 @@ $(products_graph): PRIVATE_PRODUCTS := $(really_all_products) $(products_graph): PRIVATE_PRODUCTS_FILTER := $(products_list) $(products_graph): $(this_makefile) - @echo Product graph DOT: $@ for $(PRIVATE_PRODUCTS_FILTER) + @echo -e ${CL_GRN}"Product graph DOT:"${CL_RST}" $@ for $(PRIVATE_PRODUCTS_FILTER)" $(hide) echo 'digraph {' > $@.in $(hide) echo 'graph [ ratio=.5 ];' >> $@.in $(hide) $(foreach p,$(PRIVATE_PRODUCTS), \ @@ -89,7 +89,7 @@ endef # $(1) product file define transform-product-debug $(OUT_DIR)/products/$(strip $(1)).txt: $(this_makefile) - @echo Product debug info file: $$@ + @echo -e ${CL_GRN}"Product debug info file:"${CL_RST}" $$@" $(hide) rm -f $$@ $(hide) mkdir -p $$(dir $$@) $(hide) echo 'FILE=$(strip $(1))' >> $$@ @@ -125,7 +125,7 @@ $(call product-debug-filename, $(p)): \ $(OUT_DIR)/products/$(strip $(1)).txt \ build/tools/product_debug.py \ $(this_makefile) - @echo Product debug html file: $$@ + @echo -e ${CL_GRN}"Product debug html file:"${CL_RST}" $$@" $(hide) mkdir -p $$(dir $$@) $(hide) cat $$< | build/tools/product_debug.py > $$@ endef @@ -141,7 +141,7 @@ $(products_pdf): $(products_graph) dot -Tpdf -Nshape=box -o $@ $< $(products_svg): $(products_graph) $(product_debug_files) - @echo Product graph SVG: $@ + @echo -e ${CL_GRN}"Product graph SVG:"${CL_RST}" $@" dot -Tsvg -Nshape=box -o $@ $< product-graph: $(products_pdf) $(products_svg) From 110c921d5857fa1a64788f2e85c83738ed1cceb2 Mon Sep 17 00:00:00 2001 From: myfluxi Date: Sun, 23 Mar 2014 21:54:27 +0100 Subject: [PATCH 0778/1096] build: Degreenify java Change-Id: Iac348407997f7e52844af0494ee59762df0819d7 --- core/java.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java.mk b/core/java.mk index 9e563b1715a..3f5a9fbc3d1 100644 --- a/core/java.mk +++ b/core/java.mk @@ -384,7 +384,7 @@ endif # Keep a copy of the jar just before proguard processing. $(full_classes_jar): $(full_classes_emma_jar) | $(ACP) - @echo -e ${CL_GRN}"Copying:"${CL_GRN}" $@" + @echo -e ${CL_GRN}"Copying:"${CL_RST}" $@" $(hide) $(ACP) -fp $< $@ # Run proguard if necessary, otherwise just copy the file. From b85aaffbc92b795bcc9544ee9f86dde449479730 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Thu, 1 May 2014 16:33:02 +0300 Subject: [PATCH 0779/1096] build: Don't build video editor libraries * These are gone in L Change-Id: I7dae9c6736590be8cd080195da4062258ee4a424 --- target/product/generic_no_telephony.mk | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/target/product/generic_no_telephony.mk b/target/product/generic_no_telephony.mk index a71f8f50c1c..a938a5f6cba 100644 --- a/target/product/generic_no_telephony.mk +++ b/target/product/generic_no_telephony.mk @@ -36,12 +36,7 @@ PRODUCT_PACKAGES += \ screenrecord PRODUCT_PACKAGES += \ - librs_jni \ - libvideoeditor_jni \ - libvideoeditor_core \ - libvideoeditor_osal \ - libvideoeditor_videofilters \ - libvideoeditorplayer \ + librs_jni PRODUCT_PACKAGES += \ audio.primary.default \ From 081f5769ea3b6e36a73c27edcf8049a210975a53 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Tue, 11 Nov 2014 13:09:58 +0200 Subject: [PATCH 0780/1096] Remove deprecated custom squisher code * No devices should be using that anymore Change-Id: I752cf5297d35a842a923a8008fbec53e8fae97e0 --- core/Makefile | 3 --- 1 file changed, 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index 811c0e179ea..c5b232a77d7 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1621,9 +1621,6 @@ CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(CM_VERSION).zip .PHONY: otapackage bacon otapackage: $(INTERNAL_OTA_PACKAGE_TARGET) bacon: otapackage -ifneq ($(TARGET_CUSTOM_RELEASETOOL),) - $(error TARGET_CUSTOM_RELEASETOOL is deprecated) -endif $(hide) ln -f $(INTERNAL_OTA_PACKAGE_TARGET) $(CM_TARGET_PACKAGE) $(hide) $(MD5SUM) $(CM_TARGET_PACKAGE) > $(CM_TARGET_PACKAGE).md5sum @echo -e ${CL_CYN}"Package Complete: $(CM_TARGET_PACKAGE)"${CL_RST} From abd4c341e18c0eb7e62d41f935582e67f9e1b6c0 Mon Sep 17 00:00:00 2001 From: Arne Coucheron Date: Sat, 3 Mar 2012 22:53:06 +0100 Subject: [PATCH 0781/1096] Fix inheritance of PRODUCT_PROPERTY_OVERRIDES for CM audio files Otherwise the ones set in CM vendor will be overridden by these. Change-Id: I3f87dfd009d8ddfd48972c15770599742b12c4af Author: Abhisek Devkota Remove extra product property overrides This appears to clash with vendor/cm/common mk's for overrides; causes a broken default alarm (and OnTheHunt is so bleh). Change-Id: I5ec990d3c5ad56b573c45f1a3b20169c989851a0 --- target/product/core_base.mk | 4 ---- target/product/full_base.mk | 4 +--- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/target/product/core_base.mk b/target/product/core_base.mk index f001a889f99..4873ba4564f 100644 --- a/target/product/core_base.mk +++ b/target/product/core_base.mk @@ -16,10 +16,6 @@ # Note that components added here will be also shared in PDK. Components # that should not be in PDK should be added in lower level like core.mk. -PRODUCT_PROPERTY_OVERRIDES := \ - ro.config.notification_sound=OnTheHunt.ogg \ - ro.config.alarm_alert=Alarm_Classic.ogg - PRODUCT_PACKAGES += \ ContactsProvider \ DefaultContainerService \ diff --git a/target/product/full_base.mk b/target/product/full_base.mk index 69258e6ce69..25a3dc49fb4 100644 --- a/target/product/full_base.mk +++ b/target/product/full_base.mk @@ -29,9 +29,7 @@ PRODUCT_PACKAGES := \ # Additional settings used in all AOSP builds PRODUCT_PROPERTY_OVERRIDES := \ - ro.com.android.dateformat=MM-dd-yyyy \ - ro.config.ringtone=Ring_Synth_04.ogg \ - ro.config.notification_sound=pixiedust.ogg + ro.com.android.dateformat=MM-dd-yyyy # Put en_US first in the list, so make it default. PRODUCT_LOCALES := en_US From 46da6326c4f3c87e9c81a1c7c89c3358541a9c19 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sun, 9 Nov 2014 17:27:51 +0530 Subject: [PATCH 0782/1096] Allow specifying kernel toolchain and prefix Change-Id: Ib75cfe772e073f2196455f3e3dfba247f6b3feff --- core/tasks/kernel.mk | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 4d519a07cdf..b0ab1def9c0 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -112,12 +112,19 @@ KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr KERNEL_MODULES_INSTALL := system KERNEL_MODULES_OUT := $(TARGET_OUT)/lib/modules +ifeq ($(KERNEL_TOOLCHAIN),) +KERNEL_TOOLCHAIN := $(ARM_EABI_TOOLCHAIN) +endif +ifeq ($(KERNEL_TOOLCHAIN_PREFIX),) +KERNEL_TOOLCHAIN_PREFIX := arm-eabi- +endif + define mv-modules mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.order`;\ if [ "$$mdpath" != "" ];then\ mpath=`dirname $$mdpath`;\ ko=`find $$mpath/kernel -type f -name *.ko`;\ - for i in $$ko; do $(ARM_EABI_TOOLCHAIN)/arm-eabi-strip --strip-unneeded $$i;\ + for i in $$ko; do $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)strip --strip-unneeded $$i;\ mv $$i $(KERNEL_MODULES_OUT)/; done;\ fi endef @@ -135,7 +142,7 @@ ifeq ($(TARGET_ARCH),arm) # Check that the executable is here. ccache := $(strip $(wildcard $(ccache))) endif - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ARM_EABI_TOOLCHAIN)/arm-eabi-" + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)" ccache = endif From 58c72abf5347dd3b22c54d38adcf34b8537208a0 Mon Sep 17 00:00:00 2001 From: Tom Marshall Date: Tue, 28 Oct 2014 16:12:15 -0700 Subject: [PATCH 0783/1096] build: recovery: Support adding device-specific items (cdesai): Also add the relevant parts from koush's commit 7fd5a89df5ec3961c9aedfd2afad50d6d2561056 "Add initial support for charge mode. also support recovery/root in the device tree to easily copy props into recovery images." Change-Id: I25205e68282680932917016646dabd1abadbfce6 --- core/Makefile | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index c5b232a77d7..b06599860ca 100644 --- a/core/Makefile +++ b/core/Makefile @@ -823,6 +823,16 @@ else recovery_font := $(call include-path-for, recovery)/fonts/12x22.png endif +ifneq ($(TARGET_RECOVERY_DEVICE_DIRS),) +recovery_root_private := $(strip \ + $(foreach d,$(TARGET_RECOVERY_DEVICE_DIRS), $(wildcard $(d)/recovery/root))) +else +recovery_root_private := $(strip $(wildcard $(TARGET_DEVICE_DIR)/recovery/root)) +endif +ifneq ($(recovery_root_private),) +recovery_root_deps := $(shell find $(recovery_root_private) -type f) +endif + recovery_resources_private := $(strip $(wildcard $(TARGET_DEVICE_DIR)/recovery/res)) recovery_resource_deps := $(shell find $(recovery_resources_common) \ $(recovery_resources_private) -type f) @@ -897,7 +907,7 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(recovery_binary) \ $(recovery_initrc) $(recovery_sepolicy) \ $(INSTALLED_2NDBOOTLOADER_TARGET) \ - $(recovery_build_prop) $(recovery_resource_deps) \ + $(recovery_build_prop) $(recovery_resource_deps) $(recovery_root_deps) \ $(recovery_fstab) \ $(RECOVERY_INSTALL_OTA_KEYS) @echo -e ${CL_CYN}"----- Making recovery image ------"${CL_RST} @@ -916,6 +926,8 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(hide) rm -rf $(TARGET_RECOVERY_ROOT_OUT)/res/* $(hide) cp -rf $(recovery_resources_common)/* $(TARGET_RECOVERY_ROOT_OUT)/res $(hide) cp -f $(recovery_font) $(TARGET_RECOVERY_ROOT_OUT)/res/images/font.png + $(hide) $(foreach item,$(recovery_root_private), \ + cp -rf $(item) $(TARGET_RECOVERY_OUT)/) $(hide) $(foreach item,$(recovery_resources_private), \ cp -rf $(item) $(TARGET_RECOVERY_ROOT_OUT)/) $(hide) $(foreach item,$(recovery_fstab), \ From a57a1aa6a0907950e5074628a1a085ed86a60f80 Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Tue, 28 Jan 2014 15:51:51 -0600 Subject: [PATCH 0784/1096] Allow devices to specify certain ro. props via TARGET_UNIFIED_DEVICE This modifies buildinfo.sh to not set model, name, description, and fingerprint in build.prop. These can then be set via custom init lib. This also fixes ota_from_target_files to function without these props being preset. Change-Id: I945b2c38e60b207d2d0f82b34f4f230ac21b0657 --- core/Makefile | 7 ++- tools/buildinfo.sh | 16 +++--- tools/releasetools/ota_from_target_files | 69 ++++++++++++++++-------- 3 files changed, 61 insertions(+), 31 deletions(-) diff --git a/core/Makefile b/core/Makefile index b06599860ca..583e3a1473e 100644 --- a/core/Makefile +++ b/core/Makefile @@ -254,6 +254,7 @@ endif TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \ TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \ TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \ + TARGET_UNIFIED_DEVICE="$(TARGET_UNIFIED_DEVICE)" \ $(PRODUCT_BUILD_PROP_OVERRIDES) \ bash $(BUILDINFO_SH) >> $@ $(hide) $(foreach file,$(system_prop_file), \ @@ -1614,6 +1615,10 @@ else $(INTERNAL_OTA_PACKAGE_TARGET): override_device := $(TARGET_OTA_ASSERT_DEVICE) endif +ifneq ($(TARGET_UNIFIED_DEVICE),) + $(INTERNAL_OTA_PACKAGE_TARGET): override_prop := --override_prop=true +endif + $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) @echo "$(OTA_FROM_TARGET_SCRIPT)" > $(PRODUCT_OUT)/ota_script_path @echo "$(override_device)" > $(PRODUCT_OUT)/ota_override_device @@ -1624,7 +1629,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) -p $(HOST_OUT) \ -k $(KEY_CERT_PAIR) \ --backup=$(backuptool) \ - --override_device=$(override_device) \ + --override_device=$(override_device) $(override_prop) \ $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(BUILT_TARGET_FILES_PACKAGE) $@ diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh index 7865e2fa384..2d70f6eeb14 100755 --- a/tools/buildinfo.sh +++ b/tools/buildinfo.sh @@ -17,10 +17,8 @@ echo "ro.build.user=$USER" echo "ro.build.host=`hostname`" echo "ro.build.tags=$BUILD_VERSION_TAGS" echo "ro.build.flavor=$TARGET_BUILD_FLAVOR" -echo "ro.product.model=$PRODUCT_MODEL" echo "ro.product.brand=$PRODUCT_BRAND" echo "ro.product.name=$PRODUCT_NAME" -echo "ro.product.device=$TARGET_DEVICE" echo "ro.product.board=$TARGET_BOOTLOADER_BOARD_NAME" # These values are deprecated, use "ro.product.cpu.abilist" @@ -48,11 +46,15 @@ echo "ro.board.platform=$TARGET_BOARD_PLATFORM" echo "# ro.build.product is obsolete; use ro.product.device" echo "ro.build.product=$TARGET_DEVICE" -echo "# Do not try to parse description, fingerprint, or thumbprint" -echo "ro.build.description=$PRIVATE_BUILD_DESC" -echo "ro.build.fingerprint=$BUILD_FINGERPRINT" -if [ -n "$BUILD_THUMBPRINT" ] ; then - echo "ro.build.thumbprint=$BUILD_THUMBPRINT" +if [ "$TARGET_UNIFIED_DEVICE" == "" ] ; then + echo "ro.product.model=$PRODUCT_MODEL" + echo "ro.product.device=$TARGET_DEVICE" + echo "# Do not try to parse description, fingerprint, or thumbprint" + echo "ro.build.description=$PRIVATE_BUILD_DESC" + echo "ro.build.fingerprint=$BUILD_FINGERPRINT" + if [ -n "$BUILD_THUMBPRINT" ] ; then + echo "ro.build.thumbprint=$BUILD_THUMBPRINT" + fi fi echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS" diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index eff9f4372ff..0c663901007 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -86,6 +86,10 @@ Usage: ota_from_target_files [flags] input_target_files output_ota_package --override_device Override device-specific asserts. Can be a comma-separated list. + --override_prop + Override build.prop items with custom vendor init. + Enabled when TARGET_UNIFIED_DEVICE is defined in BoardConfig + """ import sys @@ -134,6 +138,7 @@ OPTIONS.oem_source = None OPTIONS.fallback_to_full = True OPTIONS.backuptool = False OPTIONS.override_device = 'auto' +OPTIONS.override_prop = False def MostPopularKey(d, default): """Given a dict, return the key corresponding to the largest @@ -395,7 +400,10 @@ def AppendAssertions(script, info_dict, oem_dict = None): oem_props = info_dict.get("oem_fingerprint_properties") if oem_props is None or len(oem_props) == 0: if OPTIONS.override_device == "auto": - device = GetBuildProp("ro.product.device", info_dict) + if OPTIONS.override_prop: + device = GetBuildProp("ro.build.product", info_dict) + else: + device = GetBuildProp("ro.product.device", info_dict) else: device = OPTIONS.override_device script.AssertDevice(device) @@ -486,13 +494,19 @@ def WriteFullOTAPackage(input_zip, output_zip): script.Mount("/oem", recovery_mount_options) oem_dict = common.LoadDictionaryFromLines(open(OPTIONS.oem_source).readlines()) - metadata = {"post-build": CalculateFingerprint( - oem_props, oem_dict, OPTIONS.info_dict), - "pre-device": GetOemProperty("ro.product.device", oem_props, oem_dict, - OPTIONS.info_dict), - "post-timestamp": GetBuildProp("ro.build.date.utc", + + if OPTIONS.override_prop: + metadata = {"post-timestamp": GetBuildProp("ro.build.date.utc", + OPTIONS.info_dict), + } + else: + metadata = {"post-build": CalculateFingerprint( + oem_props, oem_dict, OPTIONS.info_dict), + "pre-device": GetOemProperty("ro.product.device", oem_props, oem_dict, + OPTIONS.info_dict), + "post-timestamp": GetBuildProp("ro.build.date.utc", OPTIONS.info_dict), - } + } device_specific = common.DeviceSpecificParams( input_zip=input_zip, @@ -745,11 +759,16 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): script = edify_generator.EdifyGenerator(source_version, OPTIONS.target_info_dict) - metadata = {"pre-device": GetBuildProp("ro.product.device", - OPTIONS.source_info_dict), - "post-timestamp": GetBuildProp("ro.build.date.utc", - OPTIONS.target_info_dict), - } + if OPTIONS.override_prop: + metadata = {"post-timestamp": GetBuildProp("ro.build.date.utc", + OPTIONS.target_info_dict), + } + else: + metadata = {"pre-device": GetBuildProp("ro.product.device", + OPTIONS.source_info_dict), + "post-timestamp": GetBuildProp("ro.build.date.utc", + OPTIONS.target_info_dict), + } device_specific = common.DeviceSpecificParams( source_zip=source_zip, @@ -1132,18 +1151,19 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip): else: vendor_diff = None - target_fp = CalculateFingerprint(oem_props, oem_dict, OPTIONS.target_info_dict) - source_fp = CalculateFingerprint(oem_props, oem_dict, OPTIONS.source_info_dict) + if not OPTIONS.override_prop: + target_fp = CalculateFingerprint(oem_props, oem_dict, OPTIONS.target_info_dict) + source_fp = CalculateFingerprint(oem_props, oem_dict, OPTIONS.source_info_dict) - if oem_props is None: - script.AssertSomeFingerprint(source_fp, target_fp) - else: - script.AssertSomeThumbprint( - GetBuildProp("ro.build.thumbprint", OPTIONS.target_info_dict), - GetBuildProp("ro.build.thumbprint", OPTIONS.source_info_dict)) + if oem_props is None: + script.AssertSomeFingerprint(source_fp, target_fp) + else: + script.AssertSomeThumbprint( + GetBuildProp("ro.build.thumbprint", OPTIONS.target_info_dict), + GetBuildProp("ro.build.thumbprint", OPTIONS.source_info_dict)) - metadata["pre-build"] = source_fp - metadata["post-build"] = target_fp + metadata["pre-build"] = source_fp + metadata["post-build"] = target_fp source_boot = common.GetBootableImage( "/tmp/boot.img", "boot.img", OPTIONS.source_tmp, "BOOT", @@ -1471,6 +1491,8 @@ def main(argv): OPTIONS.backuptool = bool(a.lower() == 'true') elif o in ("--override_device"): OPTIONS.override_device = a + elif o in ("--override_prop"): + OPTIONS.override_prop = bool(a.lower() == 'true') else: return False return True @@ -1493,7 +1515,8 @@ def main(argv): "verify", "no_fallback_to_full", "backup=", - "override_device="], + "override_device=", + "override_prop="], extra_option_handler=option_handler) if len(args) != 2: From 230b9f86ff855bc29c135246f4411315649142cd Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Thu, 28 Aug 2014 18:29:14 -0500 Subject: [PATCH 0785/1096] Edify: Add/Update abort messages for some asserts * If a bootloader or baseband assert is not satisfied, print the versions that are supported by the package as well as the version on the device. Change-Id: I958d49281c51bd4e60d596a727bb94cfc4a21909 --- tools/releasetools/edify_generator.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index 5c7793e2050..a1624922b95 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -125,10 +125,13 @@ def AssertDevice(self, device): self.script.append(cmd) def AssertSomeBootloader(self, *bootloaders): - """Asert that the bootloader version is one of *bootloaders.""" + """Assert that the bootloader version is one of *bootloaders.""" cmd = ("assert(" + " || ".join(['getprop("ro.bootloader") == "%s"' % (b,) for b in bootloaders]) + + ' || abort("This package supports bootloader(s): ' + + ", ".join(["%s" % (b,) for b in bootloaders]) + + '; this device has bootloader " + getprop("ro.bootloader") + ".");' + ");") self.script.append(self._WordWrap(cmd)) @@ -137,6 +140,9 @@ def AssertSomeBaseband(self, *basebands): cmd = ("assert(" + " || ".join(['getprop("ro.baseband") == "%s"' % (b,) for b in basebands]) + + ' || abort("This package supports baseband(s): ' + + ", ".join(["%s" % (b,) for b in basebands]) + + '; this device has baseband " + getprop("ro.baseband") + ".");' + ");") self.script.append(self._WordWrap(cmd)) From 8c6d0d096ff2923a671573c43975ad02cf2c8e00 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Thu, 17 Nov 2011 00:13:29 +0000 Subject: [PATCH 0786/1096] ota: Build uboot bootable images when necessary Conflicts: core/Makefile tools/releasetools/common.py Change-Id: I18996bb1f5377bbf369fb41774aaa1f5821e7d1f --- core/Makefile | 18 +++++++ tools/releasetools/common.py | 98 ++++++++++++++++++++---------------- 2 files changed, 72 insertions(+), 44 deletions(-) diff --git a/core/Makefile b/core/Makefile index 583e3a1473e..d4b930f78b7 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1414,6 +1414,21 @@ else $(BUILT_TARGET_FILES_PACKAGE): tool_extensions := $(TARGET_RELEASETOOLS_EXTENSIONS) endif +ifeq ($(BOARD_USES_UBOOT_MULTIIMAGE),true) + + ZIP_SAVE_UBOOTIMG_ARGS := -A ARM -O Linux -T multi -C none -n Image + + BOARD_UBOOT_ENTRY := $(strip $(BOARD_UBOOT_ENTRY)) + ifdef BOARD_UBOOT_ENTRY + ZIP_SAVE_UBOOTIMG_ARGS += -e $(BOARD_UBOOT_ENTRY) + endif + BOARD_UBOOT_LOAD := $(strip $(BOARD_UBOOT_LOAD)) + ifdef BOARD_UBOOT_LOAD + ZIP_SAVE_UBOOTIMG_ARGS += -a $(BOARD_UBOOT_LOAD) + endif + +endif + # Depending on the various images guarantees that the underlying # directories are up-to-date. $(BUILT_TARGET_FILES_PACKAGE): \ @@ -1491,6 +1506,9 @@ endif ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) $(hide) echo "$(INSTALLED_DTIMAGE_TARGET)" > $(zip_root)/BOOT/dt_args +endif +ifdef ZIP_SAVE_UBOOTIMG_ARGS + $(hide) echo "$(ZIP_SAVE_UBOOTIMG_ARGS)" > $(zip_root)/BOOT/ubootargs endif $(hide) $(foreach t,$(INSTALLED_RADIOIMAGE_TARGET),\ mkdir -p $(zip_root)/RADIO; \ diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index df3423dedd0..468dc0c094b 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -308,52 +308,62 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): assert p1.returncode == 0, "mkbootfs of %s ramdisk failed" % (targetname,) assert p2.returncode == 0, "minigzip of %s ramdisk failed" % (targetname,) - # use MKBOOTIMG from environ, or "mkbootimg" if empty or not set - mkbootimg = os.getenv('MKBOOTIMG') or "mkbootimg" - - cmd = [mkbootimg, "--kernel", os.path.join(sourcedir, "kernel")] - - fn = os.path.join(sourcedir, "second") - if os.access(fn, os.F_OK): - cmd.append("--second") - cmd.append(fn) - - fn = os.path.join(sourcedir, "cmdline") - if os.access(fn, os.F_OK): - cmd.append("--cmdline") - cmd.append(open(fn).read().rstrip("\n")) - - fn = os.path.join(sourcedir, "base") - if os.access(fn, os.F_OK): - cmd.append("--base") - cmd.append(open(fn).read().rstrip("\n")) - - fn = os.path.join(sourcedir, "tagsaddr") + """check if uboot is requested""" + fn = os.path.join(sourcedir, "ubootargs") if os.access(fn, os.F_OK): - cmd.append("--tags-addr") - cmd.append(open(fn).read().rstrip("\n")) + cmd = ["mkimage"] + for argument in open(fn).read().rstrip("\n").split(" "): + cmd.append(argument) + cmd.append("-d") + cmd.append(os.path.join(sourcedir, "kernel")+":"+ramdisk_img.name) + cmd.append(img.name) - fn = os.path.join(sourcedir, "ramdisk_offset") - if os.access(fn, os.F_OK): - cmd.append("--ramdisk_offset") - cmd.append(open(fn).read().rstrip("\n")) - - fn = os.path.join(sourcedir, "dt_args") - if os.access(fn, os.F_OK): - cmd.append("--dt") - cmd.append(open(fn).read().rstrip("\n")) - - fn = os.path.join(sourcedir, "pagesize") - if os.access(fn, os.F_OK): - cmd.append("--pagesize") - cmd.append(open(fn).read().rstrip("\n")) - - args = info_dict.get("mkbootimg_args", None) - if args and args.strip(): - cmd.extend(shlex.split(args)) - - cmd.extend(["--ramdisk", ramdisk_img.name, - "--output", img.name]) + else: + # use MKBOOTIMG from environ, or "mkbootimg" if empty or not set + mkbootimg = os.getenv('MKBOOTIMG') or "mkbootimg" + cmd = [mkbootimg, "--kernel", os.path.join(sourcedir, "kernel")] + + fn = os.path.join(sourcedir, "second") + if os.access(fn, os.F_OK): + cmd.append("--second") + cmd.append(fn) + + fn = os.path.join(sourcedir, "cmdline") + if os.access(fn, os.F_OK): + cmd.append("--cmdline") + cmd.append(open(fn).read().rstrip("\n")) + + fn = os.path.join(sourcedir, "base") + if os.access(fn, os.F_OK): + cmd.append("--base") + cmd.append(open(fn).read().rstrip("\n")) + + fn = os.path.join(sourcedir, "tagsaddr") + if os.access(fn, os.F_OK): + cmd.append("--tags-addr") + cmd.append(open(fn).read().rstrip("\n")) + + fn = os.path.join(sourcedir, "ramdisk_offset") + if os.access(fn, os.F_OK): + cmd.append("--ramdisk_offset") + cmd.append(open(fn).read().rstrip("\n")) + + fn = os.path.join(sourcedir, "dt_args") + if os.access(fn, os.F_OK): + cmd.append("--dt") + cmd.append(open(fn).read().rstrip("\n")) + + fn = os.path.join(sourcedir, "pagesize") + if os.access(fn, os.F_OK): + cmd.append("--pagesize") + cmd.append(open(fn).read().rstrip("\n")) + + args = info_dict.get("mkbootimg_args", None) + if args and args.strip(): + cmd.extend(shlex.split(args)) + + cmd.extend(["--ramdisk", ramdisk_img.name, + "--output", img.name]) p = Run(cmd, stdout=subprocess.PIPE) p.communicate() assert p.returncode == 0, "mkbootimg of %s image failed" % ( From d048f0a56f5bbc2f7115d233488e0663087efddf Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 21 Nov 2014 23:38:04 -0800 Subject: [PATCH 0787/1096] Enable QCOM_BSP_LEGACY flag for pre-8974 targets Change-Id: I895f1b1cbad0d260e1bca87ccb61e6194de023fd --- core/qcom_target.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index ae94150f89d..f057337dcf6 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -23,6 +23,9 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) TARGET_GLOBAL_CFLAGS += -DQCOM_DIRECTTRACK TARGET_GLOBAL_CPPFLAGS += -DQCOM_DIRECTTRACK endif + # Enable legacy graphics functions + LOCAL_GLOBAL_CFLAGS += -DQCOM_BSP_LEGACY + LOCAL_GLOBAL_CPPFLAGS += -DQCOM_BSP_LEGACY endif $(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) From f91b2b72093767376cf87af2fbef100f297e2cd0 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Wed, 13 Aug 2014 12:27:38 -0700 Subject: [PATCH 0788/1096] build: Handle custom boot images properly When a pre-built image should be used, it should be stored in the target files zip so that it can be used with external signing processes. Original-Change-Id: I2661af9ac58af30bb9314b552775046d3abf44e0 Change-Id: I10b3bd0bb33489b8ffb26d16d002f8dd6ff405ad --- core/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/Makefile b/core/Makefile index d4b930f78b7..c37e1f6a4fd 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1519,6 +1519,12 @@ endif @# Contents of the data image $(hide) $(call package_files-copy-root, \ $(TARGET_OUT_DATA),$(zip_root)/DATA) +ifdef BOARD_CUSTOM_BOOTIMG + @# Prebuilt boot images + $(hide) mkdir -p $(zip_root)/BOOTABLE_IMAGES + $(hide) $(ACP) $(INSTALLED_BOOTIMAGE_TARGET) $(zip_root)/BOOTABLE_IMAGES/ + $(hide) $(ACP) $(INSTALLED_RECOVERYIMAGE_TARGET) $(zip_root)/BOOTABLE_IMAGES/ +endif ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE @# Contents of the vendor image $(hide) $(call package_files-copy-root, \ From 225441d78d8f84c8654e1a3c63a7c9a432bee263 Mon Sep 17 00:00:00 2001 From: Tom Marshall Date: Wed, 1 Oct 2014 07:33:51 -0700 Subject: [PATCH 0789/1096] build: Use project pathmap for recovery Change-Id: I6339ac77b899a43db21261d587252b65cb58ad79 --- core/Makefile | 8 ++++---- core/config.mk | 4 ++++ core/pathmap.mk | 1 - 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/core/Makefile b/core/Makefile index c37e1f6a4fd..cb432401e60 100644 --- a/core/Makefile +++ b/core/Makefile @@ -788,14 +788,14 @@ ifeq (,$(filter true, $(TARGET_NO_KERNEL) $(TARGET_NO_RECOVERY))) INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img -recovery_initrc := $(call include-path-for, recovery)/etc/init.rc +recovery_initrc := $(call project-path-for,recovery)/etc/init.rc recovery_sepolicy := $(call intermediates-dir-for,ETC,sepolicy.recovery)/sepolicy.recovery recovery_kernel := $(INSTALLED_KERNEL_TARGET) # same as a non-recovery system recovery_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.img recovery_uncompressed_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.cpio recovery_build_prop := $(INSTALLED_BUILD_PROP_TARGET) recovery_binary := $(call intermediates-dir-for,EXECUTABLES,recovery)/recovery -recovery_resources_common := $(call include-path-for, recovery)/res +recovery_resources_common := $(call project-path-for,recovery)/res # Set recovery_density to the density bucket of the device. recovery_density := unknown @@ -819,9 +819,9 @@ endif # its private recovery resources. ifneq (,$(filter xxxhdpi xxhdpi xhdpi,$(recovery_density))) -recovery_font := $(call include-path-for, recovery)/fonts/18x32.png +recovery_font := $(call project-path-for,recovery)/fonts/18x32.png else -recovery_font := $(call include-path-for, recovery)/fonts/12x22.png +recovery_font := $(call project-path-for,recovery)/fonts/12x22.png endif ifneq ($(TARGET_RECOVERY_DEVICE_DIRS),) diff --git a/core/config.mk b/core/config.mk index 4fb38a1def0..7c7eaec3451 100644 --- a/core/config.mk +++ b/core/config.mk @@ -150,6 +150,10 @@ endif # are specific to the user's build configuration. include $(BUILD_SYSTEM)/envsetup.mk +# General entries for project pathmap. Any entries listed here should +# be device and hardware independent. +$(call project-set-path-variant,recovery,RECOVERY_VARIANT,bootable/recovery) + -include vendor/extra/BoardConfigExtra.mk # The build system exposes several variables for where to find the kernel # headers: diff --git a/core/pathmap.mk b/core/pathmap.mk index d7bc26e837c..80b03226805 100644 --- a/core/pathmap.mk +++ b/core/pathmap.mk @@ -42,7 +42,6 @@ pathmap_INCL := \ libstdc++:bionic/libstdc++/include \ mkbootimg:system/core/mkbootimg \ opengl-tests-includes:frameworks/native/opengl/tests/include \ - recovery:bootable/recovery \ system-core:system/core/include \ audio-effects:system/media/audio_effects/include \ audio-utils:system/media/audio_utils/include \ From 8c4d2e3d4f1b8df6cc62a94de6e3a127a3f86041 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Wed, 19 Nov 2014 23:22:41 +0700 Subject: [PATCH 0790/1096] build: clean up otasigcheck - Only mount and unmount /data if it was originally unmounted - Don't use comparison hack, just check the result of the script Change-Id: I4a22485d315cf91e95ce578907c49f5fa3a03222 --- tools/releasetools/edify_generator.py | 4 +--- tools/releasetools/ota_from_target_files | 5 +++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index a1624922b95..9cdba5cef47 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -167,9 +167,7 @@ def ValidateSignatures(self, command): self.script.append('package_extract_file("system/bin/otasigcheck.sh", "/tmp/otasigcheck.sh");') self.script.append('package_extract_file("META-INF/org/cyanogenmod/releasekey", "/tmp/releasekey");') self.script.append('set_metadata("/tmp/otasigcheck.sh", "uid", 0, "gid", 0, "mode", 0755);') - self.script.append('run_program("/tmp/otasigcheck.sh");') - ## Hax: a failure from run_program doesn't trigger an abort, so have it change the key value and check for "INVALID" - self.script.append('sha1_check(read_file("/tmp/releasekey"),"7241e92725436afc79389d4fc2333a2aa8c20230") && abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') + self.script.append('run_program("/tmp/otasigcheck.sh") == "0" || abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') def ShowProgress(self, frac, dur): """Update the progress bar, advancing it over 'frac' over the next diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 0c663901007..34255425c3a 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -589,9 +589,14 @@ else if get_stage("%(bcb_dev)s") == "3/3" then if block_based: common.ZipWriteStr(output_zip, "system/bin/otasigcheck.sh", ""+input_zip.read("SYSTEM/bin/otasigcheck.sh")) + + script.AppendExtra("if is_mounted(\"/data\") then") + script.ValidateSignatures("data") + script.AppendExtra("else") script.Mount("/data") script.ValidateSignatures("data") script.Unmount("/data") + script.AppendExtra("endif;") if "selinux_fc" in OPTIONS.info_dict: WritePolicyConfig(OPTIONS.info_dict["selinux_fc"], output_zip) From 02e153f6268cd32eab61d5f68e02e97c4e5e8977 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Thu, 19 Jun 2014 01:45:15 +0100 Subject: [PATCH 0791/1096] ota: Let devices specify their own recovery-from-boot.p installer Some devices apply transformations to the installed images, making the sha1 checksums fail (or, worse, generating invalid images). If "/system/etc/recovery-transform.sh" exists, run that instead, passing the expected sizes and checksums as arguments in the form of recovery-transform.sh A direct emulation of the standard patcher could look like this, transformations should be added as needed. ---------------- RECSIZE=$1 RECSHA1=$2 BOOTSIZE=$3 BOOTSHA1=$4 dd if=/dev/block/platform/msm_sdcc.1/by-name/recovery of=$C/recovery.img dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=$C/boot.img if ! applypatch -c EMMC:$C/recovery.img:$RECSIZE:$RECSHA1; then log -t recovery "Installing new recovery image" applypatch -b /system/etc/recovery-resource.dat EMMC:$C/boot.img:$BOOTSIZE:$BOOTSHA1 EMMC:$C/recovery.img $RECSHA1 $RECSIZE $BOOTSHA1:/system/recovery-from-boot.p || exit 1 else log -t recovery "Recovery image already installed" fi ---------------- Conflicts: tools/releasetools/ota_from_target_files Change-Id: Ie601841ca1cdad6b8f3b16e593d2718a92e8ca09 --- tools/releasetools/common.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 468dc0c094b..43b9f5a8f18 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -1196,6 +1196,10 @@ def MakeRecoveryPatch(input_dir, output_sink, recovery_img, boot_img, recovery_type, recovery_device = td_pair sh = """#!/system/bin/sh +if [ -f /system/etc/recovery-transform.sh ]; then + exec sh /system/etc/recovery-transform.sh %(recovery_size)d %(recovery_sha1)s %(boot_size)d %(boot_sha1)s +fi + if ! applypatch -c %(recovery_type)s:%(recovery_device)s:%(recovery_size)d:%(recovery_sha1)s; then applypatch %(bonus_args)s %(boot_type)s:%(boot_device)s:%(boot_size)d:%(boot_sha1)s %(recovery_type)s:%(recovery_device)s %(recovery_sha1)s %(recovery_size)d %(boot_sha1)s:/system/recovery-from-boot.p && log -t recovery "Installing new recovery image: succeeded" || log -t recovery "Installing new recovery image: failed" else From 391fa7837ad3e7e5a39b3a6651d4f7a79d29d040 Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Fri, 21 Nov 2014 00:46:52 -0600 Subject: [PATCH 0792/1096] build: Ensure /system unmounted at install start Account for the possibility that a user has mounted system manually before installing the FullOTA package. Change-Id: I97d0540676a7ce98762545e76ecb1a7f6335d204 --- tools/releasetools/ota_from_target_files | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 34255425c3a..c6f96a49739 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -567,6 +567,7 @@ reboot_now("%(bcb_dev)s", "recovery"); else if get_stage("%(bcb_dev)s") == "3/3" then """ % bcb_dev) + script.AppendExtra("ifelse(is_mounted(\"/system\"), unmount(\"/system\"));") device_specific.FullOTA_InstallBegin() if OPTIONS.backuptool: From 105c357d3cf70dc3a9eb06a706b6e14ba9ab33c6 Mon Sep 17 00:00:00 2001 From: rbox Date: Sat, 22 Nov 2014 20:59:45 -0700 Subject: [PATCH 0793/1096] repopick: handle variant hal branching Change-Id: Ib0dee19abc13a7fb8d8e42c09b73c1b4f35ca938 --- tools/repopick.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tools/repopick.py b/tools/repopick.py index 2600bde49a2..13be69095f1 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -264,6 +264,7 @@ def is_pathA_subdir_of_pathB(pathA, pathB): # Extract information from the JSON response date_fluff = '.000000000' project_name = data['project'] + project_branch = data['branch'] change_number = data['_number'] status = data['status'] current_revision = data['revisions'][data['current_revision']] @@ -290,6 +291,27 @@ def is_pathA_subdir_of_pathB(pathA, pathB): # - check that the project path exists if project_name in project_name_to_path: project_path = project_name_to_path[project_name]; + + if project_path.startswith('hardware/qcom/'): + split_path = project_path.split('/') + # split_path[2] might be display or it might be display-caf, trim the -caf + split_path[2] = split_path[2].split('-')[0] + + # Need to treat hardware/qcom/{audio,display,media} specially + if split_path[2] == 'audio' or split_path[2] == 'display' or split_path[2] == 'media': + split_branch = project_branch.split('-') + + # display is extra special + if split_path[2] == 'display' and len(split_path) == 3: + project_path = '/'.join(split_path) + else: + project_path = '/'.join(split_path[:-1]) + + if len(split_branch) == 4 and split_branch[0] == 'cm' and split_branch[2] == 'caf': + project_path += '-caf/msm' + split_branch[3] + # audio and media are different from display + elif split_path[2] == 'audio' or split_path[2] == 'media': + project_path += '/default' elif args.ignore_missing: print('WARNING: Skipping %d since there is no project directory for: %s\n' % (change_number, project_name)) continue; From 173e84c8d1812a24a22257ff3c5c77ee46ac0b33 Mon Sep 17 00:00:00 2001 From: M1cha Date: Tue, 25 Nov 2014 15:30:48 +0100 Subject: [PATCH 0794/1096] releasetools: ota_from_target_files: add FullOTA_PostValidate Change-Id: I152412049f90fd546d4516cc064238c3192be553 --- tools/releasetools/common.py | 5 +++++ tools/releasetools/ota_from_target_files | 2 ++ 2 files changed, 7 insertions(+) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 43b9f5a8f18..7bf0acfc36c 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -869,6 +869,11 @@ def FullOTA_InstallEnd(self): used to install the image for the device's baseband processor.""" return self._DoCall("FullOTA_InstallEnd") + def FullOTA_PostValidate(self): + """Called after installing and validating /system; typically this is + used to resize the system partition after a block based installation.""" + return self._DoCall("FullOTA_PostValidate") + def IncrementalOTA_Assertions(self): """Called after emitting the block of assertions at the top of an incremental OTA package. Implementations can add whatever diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index c6f96a49739..dc98d538b91 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -668,6 +668,8 @@ else if get_stage("%(bcb_dev)s") == "3/3" then if block_based: script.Unmount("/system") + device_specific.FullOTA_PostValidate() + if OPTIONS.backuptool: script.ShowProgress(0.02, 10) if block_based: From 6656fe96a1ba261eb52ec6b6eed73ec7b25ee7e3 Mon Sep 17 00:00:00 2001 From: Brandon Bennett Date: Sat, 19 Nov 2011 16:02:04 -0700 Subject: [PATCH 0795/1096] Add ext2, ext3, and vfat to releasetools Support some non-standard partition that may be found in recovery.fstab Conflicts: tools/releasetools/common.py Change-Id: I0026a1d3ae5d432db10150d1a15f7bc8e7a6054b --- tools/releasetools/common.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 7bf0acfc36c..6b594973965 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -1137,7 +1137,10 @@ def _CheckFirstBlock(self, script): # map recovery.fstab's fs_types to mount/format "partition types" PARTITION_TYPES = { "yaffs2": "MTD", "mtd": "MTD", "ext4": "EMMC", "emmc": "EMMC", - "f2fs": "EMMC" } + "f2fs": "EMMC", + "ext2": "EMMC", + "ext3": "EMMC", + "vfat": "EMMC" } def GetTypeAndDevice(mount_point, info): fstab = info["fstab"] From 4d590a17921b5ca143f6dff817be4deac52bd526 Mon Sep 17 00:00:00 2001 From: Cristoforo Cataldo Date: Sun, 30 Nov 2014 02:06:42 +0100 Subject: [PATCH 0796/1096] core: Enable -mcpu=cortex-a8 flag for Scorpion cpu variant To be used with http://review.cyanogenmod.org/#/c/77758/ Change-Id: I7ecc4707fa45bd7098165615c0521a12c85fb087 --- core/combo/arch/arm/armv7-a-neon.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk index a7185f013e0..7922fc69d1f 100644 --- a/core/combo/arch/arm/armv7-a-neon.mk +++ b/core/combo/arch/arm/armv7-a-neon.mk @@ -9,7 +9,7 @@ ARCH_ARM_HAVE_NEON := true ifneq (,$(filter cortex-a15 denver,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) arch_variant_cflags := -mcpu=cortex-a15 else -ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a8) +ifneq (,$(filter cortex-a8 scorpion,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) arch_variant_cflags := -mcpu=cortex-a8 else ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a7) From 03f58be07a436e891567815deea45a3b5cf7adfc Mon Sep 17 00:00:00 2001 From: invisiblek Date: Sat, 29 Nov 2014 11:14:13 -0600 Subject: [PATCH 0797/1096] buildinfo: only set ro.build.product on non-unified devices Change-Id: I5dccba2172dade3dacc55d832a2042fce306b5f5 --- tools/buildinfo.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh index 2d70f6eeb14..d96c589036d 100755 --- a/tools/buildinfo.sh +++ b/tools/buildinfo.sh @@ -43,10 +43,9 @@ fi echo "ro.wifi.channels=$PRODUCT_DEFAULT_WIFI_CHANNELS" echo "ro.board.platform=$TARGET_BOARD_PLATFORM" -echo "# ro.build.product is obsolete; use ro.product.device" -echo "ro.build.product=$TARGET_DEVICE" - if [ "$TARGET_UNIFIED_DEVICE" == "" ] ; then + echo "# ro.build.product is obsolete; use ro.product.device" + echo "ro.build.product=$TARGET_DEVICE" echo "ro.product.model=$PRODUCT_MODEL" echo "ro.product.device=$TARGET_DEVICE" echo "# Do not try to parse description, fingerprint, or thumbprint" From d1e1deb0e0af30f989d569107618b6f7f82062d1 Mon Sep 17 00:00:00 2001 From: Cristoforo Cataldo Date: Sun, 30 Nov 2014 06:12:35 +0100 Subject: [PATCH 0798/1096] core: Enable -mcpu=cortex-a9 flag for Cortex-A9 cpu variant Change-Id: I9294a518bcdc21ccbae72eadd9f3c1a12982d028 --- core/combo/arch/arm/armv7-a-neon.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk index 7922fc69d1f..f72c6ded268 100644 --- a/core/combo/arch/arm/armv7-a-neon.mk +++ b/core/combo/arch/arm/armv7-a-neon.mk @@ -9,6 +9,9 @@ ARCH_ARM_HAVE_NEON := true ifneq (,$(filter cortex-a15 denver,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) arch_variant_cflags := -mcpu=cortex-a15 else +ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a9) + arch_variant_cflags := -mcpu=cortex-a9 +else ifneq (,$(filter cortex-a8 scorpion,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) arch_variant_cflags := -mcpu=cortex-a8 else From 2692af5988801666ef6146f6fb3b07c0835bc920 Mon Sep 17 00:00:00 2001 From: Arne Coucheron Date: Sun, 30 Nov 2014 09:13:15 +0100 Subject: [PATCH 0799/1096] core: armv7-a-neon.mk: Add missing endif Change-Id: Id6f9c952d01d3c980115a52605d9c86038b3b5bd --- core/combo/arch/arm/armv7-a-neon.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk index f72c6ded268..4c25e22e54e 100644 --- a/core/combo/arch/arm/armv7-a-neon.mk +++ b/core/combo/arch/arm/armv7-a-neon.mk @@ -22,6 +22,7 @@ else endif endif endif +endif arch_variant_cflags += \ -mfloat-abi=softfp \ From 9f602fafe5eeb67f3522ef14c5bd1df0fd1474cc Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Sun, 30 Nov 2014 15:09:43 +0000 Subject: [PATCH 0800/1096] otasigcheck: Go back to the key-rewrite check. Using an intermediate file had the at-the-time unintended but good side-effect of making execution failures (absent script, no busybox in recovery, bad selinux setup) pass gracefully. Since this check is intended as a blacklist, blocking the update when only sure that breakage will ensue, that was a nice thing to get. Checking the return code, while cleaner, is making non-key-related failures like those mentioned above abort execution of the script. The key itself isn't even checked, yet we're aborting because of it. So go back to the original behavior: In case we're not sure... pass. To do: This can be cleaned up differently, and to the same effect, by returning an explicit error code from the script and aborting when that error comes up. Change the script to do that and come back here. :) Change-Id: Ic9d7c3128047c25f31e2ef416c9df4d21ca0a1a8 --- tools/releasetools/edify_generator.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index 9cdba5cef47..ac8641cd4fe 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -167,7 +167,9 @@ def ValidateSignatures(self, command): self.script.append('package_extract_file("system/bin/otasigcheck.sh", "/tmp/otasigcheck.sh");') self.script.append('package_extract_file("META-INF/org/cyanogenmod/releasekey", "/tmp/releasekey");') self.script.append('set_metadata("/tmp/otasigcheck.sh", "uid", 0, "gid", 0, "mode", 0755);') - self.script.append('run_program("/tmp/otasigcheck.sh") == "0" || abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') + self.script.append('run_program("/tmp/otasigcheck.sh");') + ## The script changes the key value when it fails, check for "INVALID" + self.script.append('sha1_check(read_file("/tmp/releasekey"),"7241e92725436afc79389d4fc2333a2aa8c20230") && abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') def ShowProgress(self, frac, dur): """Update the progress bar, advancing it over 'frac' over the next From b6c4e15fb792996b7630055c51634f18ab3af4fa Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Mon, 1 Dec 2014 14:48:47 +0000 Subject: [PATCH 0801/1096] Revert "otasigcheck: Go back to the key-rewrite check." sigcheck now returns an explicit abort code This reverts commit bab150d79c7b9b1f233fc3592b69a42f0b38fbd8. Change-Id: I2b5860ea427a4db7e29b55cc632b92c6e2910494 --- tools/releasetools/edify_generator.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index ac8641cd4fe..c1832960af7 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -167,9 +167,8 @@ def ValidateSignatures(self, command): self.script.append('package_extract_file("system/bin/otasigcheck.sh", "/tmp/otasigcheck.sh");') self.script.append('package_extract_file("META-INF/org/cyanogenmod/releasekey", "/tmp/releasekey");') self.script.append('set_metadata("/tmp/otasigcheck.sh", "uid", 0, "gid", 0, "mode", 0755);') - self.script.append('run_program("/tmp/otasigcheck.sh");') - ## The script changes the key value when it fails, check for "INVALID" - self.script.append('sha1_check(read_file("/tmp/releasekey"),"7241e92725436afc79389d4fc2333a2aa8c20230") && abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') + # Exit code 124 == abort. run_program returns raw, so left-shift 8bit + self.script.append('run_program("/tmp/otasigcheck.sh") != "31744" || abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') def ShowProgress(self, frac, dur): """Update the progress bar, advancing it over 'frac' over the next From 7429787f9e8f73deba5e8f08c67cfc22a9549736 Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Tue, 2 Dec 2014 02:01:56 -0500 Subject: [PATCH 0802/1096] Fix ro.build.product not found by ota_from_target_files in some cases After I5dccba2172dade3dacc55d832a2042fce306b5f5 it was possible that if override_prop was set and override_device was not set the script was looking for a prop that did not exist. Change-Id: I444a33de5bcb59f129bdcf631c2a6540c5926545 --- core/Makefile | 3 +++ tools/releasetools/ota_from_target_files | 20 +++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/core/Makefile b/core/Makefile index cb432401e60..66675b06154 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1641,6 +1641,9 @@ endif ifneq ($(TARGET_UNIFIED_DEVICE),) $(INTERNAL_OTA_PACKAGE_TARGET): override_prop := --override_prop=true + ifeq ($(TARGET_OTA_ASSERT_DEVICE),) + $(INTERNAL_OTA_PACKAGE_TARGET): override_device := $(TARGET_DEVICE) + endif endif $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index dc98d538b91..1ca3f2df1c2 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -400,10 +400,7 @@ def AppendAssertions(script, info_dict, oem_dict = None): oem_props = info_dict.get("oem_fingerprint_properties") if oem_props is None or len(oem_props) == 0: if OPTIONS.override_device == "auto": - if OPTIONS.override_prop: - device = GetBuildProp("ro.build.product", info_dict) - else: - device = GetBuildProp("ro.product.device", info_dict) + device = GetBuildProp("ro.product.device", info_dict) else: device = OPTIONS.override_device script.AssertDevice(device) @@ -1135,11 +1132,16 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip): script.Mount("/oem", recovery_mount_options) oem_dict = common.LoadDictionaryFromLines(open(OPTIONS.oem_source).readlines()) - metadata = {"pre-device": GetOemProperty("ro.product.device", oem_props, oem_dict, - OPTIONS.source_info_dict), - "post-timestamp": GetBuildProp("ro.build.date.utc", - OPTIONS.target_info_dict), - } + if OPTIONS.override_prop: + metadata = {"post-timestamp": GetBuildProp("ro.build.date.utc", + OPTIONS.target_info_dict), + } + else: + metadata = {"pre-device": GetOemProperty("ro.product.device", oem_props, oem_dict, + OPTIONS.source_info_dict), + "post-timestamp": GetBuildProp("ro.build.date.utc", + OPTIONS.target_info_dict), + } device_specific = common.DeviceSpecificParams( source_zip=source_zip, From 82fa233ce1af307871af3204a8b5ea06c5b7bcda Mon Sep 17 00:00:00 2001 From: Alvin Francis Date: Mon, 1 Dec 2014 13:13:40 -0400 Subject: [PATCH 0803/1096] Fix libelf path Fixes kernel build Change-Id: Ic6cdb1734d7b865491e8e61403d32db4acafe514 Signed-off-by: Alvin Francis --- core/tasks/kernel.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index b0ab1def9c0..e6be63a41d8 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -147,7 +147,7 @@ ifeq ($(TARGET_ARCH),arm) endif ifeq ($(HOST_OS),darwin) - MAKE_FLAGS := C_INCLUDE_PATH=$(ANDROID_BUILD_TOP)/external/elfutils/libelf + MAKE_FLAGS := C_INCLUDE_PATH=$(ANDROID_BUILD_TOP)/external/elfutils/0.153/libelf/ endif ifeq ($(TARGET_KERNEL_MODULES),) From f05bc8a8cb86d18b81d25eaf027bfb1b59c78443 Mon Sep 17 00:00:00 2001 From: Andy Mast Date: Thu, 6 Feb 2014 14:25:44 -0800 Subject: [PATCH 0804/1096] New Theme Engine [4/6] Adds aapt for on device compiling of theme assets Change-Id: I2f9f4b3e27ddf32b339694f9c6d3b75a12b700d9 --- target/product/core_minimal.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk index 4c08cb027b3..d735f946765 100644 --- a/target/product/core_minimal.mk +++ b/target/product/core_minimal.mk @@ -23,6 +23,7 @@ PRODUCT_DEVICE := generic PRODUCT_NAME := core PRODUCT_PACKAGES += \ + aapt \ BackupRestoreConfirmation \ DownloadProvider \ HTMLViewer \ From d3f90455c06b63bb20cdccea58a9bb62b177e8fe Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sun, 7 Dec 2014 16:42:28 -0800 Subject: [PATCH 0805/1096] build: Parse TARGET_COPY_FILES_OVERRIDES late in the setup Change-Id: Ie3e4a168ff224e3b65e4627c0757e8813a02167f --- core/config.mk | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/config.mk b/core/config.mk index 7c7eaec3451..8ddce857696 100644 --- a/core/config.mk +++ b/core/config.mk @@ -625,6 +625,17 @@ RS_PREBUILT_COMPILER_RT := prebuilts/sdk/renderscript/lib/$(TARGET_ARCH)/libcomp # Rules for QCOM targets include $(BUILD_SYSTEM)/qcom_target.mk +# We might want to skip items listed in PRODUCT_COPY_FILES based on +# various target flags. This is useful for replacing a binary module with one +# built from source. This should be a list of destination files under $OUT +# +TARGET_COPY_FILES_OVERRIDES := \ + $(addprefix %:, $(strip $(TARGET_COPY_FILES_OVERRIDES))) + +ifneq ($(TARGET_COPY_FILES_OVERRIDES),) + PRODUCT_COPY_FILES := $(filter-out $(TARGET_COPY_FILES_OVERRIDES), $(PRODUCT_COPY_FILES)) +endif + ifneq ($(CM_BUILD),) ## We need to be sure the global selinux policies are included ## last, to avoid accidental resetting by device configs From bc153fa548adff5256497e6a4de3599e2361817a Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Tue, 9 Dec 2014 07:28:17 +0100 Subject: [PATCH 0806/1096] build: Fix QCOM_BSP_LEGACY cflags Change-Id: I880f32892d9e082e3ba92878414f3cb3c6f08066 --- core/qcom_target.mk | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index f057337dcf6..feaf9655eae 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -5,7 +5,6 @@ define qcom-set-path-variant $(call project-set-path-variant,qcom-$(2),TARGET_QCOM_$(1)_VARIANT,hardware/qcom/$(2)) endef -# Enable DirectTrack on QCOM legacy boards ifeq ($(BOARD_USES_QCOM_HARDWARE),true) TARGET_GLOBAL_CFLAGS += -DQCOM_HARDWARE @@ -23,9 +22,8 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) TARGET_GLOBAL_CFLAGS += -DQCOM_DIRECTTRACK TARGET_GLOBAL_CPPFLAGS += -DQCOM_DIRECTTRACK endif - # Enable legacy graphics functions - LOCAL_GLOBAL_CFLAGS += -DQCOM_BSP_LEGACY - LOCAL_GLOBAL_CPPFLAGS += -DQCOM_BSP_LEGACY + # Enable legacy graphics functions + TARGET_USES_QCOM_BSP_LEGACY := true endif $(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) From 13a2d1abce333a0e2489539896b464974da8a060 Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Sun, 14 Dec 2014 01:47:02 -0500 Subject: [PATCH 0807/1096] Fix QCOM_BSP_LEGACY Checks in the Android.mk files do not enable the cflags for .h files, causing a build that crashes constantly. Change-Id: I315c760488445629fda860ba70066417c7d68b8b --- core/qcom_target.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index feaf9655eae..17147e5f14f 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -24,6 +24,8 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) endif # Enable legacy graphics functions TARGET_USES_QCOM_BSP_LEGACY := true + TARGET_GLOBAL_CFLAGS += -DQCOM_BSP_LEGACY + TARGET_GLOBAL_CPPFLAGS += -DQCOM_BSP_LEGACY endif $(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) From 2f6f4518fcc70f484f19e922c5a6d4cda8e6b228 Mon Sep 17 00:00:00 2001 From: Ethan Chen Date: Mon, 15 Dec 2014 18:44:31 -0800 Subject: [PATCH 0808/1096] build: Clean up QCOM flag definitions Change-Id: I66bca2db83260ccd65b82e540ee9f7961f00b030 --- core/qcom_target.mk | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 17147e5f14f..c715687f8da 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -7,27 +7,25 @@ endef ifeq ($(BOARD_USES_QCOM_HARDWARE),true) - TARGET_GLOBAL_CFLAGS += -DQCOM_HARDWARE - TARGET_GLOBAL_CPPFLAGS += -DQCOM_HARDWARE + qcom_flags := -DQCOM_HARDWARE + qcom_flags += -DQCOM_BSP TARGET_USES_QCOM_BSP := true - TARGET_GLOBAL_CFLAGS += -DQCOM_BSP - TARGET_GLOBAL_CPPFLAGS += -DQCOM_BSP - TARGET_ENABLE_QC_AV_ENHANCEMENTS := true # Enable DirectTrack for legacy targets ifneq ($(filter msm7x30 msm8660 msm8960,$(TARGET_BOARD_PLATFORM)),) - ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true) - TARGET_GLOBAL_CFLAGS += -DQCOM_DIRECTTRACK - TARGET_GLOBAL_CPPFLAGS += -DQCOM_DIRECTTRACK - endif + ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true) + qcom_flags += -DQCOM_DIRECTTRACK + endif # Enable legacy graphics functions TARGET_USES_QCOM_BSP_LEGACY := true - TARGET_GLOBAL_CFLAGS += -DQCOM_BSP_LEGACY - TARGET_GLOBAL_CPPFLAGS += -DQCOM_BSP_LEGACY + qcom_flags += -DQCOM_BSP_LEGACY endif + TARGET_GLOBAL_CFLAGS += $(qcom_flags) + TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) + $(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,CAMERA,camera) $(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PLATFORM)) From 01b8efaa12e9a6a8e231a5e2d0637f8c4bccc35a Mon Sep 17 00:00:00 2001 From: Ethan Chen Date: Mon, 15 Dec 2014 18:45:19 -0800 Subject: [PATCH 0809/1096] build: Add QCOM flags to Clang CFLAGS Change-Id: I56f0d4106f5d3d27c1ace744d30c1c81f0052bbd --- core/qcom_target.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index c715687f8da..950375dc962 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -25,6 +25,8 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) TARGET_GLOBAL_CFLAGS += $(qcom_flags) TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) + CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) + CLANG_TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) $(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,CAMERA,camera) From 37a352e3439f29cc0336a5075e3153767886b031 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Tue, 16 Dec 2014 16:31:38 +0200 Subject: [PATCH 0810/1096] build: Remove unused qcom CFLAG Change-Id: I6ead3e57899bcb007d4d284901f918a65a9e6926 --- core/qcom_target.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 950375dc962..5c5635738e8 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -19,7 +19,6 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) qcom_flags += -DQCOM_DIRECTTRACK endif # Enable legacy graphics functions - TARGET_USES_QCOM_BSP_LEGACY := true qcom_flags += -DQCOM_BSP_LEGACY endif From 158c833f07765b00eab059211f8780b546c57912 Mon Sep 17 00:00:00 2001 From: Ian Roy Date: Wed, 10 Dec 2014 18:53:46 -0500 Subject: [PATCH 0811/1096] Allow repopick to cherry-pick a specific patch set Use 'repopick 123456/9' where '123456' is the change number and '9' is the desired patchset. Change-Id: I2d9f6939fbde50b2a6057b75d2e7f722be5a3e21 --- tools/repopick.py | 53 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index 13be69095f1..3dbe751f46c 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2013 The CyanogenMod Project +# Copyright (C) 2013-14 The CyanogenMod Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -55,7 +55,7 @@ The --abandon-first argument, when used in conjuction with the --start-branch option, will cause repopick to abandon the specified branch in all repos first before performing any cherry picks.''')) -parser.add_argument('change_number', nargs='*', help='change number to cherry pick') +parser.add_argument('change_number', nargs='*', help='change number to cherry pick. Use {change number}/{patchset number} to get a specific revision.') parser.add_argument('-i', '--ignore-missing', action='store_true', help='do not error out if a patch applies to a missing directory') parser.add_argument('-s', '--start-branch', nargs=1, help='start the specified branch before cherry picking') parser.add_argument('-a', '--abandon-first', action='store_true', help='before cherry picking, abandon the branch specified in --start-branch') @@ -227,16 +227,32 @@ def is_pathA_subdir_of_pathB(pathA, pathB): args.change_number = changelist # Iterate through the requested change numbers -for change in args.change_number: +for changeps in args.change_number: + + if '/' in changeps: + change = changeps.split('/')[0] + patchset = changeps.split('/')[1] + else: + change = changeps + patchset = '' + if not args.quiet: - print('Applying change number %s ...' % change) + if len(patchset) == 0: + print('Applying change number %s ...' % change) + else: + print('Applying change number {change}/{patchset} ...'.format(change=change, patchset=patchset)) + + if len(patchset) == 0: + query_revision = 'CURRENT_REVISION' + else: + query_revision = 'ALL_REVISIONS' # Fetch information about the change from Gerrit's REST API # # gerrit returns two lines, a magic string and then valid JSON: # )]}' # [ ... valid JSON ... ] - url = 'http://review.cyanogenmod.org/changes/?q=%s&o=CURRENT_REVISION&o=CURRENT_COMMIT&pp=0' % change + url = 'http://review.cyanogenmod.org/changes/?q={change}&o={query_revision}&o=CURRENT_COMMIT&pp=0'.format(change=change, query_revision=query_revision) if args.verbose: print('Fetching from: %s\n' % url) f = urllib.request.urlopen(url) @@ -267,10 +283,31 @@ def is_pathA_subdir_of_pathB(pathA, pathB): project_branch = data['branch'] change_number = data['_number'] status = data['status'] + patchsetfound = False + + if len(patchset) > 0: + try: + for revision in data['revisions']: + if (int(data['revisions'][revision]['_number']) == int(patchset)) and not patchsetfound: + target_revision = data['revisions'][revision] + if args.verbose: + print('Using found patch set {patchset} ...'.format(patchset=patchset)) + patchsetfound = True + break + if not patchsetfound: + print('ERROR: The patch set could not be found, using CURRENT_REVISION instead.') + except: + print('ERROR: The patch set could not be found, using CURRENT_REVISION instead.') + patchsetfound = False + + if not patchsetfound: + target_revision = data['revisions'][data['current_revision']] + current_revision = data['revisions'][data['current_revision']] - patch_number = current_revision['_number'] - fetch_url = current_revision['fetch']['anonymous http']['url'] - fetch_ref = current_revision['fetch']['anonymous http']['ref'] + + patch_number = target_revision['_number'] + fetch_url = target_revision['fetch']['anonymous http']['url'] + fetch_ref = target_revision['fetch']['anonymous http']['ref'] author_name = current_revision['commit']['author']['name'] author_email = current_revision['commit']['author']['email'] author_date = current_revision['commit']['author']['date'].replace(date_fluff, '') From 48b3f8e4109853793e4727a6a730ce08ffbf6ac1 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Tue, 16 Dec 2014 18:22:55 +0530 Subject: [PATCH 0812/1096] Improve cmremote Change-Id: I7e1f87ed92cddcf8df3ea4fd701f56a9ef806add --- envsetup.sh | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 83711d94845..7db5aef03d9 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1793,21 +1793,13 @@ function godir () { function cmremote() { git remote rm cmremote 2> /dev/null - if [ ! -d .git ] - then - echo .git directory not found. Please run this from the root directory of the Android repository you wish to set up. - fi - GERRIT_REMOTE=$(cat .git/config | grep git://github.com | awk '{ print $NF }' | sed s#git://github.com/##g) + GERRIT_REMOTE=$(git config --get remote.github.projectname) if [ -z "$GERRIT_REMOTE" ] then - GERRIT_REMOTE=$(cat .git/config | grep http://github.com | awk '{ print $NF }' | sed s#http://github.com/##g) - if [ -z "$GERRIT_REMOTE" ] - then - echo Unable to set up the git remote, are you in the root of the repo? - return 0 - fi + echo Unable to set up the git remote, are you under a git repo? + return 0 fi - CMUSER=`git config --get review.review.cyanogenmod.org.username` + CMUSER=$(git config --get review.review.cyanogenmod.org.username) if [ -z "$CMUSER" ] then git remote add cmremote ssh://review.cyanogenmod.org:29418/$GERRIT_REMOTE From 7900d1651da7a412b468cc8384b872aec11fc5bc Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Thu, 18 Dec 2014 11:26:37 -0600 Subject: [PATCH 0813/1096] releasetools: allow devices to specify a custom make_recovery_patch Change-Id: I891660c1bf919b369afd4ff496fb6bab85dffe3f --- core/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/Makefile b/core/Makefile index 66675b06154..1e95f6ba811 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1575,7 +1575,11 @@ ifdef BUILD_NO $(hide) echo "build_number=$(BUILD_NO)" >> $(zip_root)/META/misc_info.txt endif $(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt) +ifeq ($(TARGET_RELEASETOOL_MAKE_RECOVERY_PATCH_SCRIPT),) $(hide) ./build/tools/releasetools/make_recovery_patch $(zip_root) $(zip_root) +else + $(hide) $(TARGET_RELEASETOOL_MAKE_RECOVERY_PATCH_SCRIPT) $(zip_root) $(zip_root) +endif ifdef PRODUCT_DEFAULT_DEV_CERTIFICATE $(hide) build/tools/getb64key.py $(PRODUCT_DEFAULT_DEV_CERTIFICATE).x509.pem > $(zip_root)/META/releasekey.txt else From 3bd97ac27001dca966bd034ceb05904fc2825963 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Thu, 18 Dec 2014 20:24:00 -0600 Subject: [PATCH 0814/1096] recovery: set 18x32 on 560dpi as well * this is the setting for shamu, it should be comparable to xxhdpi Change-Id: I4d4b0405b6fcb3493dc5da0a712ce54f83d9ab6f --- core/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 1e95f6ba811..4bdf1ac8628 100644 --- a/core/Makefile +++ b/core/Makefile @@ -818,7 +818,7 @@ endif # can be overridden for a particular device by putting a font.png in # its private recovery resources. -ifneq (,$(filter xxxhdpi xxhdpi xhdpi,$(recovery_density))) +ifneq (,$(filter 560dpi xxxhdpi xxhdpi xhdpi,$(recovery_density))) recovery_font := $(call project-path-for,recovery)/fonts/18x32.png else recovery_font := $(call project-path-for,recovery)/fonts/12x22.png From 45c1431c038f12da38b346cd4e67b89911801773 Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Fri, 31 Oct 2014 21:02:37 -0500 Subject: [PATCH 0815/1096] roomservice: Improve new device retrieval Without credentials, GitHub's search API limits requests to 60/hr. The existing method to add a new device is to fetch JSON-formatted info for ALL CM repositories and then search for the device. In doing so, more than 10 pages of results are returned (i.e. more than 10 requests per device). This is clumsy, slow, and limits use of roomservice to only ~5 devices per hour. Instead, only return search results for repositories that have the device name in the repository name. Then, one device = one request. It's faster and allows closer to 60 device setups / hr. Additional bailouts are included to stop the script earlier than later if a device is not found. Change-Id: I7f914d7ede82da0f100d9fd6cf8b603177962e48 --- tools/roomservice.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/tools/roomservice.py b/tools/roomservice.py index 4ec9afa8eec..cca7c997044 100755 --- a/tools/roomservice.py +++ b/tools/roomservice.py @@ -69,16 +69,20 @@ def add_auth(githubreq): if githubauth: githubreq.add_header("Authorization","Basic %s" % githubauth) -page = 1 -while not depsonly: - githubreq = urllib.request.Request("https://api.github.com/users/CyanogenMod/repos?per_page=200&page=%d" % page) +if not depsonly: + githubreq = urllib.request.Request("https://api.github.com/search/repositories?q=%s+user:CyanogenMod+in:name" % device) add_auth(githubreq) result = json.loads(urllib.request.urlopen(githubreq).read().decode()) - if len(result) == 0: - break - for res in result: + try: + numresults = int(result['total_count']) + except: + print("Failed to search GitHub (offline?)") + sys.exit() + if (numresults == 0): + print("Could not find device %s on github.com/CyanogenMod" % device) + sys.exit() + for res in result['items']: repositories.append(res) - page = page + 1 local_manifests = r'.repo/local_manifests' if not os.path.exists(local_manifests): os.makedirs(local_manifests) From f91e377ae0374ee90476d0251711a5733e3a2e83 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Mon, 22 Dec 2014 20:11:47 +0700 Subject: [PATCH 0816/1096] build: fix dopush for SystemUI The path for SystemUI has changed in Lollipop Change-Id: Ib2126f48f6769e5f91d0aa1d44d4049bdbe1deff --- envsetup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 7db5aef03d9..5e3aa8478b5 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2344,7 +2344,7 @@ EOF fi adb shell restorecon "$TARGET" ;; - /system/priv-app/SystemUI.apk|/system/framework/*) + /system/priv-app/SystemUI/SystemUI.apk|/system/framework/*) # Only need to stop services once if ! $stop_n_start; then adb shell stop From c2cd6e7198f2198b50ae53e9aef2106ec7b30a84 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Fri, 28 Sep 2012 11:56:02 +0530 Subject: [PATCH 0817/1096] envsetup: new function cmka - The build system adds a clean- target for each module / package. - This utilizes that and cleans and builds using mka. - If no argument is supplied, it runs "mka clean". - If argument is (bacon|otapackage|systemimage), it runs installclean. Change-Id: I582ac2f92df3278c41c254c73e9c02ad7f406851 (cherry picked from commit eb74c2f2b9bb708e77edfdbb8ba0d0b716fef2fc) (Also sneak in another minor change, a help entry for mkap) --- envsetup.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index 5e3aa8478b5..cd42d4fe09a 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -25,6 +25,8 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - aospremote: Add git remote for matching AOSP repository - cafremote: Add git remote for matching CodeAurora repository. - mka: Builds using SCHED_BATCH on all processors +- mkap: Builds the module(s) using mka and pushes them to the device. +- cmka: Cleans and builds using mka. - reposync: Parallel repo sync using ionice and SCHED_BATCH - repopick: Utility to fetch changes from Gerrit. - installboot: Installs a boot.img to the connected device. @@ -2233,6 +2235,26 @@ function mka() { esac } +function cmka() { + if [ ! -z "$1" ]; then + for i in "$@"; do + case $i in + bacon|otapackage|systemimage) + mka installclean + mka $i + ;; + *) + mka clean-$i + mka $i + ;; + esac + done + else + mka clean + mka + fi +} + function reposync() { case `uname -s` in Darwin) From f74aba0bee3db640e685289d905ae670da0236a3 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Sun, 21 Dec 2014 23:18:16 -0600 Subject: [PATCH 0818/1096] releasetools: clean up residual targetfiles-* dirs in /tmp/ Change-Id: I3792307663f8a85513e102c8bf3d78cf4e514760 --- tools/releasetools/common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 6b594973965..d182910031c 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -427,6 +427,7 @@ def UnzipTemp(filename, pattern=None): OPTIONS.tempfiles.append(tmp) def unzip_to_dir(filename, dirname): + cmd = ["rm", "-rf", dirname + filename, "targetfiles-*"] cmd = ["unzip", "-o", "-q", filename, "-d", dirname] if pattern is not None: cmd.append(pattern) From 7a718c9b5f8a4fdd08cfb5eb1ed16138ad981c7c Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Wed, 24 Dec 2014 21:58:01 -0800 Subject: [PATCH 0819/1096] build: Set QCOM global cflags for secondary arch Change-Id: I637d94f9b0ddee2c8d6057de44355e482163dd36 --- core/qcom_target.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 5c5635738e8..521dc1c803f 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -27,6 +27,12 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) CLANG_TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) + # Multiarch needs these too.. + 2ND_TARGET_GLOBAL_CFLAGS += $(qcom_flags) + 2ND_TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) + 2ND_CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) + 2ND_CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) + $(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,CAMERA,camera) $(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PLATFORM)) From 8532bf1b9a457119da353fe3f631a0d9e4aa7073 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 26 Dec 2014 00:20:55 -0800 Subject: [PATCH 0820/1096] build: Fix copypasta in 2nd target clang flags Change-Id: Ieedce8754b145e53d72a5d6a4b41fbe5cdf6473f --- core/qcom_target.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 521dc1c803f..68f33275197 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -31,7 +31,7 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 2ND_TARGET_GLOBAL_CFLAGS += $(qcom_flags) 2ND_TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) 2ND_CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) - 2ND_CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) + 2ND_CLANG_TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) $(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,CAMERA,camera) From ce749b1b2b7aa17d6e7f70ea2a97eb9164558b8e Mon Sep 17 00:00:00 2001 From: Ameya Thakur Date: Mon, 29 Jul 2013 17:39:37 -0700 Subject: [PATCH 0821/1096] build: Add changes to release tools and mkbootimg Change the prototype of LoadRecoveryFstab to take in the device type as a argument. Fix the case where mkbootimg was being passed a incorrect argument. Change-Id: Ic6ac596d8d96d3a5effbdf513763ec1cb92b1a03 --- core/Makefile | 7 +++++++ tools/releasetools/common.py | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index 4bdf1ac8628..6fcc759c625 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1459,6 +1459,9 @@ ifdef INSTALLED_2NDBOOTLOADER_TARGET $(hide) $(ACP) \ $(INSTALLED_2NDBOOTLOADER_TARGET) $(zip_root)/RECOVERY/second endif +ifdef BOARD_KERNEL_TAGS_OFFSET + $(hide) echo "$(BOARD_KERNEL_TAGS_OFFSET)" > $(zip_root)/RECOVERY/tags_offset +endif ifdef BOARD_KERNEL_CMDLINE $(hide) echo "$(BOARD_KERNEL_CMDLINE)" > $(zip_root)/RECOVERY/cmdline endif @@ -1488,6 +1491,10 @@ ifdef INSTALLED_2NDBOOTLOADER_TARGET $(hide) $(ACP) \ $(INSTALLED_2NDBOOTLOADER_TARGET) $(zip_root)/BOOT/second endif + +ifdef BOARD_KERNEL_TAGS_OFFSET + $(hide) echo "$(BOARD_KERNEL_TAGS_OFFSET)" > $(zip_root)/BOOT/tags_offset +endif ifdef BOARD_KERNEL_CMDLINE $(hide) echo "$(BOARD_KERNEL_CMDLINE)" > $(zip_root)/BOOT/cmdline endif diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index d182910031c..ea786336422 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -143,6 +143,8 @@ def read_helper(fn): if "fstab_version" not in d: d["fstab_version"] = "1" + if "device_type" not in d: + d["device_type"] = "MMC" try: data = read_helper("META/imagesizes.txt") for line in data.split("\n"): @@ -170,7 +172,7 @@ def makeint(key): makeint("boot_size") makeint("fstab_version") - d["fstab"] = LoadRecoveryFSTab(read_helper, d["fstab_version"]) + d["fstab"] = LoadRecoveryFSTab(read_helper, d["fstab_version"], d["device_type"]) d["build.prop"] = LoadBuildProp(read_helper) return d @@ -192,7 +194,7 @@ def LoadDictionaryFromLines(lines): d[name] = value return d -def LoadRecoveryFSTab(read_helper, fstab_version): +def LoadRecoveryFSTab(read_helper, fstab_version, type): class Partition(object): pass @@ -343,6 +345,11 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): cmd.append("--tags-addr") cmd.append(open(fn).read().rstrip("\n")) + fn = os.path.join(sourcedir, "tags_offset") + if os.access(fn, os.F_OK): + cmd.append("--tags_offset") + cmd.append(open(fn).read().rstrip("\n")) + fn = os.path.join(sourcedir, "ramdisk_offset") if os.access(fn, os.F_OK): cmd.append("--ramdisk_offset") From 2764d0d3d15acf7e07d866c1d476eb1ccbd5fbcf Mon Sep 17 00:00:00 2001 From: Clark Scheff Date: Tue, 23 Dec 2014 13:30:51 -0800 Subject: [PATCH 0822/1096] Add ddclient function for debugging with DDD While debugging via the CLI is great, it is nice to have the option to debug using a graphical front end. This patch adds a function for using ddd to debug native code. Simply replace gdbclient with dddclient and start debugging. Change-Id: I3d3afe08772007b11ad6e0f839868e85386340f1 Note: Requires that ddd be installed on the host PC. --- envsetup.sh | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index cd42d4fe09a..23174162aea 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1461,6 +1461,107 @@ function gdbclient_old() } +function dddclient() +{ + local OUT_ROOT=$(get_abs_build_var PRODUCT_OUT) + local OUT_SYMBOLS=$(get_abs_build_var TARGET_OUT_UNSTRIPPED) + local OUT_SO_SYMBOLS=$(get_abs_build_var TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED) + local OUT_VENDOR_SO_SYMBOLS=$(get_abs_build_var TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED) + local OUT_EXE_SYMBOLS=$(get_symbols_directory) + local PREBUILTS=$(get_abs_build_var ANDROID_PREBUILTS) + local ARCH=$(get_build_var TARGET_ARCH) + local GDB + case "$ARCH" in + arm) GDB=arm-linux-androideabi-gdb;; + arm64) GDB=arm-linux-androideabi-gdb; GDB64=aarch64-linux-android-gdb;; + mips|mips64) GDB=mips64el-linux-android-gdb;; + x86) GDB=x86_64-linux-android-gdb;; + x86_64) GDB=x86_64-linux-android-gdb;; + *) echo "Unknown arch $ARCH"; return 1;; + esac + + if [ "$OUT_ROOT" -a "$PREBUILTS" ]; then + local EXE="$1" + if [ "$EXE" ] ; then + EXE=$1 + if [[ $EXE =~ ^[^/].* ]] ; then + EXE="system/bin/"$EXE + fi + else + EXE="app_process" + fi + + local PORT="$2" + if [ "$PORT" ] ; then + PORT=$2 + else + PORT=":5039" + fi + + local PID="$3" + if [ "$PID" ] ; then + if [[ ! "$PID" =~ ^[0-9]+$ ]] ; then + PID=`pid $3` + if [[ ! "$PID" =~ ^[0-9]+$ ]] ; then + # that likely didn't work because of returning multiple processes + # try again, filtering by root processes (don't contain colon) + PID=`adb shell ps | \grep $3 | \grep -v ":" | awk '{print $2}'` + if [[ ! "$PID" =~ ^[0-9]+$ ]] + then + echo "Couldn't resolve '$3' to single PID" + return 1 + else + echo "" + echo "WARNING: multiple processes matching '$3' observed, using root process" + echo "" + fi + fi + fi + adb forward "tcp$PORT" "tcp$PORT" + local USE64BIT="$(is64bit $PID)" + adb shell gdbserver$USE64BIT $PORT --attach $PID & + sleep 2 + else + echo "" + echo "If you haven't done so already, do this first on the device:" + echo " gdbserver $PORT /system/bin/$EXE" + echo " or" + echo " gdbserver $PORT --attach " + echo "" + fi + + OUT_SO_SYMBOLS=$OUT_SO_SYMBOLS$USE64BIT + OUT_VENDOR_SO_SYMBOLS=$OUT_VENDOR_SO_SYMBOLS$USE64BIT + + echo >|"$OUT_ROOT/gdbclient.cmds" "set solib-absolute-prefix $OUT_SYMBOLS" + echo >>"$OUT_ROOT/gdbclient.cmds" "set solib-search-path $OUT_SO_SYMBOLS:$OUT_SO_SYMBOLS/hw:$OUT_SO_SYMBOLS/ssl/engines:$OUT_SO_SYMBOLS/drm:$OUT_SO_SYMBOLS/egl:$OUT_SO_SYMBOLS/soundfx:$OUT_VENDOR_SO_SYMBOLS:$OUT_VENDOR_SO_SYMBOLS/hw:$OUT_VENDOR_SO_SYMBOLS/egl" + echo >>"$OUT_ROOT/gdbclient.cmds" "source $ANDROID_BUILD_TOP/development/scripts/gdb/dalvik.gdb" + echo >>"$OUT_ROOT/gdbclient.cmds" "target remote $PORT" + # Enable special debugging for ART processes. + if [[ $EXE =~ (^|/)(app_process|dalvikvm)(|32|64)$ ]]; then + echo >> "$OUT_ROOT/gdbclient.cmds" "art-on" + fi + echo >>"$OUT_ROOT/gdbclient.cmds" "" + + local WHICH_GDB= + # 64-bit exe found + if [ "$USE64BIT" != "" ] ; then + WHICH_GDB=$ANDROID_TOOLCHAIN/$GDB64 + # 32-bit exe / 32-bit platform + elif [ "$(get_build_var TARGET_2ND_ARCH)" = "" ]; then + WHICH_GDB=$ANDROID_TOOLCHAIN/$GDB + # 32-bit exe / 64-bit platform + else + WHICH_GDB=$ANDROID_TOOLCHAIN_2ND_ARCH/$GDB + fi + + ddd --debugger $WHICH_GDB -x "$OUT_ROOT/gdbclient.cmds" "$OUT_EXE_SYMBOLS/$EXE" + else + echo "Unable to determine build system output dir." + fi +} + + case `uname -s` in Darwin) function sgrep() From 727e80a0decca5f3d33345bd328bf27a1292ad5d Mon Sep 17 00:00:00 2001 From: Ethan Chen Date: Fri, 21 Nov 2014 11:51:03 -0800 Subject: [PATCH 0823/1096] build: Allow devices to specify a RIL variant Change-Id: Ia5d35d916be358fb7be7ead6bd05cc3628b35a37 --- core/qcom_target.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 68f33275197..1e2066a3b63 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -4,6 +4,9 @@ define qcom-set-path-variant $(call project-set-path-variant,qcom-$(2),TARGET_QCOM_$(1)_VARIANT,hardware/qcom/$(2)) endef +define ril-set-path-variant +$(call project-set-path-variant,ril,TARGET_RIL_VARIANT,hardware/$(1)) +endef ifeq ($(BOARD_USES_QCOM_HARDWARE),true) @@ -39,6 +42,7 @@ $(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PL $(call qcom-set-path-variant,GPS,gps) $(call project-set-path,qcom-media,hardware/qcom/media-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,SENSORS,sensors) +$(call ril-set-path-variant,ril) else $(call project-set-path,qcom-audio,hardware/qcom/audio/default) $(call qcom-set-path-variant,CAMERA,camera) @@ -46,4 +50,5 @@ $(call project-set-path,qcom-display,hardware/qcom/display/$(TARGET_BOARD_PLATFO $(call qcom-set-path-variant,GPS,gps) $(call project-set-path,qcom-media,hardware/qcom/media/default) $(call qcom-set-path-variant,SENSORS,sensors) +$(call ril-set-path-variant,ril) endif From 177e46a84391c60e22411e0f0f07c050a711aeb0 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sun, 28 Dec 2014 02:53:03 -0800 Subject: [PATCH 0824/1096] core: Get the RIL variant path into the global includes * Need to have this in the global path, so shuffle things around a little. Change-Id: I2dd2b378d17ff3fa0e379793df31d68964d87278 --- core/config.mk | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/core/config.mk b/core/config.mk index 8ddce857696..f6d9ddca5ec 100644 --- a/core/config.mk +++ b/core/config.mk @@ -40,7 +40,6 @@ SRC_HEADERS := \ $(TOPDIR)system/core/include \ $(TOPDIR)hardware/libhardware/include \ $(TOPDIR)hardware/libhardware_legacy/include \ - $(TOPDIR)hardware/ril/include \ $(TOPDIR)libnativehelper/include \ $(TOPDIR)frameworks/native/include \ $(TOPDIR)frameworks/native/opengl/include \ @@ -486,10 +485,12 @@ else DEFAULT_SYSTEM_DEV_CERTIFICATE := build/target/product/security/testkey endif +# Rules for QCOM targets +include $(BUILD_SYSTEM)/qcom_target.mk + # ############################################################### # Set up final options. # ############################################################### - HOST_GLOBAL_CFLAGS += $(COMMON_GLOBAL_CFLAGS) HOST_RELEASE_CFLAGS += $(COMMON_RELEASE_CFLAGS) @@ -506,7 +507,8 @@ HOST_GLOBAL_LD_DIRS += -L$(HOST_OUT_INTERMEDIATE_LIBRARIES) TARGET_GLOBAL_LD_DIRS += -L$(TARGET_OUT_INTERMEDIATE_LIBRARIES) HOST_PROJECT_INCLUDES:= $(SRC_HEADERS) $(SRC_HOST_HEADERS) $(HOST_OUT_HEADERS) -TARGET_PROJECT_INCLUDES:= $(SRC_HEADERS) $(TARGET_OUT_HEADERS) \ +TARGET_PROJECT_INCLUDES:= $(SRC_HEADERS) $(TOPDIR)$(call project-path-for,ril)/include \ + $(TARGET_OUT_HEADERS) \ $(TARGET_DEVICE_KERNEL_HEADERS) $(TARGET_BOARD_KERNEL_HEADERS) \ $(TARGET_PRODUCT_KERNEL_HEADERS) @@ -622,9 +624,6 @@ RS_PREBUILT_CLCORE := prebuilts/sdk/renderscript/lib/$(TARGET_ARCH)/librsrt_$(TA RS_PREBUILT_LIBPATH := -L prebuilts/ndk/8/platforms/android-9/arch-$(TARGET_ARCH)/usr/lib RS_PREBUILT_COMPILER_RT := prebuilts/sdk/renderscript/lib/$(TARGET_ARCH)/libcompiler_rt.a -# Rules for QCOM targets -include $(BUILD_SYSTEM)/qcom_target.mk - # We might want to skip items listed in PRODUCT_COPY_FILES based on # various target flags. This is useful for replacing a binary module with one # built from source. This should be a list of destination files under $OUT From ce959ae875cb2f5e484b1e154092f7b49b6d2c96 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Thu, 9 Jan 2014 22:31:56 +0700 Subject: [PATCH 0825/1096] Keep InCallUI in memory (3/3) Build the dummy InCallUI apk Change-Id: Icb82e8c3b7bedb5deb1e7adc779cd4bd8dbc3b72 --- target/product/telephony.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/product/telephony.mk b/target/product/telephony.mk index da1497d099c..283875cac52 100644 --- a/target/product/telephony.mk +++ b/target/product/telephony.mk @@ -19,6 +19,7 @@ PRODUCT_PACKAGES := \ Dialer \ + InCallUI \ Mms \ rild From fb7d3f572f6028ca39d56e75ec0460548ea1caae Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Fri, 2 Jan 2015 01:55:49 +0000 Subject: [PATCH 0826/1096] build: qcom: Set the correct project path for device-specific cameras Change-Id: I37696dae2c05c4e9f4fc824fbba63af47483ea17 --- core/qcom_target.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 1e2066a3b63..825ddbb1b23 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -37,7 +37,11 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 2ND_CLANG_TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) $(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) +ifeq ($(USE_DEVICE_SPECIFIC_CAMERA),true) +$(call project-set-path,qcom-camera,$(TARGET_DEVICE_DIR)/camera) +else $(call qcom-set-path-variant,CAMERA,camera) +endif $(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,GPS,gps) $(call project-set-path,qcom-media,hardware/qcom/media-caf/$(TARGET_BOARD_PLATFORM)) From d6cdfa7159fe66da63e033d548eeed429e9972ae Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Fri, 2 Jan 2015 00:08:48 -0600 Subject: [PATCH 0827/1096] roomservice: Fix search of devices forked to CM Commit "roomservice: Improve new device retrieval" introduced a regression where repositories that were forked to CM were omitted from search results. This fixes that issue. Change-Id: I7bf54129b5da1749abe5b2b9a492cb93e6ee41a6 --- tools/roomservice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/roomservice.py b/tools/roomservice.py index cca7c997044..3d065efe93f 100755 --- a/tools/roomservice.py +++ b/tools/roomservice.py @@ -70,7 +70,7 @@ def add_auth(githubreq): githubreq.add_header("Authorization","Basic %s" % githubauth) if not depsonly: - githubreq = urllib.request.Request("https://api.github.com/search/repositories?q=%s+user:CyanogenMod+in:name" % device) + githubreq = urllib.request.Request("https://api.github.com/search/repositories?q=%s+user:CyanogenMod+in:name+fork:true" % device) add_auth(githubreq) result = json.loads(urllib.request.urlopen(githubreq).read().decode()) try: From 2c051d925b39ffa99d17e1660120af96f47b6fd7 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Mon, 5 Jan 2015 02:53:51 +0000 Subject: [PATCH 0828/1096] build: Add an option to block non-enforcing builds Prevent accidental build of test configurations. Hopping back and forth between states (especially disabled) leaves a mess in the filesystems, and we want to try to ensure published builds go out enforcing. Change-Id: I2206975968de421dec842f49b02490fa85ca9f3b --- core/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/Makefile b/core/Makefile index 6fcc759c625..d9fab2bb7af 100644 --- a/core/Makefile +++ b/core/Makefile @@ -860,6 +860,11 @@ INTERNAL_RECOVERYIMAGE_ARGS := \ # Assumes this has already been stripped ifdef BOARD_KERNEL_CMDLINE + ifdef BUILD_ENFORCE_SELINUX + ifneq (,$(filter androidboot.selinux=permissive androidboot.selinux=disabled, $(BOARD_KERNEL_CMDLINE))) + $(error "Trying to apply non-default selinux settings. Aborting") + endif + endif INTERNAL_RECOVERYIMAGE_ARGS += --cmdline "$(BOARD_KERNEL_CMDLINE)" endif ifdef BOARD_KERNEL_BASE From 0eab883f1813f2b03556ff8635ca13ddf9751de8 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Thu, 8 Jan 2015 14:36:45 -0800 Subject: [PATCH 0829/1096] releasetools: Store the build.prop file in the OTA zip This file is often used to read information about the update contained in the OTA. Place it in the update so it can be used by scripts. The file is not added to the updater-script, so it will not be placed onto the actual system. Change-Id: I88044796cbe8f199ca02df2840fd944cba2c73fa --- tools/releasetools/ota_from_target_files | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 1ca3f2df1c2..46af7b7fd74 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -705,6 +705,9 @@ endif; script.AddToZip(input_zip, output_zip, input_path=OPTIONS.updater_binary) WriteMetadata(metadata, output_zip) + common.ZipWriteStr(output_zip, "system/build.prop", + ""+input_zip.read("SYSTEM/build.prop")) + common.ZipWriteStr(output_zip, "META-INF/org/cyanogenmod/releasekey", ""+input_zip.read("META/releasekey.txt")) From 028be60f7ff18f05cce8198be2a95776745047c1 Mon Sep 17 00:00:00 2001 From: Chris Sarbora Date: Wed, 17 Dec 2014 14:41:04 -0800 Subject: [PATCH 0830/1096] Allow finer control over how product variables are inherited. Change-Id: I3abc22eea94293d1d0ebf0a81b396ebea0baf5a8 (cherry picked from commit 29357f5ea1dd8507f70efc330b2e5966d13504e8) --- core/product.mk | 63 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 7 deletions(-) diff --git a/core/product.mk b/core/product.mk index bd2f50c21b7..feeba5602b8 100644 --- a/core/product.mk +++ b/core/product.mk @@ -128,24 +128,66 @@ define dump-products $(foreach p,$(PRODUCTS),$(call dump-product,$(p))) endef +# +# Internal function. Appends inherited product variables to an existing one. +# +# $(1): Product variable to operate on +# $(2): Value to append +# +define inherit-product_append-var + $(eval $(1) := $($(1)) $(INHERIT_TAG)$(strip $(2))) +endef + +# +# Internal function. Prepends inherited product variables to an existing one. +# +# $(1): Product variable to operate on +# $(2): Value to prepend +# +define inherit-product_prepend-var + $(eval $(1) := $(INHERIT_TAG)$(strip $(2)) $($(1))) +endef + +# +# Internal function. Tracks visited notes during inheritance resolution. +# +# $(1): Product being inherited +# +define inherit-product_track-node + $(eval inherit_var := \ + PRODUCTS.$(strip $(word 1,$(_include_stack))).INHERITS_FROM) \ + $(eval $(inherit_var) := $(sort $($(inherit_var)) $(strip $(1)))) \ + $(eval inherit_var:=) \ + $(eval ALL_PRODUCTS := $(sort $(ALL_PRODUCTS) $(word 1,$(_include_stack)))) +endef + # # $(1): product to inherit # # Does three things: -# 1. Inherits all of the variables from $1. +# 1. Inherits all of the variables from $1, prioritizing existing settings. # 2. Records the inheritance in the .INHERITS_FROM variable # 3. Records that we've visited this node, in ALL_PRODUCTS # define inherit-product $(foreach v,$(_product_var_list), \ - $(eval $(v) := $($(v)) $(INHERIT_TAG)$(strip $(1)))) \ - $(eval inherit_var := \ - PRODUCTS.$(strip $(word 1,$(_include_stack))).INHERITS_FROM) \ - $(eval $(inherit_var) := $(sort $($(inherit_var)) $(strip $(1)))) \ - $(eval inherit_var:=) \ - $(eval ALL_PRODUCTS := $(sort $(ALL_PRODUCTS) $(word 1,$(_include_stack)))) + $(call inherit-product_append-var,$(v),$(1))) \ + $(call inherit-product_track-node,$(1)) endef +# +# $(1): product to inherit +# +# Does three things: +# 1. Inherits all of the variables from $1, prioritizing inherited settings. +# 2. Records the inheritance in the .INHERITS_FROM variable +# 3. Records that we've visited this node, in ALL_PRODUCTS +# +define prepend-product + $(foreach v,$(_product_var_list), \ + $(call inherit-product_prepend-var,$(v),$(1))) \ + $(call inherit-product_track-node,$(1)) +endef # # Do inherit-product only if $(1) exists @@ -154,6 +196,13 @@ define inherit-product-if-exists $(if $(wildcard $(1)),$(call inherit-product,$(1)),) endef +# +# Do inherit-product-prepend only if $(1) exists +# +define prepend-product-if-exists + $(if $(wildcard $(1)),$(call prepend-product,$(1)),) +endef + # # $(1): product makefile list # From b110c751b181423d268531c624db212d2d81e816 Mon Sep 17 00:00:00 2001 From: Tom Marshall Date: Fri, 12 Dec 2014 11:51:33 -0800 Subject: [PATCH 0831/1096] build: ota: Support for install tools in /tmp/install * Anything in OUT/install gets packaged up into the zip and extracted to /tmp/install immediately after FullOTA_InstallBegin. * Use /tmp/install in edify scripts and remove code related to using and manipulating /system for install tools. Change-Id: I315a3238e36c8d15e26f935e272f7e27dd59c320 --- tools/releasetools/edify_generator.py | 23 +++--------------- tools/releasetools/ota_from_target_files | 30 ++++++++++++------------ 2 files changed, 18 insertions(+), 35 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index c1832960af7..c465c7e557f 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -147,28 +147,11 @@ def AssertSomeBaseband(self, *basebands): self.script.append(self._WordWrap(cmd)) def RunBackup(self, command): - self.script.append('package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");') - self.script.append('package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");') - if not self.info.get("use_set_metadata", False): - self.script.append('set_perm(0, 0, 0755, "/tmp/backuptool.sh");') - self.script.append('set_perm(0, 0, 0644, "/tmp/backuptool.functions");') - else: - self.script.append('set_metadata("/tmp/backuptool.sh", "uid", 0, "gid", 0, "mode", 0755);') - self.script.append('set_metadata("/tmp/backuptool.functions", "uid", 0, "gid", 0, "mode", 0644);') - self.script.append(('run_program("/tmp/backuptool.sh", "%s");' % command)) - if command == "restore": - self.script.append('delete("/system/bin/backuptool.sh");') - self.script.append('delete("/system/bin/backuptool.functions");') + self.script.append(('run_program("/tmp/install/bin/backuptool.sh", "%s");' % command)) def ValidateSignatures(self, command): - if command == "cleanup": - self.script.append('delete("/system/bin/otasigcheck.sh");') - else: - self.script.append('package_extract_file("system/bin/otasigcheck.sh", "/tmp/otasigcheck.sh");') - self.script.append('package_extract_file("META-INF/org/cyanogenmod/releasekey", "/tmp/releasekey");') - self.script.append('set_metadata("/tmp/otasigcheck.sh", "uid", 0, "gid", 0, "mode", 0755);') - # Exit code 124 == abort. run_program returns raw, so left-shift 8bit - self.script.append('run_program("/tmp/otasigcheck.sh") != "31744" || abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') + # Exit code 124 == abort. run_program returns raw, so left-shift 8bit + self.script.append('run_program("/tmp/install/bin/otasigcheck.sh") != "31744" || abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') def ShowProgress(self, frac, dur): """Update the progress bar, advancing it over 'frac' over the next diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 46af7b7fd74..3059e35c2c5 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -476,6 +476,16 @@ def GetImage(which, tmpdir, info_dict): return sparse_img.SparseImage(path, mappath) +def CopyInstallTools(output_zip): + oldcwd = os.getcwd() + os.chdir(os.getenv('OUT')) + for root, subdirs, files in os.walk("install"): + for f in files: + p = os.path.join(root, f) + output_zip.write(p, p) + os.chdir(oldcwd) + + def WriteFullOTAPackage(input_zip, output_zip): # TODO: how to determine this? We don't know what version it will # be installed on top of. For now, we expect the API just won't @@ -567,12 +577,12 @@ else if get_stage("%(bcb_dev)s") == "3/3" then script.AppendExtra("ifelse(is_mounted(\"/system\"), unmount(\"/system\"));") device_specific.FullOTA_InstallBegin() + CopyInstallTools(output_zip) + script.UnpackPackageDir("install", "/tmp/install") + script.SetPermissionsRecursive("/tmp/install", 0, 0, 0755, 0644, None, None) + script.SetPermissionsRecursive("/tmp/install/bin", 0, 0, 0755, 0755, None, None) + if OPTIONS.backuptool: - if block_based: - common.ZipWriteStr(output_zip, "system/bin/backuptool.sh", - ""+input_zip.read("SYSTEM/bin/backuptool.sh")) - common.ZipWriteStr(output_zip, "system/bin/backuptool.functions", - ""+input_zip.read("SYSTEM/bin/backuptool.functions")) script.Mount("/system") script.RunBackup("backup") script.Unmount("/system") @@ -584,10 +594,6 @@ else if get_stage("%(bcb_dev)s") == "3/3" then if HasVendorPartition(input_zip): system_progress -= 0.1 - if block_based: - common.ZipWriteStr(output_zip, "system/bin/otasigcheck.sh", - ""+input_zip.read("SYSTEM/bin/otasigcheck.sh")) - script.AppendExtra("if is_mounted(\"/data\") then") script.ValidateSignatures("data") script.AppendExtra("else") @@ -659,12 +665,6 @@ else if get_stage("%(bcb_dev)s") == "3/3" then common.CheckSize(boot_img.data, "boot.img", OPTIONS.info_dict) common.ZipWriteStr(output_zip, "boot.img", boot_img.data) - if block_based: - script.Mount("/system") - script.ValidateSignatures("cleanup") - if block_based: - script.Unmount("/system") - device_specific.FullOTA_PostValidate() if OPTIONS.backuptool: From 61b8d2640a75f884738bf501b466a4679c4eef14 Mon Sep 17 00:00:00 2001 From: Tom Marshall Date: Tue, 16 Dec 2014 09:58:47 -0800 Subject: [PATCH 0832/1096] build: Only set capabilities if provided * Allows OUT/install to be compatibile with K recoveries. Change-Id: I308ee5759da1e3c8e749e9408793f0720fb83cee --- tools/releasetools/edify_generator.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index c465c7e557f..e31f10e9909 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -325,9 +325,10 @@ def SetPermissions(self, fn, uid, gid, mode, selabel, capabilities): if not self.info.get("use_set_metadata", False): self.script.append('set_perm(%d, %d, 0%o, "%s");' % (uid, gid, mode, fn)) else: - if capabilities is None: capabilities = "0x0" - cmd = 'set_metadata("%s", "uid", %d, "gid", %d, "mode", 0%o, ' \ - '"capabilities", %s' % (fn, uid, gid, mode, capabilities) + cmd = 'set_metadata("%s", "uid", %d, "gid", %d, "mode", 0%o' \ + % (fn, uid, gid, mode) + if capabilities is not None: + cmd += ', "capabilities", %s' % ( capabilities ) if selabel is not None: cmd += ', "selabel", "%s"' % ( selabel ) cmd += ');' @@ -339,10 +340,11 @@ def SetPermissionsRecursive(self, fn, uid, gid, dmode, fmode, selabel, capabilit self.script.append('set_perm_recursive(%d, %d, 0%o, 0%o, "%s");' % (uid, gid, dmode, fmode, fn)) else: - if capabilities is None: capabilities = "0x0" cmd = 'set_metadata_recursive("%s", "uid", %d, "gid", %d, ' \ - '"dmode", 0%o, "fmode", 0%o, "capabilities", %s' \ - % (fn, uid, gid, dmode, fmode, capabilities) + '"dmode", 0%o, "fmode", 0%o' \ + % (fn, uid, gid, dmode, fmode) + if capabilities is not None: + cmd += ', "capabilities", "%s"' % ( capabilities ) if selabel is not None: cmd += ', "selabel", "%s"' % ( selabel ) cmd += ');' From bc2d2bd4fc6967b1f7f932a289ce248378c292f8 Mon Sep 17 00:00:00 2001 From: Anthony King Date: Thu, 8 Jan 2015 11:39:12 -0600 Subject: [PATCH 0833/1096] roomservice: Improve error handling on search Use the relevant forms of 'except' for urllib and parsing instead of a general except which was performed too late anyways. Change-Id: Ia1fc89dd5a8a703fc0175aef7b6dd013a44a2c8e --- tools/roomservice.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tools/roomservice.py b/tools/roomservice.py index 3d065efe93f..f34963489f1 100755 --- a/tools/roomservice.py +++ b/tools/roomservice.py @@ -72,16 +72,15 @@ def add_auth(githubreq): if not depsonly: githubreq = urllib.request.Request("https://api.github.com/search/repositories?q=%s+user:CyanogenMod+in:name+fork:true" % device) add_auth(githubreq) - result = json.loads(urllib.request.urlopen(githubreq).read().decode()) try: - numresults = int(result['total_count']) - except: - print("Failed to search GitHub (offline?)") + result = json.loads(urllib.request.urlopen(githubreq).read().decode()) + except urllib.error.URLError: + print("Failed to search GitHub") sys.exit() - if (numresults == 0): - print("Could not find device %s on github.com/CyanogenMod" % device) + except ValueError: + print("Failed to parse return data from GitHub") sys.exit() - for res in result['items']: + for res in result.get('items', []): repositories.append(res) local_manifests = r'.repo/local_manifests' From 257be75506b077947a632c59868f6f4663f9cd48 Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Wed, 14 Jan 2015 11:33:46 -0800 Subject: [PATCH 0834/1096] build: fix darwin compile BSD cp command is different from GNU cp command. GNU ignores the slashes at the end, while the slash alters the behavior of the BSD version. Change-Id: I8e2e8d98df6819d9c3451b0d96e3269131a4fb4e Signed-off-by: Roman Birg --- core/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index d9fab2bb7af..f0e636cdfa3 100644 --- a/core/Makefile +++ b/core/Makefile @@ -920,7 +920,7 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(hide) mkdir -p $(TARGET_RECOVERY_OUT) $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/etc $(TARGET_RECOVERY_ROOT_OUT)/tmp @echo -e ${CL_CYN}"Copying baseline ramdisk..."${CL_RST} - $(hide) cp -R $(TARGET_ROOT_OUT) $(TARGET_RECOVERY_OUT) + $(hide) cp -R $(TARGET_ROOT_OUT)/ $(TARGET_RECOVERY_OUT) @echo -e ${CL_CYN}"Modifying ramdisk contents..."${CL_RST} $(hide) rm -f $(TARGET_RECOVERY_ROOT_OUT)/init*.rc $(hide) cp -f $(recovery_initrc) $(TARGET_RECOVERY_ROOT_OUT)/ From fe73178e022442822f14999e44f7dc73b9f19c01 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Wed, 24 Dec 2014 03:18:54 -0800 Subject: [PATCH 0835/1096] core: More flexible kernel configuration * Allow various combinations of kernel vs. userspace architectures * Get rid of various assumptions about everything being ARM or 32-bit * This adds the following target flags: TARGET_KERNEL_ARCH TARGET_KERNEL_HEADER_ARCH KERNEL_HEADER_DEFCONFIG TARGET_KERNEL_CROSS_COMPILE_PREFIX Change-Id: If0bc202abd35c216ba3ea5707ffdb602526d8ed3 --- core/tasks/kernel.mk | 130 ++++++++++++++++++++++++++++++++----------- 1 file changed, 96 insertions(+), 34 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index e6be63a41d8..9f40eec3a16 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -29,14 +29,50 @@ SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG) KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ KERNEL_CONFIG := $(KERNEL_OUT)/.config +TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH)) +ifeq ($(TARGET_KERNEL_ARCH),) +KERNEL_ARCH := $(TARGET_ARCH) +else +KERNEL_ARCH := $(TARGET_KERNEL_ARCH) +endif + +TARGET_KERNEL_HEADER_ARCH := $(strip $(TARGET_KERNEL_HEADER_ARCH)) +ifeq ($(TARGET_KERNEL_HEADER_ARCH),) +KERNEL_HEADER_ARCH := $(KERNEL_ARCH) +else +KERNEL_HEADER_ARCH := $(TARGET_KERNEL_HEADER_ARCH) +endif + +KERNEL_HEADER_DEFCONFIG := $(strip $(KERNEL_HEADER_DEFCONFIG)) +ifeq ($(KERNEL_HEADER_DEFCONFIG),) +KERNEL_HEADER_DEFCONFIG := $(KERNEL_DEFCONFIG) +endif + + ifneq ($(BOARD_KERNEL_IMAGE_NAME),) - TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME) - TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE) + TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME) else - TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/zImage - TARGET_PREBUILT_INT_KERNEL_TYPE := zImage + ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true) + TARGET_PREBUILT_INT_KERNEL_TYPE := Image + else + TARGET_PREBUILT_INT_KERNEL_TYPE := zImage + endif +endif + +TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE) + +# Clear this first to prevent accidental poisoning from env +MAKE_FLAGS := + +ifeq ($(KERNEL_ARCH),arm64) + # Avoid "unsupported RELA relocation: 311" errors (R_AARCH64_ADR_GOT_PAGE) + MAKE_FLAGS += CFLAGS_MODULE="-fno-pic" + ifeq ($(TARGET_ARCH),arm) + KERNEL_CONFIG_OVERRIDE := CONFIG_ANDROID_BINDER_IPC_32BIT=y + endif endif + ## Do be discontinued in a future version. Notify builder about target ## kernel format requirement ifeq ($(BOARD_KERNEL_IMAGE_NAME),) @@ -97,12 +133,7 @@ else else #$(info Kernel source found, building it) FULL_KERNEL_BUILD := true - ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true) - $(info Using uncompressed kernel) - KERNEL_BIN := $(KERNEL_OUT)/piggy - else - KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL) - endif + KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL) endif endif @@ -112,19 +143,38 @@ KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr KERNEL_MODULES_INSTALL := system KERNEL_MODULES_OUT := $(TARGET_OUT)/lib/modules -ifeq ($(KERNEL_TOOLCHAIN),) -KERNEL_TOOLCHAIN := $(ARM_EABI_TOOLCHAIN) -endif +TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)) +ifeq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),) ifeq ($(KERNEL_TOOLCHAIN_PREFIX),) KERNEL_TOOLCHAIN_PREFIX := arm-eabi- endif +else +KERNEL_TOOLCHAIN_PREFIX := $(TARGET_KERNEL_CROSS_COMPILE_PREFIX) +endif + +ifeq ($(KERNEL_TOOLCHAIN),) +KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX) +else +ifneq ($(KERNEL_TOOLCHAIN_PREFIX),) +KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX) +endif +endif + +ifneq ($(USE_CCACHE),) + ccache := $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache + # Check that the executable is here. + ccache := $(strip $(wildcard $(ccache))) +endif + +KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(ccache) $(KERNEL_TOOLCHAIN_PATH)" +ccache = define mv-modules mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.order`;\ if [ "$$mdpath" != "" ];then\ mpath=`dirname $$mdpath`;\ ko=`find $$mpath/kernel -type f -name *.ko`;\ - for i in $$ko; do $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)strip --strip-unneeded $$i;\ + for i in $$ko; do $(KERNEL_TOOLCHAIN_PATH)strip --strip-unneeded $$i;\ mv $$i $(KERNEL_MODULES_OUT)/; done;\ fi endef @@ -136,18 +186,8 @@ define clean-module-folder fi endef -ifeq ($(TARGET_ARCH),arm) - ifneq ($(USE_CCACHE),) - ccache := $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache - # Check that the executable is here. - ccache := $(strip $(wildcard $(ccache))) - endif - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)" - ccache = -endif - ifeq ($(HOST_OS),darwin) - MAKE_FLAGS := C_INCLUDE_PATH=$(ANDROID_BUILD_TOP)/external/elfutils/0.153/libelf/ + MAKE_FLAGS += C_INCLUDE_PATH=$(ANDROID_BUILD_TOP)/external/elfutils/0.153/libelf/ endif ifeq ($(TARGET_KERNEL_MODULES),) @@ -159,16 +199,17 @@ $(KERNEL_OUT): mkdir -p $(KERNEL_MODULES_OUT) $(KERNEL_CONFIG): $(KERNEL_OUT) - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG) - -$(KERNEL_OUT)/piggy : $(TARGET_PREBUILT_INT_KERNEL) - $(hide) gunzip -c $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/compressed/piggy.gzip > $(KERNEL_OUT)/piggy + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG) + $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ + echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ + echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi TARGET_KERNEL_BINARIES: $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL) - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE) - -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) dtbs - -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules - -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules_install + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE) + -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) dtbs + -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) modules + -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) modules_install $(mv-modules) $(clean-module-folder) @@ -179,7 +220,28 @@ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES) $(clean-module-folder) $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG) - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) headers_install + $(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \ + $(hide) rm -f ../$(KERNEL_CONFIG); \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_HEADER_DEFCONFIG); \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) $(KERNEL_CROSS_COMPILE) headers_install; fi + $(hide) if [ "$(KERNEL_HEADER_DEFCONFIG)" != "$(KERNEL_DEFCONFIG)" ]; then \ + echo "Used a different defconfig for header generation"; \ + $(hide) rm -f ../$(KERNEL_CONFIG); \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG); fi + $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ + echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ + echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi + +kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG) + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) tags + +kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) + env KCONFIG_NOTIMESTAMP=true \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) menuconfig + env KCONFIG_NOTIMESTAMP=true \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) savedefconfig + cp $(KERNEL_OUT)/defconfig kernel/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG) endif # FULL_KERNEL_BUILD From c2356611030bc3c601bf7a78fff77d5668d4ae51 Mon Sep 17 00:00:00 2001 From: Brian Chu Date: Mon, 5 Jan 2015 23:03:30 -0500 Subject: [PATCH 0836/1096] Add support for OSX up to 10.10 and CLI Tools - Support using OSX versions 10.9 and 10.10 as the compilation host. Please note that the prebuilt darwin-x86 gcc is missing an upstream patch that properly identifies 10.10 as newer than 10.2, which restricts mac_sdk_versions_supported to 10.9. - Support using Xcode Command Line Tools, waiving the requirement for installing the full Xcode development suite for 600k worth of C++ headers. These build modifications have been verified by successfully compiling a cm12-hammerhead image from scratch on a OSX Yosemite 10.10.1 host with Xcode Command Line Tools 6.1.1 installed. Change-Id: Id1741ef583d186eb6a42093e5111431ae7b08a2c --- core/combo/HOST_darwin-x86.mk | 13 ++++++++----- core/combo/HOST_darwin-x86_64.mk | 11 +++++++---- core/combo/mac_version.mk | 21 ++++++++++++++++++--- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/core/combo/HOST_darwin-x86.mk b/core/combo/HOST_darwin-x86.mk index 2f25b6d846f..ac54a3c4445 100644 --- a/core/combo/HOST_darwin-x86.mk +++ b/core/combo/HOST_darwin-x86.mk @@ -37,11 +37,14 @@ $(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX := $($(combo_2nd_arch_prefix)HOST_ ifneq (,$(strip $(wildcard $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)-gcc))) $(combo_2nd_arch_prefix)HOST_CC := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)-gcc $(combo_2nd_arch_prefix)HOST_CXX := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)-g++ -ifneq ($(filter 10.8 10.9, $(mac_sdk_version)),) -# Mac SDK 10.8+ no longer has stdarg.h, etc -host_toolchain_header := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_ROOT)/lib/gcc/i686-apple-darwin$(gcc_darwin_version)/4.2.1/include + +ifeq ($(mac_sdk_version), $(filter $(mac_sdk_version), 10.8 10.9 10.10)) +# Mac SDK 10.8 and later does not have stdarg.h, etc +host_toolchain_header := $(HOST_TOOLCHAIN_ROOT)/lib/gcc/i686-apple-darwin$(gcc_darwin_version)/4.2.1/include $(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += -isystem $(host_toolchain_header) -endif +$(combo_2nd_arch_prefix)HOST_GLOBAL_CPPFLAGS += -isystem $(mac_sdk_root)/usr/include/c++/4.2.1 +endif # $(mac_sdk_version) + else $(combo_2nd_arch_prefix)HOST_CC := gcc $(combo_2nd_arch_prefix)HOST_CXX := g++ @@ -66,7 +69,7 @@ $(combo_2nd_arch_prefix)HOST_JNILIB_SUFFIX := .jnilib $(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += \ -include $(call select-android-config-h,darwin-x86) -ifneq ($(filter 10.7 10.7.% 10.8 10.8.%, $(build_mac_version)),) +ifneq ($(filter 10.7 10.7.% 10.8 10.8.% 10.9 10.9.% 10.10 10.10.%, $(build_mac_version)),) $(combo_2nd_arch_prefix)HOST_RUN_RANLIB_AFTER_COPYING := false else $(combo_2nd_arch_prefix)HOST_RUN_RANLIB_AFTER_COPYING := true diff --git a/core/combo/HOST_darwin-x86_64.mk b/core/combo/HOST_darwin-x86_64.mk index a776a699781..88c2b5bacff 100644 --- a/core/combo/HOST_darwin-x86_64.mk +++ b/core/combo/HOST_darwin-x86_64.mk @@ -37,11 +37,14 @@ HOST_TOOLCHAIN_PREFIX := $(HOST_TOOLCHAIN_ROOT)/bin/i686-apple-darwin$(gcc_darwi ifneq (,$(strip $(wildcard $(HOST_TOOLCHAIN_PREFIX)-gcc))) HOST_CC := $(HOST_TOOLCHAIN_PREFIX)-gcc HOST_CXX := $(HOST_TOOLCHAIN_PREFIX)-g++ -ifneq ($(filter 10.8 10.9, $(mac_sdk_version)),) -# Mac SDK 10.8+ no longer has stdarg.h, etc + +ifeq ($(mac_sdk_version), $(filter $(mac_sdk_version), 10.8 10.9 10.10)) +# Mac SDK 10.8 and later does not have stdarg.h, etc host_toolchain_header := $(HOST_TOOLCHAIN_ROOT)/lib/gcc/i686-apple-darwin$(gcc_darwin_version)/4.2.1/include HOST_GLOBAL_CFLAGS += -isystem $(host_toolchain_header) -endif +HOST_GLOBAL_CPPFLAGS += -isystem $(mac_sdk_root)/usr/include/c++/4.2.1 +endif # $(mac_sdk_version) + else HOST_CC := gcc HOST_CXX := g++ @@ -65,7 +68,7 @@ HOST_JNILIB_SUFFIX := .jnilib HOST_GLOBAL_CFLAGS += \ -include $(call select-android-config-h,darwin-x86) -ifneq ($(filter 10.7 10.7.% 10.8 10.8.%, $(build_mac_version)),) +ifneq ($(filter 10.7 10.7.% 10.8 10.8.% 10.9 10.9.% 10.10 10.10.%, $(build_mac_version)),) HOST_RUN_RANLIB_AFTER_COPYING := false else HOST_RUN_RANLIB_AFTER_COPYING := true diff --git a/core/combo/mac_version.mk b/core/combo/mac_version.mk index 6defba79ea3..d18e4c59060 100644 --- a/core/combo/mac_version.mk +++ b/core/combo/mac_version.mk @@ -9,17 +9,19 @@ ifndef build_mac_version build_mac_version := $(shell sw_vers -productVersion) -mac_sdk_versions_supported := 10.6 10.7 10.8 10.9 +# Caution: Do not add 10.10 to this list until the prebuilts/darwin-x86 toolchains are updated. +# In the meantime, setting mac_sdk_version to 10.9 works on Yosemite (verified on 10.10.1). +mac_sdk_versions_supported := 10.6 10.7 10.8 10.9 ifneq ($(strip $(MAC_SDK_VERSION)),) mac_sdk_version := $(MAC_SDK_VERSION) ifeq ($(filter $(mac_sdk_version),$(mac_sdk_versions_supported)),) $(warning ****************************************************************) -$(warning * MAC_SDK_VERSION $(MAC_SDK_VERSION) isn't one of the supported $(mac_sdk_versions_supported)) +$(warning * MAC_SDK_VERSION $(MAC_SDK_VERSION) isn\'t one of the supported $(mac_sdk_versions_supported)) $(warning ****************************************************************) $(error Stop.) endif else -mac_sdk_versions_installed := $(shell xcodebuild -showsdks | grep macosx | sort | sed -e "s/.*macosx//g") +mac_sdk_versions_installed := $(shell xcodebuild -showsdks 2> /dev/null | grep macosx | sort | sed -e "s/.*macosx//g") mac_sdk_version := $(firstword $(filter $(mac_sdk_versions_installed), $(mac_sdk_versions_supported))) ifeq ($(mac_sdk_version),) mac_sdk_version := $(firstword $(mac_sdk_versions_supported)) @@ -27,6 +29,18 @@ endif endif mac_sdk_path := $(shell xcode-select -print-path) + +ifeq ($(strip "$(mac_sdk_path)"), "/Library/Developer/CommandLineTools") +# Accept any modern version of Apple Command Line Tools +mac_sdk_root := / + +# Override mac_sdk_version with build_mac_version (aka the version of the OSX host), but assume the latest +# supported mac_sdk_version if the build_mac_version is not recognized. +mac_sdk_version := $(shell echo $(build_mac_version) | cut -d '.' -f 1,2) +ifeq ($(filter $(mac_sdk_version),$(mac_sdk_versions_supported)),) +mac_sdk_version := $(lastword $(mac_sdk_versions_supported)) +endif +else # try /Applications/Xcode*.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.?.sdk # or /Volume/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.?.sdk mac_sdk_root := $(mac_sdk_path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(mac_sdk_version).sdk @@ -40,6 +54,7 @@ $(warning * Can not find SDK $(mac_sdk_version) at $(mac_sdk_root)) $(warning *****************************************************) $(error Stop.) endif +endif # $(mac_sdk_path) ifeq ($(mac_sdk_version),10.6) gcc_darwin_version := 10 From 3808dec8f9beba9e8aaab49fce84984edce4f1d3 Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Sun, 18 Jan 2015 19:34:14 -0500 Subject: [PATCH 0837/1096] Fix kernel.mk if SELINUX or VARIANT_DEFCONFIG is defined KERNEL_HEADER_DEFCONFIG was ignoring SELINUX_DEFCONFIG thus breaking all selinux support Change-Id: Idc3367d6b4b85343078e63e87dca6d6d052e7f53 --- core/tasks/kernel.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 9f40eec3a16..a2eb21e191c 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -222,12 +222,12 @@ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES) $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \ $(hide) rm -f ../$(KERNEL_CONFIG); \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_HEADER_DEFCONFIG); \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_HEADER_DEFCONFIG); \ $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) $(KERNEL_CROSS_COMPILE) headers_install; fi $(hide) if [ "$(KERNEL_HEADER_DEFCONFIG)" != "$(KERNEL_DEFCONFIG)" ]; then \ echo "Used a different defconfig for header generation"; \ $(hide) rm -f ../$(KERNEL_CONFIG); \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG); fi + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG); fi $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ From 2a97e30b669ae0a792ee8b65bf53186343ef7bad Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Tue, 20 Jan 2015 01:41:19 +0000 Subject: [PATCH 0838/1096] build: kernel: Fix stray "@" Nested "$(hide)"s (makefile @) don't work. There was one at the beginning of the script, remove the inner one to prevent it from being interpreted as a shell command Change-Id: I08a829ee56b212366a0f5a3812f7a614667a9c2b --- core/tasks/kernel.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index a2eb21e191c..2c492712090 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -221,12 +221,12 @@ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES) $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \ - $(hide) rm -f ../$(KERNEL_CONFIG); \ + rm -f ../$(KERNEL_CONFIG); \ $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_HEADER_DEFCONFIG); \ $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) $(KERNEL_CROSS_COMPILE) headers_install; fi $(hide) if [ "$(KERNEL_HEADER_DEFCONFIG)" != "$(KERNEL_DEFCONFIG)" ]; then \ echo "Used a different defconfig for header generation"; \ - $(hide) rm -f ../$(KERNEL_CONFIG); \ + rm -f ../$(KERNEL_CONFIG); \ $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG); fi $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ From 03a7f3b681b0e51c158a9c7af0913d56dc8f746e Mon Sep 17 00:00:00 2001 From: Ameya Thakur Date: Tue, 18 Nov 2014 15:27:07 -0800 Subject: [PATCH 0839/1096] build: releasetools: ota: Add support for 32-64 bit upgrades We now use the new API to determine if the update package is compatible with the device it is currently being applied on or not. We also use the 32 bit updater libraries while compiling the ota package Change-Id: I4d1d2bd90e03e6f4b2f786d25c6d02f62243c3f3 --- core/Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index f0e636cdfa3..83576844127 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1405,8 +1405,12 @@ built_ota_tools := \ $(call intermediates-dir-for,EXECUTABLES,applypatch)/applypatch \ $(call intermediates-dir-for,EXECUTABLES,applypatch_static)/applypatch_static \ $(call intermediates-dir-for,EXECUTABLES,check_prereq)/check_prereq \ - $(call intermediates-dir-for,EXECUTABLES,sqlite3)/sqlite3 \ - $(call intermediates-dir-for,EXECUTABLES,updater)/updater + $(call intermediates-dir-for,EXECUTABLES,sqlite3)/sqlite3 +ifeq ($(TARGET_ARCH),arm64) + built_ota_tools += $(call intermediates-dir-for,EXECUTABLES,updater,,,32)/updater +else + built_ota_tools += $(call intermediates-dir-for,EXECUTABLES,updater)/updater +endif $(BUILT_TARGET_FILES_PACKAGE): PRIVATE_OTA_TOOLS := $(built_ota_tools) $(BUILT_TARGET_FILES_PACKAGE): PRIVATE_RECOVERY_API_VERSION := $(RECOVERY_API_VERSION) From 693f3663b9bde9617b22f79d94a950437b8bf775 Mon Sep 17 00:00:00 2001 From: Vladislav Koldobskiy Date: Sat, 10 Jan 2015 04:09:49 +0300 Subject: [PATCH 0840/1096] Don't ship VoiceDialer ...seriously, who uses it now? Change-Id: I5416562f19b5df5097c0df54cf4ccecdb4dab80f --- target/product/full_base_telephony.mk | 3 --- 1 file changed, 3 deletions(-) diff --git a/target/product/full_base_telephony.mk b/target/product/full_base_telephony.mk index 307991982f0..4d6fce7a63a 100644 --- a/target/product/full_base_telephony.mk +++ b/target/product/full_base_telephony.mk @@ -19,9 +19,6 @@ # build quite specifically for the emulator, and might not be # entirely appropriate to inherit from for on-device configurations. -PRODUCT_PACKAGES := \ - VoiceDialer - PRODUCT_PROPERTY_OVERRIDES := \ keyguard.no_require_sim=true From d8f6e1e5faa2d559d369bd7887aa673e4e5eb641 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Fri, 23 Jan 2015 17:16:30 -0800 Subject: [PATCH 0841/1096] releasetools: Add radio images to fastboot packages Fastboot packages should include radio images, if they exist. Also generate a flash-radio.sh file if a filesmap file exists to indicate the partition that a radio image should be flashed to. Change-Id: I8f603b1509a5c1b55fee1cb6f6a49a7efb8cc594 --- tools/releasetools/img_from_target_files.py | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tools/releasetools/img_from_target_files.py b/tools/releasetools/img_from_target_files.py index 4b88e73b0bb..4c41cd6f0ee 100755 --- a/tools/releasetools/img_from_target_files.py +++ b/tools/releasetools/img_from_target_files.py @@ -54,6 +54,31 @@ def CopyInfo(output_zip): output_zip.write(os.path.join(OPTIONS.input_tmp, "OTA", "android-info.txt"), "android-info.txt") +def AddRadio(output_zip): + """If they exist, add RADIO files to the output.""" + if os.path.isdir(os.path.join(OPTIONS.input_tmp, "RADIO")): + for radio_root, radio_dirs, radio_files in os.walk(os.path.join(OPTIONS.input_tmp, "RADIO")): + for radio_file in radio_files: + output_zip.write(os.path.join(radio_root, radio_file), radio_file) + + # If a filesmap file exists, create a script to flash the radio images based on it + filesmap = os.path.join(OPTIONS.input_tmp, "RADIO/filesmap") + if os.path.isfile(filesmap): + print "creating flash-radio.sh..." + filesmap_data = open(filesmap, "r") + filesmap_regex = re.compile(r'^(\S+)\s\S+\/by-name\/(\S+).*') + tmp_flash_radio = tempfile.NamedTemporaryFile() + tmp_flash_radio.write("#!/bin/sh\n\n") + for filesmap_line in filesmap_data: + filesmap_entry = filesmap_regex.search(filesmap_line) + if filesmap_entry: + tmp_flash_radio.write("fastboot flash %s %s\n" % (filesmap_entry.group(2), filesmap_entry.group(1))) + tmp_flash_radio.flush() + if os.path.getsize(tmp_flash_radio.name) > 0: + output_zip.write(tmp_flash_radio.name, "flash-radio.sh") + else: + print "flash-radio.sh is empty, skipping..." + tmp_flash_radio.close() def main(argv): bootable_only = [False] @@ -79,6 +104,7 @@ def option_handler(o, a): OPTIONS.input_tmp, input_zip = common.UnzipTemp(args[0]) output_zip = zipfile.ZipFile(args[1], "w", compression=zipfile.ZIP_DEFLATED) CopyInfo(output_zip) + AddRadio(output_zip) try: done = False From e98858eea61d6235e42f8c4f1253bd4a5021a7af Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Sun, 11 Jan 2015 13:21:15 -0600 Subject: [PATCH 0842/1096] repopick: Catch errors on url load failure Exit gracefully if server cannot be reached or if it reports an error. Change-Id: I86a1a45d3a1f8dfdb49a0400cb728c965dbad8df --- tools/repopick.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/repopick.py b/tools/repopick.py index 3dbe751f46c..1898c95b3b5 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -31,12 +31,14 @@ try: # For python3 + import urllib.error import urllib.request except ImportError: # For python2 import imp import urllib2 urllib = imp.new_module('urllib') + urllib.error = urllib2 urllib.request = urllib2 # Parse the command line @@ -255,7 +257,11 @@ def is_pathA_subdir_of_pathB(pathA, pathB): url = 'http://review.cyanogenmod.org/changes/?q={change}&o={query_revision}&o=CURRENT_COMMIT&pp=0'.format(change=change, query_revision=query_revision) if args.verbose: print('Fetching from: %s\n' % url) - f = urllib.request.urlopen(url) + try: + f = urllib.request.urlopen(url) + except urllib.error.URLError: + sys.stderr.write('ERROR: Server reported an error, or cannot be reached\n') + sys.exit(1) d = f.read().decode("utf-8") if args.verbose: print('Result from request:\n' + d) From bf76bd69c9c084b4062d6ef52d5e2c3be6fff64c Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Fri, 17 Oct 2014 15:07:24 -0700 Subject: [PATCH 0843/1096] build: fix ccache preprocessor errors for clang From AOSP upstream: https://android-review.googlesource.com/#/c/111311/ ---- Add -Wno-unused-command-line-argument to clang cflags to enable ccache. Previously ccache is disabled when it fails calling clang's preprocessor with unused arguments (such as '-Wa,--noexecstack') in the command line. See http://petereisentraut.blogspot.com/2011/05/ccache-and-clang.html. (-Qunused-arguments suppresses more than -Wno-unused-command-line-argument does.) Change-Id: I6cde307632c8395c053eb28063d7844d93070562 --- core/clang/config.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/clang/config.mk b/core/clang/config.mk index 5b2aea50d80..9c1179717b9 100644 --- a/core/clang/config.mk +++ b/core/clang/config.mk @@ -42,6 +42,11 @@ CLANG_CONFIG_EXTRA_CFLAGS += \ CLANG_CONFIG_EXTRA_CFLAGS += \ -Werror=int-conversion +# Workaround for ccache with clang. +# See http://petereisentraut.blogspot.com/2011/05/ccache-and-clang.html. +CLANG_CONFIG_EXTRA_CFLAGS += \ + -Wno-unused-command-line-argument + CLANG_CONFIG_UNKNOWN_CFLAGS := \ -funswitch-loops \ -fno-tree-sra \ From f153ebd4976785f935e6c57bb9af6707987034d4 Mon Sep 17 00:00:00 2001 From: Marco Brohet Date: Sat, 28 Dec 2013 18:11:52 +0100 Subject: [PATCH 0844/1096] build: Add support for Asturian Change-Id: If666c8390b3c095c16e66df777c67a46511f4916 --- target/product/languages_full.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/product/languages_full.mk b/target/product/languages_full.mk index 6d77cde1b78..b8507c9f79c 100644 --- a/target/product/languages_full.mk +++ b/target/product/languages_full.mk @@ -22,3 +22,6 @@ # These are all the locales that have translations and are displayable # by TextView in this branch. PRODUCT_LOCALES := en_US en_AU en_IN fr_FR it_IT es_ES et_EE de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW zh_CN zh_HK ru_RU ko_KR nb_NO es_US da_DK el_GR tr_TR pt_PT pt_BR rm_CH sv_SE bg_BG ca_ES en_GB fi_FI hi_IN hr_HR hu_HU in_ID iw_IL lt_LT lv_LV ro_RO sk_SK sl_SI sr_RS uk_UA vi_VN tl_PH ar_EG fa_IR th_TH sw_TZ ms_MY af_ZA zu_ZA am_ET hi_IN en_XA ar_XB fr_CA km_KH lo_LA ne_NP si_LK mn_MN hy_AM az_AZ ka_GE my_MM mr_IN ml_IN is_IS mk_MK ky_KG eu_ES gl_ES bn_BD ta_IN kn_IN te_IN uz_UZ ur_PK kk_KZ + +# CyanogenMod +PRODUCT_LOCALES += ast_ES From 56b3e36a00835514c97988b7d575464c73a2d4e1 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Sun, 30 Mar 2014 01:13:25 +0200 Subject: [PATCH 0845/1096] build: Add support for Luxembourgish Change-Id: I0fb6d8f8a33f209d5593f133c2e891fe9be102c2 --- target/product/languages_full.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/product/languages_full.mk b/target/product/languages_full.mk index b8507c9f79c..2edfc641ebf 100644 --- a/target/product/languages_full.mk +++ b/target/product/languages_full.mk @@ -24,4 +24,4 @@ PRODUCT_LOCALES := en_US en_AU en_IN fr_FR it_IT es_ES et_EE de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW zh_CN zh_HK ru_RU ko_KR nb_NO es_US da_DK el_GR tr_TR pt_PT pt_BR rm_CH sv_SE bg_BG ca_ES en_GB fi_FI hi_IN hr_HR hu_HU in_ID iw_IL lt_LT lv_LV ro_RO sk_SK sl_SI sr_RS uk_UA vi_VN tl_PH ar_EG fa_IR th_TH sw_TZ ms_MY af_ZA zu_ZA am_ET hi_IN en_XA ar_XB fr_CA km_KH lo_LA ne_NP si_LK mn_MN hy_AM az_AZ ka_GE my_MM mr_IN ml_IN is_IS mk_MK ky_KG eu_ES gl_ES bn_BD ta_IN kn_IN te_IN uz_UZ ur_PK kk_KZ # CyanogenMod -PRODUCT_LOCALES += ast_ES +PRODUCT_LOCALES += ast_ES lb_LU From 1336a9ff27c3247adaa761921a05ce88b741d195 Mon Sep 17 00:00:00 2001 From: Konsta Date: Thu, 22 Jan 2015 20:05:00 +0200 Subject: [PATCH 0846/1096] build: Remove OpenWnn IME from target config Change-Id: Ic34caa26bf53fc882e685794844ecfa27519e580 --- target/product/full_base.mk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/target/product/full_base.mk b/target/product/full_base.mk index 25a3dc49fb4..2ba2ced211e 100644 --- a/target/product/full_base.mk +++ b/target/product/full_base.mk @@ -21,10 +21,6 @@ PRODUCT_PACKAGES := \ libfwdlockengine \ - OpenWnn \ - libWnnEngDic \ - libWnnJpnDic \ - libwnndict \ WAPPushManager # Additional settings used in all AOSP builds From c841de787bcce870897cf0cf770cead3a49ae8e0 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Fri, 23 May 2014 12:26:51 -0700 Subject: [PATCH 0847/1096] Performance improvement for whole static libs Improves performance for LOCAL_WHOLE_STATIC_LIBS by copying the first .a to the new .a rather than extracting and recreating Change-Id: Iecdb5e4bb2ce987bb41a70c3393d18a6d72ae689 --- core/definitions.mk | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/core/definitions.mk b/core/definitions.mk index 2c3a5c1837e..5579bcc6bdf 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1190,8 +1190,16 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs; endef +# $(1): the full path of the source static library. +define extract-and-include-whole-static-libs-first +$(if $(strip $(1)), +@echo "preparing StaticLib: $(PRIVATE_MODULE) [including $(strip $(1))]" +$(hide) cp $(1) $@) +endef + define extract-and-include-target-whole-static-libs -$(foreach lib,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES), \ +$(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES))) +$(foreach lib,$(wordlist 2,999,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)), \ $(call _extract-and-include-single-target-whole-static-lib, $(lib))) endef @@ -1228,7 +1236,8 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs; endef define extract-and-include-host-whole-static-libs -$(foreach lib,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES), \ +$(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES))) +$(foreach lib,$(wordlist 2,999,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)), \ $(call _extract-and-include-single-host-whole-static-lib, $(lib))) endef From b864626564c64845fe6770fb308b2986557bbea1 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Mon, 2 Feb 2015 00:11:06 +0200 Subject: [PATCH 0848/1096] build: Add support for Kurdish Change-Id: I1bc7638ff92b61be6c3212dbd5a3f1c354093458 --- target/product/languages_full.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/product/languages_full.mk b/target/product/languages_full.mk index 2edfc641ebf..b4116cade75 100644 --- a/target/product/languages_full.mk +++ b/target/product/languages_full.mk @@ -24,4 +24,4 @@ PRODUCT_LOCALES := en_US en_AU en_IN fr_FR it_IT es_ES et_EE de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW zh_CN zh_HK ru_RU ko_KR nb_NO es_US da_DK el_GR tr_TR pt_PT pt_BR rm_CH sv_SE bg_BG ca_ES en_GB fi_FI hi_IN hr_HR hu_HU in_ID iw_IL lt_LT lv_LV ro_RO sk_SK sl_SI sr_RS uk_UA vi_VN tl_PH ar_EG fa_IR th_TH sw_TZ ms_MY af_ZA zu_ZA am_ET hi_IN en_XA ar_XB fr_CA km_KH lo_LA ne_NP si_LK mn_MN hy_AM az_AZ ka_GE my_MM mr_IN ml_IN is_IS mk_MK ky_KG eu_ES gl_ES bn_BD ta_IN kn_IN te_IN uz_UZ ur_PK kk_KZ # CyanogenMod -PRODUCT_LOCALES += ast_ES lb_LU +PRODUCT_LOCALES += ast_ES lb_LU ku_IQ From 6fed60e813e3d87a7634a6731102207cc16aef55 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Sat, 24 Jan 2015 00:06:40 +0530 Subject: [PATCH 0849/1096] repopick: Allow using a custom query Change-Id: I87e92d3cbfa35367d87f55c92a6d12a6d4282232 --- tools/repopick.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index 1898c95b3b5..b965b4ca725 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -67,6 +67,7 @@ parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if commit has been merged') parser.add_argument('-p', '--pull', action='store_true', help='execute pull instead of cherry-pick') parser.add_argument('-t', '--topic', help='pick all commits from a specified topic') +parser.add_argument('-Q', '--query', help='pick all commits using the specified query') args = parser.parse_args() if args.start_branch == None and args.abandon_first: parser.error('if --abandon-first is set, you must also give the branch name with --start-branch') @@ -77,10 +78,13 @@ args.start_branch = ['auto'] if args.quiet and args.verbose: parser.error('--quiet and --verbose cannot be specified together') -if len(args.change_number) > 0 and args.topic: - parser.error('cannot specify a topic and change number(s) together') -if len(args.change_number) == 0 and not args.topic: - parser.error('must specify at least one commit id or a topic') +if len(args.change_number) > 0: + if args.topic or args.query: + parser.error('cannot specify a topic (or query) and change number(s) together') +if args.topic and args.query: + parser.error('cannot specify a topic and a query together') +if len(args.change_number) == 0 and not args.topic and not args.query: + parser.error('must specify at least one commit id or a topic or a query') # Helper function to determine whether a path is an executable file def is_exe(fpath): @@ -187,11 +191,11 @@ def is_pathA_subdir_of_pathB(pathA, pathB): ppaths = re.split('\s*:\s*', pline.decode()) project_name_to_path[ppaths[1]] = ppaths[0] -# Get all commits for a specified topic -if args.topic: - url = 'http://review.cyanogenmod.org/changes/?q=topic:%s' % args.topic +# Get all commits for a specified query +def fetch_query(query): + url = 'http://review.cyanogenmod.org/changes/?q=%s' % query if args.verbose: - print('Fetching all commits from topic: %s\n' % args.topic) + print('Fetching all commits using query: %s\n' % query) f = urllib.request.urlopen(url) d = f.read().decode("utf-8") if args.verbose: @@ -201,7 +205,7 @@ def is_pathA_subdir_of_pathB(pathA, pathB): d = d.split(')]}\'\n')[1] matchObj = re.match(r'\[\s*\]', d) if matchObj: - sys.stderr.write('ERROR: Topic %s was not found on the server\n' % args.topic) + sys.stderr.write('ERROR: Query %s was not found on the server\n' % query) sys.exit(1) d = re.sub(r'\[(.*)\]', r'\1', d) if args.verbose: @@ -215,6 +219,12 @@ def is_pathA_subdir_of_pathB(pathA, pathB): # Reverse the array as we want to pick the lowest one first args.change_number = reversed(changelist) +if args.topic: + fetch_query("topic:{0}".format(args.topic)) + +if args.query: + fetch_query(args.query) + # Check for range of commits and rebuild array changelist = [] for change in args.change_number: From 96ecbc02b0a60dafe25929a3f4639cd68baa6094 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Fri, 23 Jan 2015 23:53:48 +0530 Subject: [PATCH 0850/1096] repopick: Allow the github fetch to fail * This is optional and done to save gerrit server bandwidth, however it may fail in cases where the 'github' remote is a mirror which doesn't sync the changes. * Let it try fetching from gerrit if fetching from github fails. Change-Id: I6d183ff83572d817d78633280d8b20e3efdaf8f0 --- tools/repopick.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index b965b4ca725..679fae4bfc5 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -108,10 +108,10 @@ def which(program): return None # Simple wrapper for os.system() that: -# - exits on error +# - exits on error if !can_fail # - prints out the command if --verbose # - suppresses all output if --quiet -def execute_cmd(cmd): +def execute_cmd(cmd, can_fail=False): if args.verbose: print('Executing: %s' % cmd) if args.quiet: @@ -120,7 +120,8 @@ def execute_cmd(cmd): if os.system(cmd): if not args.verbose: print('\nCommand that failed:\n%s' % cmd) - sys.exit(1) + if not can_fail: + sys.exit(1) # Verifies whether pathA is a subdirectory (or the same) as pathB def is_pathA_subdir_of_pathB(pathA, pathB): @@ -392,7 +393,7 @@ def fetch_query(query): cmd = 'cd %s && git pull --no-edit github %s' % (project_path, fetch_ref) else: cmd = 'cd %s && git fetch github %s' % (project_path, fetch_ref) - execute_cmd(cmd) + execute_cmd(cmd, True) # Check if it worked FETCH_HEAD = '%s/.git/FETCH_HEAD' % project_path if os.stat(FETCH_HEAD).st_size == 0: From 835636af89071cb9cf0d190f2b0e9051fb6f20e8 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Sat, 7 Feb 2015 18:59:36 -0600 Subject: [PATCH 0851/1096] releasetools: fix cleaning up /tmp/ * previous commit did exactly nothing... Change-Id: I66876aff83528596d628d24e60b5d4c0d81577bd --- tools/releasetools/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index ea786336422..1225177d5b8 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -434,7 +434,7 @@ def UnzipTemp(filename, pattern=None): OPTIONS.tempfiles.append(tmp) def unzip_to_dir(filename, dirname): - cmd = ["rm", "-rf", dirname + filename, "targetfiles-*"] + subprocess.call(["rm", "-rf", dirname + filename, "targetfiles-*"]) cmd = ["unzip", "-o", "-q", filename, "-d", dirname] if pattern is not None: cmd.append(pattern) From 8e4c07ed05996a1facf15a5ebea89bbf3701fb03 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Tue, 10 Feb 2015 23:58:10 +0000 Subject: [PATCH 0852/1096] Revert "Add handheld_core_hardware.xml to telephony base" Don't do this. handheld_core_hardware.xml includes feature declarations that aren't mandatory, particularly cameras and magnetometers, but also things like managed users. According to the CDD, these are optional. Go back to the pre-L mechanism of including the declarations per-device to make them accurate. This reverts commit dccce7bbe9673d4b8ce1a3559182767f926e1ff8. Conflicts: target/product/full_base_telephony.mk Change-Id: I6db55082295171b78fe595e783799ee54458c4fd --- target/product/full_base_telephony.mk | 3 --- 1 file changed, 3 deletions(-) diff --git a/target/product/full_base_telephony.mk b/target/product/full_base_telephony.mk index 4d6fce7a63a..7988e9b777d 100644 --- a/target/product/full_base_telephony.mk +++ b/target/product/full_base_telephony.mk @@ -22,8 +22,5 @@ PRODUCT_PROPERTY_OVERRIDES := \ keyguard.no_require_sim=true -PRODUCT_COPY_FILES := \ - frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml - $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/telephony.mk) From f86f370e4603502bb3c21db85934ad45b273435b Mon Sep 17 00:00:00 2001 From: Jonathan Steadman Date: Wed, 11 Feb 2015 11:41:30 -0800 Subject: [PATCH 0853/1096] Revert "Add phone directory to frameworks/base." There is no phone directory in frameworks/base. Remove this to reduce build warnings. This reverts commit 7d36e1574fc196c314c1f590284dfe8783211a48. Change-Id: Ia495461189e75b23deb2f4bdc393ec7de993527a --- core/pathmap.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/core/pathmap.mk b/core/pathmap.mk index 80b03226805..84d2b9d9674 100644 --- a/core/pathmap.mk +++ b/core/pathmap.mk @@ -116,7 +116,6 @@ FRAMEWORKS_BASE_SUBDIRS := \ sax \ telecomm \ telephony \ - phone \ wifi \ keystore \ rs \ From 0689774b3d9416ce6478e169e9afdeeb0f0b002f Mon Sep 17 00:00:00 2001 From: d34d Date: Fri, 13 Feb 2015 10:35:31 -0800 Subject: [PATCH 0854/1096] Themes: Include tm command line tool Change-Id: Icecf9c322102a3d5489d165d53f21c62835dcca7 --- target/product/base.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/product/base.mk b/target/product/base.mk index 0d052b52f10..751677abc03 100644 --- a/target/product/base.mk +++ b/target/product/base.mk @@ -110,6 +110,7 @@ PRODUCT_PACKAGES += \ settings \ svc \ tc \ + tm \ vdc \ vold \ wm From 9a89692cc638fc7bd9d6f702693091f3df03dcd4 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Tue, 19 Jun 2012 18:39:41 -0700 Subject: [PATCH 0855/1096] add unpackbootimg to otatools Change-Id: I4e294c05eacc8bef8273247bcf1bf382291a3d31 --- core/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/core/Makefile b/core/Makefile index 83576844127..f2bf1f0ca3c 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1352,6 +1352,7 @@ DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ $(HOST_OUT_EXECUTABLES)/adb \ $(HOST_OUT_EXECUTABLES)/mkbootfs \ $(HOST_OUT_EXECUTABLES)/mkbootimg \ + $(HOST_OUT_EXECUTABLES)/unpackbootimg \ $(HOST_OUT_EXECUTABLES)/fs_config \ $(HOST_OUT_EXECUTABLES)/mkyaffs2image \ $(HOST_OUT_EXECUTABLES)/zipalign \ From 7022dd55841dd1097df18f2a7680173270610ac1 Mon Sep 17 00:00:00 2001 From: Marcos Marado Date: Tue, 13 Jan 2015 15:14:28 +0000 Subject: [PATCH 0856/1096] dopush only tries to push if its arg doesn't fail `dopush mm`, as an example, tried to do mm, ignored its result, and went to push. Now, it does mm, and if mm exits successfully it continues to push the results, but if mm fails dopush stops, returning mm's return code. This is useful for having things like: $ mmp && adb reboot which now reboot the device weather the changes were pushed or not. With this patch, the device will only get rebooted if the compilation succeeds. Change-Id: I001e3dd83e25a775919adbccbd49914da1e94cde --- envsetup.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 23174162aea..5d8011a1a28 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2410,7 +2410,11 @@ function dopush() adb remount &> /dev/null mkdir -p $OUT - $func $* | tee $OUT/.log + ($func $*|tee $OUT/.log;return ${PIPESTATUS[0]}) + ret=$?; + if [ $ret -ne 0 ]; then + rm -f $OUT/.log;return $ret + fi # Install: LOC="$(cat $OUT/.log | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' | grep '^Install: ' | cut -d ':' -f 2)" From 1cd77d896ee18fc664b1c63ac484f1727738f788 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Thu, 19 Feb 2015 14:29:21 +0200 Subject: [PATCH 0857/1096] Don't enable ADB by default on userdebug builds Change-Id: I33ae5c6f2787017a62e679aa0c28d4b909d45935 --- tools/post_process_props.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/post_process_props.py b/tools/post_process_props.py index a20ded968f0..52bfd38bde7 100755 --- a/tools/post_process_props.py +++ b/tools/post_process_props.py @@ -40,9 +40,8 @@ def mangle_build_prop(prop, overrides): # Put the modifications that you need to make into the /default.prop into this # function. The prop object has get(name) and put(name,value) methods. def mangle_default_prop(prop): - # If ro.debuggable is 1, then enable adb on USB by default - # (this is for userdebug builds) - if prop.get("ro.debuggable") == "1": + # If ro.build.type is eng, then enable adb on USB by default + if prop.get("ro.build.type") == "eng": val = prop.get("persist.sys.usb.config") if val == "": val = "adb" From 13f7d2a9840c8808b91e535ed8979e15575c57aa Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Fri, 20 Feb 2015 13:13:37 -0800 Subject: [PATCH 0858/1096] Revert "build: Handle custom boot images properly" We don't want to force this since we need to be able to re-sign boot images with proper keys, which requires rebuilding of the images. This also has an error in it from merging (dropped _MK). This reverts commit 22913dea82299eac7e1a5e754102b89af4796a0d. Change-Id: Id1353e9883c3f24bbc10e685f43bede779430025 --- core/Makefile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/core/Makefile b/core/Makefile index f2bf1f0ca3c..fe412918a89 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1536,12 +1536,6 @@ endif @# Contents of the data image $(hide) $(call package_files-copy-root, \ $(TARGET_OUT_DATA),$(zip_root)/DATA) -ifdef BOARD_CUSTOM_BOOTIMG - @# Prebuilt boot images - $(hide) mkdir -p $(zip_root)/BOOTABLE_IMAGES - $(hide) $(ACP) $(INSTALLED_BOOTIMAGE_TARGET) $(zip_root)/BOOTABLE_IMAGES/ - $(hide) $(ACP) $(INSTALLED_RECOVERYIMAGE_TARGET) $(zip_root)/BOOTABLE_IMAGES/ -endif ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE @# Contents of the vendor image $(hide) $(call package_files-copy-root, \ From b3c437765ad98795519a07a0d636dace05455b2c Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Sun, 22 Feb 2015 15:14:26 -0800 Subject: [PATCH 0859/1096] releasetools: Store and use the dt image file through target files Target files packages may be used for signing images separate from the build process. Store the device tree image file in the target files package so it can be used during the signing process. Change-Id: Ie8507121fa9c4ba57ecffeab05bd859ae5f5b788 --- core/Makefile | 4 ++-- tools/releasetools/common.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/Makefile b/core/Makefile index fe412918a89..32c3749ce5d 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1488,7 +1488,7 @@ ifdef BOARD_RAMDISK_OFFSET $(hide) echo "$(BOARD_RAMDISK_OFFSET)" > $(zip_root)/RECOVERY/ramdisk_offset endif ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) - $(hide) echo "$(INSTALLED_DTIMAGE_TARGET)" > $(zip_root)/RECOVERY/dt_args + $(hide) $(ACP) $(INSTALLED_DTIMAGE_TARGET) $(zip_root)/RECOVERY/dt endif @# Components of the boot image $(hide) mkdir -p $(zip_root)/BOOT @@ -1522,7 +1522,7 @@ ifdef BOARD_RAMDISK_OFFSET endif ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) - $(hide) echo "$(INSTALLED_DTIMAGE_TARGET)" > $(zip_root)/BOOT/dt_args + $(hide) $(ACP) $(INSTALLED_DTIMAGE_TARGET) $(zip_root)/BOOT/dt endif ifdef ZIP_SAVE_UBOOTIMG_ARGS $(hide) echo "$(ZIP_SAVE_UBOOTIMG_ARGS)" > $(zip_root)/BOOT/ubootargs diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 1225177d5b8..c3699b63651 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -355,10 +355,10 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): cmd.append("--ramdisk_offset") cmd.append(open(fn).read().rstrip("\n")) - fn = os.path.join(sourcedir, "dt_args") + fn = os.path.join(sourcedir, "dt") if os.access(fn, os.F_OK): cmd.append("--dt") - cmd.append(open(fn).read().rstrip("\n")) + cmd.append(fn) fn = os.path.join(sourcedir, "pagesize") if os.access(fn, os.F_OK): From 09539d75e57878ccb68a36b48dcd147ea1e8b0cc Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Mon, 23 Feb 2015 00:38:24 +0000 Subject: [PATCH 0860/1096] Revert "Revert "build: Handle custom boot images properly"" This is still needed, per this discussion here: http://review.cyanogenmod.org/#/c/76919/ This reverts commit 78d216bc157021e111a31a6606622cef4b9d383d. Change-Id: If494c2c6468185bc0e10cdb92847a9f8429b79c4 --- core/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/Makefile b/core/Makefile index 32c3749ce5d..5fc63ac3685 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1536,6 +1536,12 @@ endif @# Contents of the data image $(hide) $(call package_files-copy-root, \ $(TARGET_OUT_DATA),$(zip_root)/DATA) +ifdef BOARD_CUSTOM_BOOTIMG + @# Prebuilt boot images + $(hide) mkdir -p $(zip_root)/BOOTABLE_IMAGES + $(hide) $(ACP) $(INSTALLED_BOOTIMAGE_TARGET) $(zip_root)/BOOTABLE_IMAGES/ + $(hide) $(ACP) $(INSTALLED_RECOVERYIMAGE_TARGET) $(zip_root)/BOOTABLE_IMAGES/ +endif ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE @# Contents of the vendor image $(hide) $(call package_files-copy-root, \ From a22ccf6d68a92e3dcd725702605c42e99bfb367c Mon Sep 17 00:00:00 2001 From: Brian Chu Date: Wed, 11 Feb 2015 16:07:53 -0800 Subject: [PATCH 0861/1096] recovery: Properly populate recovery/root on Darwin `cp -R` is not a frequently used pattern in AOSP and has interoperability problems between BSD cp and GNU cp. First, the build is not resilient to old builds that did not complete, since BSD cp does not overwrite by default when used recursively: Copying baseline ramdisk... cp: symlink: /sbin/healthd: File exists make: *** [/Volumes/code/client/out/target/product/hammerhead/ramdisk-recovery.img] Error 1 make: *** Waiting for unfinished jobs.... ... #### make failed to build some targets (06:57 (mm:ss)) #### Second, BSD cp -R begins the source tree inside the specified source, resulting in a broken recovery on a brand new build. $ uname -s Darwin $ cp -R root/ recovery $ ls recovery/root ls: recovery/root: No such file or directory Change-Id: Ia47ac1ef2c25c7a9a34a587ce71e63dadb2b750c --- core/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 5fc63ac3685..f7323ec7033 100644 --- a/core/Makefile +++ b/core/Makefile @@ -920,7 +920,7 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(hide) mkdir -p $(TARGET_RECOVERY_OUT) $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/etc $(TARGET_RECOVERY_ROOT_OUT)/tmp @echo -e ${CL_CYN}"Copying baseline ramdisk..."${CL_RST} - $(hide) cp -R $(TARGET_ROOT_OUT)/ $(TARGET_RECOVERY_OUT) + $(hide) (cd $(PRODUCT_OUT) && tar -cf - $(TARGET_COPY_OUT_ROOT) | (cd $(TARGET_RECOVERY_OUT) && tar -xf -)) @echo -e ${CL_CYN}"Modifying ramdisk contents..."${CL_RST} $(hide) rm -f $(TARGET_RECOVERY_ROOT_OUT)/init*.rc $(hide) cp -f $(recovery_initrc) $(TARGET_RECOVERY_ROOT_OUT)/ From 46b69dab7ad9057d2ad95ddc5fdc7d0cb1ec5a27 Mon Sep 17 00:00:00 2001 From: Scott Mertz Date: Thu, 26 Feb 2015 10:51:44 -0800 Subject: [PATCH 0862/1096] Enable ADB by default when ro.adb.secure is not 1 * Property ro.build.type is not part of the default.prop we can't use this to decide how to apply adb by default within this function Change-Id: Ib3eb24c655353966d64c7148d7530244b628ce94 --- tools/post_process_props.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/post_process_props.py b/tools/post_process_props.py index 52bfd38bde7..82c92a808c9 100755 --- a/tools/post_process_props.py +++ b/tools/post_process_props.py @@ -40,8 +40,9 @@ def mangle_build_prop(prop, overrides): # Put the modifications that you need to make into the /default.prop into this # function. The prop object has get(name) and put(name,value) methods. def mangle_default_prop(prop): - # If ro.build.type is eng, then enable adb on USB by default - if prop.get("ro.build.type") == "eng": + # If ro.adb.secure is not 1, then enable adb on USB by default + # (this is for eng builds) + if prop.get("ro.adb.secure") != "1": val = prop.get("persist.sys.usb.config") if val == "": val = "adb" From ec0d162d5f1d3a41ec86000a5e671a5be2043ecf Mon Sep 17 00:00:00 2001 From: Scott Mertz Date: Tue, 17 Feb 2015 02:43:12 -0800 Subject: [PATCH 0863/1096] [2/3] CmHardwareService: add cm hardware jar to system server Change-Id: Ie6ecb4af88a20163aceb3c38b38e10af10f1720f --- target/product/core_minimal.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk index d735f946765..f221094c64e 100644 --- a/target/product/core_minimal.mk +++ b/target/product/core_minimal.mk @@ -97,6 +97,7 @@ PRODUCT_BOOT_JARS := \ # The order of PRODUCT_SYSTEM_SERVER_JARS matters. PRODUCT_SYSTEM_SERVER_JARS := \ + org.cyanogenmod.hardware \ services \ ethernet-service \ wifi-service From 6c68eaf15bce108c1c175c77c7d49a842d4d345e Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Sun, 22 Feb 2015 23:23:13 -0800 Subject: [PATCH 0864/1096] releasetools: Add bootable image signing Set PRODUCT_PRIVATE_KEY to the path of the boot image signing certificate to sign an image for secure boot. Change-Id: I2c767c6f9c3740bed3d7094d2d0b50a075e08abc --- tools/releasetools/common.py | 40 +++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index c3699b63651..55fdb2bdc00 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -296,6 +296,7 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): ramdisk_img = tempfile.NamedTemporaryFile() img = tempfile.NamedTemporaryFile() + bootimg_key = os.getenv("PRODUCT_PRIVATE_KEY", None) if os.access(fs_config_file, os.F_OK): cmd = ["mkbootfs", "-f", fs_config_file, os.path.join(sourcedir, "RAMDISK")] @@ -362,8 +363,9 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): fn = os.path.join(sourcedir, "pagesize") if os.access(fn, os.F_OK): + kernel_pagesize=open(fn).read().rstrip("\n") cmd.append("--pagesize") - cmd.append(open(fn).read().rstrip("\n")) + cmd.append(kernel_pagesize) args = info_dict.get("mkbootimg_args", None) if args and args.strip(): @@ -376,6 +378,42 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): assert p.returncode == 0, "mkbootimg of %s image failed" % ( os.path.basename(sourcedir),) + if bootimg_key and os.path.exists(bootimg_key) and kernel_pagesize > 0: + print "Signing bootable image..." + bootimg_key_passwords = {} + bootimg_key_passwords.update(PasswordManager().GetPasswords(bootimg_key.split())) + bootimg_key_password = bootimg_key_passwords[bootimg_key] + if bootimg_key_password is not None: + bootimg_key_password += "\n" + img_sha256 = tempfile.NamedTemporaryFile() + img_sig = tempfile.NamedTemporaryFile() + img_sig_padded = tempfile.NamedTemporaryFile() + img_secure = tempfile.NamedTemporaryFile() + p = Run(["openssl", "dgst", "-sha256", "-binary", "-out", img_sha256.name, img.name], + stdout=subprocess.PIPE) + p.communicate() + assert p.returncode == 0, "signing of bootable image failed" + p = Run(["openssl", "rsautl", "-sign", "-in", img_sha256.name, "-inkey", bootimg_key, "-out", + img_sig.name, "-passin", "stdin"], stdin=subprocess.PIPE, stdout=subprocess.PIPE) + p.communicate(bootimg_key_password) + assert p.returncode == 0, "signing of bootable image failed" + p = Run(["dd", "if=/dev/zero", "of=%s" % img_sig_padded.name, "bs=%s" % kernel_pagesize, + "count=1"], stdout=subprocess.PIPE) + p.communicate() + assert p.returncode == 0, "signing of bootable image failed" + p = Run(["dd", "if=%s" % img_sig.name, "of=%s" % img_sig_padded.name, "conv=notrunc"], + stdout=subprocess.PIPE) + p.communicate() + assert p.returncode == 0, "signing of bootable image failed" + p = Run(["cat", img.name, img_sig_padded.name], stdout=img_secure.file.fileno()) + p.communicate() + assert p.returncode == 0, "signing of bootable image failed" + shutil.copyfile(img_secure.name, img.name) + img_sha256.close() + img_sig.close() + img_sig_padded.close() + img_secure.close() + if info_dict.get("verity_key", None): path = "/" + os.path.basename(sourcedir).lower() cmd = ["boot_signer", path, img.name, info_dict["verity_key"] + ".pk8", info_dict["verity_key"] + ".x509.pem", img.name] From 83324f5654d0990aaea3ddcedfe8e240b220712e Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Mon, 9 Mar 2015 15:07:08 +0000 Subject: [PATCH 0865/1096] build: Add support for additional kernel config snippet * Add support for TARGET_KERNEL_ADDITIONAL_CONFIG which will append a config snippet from arch/$ARCH/configs/ to the main defconfig. * This can be used for various things, such as including DIAG support into debuggable builds. Change-Id: Ifa48688a3f951dd8ecc9a13a27de3a476e7bf633 --- core/tasks/kernel.mk | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 2c492712090..764532cfabe 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -72,6 +72,9 @@ ifeq ($(KERNEL_ARCH),arm64) endif endif +ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),) +KERNEL_ADDITIONAL_CONFIG := $(TARGET_KERNEL_ADDITIONAL_CONFIG) +endif ## Do be discontinued in a future version. Notify builder about target ## kernel format requirement @@ -204,6 +207,10 @@ $(KERNEL_CONFIG): $(KERNEL_OUT) echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi + $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ + echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ + cat $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG) >> $(KERNEL_OUT)/.config; \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi TARGET_KERNEL_BINARIES: $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL) $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE) @@ -232,6 +239,10 @@ $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG) echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi + $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ + echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ + cat $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG) >> $(KERNEL_OUT)/.config; \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) tags From 81ea6db06e223a393d2c34a9ee08c48907f3eb0d Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Tue, 10 Mar 2015 18:58:23 -0700 Subject: [PATCH 0866/1096] build: Update install tools packaging for target-files support Modifies "build: ota: Support for install tools in /tmp/install" to support signing steps being split from build steps. Package install files into target-files INSTALL path Read from target-files for OTA package creation Change-Id: I64f919c2a757b5474f6cc5f82bd6c33c2a8b558a --- core/Makefile | 2 ++ tools/releasetools/ota_from_target_files | 11 +++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/Makefile b/core/Makefile index f7323ec7033..aa1bb733498 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1462,6 +1462,8 @@ $(BUILT_TARGET_FILES_PACKAGE): \ $(hide) mkdir -p $(zip_root)/RECOVERY $(hide) $(call package_files-copy-root, \ $(TARGET_RECOVERY_ROOT_OUT),$(zip_root)/RECOVERY/RAMDISK) + @# OTA install helpers + $(hide) $(call package_files-copy-root, $(OUT)/install, $(zip_root)/INSTALL) ifdef INSTALLED_KERNEL_TARGET $(hide) $(ACP) $(INSTALLED_KERNEL_TARGET) $(zip_root)/RECOVERY/kernel endif diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 3059e35c2c5..76a4b48f89e 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -477,13 +477,12 @@ def GetImage(which, tmpdir, info_dict): def CopyInstallTools(output_zip): - oldcwd = os.getcwd() - os.chdir(os.getenv('OUT')) - for root, subdirs, files in os.walk("install"): + install_path = os.path.join(OPTIONS.input_tmp, "INSTALL") + for root, subdirs, files in os.walk(install_path): for f in files: - p = os.path.join(root, f) - output_zip.write(p, p) - os.chdir(oldcwd) + install_source = os.path.join(root, f) + install_target = os.path.join("install", os.path.relpath(root, install_path), f) + output_zip.write(install_source, install_target) def WriteFullOTAPackage(input_zip, output_zip): From caa45d6db77982ec592f1bc196d6ae72f1dda57f Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 16 Mar 2015 18:12:36 -0700 Subject: [PATCH 0867/1096] "LMY47P" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 29b44b78178..677ba9c2d0d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47O +export BUILD_ID=LMY47P From cc61059e2cfc62efb0c13804ac99abb3394d0243 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 20 Mar 2015 22:42:26 -0700 Subject: [PATCH 0868/1096] "LMY47Q" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 677ba9c2d0d..c0c33ae4d21 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47P +export BUILD_ID=LMY47Q From 33045bedb902b02eefac4ad18d3507b35d4b72cd Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 25 Mar 2015 18:50:30 -0700 Subject: [PATCH 0869/1096] "LMY47R" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index c0c33ae4d21..3dcabc98bef 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47Q +export BUILD_ID=LMY47R From 9ef1170e93314ccb33a09ae4eb93d669c6073cb6 Mon Sep 17 00:00:00 2001 From: Bart Sears Date: Wed, 25 Mar 2015 21:04:38 -0700 Subject: [PATCH 0870/1096] DO NOT MERGE - Bump version to 5.1.1 Bug: 19939307 Change-Id: I069f514fe6d3759aa7dde38627c54f7bed38c1bb --- CleanSpec.mk | 5 +++++ core/version_defaults.mk | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CleanSpec.mk b/CleanSpec.mk index 6e7c9b0d321..e706b9c9e5e 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -309,6 +309,11 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*) +# 5.1.1! +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/version_defaults.mk b/core/version_defaults.mk index d87a032386f..cc63286b28f 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -41,7 +41,7 @@ ifeq "" "$(PLATFORM_VERSION)" # which is the version that we reveal to the end user. # Update this value when the platform version changes (rather # than overriding it somewhere else). Can be an arbitrary string. - PLATFORM_VERSION := 5.1 + PLATFORM_VERSION := 5.1.1 endif ifeq "" "$(PLATFORM_SDK_VERSION)" From 60c5a0928625b56f7ec9884173d0c1deb937d3a8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 27 Mar 2015 15:05:16 -0700 Subject: [PATCH 0871/1096] "LMY47S" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3dcabc98bef..8b78098698a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47R +export BUILD_ID=LMY47S From 3892a6c15b8e0b4c5902e0c252bfadb7d134f8a2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 31 Mar 2015 15:16:40 -0700 Subject: [PATCH 0872/1096] "LMY47T" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8b78098698a..1bc52c3b7f7 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47S +export BUILD_ID=LMY47T From 7435a914a1c402d83ae0934d5e8ec66c7ac39076 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Tue, 31 Mar 2015 17:09:52 -0700 Subject: [PATCH 0873/1096] build: Use xxxhdpi recovery resources on 560dpi devices * Because we don't have an exact match. Change-Id: I76be485d1390eb89a52f91c365ff79157ae02571 --- core/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/Makefile b/core/Makefile index aa1bb733498..66dddc23753 100644 --- a/core/Makefile +++ b/core/Makefile @@ -800,8 +800,12 @@ recovery_resources_common := $(call project-path-for,recovery)/res # Set recovery_density to the density bucket of the device. recovery_density := unknown ifneq (,$(PRODUCT_AAPT_PREF_CONFIG)) +ifeq ($(PRODUCT_AAPT_PREF_CONFIG),560dpi) +recovery_density := xxxhdpi +else # If PRODUCT_AAPT_PREF_CONFIG includes a dpi bucket, then use that value. recovery_density := $(filter %dpi,$(PRODUCT_AAPT_PREF_CONFIG)) +endif else # Otherwise, use the default medium density. recovery_densities := mdpi From b2bc140ba6cee19680b7ffbaff2a6d348234d016 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 1 Apr 2015 10:53:02 -0700 Subject: [PATCH 0874/1096] "LMY47U" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1bc52c3b7f7..8d782bb843b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47T +export BUILD_ID=LMY47U From 3dc1ee21c1a8d6cfdf0328ab91ee7ef3616b4492 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 1 Apr 2015 12:31:20 -0700 Subject: [PATCH 0875/1096] "LVZ01" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8d782bb843b..dce6579829e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47U +export BUILD_ID=LVZ01 From 8c3d038770aa7227b664c533057da45f9f5710d2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 1 Apr 2015 12:41:33 -0700 Subject: [PATCH 0876/1096] "LVY47I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index dce6579829e..04d6a53fe78 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVZ01 +export BUILD_ID=LVY47I From a14c43f472d7603b348235d0792ef14430e88cde Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 1 Apr 2015 14:39:48 -0700 Subject: [PATCH 0877/1096] "LVY47J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 04d6a53fe78..40e69f3b43e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY47I +export BUILD_ID=LVY47J From 2e6c7c444adcaed5ed9faa1a3a680732871faa11 Mon Sep 17 00:00:00 2001 From: Rashed Abdel-Tawab Date: Tue, 24 Feb 2015 23:00:38 -0500 Subject: [PATCH 0878/1096] qcom_utils: Add msm8992 and msm8994 * The Snapdragon 808 will be releasing as the msm8992 so reference it as such. * The Snapdragon 810 is already released and used, so build the qcom utilities for devices using msm8994. Change-Id: I564cb68295099a73fefd24d43e19ca371968ef44 --- core/qcom_utils.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/qcom_utils.mk b/core/qcom_utils.mk index 1177ad438db..d1dd262b033 100755 --- a/core/qcom_utils.mk +++ b/core/qcom_utils.mk @@ -8,6 +8,8 @@ QCOM_BOARD_PLATFORMS += msm8916 QCOM_BOARD_PLATFORMS += msm8960 QCOM_BOARD_PLATFORMS += msm8974 QCOM_BOARD_PLATFORMS += mpq8092 +QCOM_BOARD_PLATFORMS += msm8992 +QCOM_BOARD_PLATFORMS += msm8994 QCOM_BOARD_PLATFORMS += msm_bronze QCOM_BOARD_PLATFORMS += apq8084 From a9c8e589abbd5f14df1ffac6d6e90f83bd6648fb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 6 Apr 2015 18:51:43 -0700 Subject: [PATCH 0879/1096] "LMY47V" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 8d782bb843b..fa2386729d0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47U +export BUILD_ID=LMY47V From 76db86ac5fe105e6954ade79b649b5b64a9fb7f5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 7 Apr 2015 10:00:03 -0700 Subject: [PATCH 0880/1096] "LMY47W" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fa2386729d0..0b7c28f8f2e 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47V +export BUILD_ID=LMY47W From a03e28ae663782c8ca59f6852275906bd500458a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 7 Apr 2015 14:55:24 -0700 Subject: [PATCH 0881/1096] "LVZ07" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0b7c28f8f2e..fea3f212897 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47W +export BUILD_ID=LVZ07 From b49345dc432332c83e6eb56c5c5e43eec93b15d4 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 7 Apr 2015 15:18:30 -0700 Subject: [PATCH 0882/1096] "LVY47K" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index fea3f212897..04d0670f1eb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVZ07 +export BUILD_ID=LVY47K From d014494a0fe2bae6ec4647fc34d25a4b4720b796 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Sun, 28 Sep 2014 01:55:24 +0100 Subject: [PATCH 0883/1096] Add support for mediatek platforms This includes optional support for building the kernel with mediatek's build system, which is usually included with OEM source drops for this platform. (enabled by BOARD_USES_MTK_KERNELBUILD:=true) Change-Id: I69fb50aa17d9c171bf8a7c220a0707c4bc570733 --- core/main.mk | 3 +++ core/mtk_utils.mk | 5 +++++ core/tasks/kernel.mk | 13 +++++++++++++ 3 files changed, 21 insertions(+) create mode 100755 core/mtk_utils.mk diff --git a/core/main.mk b/core/main.mk index dca7d60fa79..cea8327bc25 100644 --- a/core/main.mk +++ b/core/main.mk @@ -101,6 +101,9 @@ include $(BUILD_SYSTEM)/cleanbuild.mk # Bring in Qualcomm helper macros include $(BUILD_SYSTEM)/qcom_utils.mk +# Bring in Mediatek helper macros too +include $(BUILD_SYSTEM)/mtk_utils.mk + # Include the google-specific config -include vendor/google/build/config.mk diff --git a/core/mtk_utils.mk b/core/mtk_utils.mk new file mode 100755 index 00000000000..48fd6605443 --- /dev/null +++ b/core/mtk_utils.mk @@ -0,0 +1,5 @@ +# Board platforms lists to be used for +# TARGET_BOARD_PLATFORM specific featurization +MTK_BOARD_PLATFORMS := mt6592 +MTK_BOARD_PLATFORMS += mt6582 +MTK_BOARD_PLATFORMS += mt6572 diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 764532cfabe..306e8fafc6f 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -140,6 +140,19 @@ else endif endif +ifeq ($(BOARD_HAS_MTK_HARDWARE),true) + ifeq ($(BOARD_USES_MTK_KERNELBUILD),true) + include $(CLEAR_VARS) + $(shell rm -f $(TARGET_PREBUILT_INT_KERNEL)) + FULL_KERNEL_BUILD := false + PROJECT_NAME := $(TARGET_KERNEL_CONFIG) +$(TARGET_PREBUILT_INT_KERNEL): + cd $(TARGET_KERNEL_SOURCE) && env -i PATH=$(PATH) ./makeMtk -t -o=OUT_DIR=$(OUT_DIR),TARGET_BUILD_VARIANT=$(TARGET_BUILD_VARIANT) $(PROJECT_NAME) r k + -cd $(TARGET_KERNEL_SOURCE) && git clean -fd + + endif +endif + ifeq ($(FULL_KERNEL_BUILD),true) KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr From 793c7e33b87dcbd679ee2653e16a08b1df139a02 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 13 Apr 2015 08:28:07 -0700 Subject: [PATCH 0884/1096] "LMY47X" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 0b7c28f8f2e..4da1962dd09 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47W +export BUILD_ID=LMY47X From 8ef784274607c8e36d7cc7f3dd6adb300ae3cf18 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 13 Apr 2015 20:20:40 -0700 Subject: [PATCH 0885/1096] "LVY47X" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4da1962dd09..e1c9a6a8c05 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47X +export BUILD_ID=LVY47X From 4f2b89850550c7557fc4b010d2abb4f058cbf96c Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 15 Apr 2015 09:56:19 -0700 Subject: [PATCH 0886/1096] "LMY47Y" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 4da1962dd09..e12e2b5409b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47X +export BUILD_ID=LMY47Y From 3ad6920e54751cb1e4f1727da2fb74e33440ed80 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Thu, 19 Mar 2015 23:47:55 +0200 Subject: [PATCH 0887/1096] build: Move bacon public key to device tree Change-Id: I50c780203f7ecdd3008ac07146b7c9db91f9a443 --- core/Makefile | 3 +-- target/product/security/bacon.x509.pem | 23 ----------------------- 2 files changed, 1 insertion(+), 25 deletions(-) delete mode 100644 target/product/security/bacon.x509.pem diff --git a/core/Makefile b/core/Makefile index 66dddc23753..106a757666c 100644 --- a/core/Makefile +++ b/core/Makefile @@ -894,8 +894,7 @@ ifneq ($(OTA_PACKAGE_SIGNING_KEY),) else PRODUCT_EXTRA_RECOVERY_KEYS += \ build/target/product/security/cm \ - build/target/product/security/cm-devkey \ - build/target/product/security/bacon + build/target/product/security/cm-devkey endif # Generate a file containing the keys that will be read by the diff --git a/target/product/security/bacon.x509.pem b/target/product/security/bacon.x509.pem deleted file mode 100644 index 8f55bd89851..00000000000 --- a/target/product/security/bacon.x509.pem +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID3zCCAsegAwIBAgIJAMAEaDG2oZE8MA0GCSqGSIb3DQEBBQUAMIGFMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEX -MBUGA1UECgwOQ3lhbm9nZW4sIEluYy4xGzAZBgNVBAsMElJlbGVhc2UgTWFuYWdl -bWVudDEZMBcGA1UEAwwQQ3lhbm9nZW4gUmVsZWFzZTAeFw0xNDA0MzAwMjE4NTFa -Fw00MTA5MTUwMjE4NTFaMIGFMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGlu -Z3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEXMBUGA1UECgwOQ3lhbm9nZW4sIEluYy4x -GzAZBgNVBAsMElJlbGVhc2UgTWFuYWdlbWVudDEZMBcGA1UEAwwQQ3lhbm9nZW4g -UmVsZWFzZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMLEPlqqjB5b -fnylUIqCqN40pXNieEavUTIozE/mocMEb57kReaQPCf611MaOe/LlHvCKfPgYZTa -dzs7c6iFzza5wmeorJW+jnOuCEytIAK1U1t2cRgqezuaUB8GqPbsCy4nP2+3Ch63 -4oaS+m3BTNijEykNBBswCGglxIt+1d3UaUTg9cGf7fCtSnLew4mQ7G6gy12gpoea -21NSkLp9iRmcvOeFoxgi4SEo/4VR8NzhjvN1ZUCWl9s9tosHcNcW6ibzHz/P3SkD -AxK1ZCix0OTYVVe+4yjeOgjjLt4QP1ZOSBd0e2u06DhadsuwXivK5DH0vkC6vjpO -mkAOBV4+oucCAwEAAaNQME4wHQYDVR0OBBYEFLnnevtXiuaduDhDNch66eOzRh6E -MB8GA1UdIwQYMBaAFLnnevtXiuaduDhDNch66eOzRh6EMAwGA1UdEwQFMAMBAf8w -DQYJKoZIhvcNAQEFBQADggEBAHx3TDbdacWTq8I89oUyN+HcoUvI6ItlXSc7LUMj -KBKp5dlweu9BP9Mpv9IlS90nCZZUbQ3WIA8lrEWaZ98LQRsNM7tdgoGniqWSpg4D -rmUVzIRe0XDZHEWeN3zbASHrSOP84oGGw0ChGJuwdEezJVvBxi6WHeNzjxCqUxd7 -XwDkL/sadRgUSIVc9bkv49TOZuZyq0MUFcNtvFAS1t5LpUp6Zt9vjgAixq7XDLh+ -Sx8cmT0JNYf1ISq24cev1vQYBgrktNpRcjZXw/5q0bMBepmZ6KG86rVmKUDiBqVM -Rpty9+c2AELMFu1zQp22LDYttn7e8JXijIgOjF7UKlhzmDo= ------END CERTIFICATE----- From fc14b36454717bd708ac84ef390ed1fd80221ab4 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Wed, 25 Mar 2015 18:14:46 -0700 Subject: [PATCH 0888/1096] releasetools: add compatibility for full ota functions with incrementals Some device-specific releasetool functions may expect that input_zip and input_version are set. For incremental OTAs, target_zip and target_version are set instead. Set input_zip=target_zip and input_version=target_version to add compatibility with these functions. Change-Id: I6a04f67440618d3652396656cc1fe223d4a6b195 --- tools/releasetools/ota_from_target_files | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 76a4b48f89e..bde1c8f1fb7 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -781,7 +781,9 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): source_zip=source_zip, source_version=source_version, target_zip=target_zip, + input_zip=target_zip, target_version=target_version, + input_version=target_version, output_zip=output_zip, script=script, metadata=metadata, @@ -1149,7 +1151,9 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip): source_zip=source_zip, source_version=source_version, target_zip=target_zip, + input_zip=target_zip, target_version=target_version, + input_version=target_version, output_zip=output_zip, script=script, metadata=metadata, From 8c3cb90172eae673562ab7a1035346ccc9e8b330 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Thu, 26 Mar 2015 16:32:34 -0700 Subject: [PATCH 0889/1096] ota_from_target_files: Fix path for SkipNextActionIfTargetExists Without the leading forward slash, the check always fails. Change-Id: I57320c20ca2b384713182082b1ad5321d78dbb2b --- tools/releasetools/ota_from_target_files | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index bde1c8f1fb7..000f103f489 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -1057,7 +1057,7 @@ class FileDifference: so_far = 0 for tf, sf, size, patch_sha in self.patch_list: if tf.name != sf.name: - script.SkipNextActionIfTargetExists(tf.name, tf.sha1) + script.SkipNextActionIfTargetExists("/"+tf.name, tf.sha1) script.PatchCheck("/"+sf.name, tf.sha1, sf.sha1) so_far += sf.size return so_far @@ -1087,7 +1087,7 @@ class FileDifference: deferred_patch_list.append(item) continue if (sf.name != tf.name): - script.SkipNextActionIfTargetExists(tf.name, tf.sha1) + script.SkipNextActionIfTargetExists("/"+tf.name, tf.sha1) script.ApplyPatch("/"+sf.name, "-", tf.size, tf.sha1, sf.sha1, "patch/"+sf.name+".p") so_far += tf.size script.SetProgress(so_far / total_patch_size) From b1e4aad86afcb4b036073c0eb092fa92fcd523fe Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Fri, 27 Mar 2015 20:53:59 -0700 Subject: [PATCH 0890/1096] ota: Include full boot images when imgdiff fails When generating a non-block based incremental, inclue the full boot image when imgdiff fails to generate a patch. This logic is already used for block based incrementals. Change-Id: Idae484ea8c2553a3480961dfa413724e61c52e5f --- tools/releasetools/ota_from_target_files | 52 ++++++++++++++---------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 000f103f489..551f40ecf36 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -1255,19 +1255,24 @@ else if get_stage("%(bcb_dev)s") != "3/3" then so_far += vendor_diff.EmitVerification(script) if updating_boot: + boot_type, boot_device = common.GetTypeAndDevice("/boot", OPTIONS.info_dict) d = common.Difference(target_boot, source_boot) _, _, d = d.ComputePatch() - print "boot target: %d source: %d diff: %d" % ( - target_boot.size, source_boot.size, len(d)) + if d is None: + include_full_boot = True + common.ZipWriteStr(output_zip, "boot.img", target_boot.data) + else: + include_full_boot = False - common.ZipWriteStr(output_zip, "patch/boot.img.p", d) + print "boot target: %d source: %d diff: %d" % ( + target_boot.size, source_boot.size, len(d)) - boot_type, boot_device = common.GetTypeAndDevice("/boot", OPTIONS.info_dict) + common.ZipWriteStr(output_zip, "patch/boot.img.p", d) - script.PatchCheck("%s:%s:%d:%s:%d:%s" % - (boot_type, boot_device, - source_boot.size, source_boot.sha1, - target_boot.size, target_boot.sha1)) + script.PatchCheck("%s:%s:%d:%s:%d:%s" % + (boot_type, boot_device, + source_boot.size, source_boot.sha1, + target_boot.size, target_boot.sha1)) so_far += source_boot.size size = [] @@ -1316,20 +1321,23 @@ else if not OPTIONS.two_step: if updating_boot: - # Produce the boot image by applying a patch to the current - # contents of the boot partition, and write it back to the - # partition. - script.Print("Patching boot image...") - script.ApplyPatch("%s:%s:%d:%s:%d:%s" - % (boot_type, boot_device, - source_boot.size, source_boot.sha1, - target_boot.size, target_boot.sha1), - "-", - target_boot.size, target_boot.sha1, - source_boot.sha1, "patch/boot.img.p") - so_far += target_boot.size - script.SetProgress(so_far / total_patch_size) - print "boot image changed; including." + if include_full_boot: + print "boot image changed; including full." + script.Print("Installing boot image...") + script.WriteRawImage("/boot", "boot.img") + else: + # Produce the boot image by applying a patch to the current + # contents of the boot partition, and write it back to the + # partition. + print "boot image changed; including patch." + script.Print("Patching boot image...") + script.ApplyPatch("%s:%s:%d:%s:%d:%s" + % (boot_type, boot_device, + source_boot.size, source_boot.sha1, + target_boot.size, target_boot.sha1), + "-", + target_boot.size, target_boot.sha1, + source_boot.sha1, "patch/boot.img.p") else: print "boot image unchanged; skipping." From ab8a78e1816e3b51bface57c6afa02552c27eff7 Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Wed, 15 Apr 2015 12:00:43 -0700 Subject: [PATCH 0891/1096] build/core: Define find-other-aidl-files. Useful when utilizing relative paths that mention external projects. Mimics find-other-java-files, etc. Change-Id: I3df67f4f35a931facbb1de76936936b092a42bb2 --- core/definitions.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/definitions.mk b/core/definitions.mk index 5579bcc6bdf..757b24aea2c 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -355,6 +355,10 @@ define find-other-java-files $(call find-subdir-files,$(1) -name "*.java" -and -not -name ".*") endef +define find-other-aidl-files + $(call find-subdir-files,$(1) -name "*.aidl" -and -not -name ".*") +endef + define find-other-html-files $(call find-subdir-files,$(1) -name "*.html" -and -not -name ".*") endef From a8cf30e72cea982e95e2dadf3dda9180ec8ad4e5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 16 Apr 2015 14:37:17 -0700 Subject: [PATCH 0892/1096] "LMY47Z" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index e12e2b5409b..34159d44baf 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47Y +export BUILD_ID=LMY47Z From 0b02dd49a3e5a35623cb1f1294f63ea19793b23a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 17 Apr 2015 10:23:55 -0700 Subject: [PATCH 0893/1096] "LMY48B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 34159d44baf..5335dc816a0 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47Z +export BUILD_ID=LMY48B From 1665b858d8126c5d332ec57785bc53108b130815 Mon Sep 17 00:00:00 2001 From: Tom Marshall Date: Mon, 23 Mar 2015 07:09:38 -0700 Subject: [PATCH 0894/1096] build: releasetools: Support transparent compression Change-Id: I339fe8dbf287ce7c88e133a5b3f5c502dc56dd3b --- core/Makefile | 5 +++++ tools/releasetools/build_image.py | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 106a757666c..e18dda59a0a 100644 --- a/core/Makefile +++ b/core/Makefile @@ -735,6 +735,10 @@ ifneq (true,$(TARGET_USERIMAGES_SPARSE_EXT_DISABLED)) INTERNAL_USERIMAGES_SPARSE_EXT_FLAG := -s endif +ifneq ($(TARGET_TRANSPARENT_COMPRESSION_METHOD),) + INTERNAL_TRANSPARENT_COMPRESSION_METHOD := $(TARGET_TRANSPARENT_COMPRESSION_METHOD) +endif + ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true) INTERNAL_USERIMAGES_DEPS := $(SIMG2IMG) INTERNAL_USERIMAGES_DEPS += $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(E2FSCK) @@ -770,6 +774,7 @@ $(if $(BOARD_VENDORIMAGE_JOURNAL_SIZE),$(hide) echo "vendor_journal_size=$(BOARD $(if $(BOARD_OEMIMAGE_PARTITION_SIZE),$(hide) echo "oem_size=$(BOARD_OEMIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_OEMIMAGE_JOURNAL_SIZE),$(hide) echo "oem_journal_size=$(BOARD_OEMIMAGE_JOURNAL_SIZE)" >> $(1)) $(if $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG),$(hide) echo "extfs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG)" >> $(1)) +$(if $(INTERNAL_TRANSPARENT_COMPRESSION_METHOD),$(hide) echo "transparent_compression_method=$(INTERNAL_TRANSPARENT_COMPRESSION_METHOD)" >> $(1)) $(if $(mkyaffs2_extra_flags),$(hide) echo "mkyaffs2_extra_flags=$(mkyaffs2_extra_flags)" >> $(1)) $(hide) echo "selinux_fc=$(SELINUX_FC)" >> $(1) $(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),$(hide) echo "verity=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)" >> $(1)) diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 0082a64a452..29ccd62396e 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -248,6 +248,8 @@ def BuildImage(in_dir, prop_dict, out_file, build_command.extend(["-C", fs_config]) if block_list is not None: build_command.extend(["-B", block_list]) + if "transparent_compression_method" in prop_dict: + build_command.extend(["-M", prop_dict["transparent_compression_method"]]) if fc_config is not None: build_command.append(fc_config) elif "selinux_fc" in prop_dict: @@ -312,7 +314,8 @@ def copy_prop(src_p, dest_p): "skip_fsck", "verity", "verity_key", - "verity_signer_cmd" + "verity_signer_cmd", + "transparent_compression_method" ) for p in common_props: copy_prop(p, p) From 6775a976e42df4a2f88226a4f0e785a1cd6535aa Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 20 Apr 2015 09:13:05 -0700 Subject: [PATCH 0895/1096] "LVZ20" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 34159d44baf..6cce38c26e3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY47Z +export BUILD_ID=LVZ20 From 5475640d160f655b0c4459dc42dcfc2ba9377e93 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 20 Apr 2015 09:23:22 -0700 Subject: [PATCH 0896/1096] "LVY47Z" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 6cce38c26e3..22213044cd5 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVZ20 +export BUILD_ID=LVY47Z From c599dca54600c0ee678e5d87923c17c80005d6d6 Mon Sep 17 00:00:00 2001 From: Scott Mertz Date: Mon, 20 Apr 2015 10:40:21 -0700 Subject: [PATCH 0897/1096] Colorize more target file output Change-Id: I25aee19e9a5a06eeeaa4040803c064a140a86778 --- core/dex_preopt_odex_install.mk | 2 +- core/prebuilt_internal.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk index cb38261abe5..514849d906b 100644 --- a/core/dex_preopt_odex_install.mk +++ b/core/dex_preopt_odex_install.mk @@ -118,7 +118,7 @@ $(built_odex): PRIVATE_DEX_PREOPT_FLAGS := $(LOCAL_DEX_PREOPT_FLAGS) $(installed_odex) : $(dir $(LOCAL_INSTALLED_MODULE))%$(notdir $(word 1,$(installed_odex))) \ : $(dir $(LOCAL_BUILT_MODULE))%$(notdir $(word 1,$(built_odex))) \ | $(ACP) - @echo "Install: $@" + @echo -e ${CL_CYN}"Install: $@"${CL_RST} $(copy-file-to-target) endif diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index bc6088fa2b6..b9adb62742a 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -225,7 +225,7 @@ $(built_apk_splits) : $(built_module_path)/%.apk : $(my_src_dir)/%.apk | $(ACP) # Rules to install the split apks. $(installed_apk_splits) : $(my_module_path)/%.apk : $(built_module_path)/%.apk | $(ACP) - @echo "Install: $@" + @echo -e ${CL_CYN}"Install: $@"${CL_RST} $(copy-file-to-new-target) # Register the additional built and installed files. From 91544cdba61e9644bc480e48f6acb208cee409eb Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Tue, 21 Apr 2015 11:50:36 -0700 Subject: [PATCH 0898/1096] build: Add a couple more custom pathmap variables Change-Id: Ie44b9844c6d82dd73d1ea1f16b565f8bb06652c1 --- core/qcom_target.mk | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 825ddbb1b23..7c578922918 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -7,6 +7,12 @@ endef define ril-set-path-variant $(call project-set-path-variant,ril,TARGET_RIL_VARIANT,hardware/$(1)) endef +define gps-hal-set-path-variant +$(call project-set-path-variant,gps-hal,TARGET_GPS_HAL_PATH,$(1)) +endef +define loc-api-set-path-variant +$(call project-set-path-variant,loc-api,TARGET_LOC_API_PATH,$(1)) +endef ifeq ($(BOARD_USES_QCOM_HARDWARE),true) @@ -47,6 +53,8 @@ $(call qcom-set-path-variant,GPS,gps) $(call project-set-path,qcom-media,hardware/qcom/media-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,SENSORS,sensors) $(call ril-set-path-variant,ril) +$(call loc-api-set-path-variant,vendor/qcom/opensource/location) +$(call gps-hal-set-path-variant,hardware/qcom/gps) else $(call project-set-path,qcom-audio,hardware/qcom/audio/default) $(call qcom-set-path-variant,CAMERA,camera) @@ -55,4 +63,6 @@ $(call qcom-set-path-variant,GPS,gps) $(call project-set-path,qcom-media,hardware/qcom/media/default) $(call qcom-set-path-variant,SENSORS,sensors) $(call ril-set-path-variant,ril) +$(call loc-api-set-path-variant,vendor/qcom/opensource/location) +$(call gps-hal-set-path-variant,hardware/qcom/gps) endif From 67437a3b7dc6eadb102cc658f7091bbdfd48bb1f Mon Sep 17 00:00:00 2001 From: Yevgeny Rouban Date: Mon, 30 Mar 2015 12:57:41 +0600 Subject: [PATCH 0899/1096] build: Add option to compress precompiled odex with gzip To reduce /system size, we add the option to compress odex files Run make with WITH_DEXPREOPT_COMP=true to get odex compressed. This patch needs to be supported by frameworks/native/cmds/installd Change-Id: I8c4e6a30c49a1433f8af61a84ece85c92004da62 Depends-Change-Id: Ifa61af39c5644529699c17d6c19ef03742989afd Signed-off-by: Julien Delayen Signed-off-by: Yevgeny Rouban --- core/dex_preopt_libart.mk | 7 +++++++ core/dex_preopt_odex_install.mk | 14 +++++++++++++- core/setup_one_odex.mk | 17 +++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/core/dex_preopt_libart.mk b/core/dex_preopt_libart.mk index cfbf2218f81..6f7d14d3b5c 100644 --- a/core/dex_preopt_libart.mk +++ b/core/dex_preopt_libart.mk @@ -58,6 +58,13 @@ define get-odex-file-path $(dir $(2))$(1)/$(basename $(notdir $(2))).odex endef +# Returns the path to the .odex.gz file +# $(1): the arch name. +# $(2): the full path (including file name) of the corresponding .jar or .apk. +define get-odex-comp-path +$(dir $(2))$(1)/$(basename $(notdir $(2))).odex.gz +endef + # Returns the path to the image file (such as "/system/framework//boot.art" # $(1): the arch name (such as "arm") # $(2): the image location (such as "/system/framework/boot.art") diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk index 514849d906b..61095539ae5 100644 --- a/core/dex_preopt_odex_install.mk +++ b/core/dex_preopt_odex_install.mk @@ -46,6 +46,7 @@ endif built_odex := installed_odex := +compressed_odex := built_installed_odex := ifdef LOCAL_DEX_PREOPT dexpreopt_boot_jar_module := $(filter $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)) @@ -108,8 +109,10 @@ endif # Compile apps with position-independent code if WITH_DEXPREOPT_PIC=true ifeq (true,$(WITH_DEXPREOPT_PIC)) +ifeq (false,$(WITH_DEXPREOPT_COMP)) LOCAL_DEX_PREOPT_FLAGS += --compile-pic endif +endif $(built_odex): PRIVATE_DEX_PREOPT_FLAGS := $(LOCAL_DEX_PREOPT_FLAGS) @@ -120,13 +123,22 @@ $(installed_odex) : $(dir $(LOCAL_INSTALLED_MODULE))%$(notdir $(word 1,$(install | $(ACP) @echo -e ${CL_CYN}"Install: $@"${CL_RST} $(copy-file-to-target) + +# Ugly syntax - See the definition get-odex-comp-path. +$(compressed_odex) : $(dir $(LOCAL_INSTALLED_MODULE))%$(notdir $(word 1,$(compressed_odex))) \ + : $(dir $(LOCAL_BUILT_MODULE))%$(notdir $(word 1,$(built_odex))) \ + | $(MINIGZIP) + $(hide) mkdir -p $(dir $@) + $(MINIGZIP) -9 < $< > $@ endif -# Add the installed_odex to the list of installed files for this module. +# Add the installed_odex and compressed_odex to the list of installed files for this module. +ALL_MODULES.$(my_register_name).INSTALLED += $(compressed_odex) ALL_MODULES.$(my_register_name).INSTALLED += $(installed_odex) ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(built_installed_odex) # Make sure to install the .odex when you run "make " +$(my_register_name): $(compressed_odex) $(my_register_name): $(installed_odex) endif # LOCAL_DEX_PREOPT diff --git a/core/setup_one_odex.mk b/core/setup_one_odex.mk index ec8a28a5bd8..7d87e0e2308 100644 --- a/core/setup_one_odex.mk +++ b/core/setup_one_odex.mk @@ -18,7 +18,16 @@ # Input variables: my_2nd_arch_prefix # Output(modified) variables: built_odex, installed_odex, built_installed_odex +my_local_odex_comp := + +ifneq (false,$(WITH_DEXPREOPT_COMP)) +ifneq ($(filter %.apk,$(LOCAL_INSTALLED_MODULE)),) +my_local_odex_comp := true +endif +endif + my_built_odex := $(call get-odex-file-path,$($(my_2nd_arch_prefix)DEX2OAT_TARGET_ARCH),$(LOCAL_BUILT_MODULE)) + ifdef LOCAL_DEX_PREOPT_IMAGE_LOCATION my_dex_preopt_image_location := $(LOCAL_DEX_PREOPT_IMAGE_LOCATION) else @@ -32,8 +41,16 @@ $(my_built_odex) : $($(my_2nd_arch_prefix)DEXPREOPT_ONE_FILE_DEPENDENCY_BUILT_BO $(DEXPREOPT_ONE_FILE_DEPENDENCY_TOOLS) \ $(my_dex_preopt_image_filename) +ifeq (true,$(my_local_odex_comp)) +my_installed_odex := $(call get-odex-comp-path,$($(my_2nd_arch_prefix)DEX2OAT_TARGET_ARCH),$(LOCAL_INSTALLED_MODULE)) +else my_installed_odex := $(call get-odex-file-path,$($(my_2nd_arch_prefix)DEX2OAT_TARGET_ARCH),$(LOCAL_INSTALLED_MODULE)) +endif built_odex += $(my_built_odex) +ifeq (true,$(my_local_odex_comp)) +compressed_odex += $(my_installed_odex) +else installed_odex += $(my_installed_odex) +endif built_installed_odex += $(my_built_odex):$(my_installed_odex) From 5bd813f2fdac69cc8d88d1ee36e282e0494690e8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 24 Apr 2015 12:09:29 -0700 Subject: [PATCH 0900/1096] "LVY48B" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 22213044cd5..d2384fff0bb 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY47Z +export BUILD_ID=LVY48B From 11d18009f1a6fbd7de04d8805668c90060d4b50c Mon Sep 17 00:00:00 2001 From: Ethan Chen Date: Mon, 2 Jun 2014 16:49:59 -0700 Subject: [PATCH 0901/1096] Generate extra userdata partition if needed * To support variants of devices which may come in 16/32/64GB variants. Change-Id: I74c32d8316f0450a1445fe95a95e5cabb7a9dd1b (cherry picked from commit aae837f9cbcff739cb660016a6d1abd7ef4663db) --- core/Makefile | 2 + core/generate_extra_images.mk | 29 ++++++++++++++ tools/releasetools/add_img_to_target_files.py | 38 +++++++++++++++++++ tools/releasetools/build_image.py | 13 ++++++- tools/releasetools/common.py | 1 + 5 files changed, 81 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index e18dda59a0a..6cb896c7dd1 100644 --- a/core/Makefile +++ b/core/Makefile @@ -766,6 +766,8 @@ $(if $(BOARD_SYSTEMIMAGE_PARTITION_SIZE),$(hide) echo "system_size=$(BOARD_SYSTE $(if $(BOARD_SYSTEMIMAGE_JOURNAL_SIZE),$(hide) echo "system_journal_size=$(BOARD_SYSTEMIMAGE_JOURNAL_SIZE)" >> $(1)) $(if $(BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "userdata_fs_type=$(BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_USERDATAIMAGE_PARTITION_SIZE),$(hide) echo "userdata_size=$(BOARD_USERDATAIMAGE_PARTITION_SIZE)" >> $(1)) +$(if $(BOARD_USERDATAEXTRAIMAGE_PARTITION_SIZE),$(hide) echo "userdataextra_size=$(BOARD_USERDATAEXTRAIMAGE_PARTITION_SIZE)" >> $(1)) +$(if $(BOARD_USERDATAEXTRAIMAGE_PARTITION_NAME),$(hide) echo "userdataextra_name=$(BOARD_USERDATAEXTRAIMAGE_PARTITION_NAME)" >> $(1)) $(if $(BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "cache_fs_type=$(BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_CACHEIMAGE_PARTITION_SIZE),$(hide) echo "cache_size=$(BOARD_CACHEIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "vendor_fs_type=$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) diff --git a/core/generate_extra_images.mk b/core/generate_extra_images.mk index 8cd18fd0d32..c2536685657 100644 --- a/core/generate_extra_images.mk +++ b/core/generate_extra_images.mk @@ -139,6 +139,35 @@ ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_1G_USERDATAIMAGE_TARGET) endif +#---------------------------------------------------------------------- +# Generate extra userdata images (for variants with multiple mmc sizes) +#---------------------------------------------------------------------- +ifneq ($(BOARD_USERDATAEXTRAIMAGE_PARTITION_SIZE),) + +ifndef BOARD_USERDATAEXTRAIMAGE_PARTITION_NAME + BOARD_USERDATAEXTRAIMAGE_PARTITION_NAME := extra +endif + +BUILT_USERDATAEXTRAIMAGE_TARGET := $(PRODUCT_OUT)/userdata_$(BOARD_USERDATAEXTRAIMAGE_PARTITION_NAME).img + +define build-userdataextraimage-target + $(call pretty,"Target EXTRA userdata fs image: $(INSTALLED_USERDATAEXTRAIMAGE_TARGET)") + @mkdir -p $(TARGET_OUT_DATA) + $(hide) $(MKEXTUSERIMG) -s $(TARGET_OUT_DATA) $@ ext4 data $(BOARD_USERDATAEXTRAIMAGE_PARTITION_SIZE) + $(hide) chmod a+r $@ + $(hide) $(call assert-max-image-size,$@,$(BOARD_USERDATAEXTRAIMAGE_PARTITION_SIZE),yaffs) +endef + +INSTALLED_USERDATAEXTRAIMAGE_TARGET := $(BUILT_USERDATAEXTRAIMAGE_TARGET) +$(INSTALLED_USERDATAEXTRAIMAGE_TARGET): $(INSTALLED_USERDATAIMAGE_TARGET) + $(build-userdataextraimage-target) + +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_USERDATAEXTRAIMAGE_TARGET) +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_USERDATAEXTRAIMAGE_TARGET) + +endif + + #---------------------------------------------------------------------- # Generate NAND images #---------------------------------------------------------------------- diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index e98e4b67387..03334e38bac 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -191,6 +191,42 @@ def AddUserdata(output_zip, prefix="IMAGES/"): os.rmdir(temp_dir) +def AddUserdataExtra(output_zip): + """Create extra userdata image and store it in output_zip.""" + + image_props = build_image.ImagePropFromGlobalDict(OPTIONS.info_dict, + "data_extra") + # If no userdataextra_size is provided for extfs, skip userdata_extra.img. + if (image_props.get("fs_type", "").startswith("ext") and + not image_props.get("partition_size")): + return + + extra_name = image_props.get("partition_name", "extra") + + print "creating userdata_%s.img..." % extra_name + + # The name of the directory it is making an image out of matters to + # mkyaffs2image. So we create a temp dir, and within it we create an + # empty dir named "data", and build the image from that. + temp_dir = tempfile.mkdtemp() + user_dir = os.path.join(temp_dir, "data") + os.mkdir(user_dir) + img = tempfile.NamedTemporaryFile() + + fstab = OPTIONS.info_dict["fstab"] + if fstab: + image_props["fs_type" ] = fstab["/data"].fs_type + succ = build_image.BuildImage(user_dir, image_props, img.name) + assert succ, "build userdata_%s.img image failed" % extra_name + + # Disable size check since this fetches original data partition size + #common.CheckSize(img.name, "userdata_extra.img", OPTIONS.info_dict) + output_zip.write(img.name, "userdata_%s.img" % extra_name) + img.close() + os.rmdir(user_dir) + os.rmdir(temp_dir) + + def AddCache(output_zip, prefix="IMAGES/"): """Create an empty cache image and store it in output_zip.""" @@ -290,6 +326,8 @@ def banner(s): AddVendor(output_zip) banner("userdata") AddUserdata(output_zip) + banner("extrauserdata") + AddUserdataExtra(output_zip) banner("cache") AddCache(output_zip) diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 29ccd62396e..b0e374d4cb1 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -237,8 +237,12 @@ def BuildImage(in_dir, prop_dict, out_file, if "extfs_sparse_flag" in prop_dict: build_command.append(prop_dict["extfs_sparse_flag"]) #run_fsck = True - build_command.extend([in_dir, out_file, fs_type, - prop_dict["mount_point"]]) + if "is_userdataextra" in prop_dict: + build_command.extend([in_dir, out_file, fs_type, + "data"]) + else: + build_command.extend([in_dir, out_file, fs_type, + prop_dict["mount_point"]]) build_command.append(prop_dict["partition_size"]) if "journal_size" in prop_dict: build_command.extend(["-j", prop_dict["journal_size"]]) @@ -331,6 +335,11 @@ def copy_prop(src_p, dest_p): copy_prop("fs_type", "fs_type") copy_prop("userdata_fs_type", "fs_type") copy_prop("userdata_size", "partition_size") + elif mount_point == "data_extra": + copy_prop("fs_type", "fs_type") + copy_prop("userdataextra_size", "partition_size") + copy_prop("userdataextra_name", "partition_name") + d["is_userdataextra"] = True elif mount_point == "cache": copy_prop("cache_fs_type", "fs_type") copy_prop("cache_size", "partition_size") diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 55fdb2bdc00..1e0a263179e 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -600,6 +600,7 @@ def CheckSize(data, target, info_dict): fs_type = None limit = None if info_dict["fstab"]: + if mount_point == "/userdata_extra": mount_point = "/data" if mount_point == "/userdata": mount_point = "/data" p = info_dict["fstab"][mount_point] fs_type = p.fs_type From bca602eb0a7f370a3c5609cb4cb73232e1debc6b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 3 May 2015 19:24:22 -0700 Subject: [PATCH 0902/1096] "LMY48C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5335dc816a0..78729ee1450 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48B +export BUILD_ID=LMY48C From 38deeeebea743f3920b65cbd5c048f5539177bb6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 6 May 2015 12:54:44 -0700 Subject: [PATCH 0903/1096] "LMY48D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 78729ee1450..d5b2762bcae 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48C +export BUILD_ID=LMY48D From 212bf4c58dd5f354db5ea7197f7d7f4acd3f0656 Mon Sep 17 00:00:00 2001 From: Rashed Abdel-Tawab Date: Fri, 1 May 2015 19:32:21 -0400 Subject: [PATCH 0904/1096] build: Move msm899x FLAC metadata flag to qcom_utils.mk Change-Id: I8fa0be15b16324e692547a44ba340657541ca831 --- core/qcom_target.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 7c578922918..69a3287872d 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -31,6 +31,11 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) qcom_flags += -DQCOM_BSP_LEGACY endif + # Enable extra offloading for post-805 targets + ifneq ($(filter msm8992 msm8994,$(TARGET_BOARD_PLATFORM)),) + qcom_flags += -DHAS_EXTRA_FLAC_METADATA + endif + TARGET_GLOBAL_CFLAGS += $(qcom_flags) TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) From 7891efab4f9a63b266106883570524c6ef4fb0f7 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Mon, 11 May 2015 02:57:35 +0300 Subject: [PATCH 0905/1096] kernel: Fix kernelconfig build * Copy the generated defconfig to the correct directory Change-Id: Ia8e259946d67501675dd5a3433165d54df6c13c5 --- core/tasks/kernel.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 306e8fafc6f..1556a263d34 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -265,7 +265,7 @@ kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) menuconfig env KCONFIG_NOTIMESTAMP=true \ $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) savedefconfig - cp $(KERNEL_OUT)/defconfig kernel/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG) + cp $(KERNEL_OUT)/defconfig $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG) endif # FULL_KERNEL_BUILD From d445a0f323a5e74827194e5c0aed5f7c821dbea6 Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Mon, 27 Apr 2015 10:48:47 -0700 Subject: [PATCH 0906/1096] build/target: Include CM platform jar in system server. Also lock to non-release type builds. Change-Id: Iaeecc4b1d8722f543b36cab76081cd49130a9eea --- target/product/core_minimal.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk index f221094c64e..ff63052effb 100644 --- a/target/product/core_minimal.mk +++ b/target/product/core_minimal.mk @@ -102,6 +102,12 @@ PRODUCT_SYSTEM_SERVER_JARS := \ ethernet-service \ wifi-service +ifeq ($(filter NIGHTLY SNAPSHOT EXPERIMENTAL,$(CM_BUILDTYPE)),) +# External system server capable jar +PRODUCT_SYSTEM_SERVER_JARS += \ + org.cyanogenmod.platform +endif + PRODUCT_RUNTIMES := runtime_libart_default PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ From 1ade4062ac6cbec692df816950d4d4350c89f6ac Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Fri, 8 May 2015 14:42:25 -0700 Subject: [PATCH 0907/1096] build/core: Create means of ignoring subdir layer for packages. An external resource package that acts as a secondary framework resource should be presented in system/framework similarily to the framework-res module. Change-Id: Ie4110a184cd7262035110a6a04bb7ea91e7a42b0 --- core/base_rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/base_rules.mk b/core/base_rules.mk index 0deb7814354..eea1007a50e 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -181,7 +181,7 @@ ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE)) # Apk and its attachments reside in its own subdir. ifeq ($(LOCAL_MODULE_CLASS),APPS) # framework-res.apk doesn't like the additional layer. - ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true) + ifeq ($(filter true,$(LOCAL_NO_STANDARD_LIBRARIES) $(LOCAL_IGNORE_SUBDIR)),) my_module_path := $(my_module_path)/$(LOCAL_MODULE) endif endif From 4e34e76de1aee18d6c347ad8d95894c52a14da1f Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Wed, 13 May 2015 00:52:31 -0700 Subject: [PATCH 0908/1096] build: Add IGNORE_SUBDIR to clear vars. Change-Id: Icc539d6d4e0a2d5a025416841dc05fe6bcb6199f --- core/clear_vars.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/clear_vars.mk b/core/clear_vars.mk index bf81ebf12df..79cd41e071b 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -249,6 +249,8 @@ LOCAL_MODULE_STEM_64:= LOCAL_CLANG_32:= LOCAL_CLANG_64:= +LOCAL_IGNORE_SUBDIR:= + # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to # iterate over thousands of entries every time. # Leave the current makefile to make sure we don't break anything From cc943aac3d64ac17699b405406f8e234bdb12f7d Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Wed, 13 May 2015 03:55:25 -0700 Subject: [PATCH 0909/1096] build: Ignore filters on platform library. Change-Id: I32b0cd514e58752927fe89044a886d8fc8e18447 --- target/product/core_minimal.mk | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk index ff63052effb..89b1cba4be3 100644 --- a/target/product/core_minimal.mk +++ b/target/product/core_minimal.mk @@ -97,17 +97,12 @@ PRODUCT_BOOT_JARS := \ # The order of PRODUCT_SYSTEM_SERVER_JARS matters. PRODUCT_SYSTEM_SERVER_JARS := \ + org.cyanogenmod.platform \ org.cyanogenmod.hardware \ services \ ethernet-service \ wifi-service -ifeq ($(filter NIGHTLY SNAPSHOT EXPERIMENTAL,$(CM_BUILDTYPE)),) -# External system server capable jar -PRODUCT_SYSTEM_SERVER_JARS += \ - org.cyanogenmod.platform -endif - PRODUCT_RUNTIMES := runtime_libart_default PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ From 5de47ce25aa88197afacb0e83f011120719a37f0 Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Mon, 4 May 2015 14:30:30 -0500 Subject: [PATCH 0910/1096] build: Unset JAVA_TOOL_OPTIONS to read java version If env variable JAVA_TOOL_OPTIONS is set, it breaks the expected java version output. Exp: Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar java version "1.7.0_79" OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu1) OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode) Unset JAVA_TOOL_OPTIONS for the purposes of reading java and javac versions. This was encountered on an Ubuntu 15.04 system. Change-Id: I288faaa18f8589e29cd436fc9568c1a879618c65 --- core/main.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/main.mk b/core/main.mk index cea8327bc25..039b3c3bb09 100644 --- a/core/main.mk +++ b/core/main.mk @@ -143,8 +143,8 @@ $(warning ************************************************************) $(error Directory names containing spaces not supported) endif -java_version_str := $(shell unset _JAVA_OPTIONS && java -version 2>&1) -javac_version_str := $(shell unset _JAVA_OPTIONS && javac -version 2>&1) +java_version_str := $(shell unset _JAVA_OPTIONS JAVA_TOOL_OPTIONS && java -version 2>&1) +javac_version_str := $(shell unset _JAVA_OPTIONS JAVA_TOOL_OPTIONS && javac -version 2>&1) # Check for the correct version of java, should be 1.7 by # default, and 1.6 if LEGACY_USE_JAVA6 is set. From 546a5aab4b5e76a426b58ceb8820176944a614ef Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 13 May 2015 17:29:19 -0700 Subject: [PATCH 0911/1096] "LMY48E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d5b2762bcae..d39e9c17ff8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48D +export BUILD_ID=LMY48E From 13f696e4ac016c8a542276faffbec394a82533ba Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 28 May 2015 10:14:47 -0700 Subject: [PATCH 0912/1096] "LMY48F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d39e9c17ff8..f9ba75840b2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48E +export BUILD_ID=LMY48F From 40be6ec72aead9f7cebd63060ad67686f03848b8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 28 May 2015 10:27:17 -0700 Subject: [PATCH 0913/1096] "LMY48G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f9ba75840b2..5d99193bc19 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48F +export BUILD_ID=LMY48G From 71a1e360bc819f01e9d0bad9b14ffcaf26c238b4 Mon Sep 17 00:00:00 2001 From: Anthony King Date: Thu, 30 Apr 2015 22:19:48 +0100 Subject: [PATCH 0914/1096] envsetup: add mk_timer this wraps around any method call, mainly for 'make'. mka needs this on linux, since ionice and schedtool don't respect functions Change-Id: If8cdd235ed9eba377dd90ab8b12e93036a377ea5 --- envsetup.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 5d8011a1a28..b2555e46282 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2331,7 +2331,7 @@ function mka() { make -j `sysctl hw.ncpu|cut -d" " -f2` "$@" ;; *) - schedtool -B -n 1 -e ionice -n 1 make -j$(cat /proc/cpuinfo | grep "^processor" | wc -l) "$@" + mk_timer schedtool -B -n 1 -e ionice -n 1 make -j$(cat /proc/cpuinfo | grep "^processor" | wc -l) "$@" ;; esac } @@ -2588,10 +2588,10 @@ function get_make_command() echo command make } -function make() +function mk_timer() { local start_time=$(date +"%s") - $(get_make_command) "$@" + $@ local ret=$? local end_time=$(date +"%s") local tdiff=$(($end_time-$start_time)) @@ -2616,6 +2616,11 @@ function make() return $ret } +function make() +{ + mk_timer $(get_make_command) "$@" +} + if [ "x$SHELL" != "x/bin/bash" ]; then From bf6582e6d19c1360ca064097e52b57c334210a39 Mon Sep 17 00:00:00 2001 From: Hashcode Date: Mon, 1 Jun 2015 15:32:09 -0700 Subject: [PATCH 0915/1096] build: avoid recovery patch if device setup can't do it correctly In the case of Amazon OMAP4's there is a 2nd-bootloader which is inserted at a fixed location in both boot.img and recovery.img. If this 2nd-bootloader is not present, it puts the device in a non-booting state requiring the user to recover the device using fastboot tools. Also, due to the extra binary information in the image, imgdiff hangs during build. For devices like this, allow bypass of the recovery patch generatation. NOTE: In previous versions of CM the BOARD_CUSTOM_BOOTIMG_MK flag accomplished this, but was never forward ported to cm-12.0 and on. Use a new board flag here for clarity as most custom bootimg makefiles can still process a patch for recovery. https://github.com/CyanogenMod/android_build/blob/cm-11.0/core/Makefile#L935 Change-Id: I9284ee227358224e3add9862db5c1fbd0f5bd226 --- core/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/Makefile b/core/Makefile index 6cb896c7dd1..ce5dd51d72c 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1091,7 +1091,11 @@ SYSTEMIMAGE_SOURCE_DIR := $(TARGET_OUT) # image size check calculation. ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),) intermediates := $(call intermediates-dir-for,PACKAGING,recovery_patch) +ifndef BOARD_CANT_BUILD_RECOVERY_FROM_BOOT_PATCH RECOVERY_FROM_BOOT_PATCH := $(intermediates)/recovery_from_boot.p +else +RECOVERY_FROM_BOOT_PATCH := +endif $(RECOVERY_FROM_BOOT_PATCH): $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(HOST_OUT_EXECUTABLES)/imgdiff \ From 6aef1fadd2b6fdc32b8c99a76f6037893a3efdfd Mon Sep 17 00:00:00 2001 From: Anthony King Date: Thu, 30 Apr 2015 22:57:08 +0100 Subject: [PATCH 0916/1096] lunch: sort the choices This will sort the lunch array when lunch is called, giving us a consistent list of devices, which is easier to search through Change-Id: I80854e8b949950cbc928121a184b64fc3b8164c8 envsetup: lunch: always sort the menu this fixes the use case of 'lunch 34' straight after envsetup Change-Id: I19d45016edf254131015aab8476bc815bec9abe4 --- envsetup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/envsetup.sh b/envsetup.sh index b2555e46282..ee60bd617b3 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -569,6 +569,7 @@ alias bib=breakfast function lunch() { local answer + LUNCH_MENU_CHOICES=($(for l in ${LUNCH_MENU_CHOICES[@]}; do echo "$l"; done | sort)) if [ "$1" ] ; then answer=$1 From 55ad5e9e2454c3d946a68dd857bd722ddb1b2c83 Mon Sep 17 00:00:00 2001 From: Anthony King Date: Thu, 30 Apr 2015 23:16:10 +0100 Subject: [PATCH 0917/1096] envsetup: cleanup the full list echo each one and stick it in columns. It was unreadable before Change-Id: I99c50595dcf35f0f03d5d3d6b01043ad8a8306d2 --- envsetup.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index ee60bd617b3..21702a33479 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -35,12 +35,9 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y Look at the source to view more functions. The complete list is: EOF T=$(gettop) - local A - A="" for i in `cat $T/build/envsetup.sh | sed -n "/^[ \t]*function /s/function \([a-z_]*\).*/\1/p" | sort | uniq`; do - A="$A $i" - done - echo $A + echo "$i" + done | column } # Get the value of a build variable as an absolute path. From 5a71557e14eb2b11c9a35c24139d9c25fb9f64e8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 2 Jun 2015 16:29:25 -0700 Subject: [PATCH 0918/1096] "LMY48H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5d99193bc19..7e33a5b87dc 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48G +export BUILD_ID=LMY48H From 751ae85405f97ac0b66839975779153ff576ad28 Mon Sep 17 00:00:00 2001 From: Chris Sarbora Date: Wed, 3 Jun 2015 17:25:30 -0700 Subject: [PATCH 0919/1096] Allow dopush to load binaries onto the "wrong" device * Lets solitary projects be built+pushed quickly even without a full build * Affects mmp, mmmp, mkap as well Change-Id: I53594bcbece9f9458d28c3ea930453c14df95fe8 --- envsetup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 21702a33479..ffd130ae42c 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2390,7 +2390,7 @@ function dopush() echo "Device Found." fi - if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); + if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD") || [ "$FORCE_PUSH" == "true" ]; then # retrieve IP and PORT info if we're using a TCP connection TCPIPPORT=$(adb devices | egrep '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+[^0-9]+' \ From 7d01c1dbfe3156cfc58403ef26032d0343aa789e Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Tue, 26 May 2015 18:21:15 -0700 Subject: [PATCH 0920/1096] build/core: Inherit vendor/* makefiles for check-api. Change-Id: I72d409075192b18c35068566c5687092d45be9b4 --- core/clear_vars.mk | 3 ++- core/config.mk | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 79cd41e071b..b2891ed271e 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -249,7 +249,8 @@ LOCAL_MODULE_STEM_64:= LOCAL_CLANG_32:= LOCAL_CLANG_64:= -LOCAL_IGNORE_SUBDIR:= +# Include any vendor specific clear_vars.mk file +-include $(TOPDIR)vendor/*/build/core/clear_vars.mk # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to # iterate over thousands of entries every time. diff --git a/core/config.mk b/core/config.mk index f6d9ddca5ec..40545005e7a 100644 --- a/core/config.mk +++ b/core/config.mk @@ -639,6 +639,13 @@ ifneq ($(CM_BUILD),) ## We need to be sure the global selinux policies are included ## last, to avoid accidental resetting by device configs $(eval include vendor/cm/sepolicy/sepolicy.mk) + +# Include any vendor specific config.mk file +-include $(TOPDIR)vendor/*/build/core/config.mk + +# Include any vendor specific apicheck.mk file +-include $(TOPDIR)vendor/*/build/core/apicheck.mk + endif include $(BUILD_SYSTEM)/dumpvar.mk From c0b3f26f84d5aba02323f776755ad09cd8911c39 Mon Sep 17 00:00:00 2001 From: dhacker29 Date: Sat, 6 Jun 2015 22:22:05 -0400 Subject: [PATCH 0921/1096] Remove LatinIME as it is included per target in vendor/cm Change-Id: Ibce4a244ec0653a7c7798d864047ac667866a1dc --- target/product/core.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/target/product/core.mk b/target/product/core.mk index 519dbb8efe1..a87178084c9 100644 --- a/target/product/core.mk +++ b/target/product/core.mk @@ -39,7 +39,6 @@ PRODUCT_PACKAGES += \ InputDevices \ KeyChain \ Keyguard \ - LatinIME \ Launcher2 \ ManagedProvisioning \ PicoTts \ From e362738d7f71fc9dd5c74121154278d63adb630d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Jun 2015 13:04:45 -0700 Subject: [PATCH 0922/1096] "LVY48C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d2384fff0bb..3c8a6b08dc8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY48B +export BUILD_ID=LVY48C From e260e2630dc061104f3a18011ec1cdf3338c0ab8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 8 Jun 2015 14:20:52 -0700 Subject: [PATCH 0923/1096] "LVY48D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3c8a6b08dc8..d7dfdd298e1 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY48C +export BUILD_ID=LVY48D From 35f57e9b2c9c0690b4c481482b4616f207f688fc Mon Sep 17 00:00:00 2001 From: Diogo Ferreira Date: Fri, 3 Apr 2015 12:39:37 +0100 Subject: [PATCH 0924/1096] build: Add the factorypackage target The build system generates several artifacts, among them update zips, OTAs and update packages for fastboot. Shipping devices typically need extra-special packages in order to fulfill factory automation requirements. This patches adds a "factorypackage" target that can be customized by devices by providing a script that converts target files into the desired format. The script path should be set into TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT. Change-Id: I993f12766c96274f096c5f6c6da5aaa32394abbc --- core/Makefile | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/core/Makefile b/core/Makefile index ce5dd51d72c..7b259271cfb 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1706,6 +1706,35 @@ bacon: otapackage $(hide) $(MD5SUM) $(CM_TARGET_PACKAGE) > $(CM_TARGET_PACKAGE).md5sum @echo -e ${CL_CYN}"Package Complete: $(CM_TARGET_PACKAGE)"${CL_RST} +# ----------------------------------------------------------------- +# The factory package + +name := $(TARGET_PRODUCT)-factory-$(FILE_NAME_TAG) + +INTERNAL_FACTORY_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip + +ifeq ($(TARGET_RELEASETOOLS_EXTENSIONS),) +# default to common dir for device vendor +$(INTERNAL_FACTORY_PACKAGE_TARGET): extensions := $(TARGET_DEVICE_DIR)/../common +else +$(INTERNAL_FACTORY_PACKAGE_TARGET): extensions := $(TARGET_RELEASETOOLS_EXTENSIONS) +endif + +$(INTERNAL_FACTORY_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) + @echo -e ${CL_YLW}"Package:"${CL_RST}" $@" + if [ -z $(TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT) ]; then \ + echo "Error: Factory script is not defined by target"; \ + exit 1; \ + fi + MKBOOTIMG=$(BOARD_CUSTOM_BOOTIMG_MK) \ + $(TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT) -v \ + -s $(extensions) \ + -p $(HOST_OUT) \ + $(BUILT_TARGET_FILES_PACKAGE) $@ + +.PHONY: factorypackage +factorypackage: $(INTERNAL_FACTORY_PACKAGE_TARGET) + endif # recovery_fstab is defined endif # TARGET_NO_KERNEL != true endif # TARGET_DEVICE != generic* From ff3412ce300283186178619dac3385dda1055849 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Tue, 9 Jun 2015 00:11:29 +0530 Subject: [PATCH 0925/1096] otasigcheck: Extract the key * commit b110c751b181423d268531c624db212d2d81e816 "build: ota: Support for install tools in /tmp/install" erroneously removed the line extracting the releasekey, making the script a no-op as it couldn't find a key to compare against. Change-Id: I0dc5d15dbf4b0531de4df9e62a5bd47ec463c2a1 --- tools/releasetools/edify_generator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index e31f10e9909..c566efdc123 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -150,6 +150,7 @@ def RunBackup(self, command): self.script.append(('run_program("/tmp/install/bin/backuptool.sh", "%s");' % command)) def ValidateSignatures(self, command): + self.script.append('package_extract_file("META-INF/org/cyanogenmod/releasekey", "/tmp/releasekey");') # Exit code 124 == abort. run_program returns raw, so left-shift 8bit self.script.append('run_program("/tmp/install/bin/otasigcheck.sh") != "31744" || abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");') From d9441323fcfcc750365a922cc6481f8dc4c205f3 Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Sun, 29 Dec 2013 12:57:20 -0600 Subject: [PATCH 0926/1096] envsetup: repolastsync Prints date and time of last repo sync. Example: Last repo sync: 11 Jun 2015, 21:54:59 CDT / 12 Jun 2015, 02:54:59 UTC Change-Id: I4280b500e58237479194ad2e230ed7466db87755 --- envsetup.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index ffd130ae42c..8cdd60f3697 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -27,6 +27,7 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - mka: Builds using SCHED_BATCH on all processors - mkap: Builds the module(s) using mka and pushes them to the device. - cmka: Cleans and builds using mka. +- repolastsync: Prints date and time of last repo sync. - reposync: Parallel repo sync using ionice and SCHED_BATCH - repopick: Utility to fetch changes from Gerrit. - installboot: Installs a boot.img to the connected device. @@ -2354,6 +2355,13 @@ function cmka() { fi } +function repolastsync() { + RLSPATH="$ANDROID_BUILD_TOP/.repo/.repo_fetchtimes.json" + RLSLOCAL=$(date -d "$(stat -c %z $RLSPATH)" +"%e %b %Y, %T %Z") + RLSUTC=$(date -d "$(stat -c %z $RLSPATH)" -u +"%e %b %Y, %T %Z") + echo "Last repo sync: $RLSLOCAL / $RLSUTC" +} + function reposync() { case `uname -s` in Darwin) From 2283792f91dd46aa8c49aa319caf5d090448065e Mon Sep 17 00:00:00 2001 From: "Howard M. Harte" Date: Fri, 22 May 2015 09:54:20 -0700 Subject: [PATCH 0927/1096] minnow_max: search for cm.mk in additional directories Intel's product configuration files are structured slightly differentily than others. Device-specific configuration is nested one additional level, as follows: device/intel/// Change-Id: I78b02978dc759b94024e5c5533d1108ac2634549 --- core/product_config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/product_config.mk b/core/product_config.mk index e33b48db1a0..640bb4071f8 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -181,7 +181,7 @@ include $(BUILD_SYSTEM)/device.mk # A CM build needs only the CM product makefiles. ifneq ($(CM_BUILD),) - all_product_configs := $(shell ls device/*/$(CM_BUILD)/cm.mk) + all_product_configs := $(shell find device -path "*/$(CM_BUILD)/cm.mk") else ifneq ($(strip $(TARGET_BUILD_APPS)),) # An unbundled app build needs only the core product makefiles. From b8c066dbc0607c5a7155fab4a728d62921fda612 Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Fri, 12 Jun 2015 10:33:59 -0700 Subject: [PATCH 0928/1096] Really include drawables for all densities. Previously with "PRODUCT_AAPT_CONFIG := normal" resource with modifier "small" isn't included. Bug: 21643610 Change-Id: I53940d716fb9705462b1abb882e04103e211f8af --- target/product/full_base.mk | 3 --- 1 file changed, 3 deletions(-) diff --git a/target/product/full_base.mk b/target/product/full_base.mk index caace76eb50..71293ac5f20 100644 --- a/target/product/full_base.mk +++ b/target/product/full_base.mk @@ -47,9 +47,6 @@ PRODUCT_PROPERTY_OVERRIDES := \ # Put en_US first in the list, so make it default. PRODUCT_LOCALES := en_US -# Include drawables for all densities -PRODUCT_AAPT_CONFIG := normal - # Get some sounds $(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk) From f9202f2069eafa39071b8fda31194b2bbef2b369 Mon Sep 17 00:00:00 2001 From: Edward Wang Date: Fri, 26 Jun 2015 14:35:11 -0700 Subject: [PATCH 0929/1096] build: use common factory script and input more parameters Change-Id: Ia06dbf0d80150011bc2df77102a0dfbbe6453f67 --- core/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/Makefile b/core/Makefile index 7b259271cfb..7f4dc4fbc5b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1730,6 +1730,8 @@ $(INTERNAL_FACTORY_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) $(TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT) -v \ -s $(extensions) \ -p $(HOST_OUT) \ + -f $(TARGET_FACTORY_DIR_PATH) \ + -r $(TARGET_RAWPROGRAM_PATH) \ $(BUILT_TARGET_FILES_PACKAGE) $@ .PHONY: factorypackage From c1f68ae995f2ad226a663e72bb9007d18ed7432b Mon Sep 17 00:00:00 2001 From: Andrew Boie Date: Tue, 28 Oct 2014 08:32:11 -0700 Subject: [PATCH 0930/1096] definitions.mk: look for definitions.mk in device/*/build also build/core/Makefile looks for build tasks in either device/*/build/tasks or vendor/*/build/tasks. Do the same with vendor-specific definitions.mk. Upstream review URL: https://android-review.googlesource.com/#/c/112252/ Change-Id: Ib4fd00a1d0effe8e347382a922da101ce26bf696 Signed-off-by: Andrew Boie Reviewed-on: https://android.intel.com/294088 --- core/definitions.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/definitions.mk b/core/definitions.mk index 757b24aea2c..9085b24d54f 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2237,6 +2237,7 @@ include $(BUILD_SYSTEM)/distdir.mk # Include any vendor specific definitions.mk file -include $(TOPDIR)vendor/*/build/core/definitions.mk +-include $(TOPDIR)device/*/build/core/definitions.mk # broken: # $(foreach file,$^,$(if $(findstring,.a,$(suffix $file)),-l$(file),$(file))) From e60ffef74fc8f7d98641d79506b7b7f4ca9a1bbe Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Sun, 3 May 2015 19:24:22 -0700 Subject: [PATCH 0931/1096] "LMY48C" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 5335dc816a0..78729ee1450 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48B +export BUILD_ID=LMY48C From 4dc6a6a923ed0a485094b82f8c3401ca357ebdb9 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 6 May 2015 12:54:44 -0700 Subject: [PATCH 0932/1096] "LMY48D" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 78729ee1450..d5b2762bcae 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48C +export BUILD_ID=LMY48D From e399b9d720c9e3cf8b9a933995c58c34302135f8 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 13 May 2015 17:29:19 -0700 Subject: [PATCH 0933/1096] "LMY48E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d5b2762bcae..d39e9c17ff8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48D +export BUILD_ID=LMY48E From 37da5099766fcfcc1a32dab26c0cba8ecf2010c6 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 28 May 2015 10:14:47 -0700 Subject: [PATCH 0934/1096] "LMY48F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d39e9c17ff8..f9ba75840b2 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48E +export BUILD_ID=LMY48F From 2e33977d7f6f24a17dec5a99551527db48a108cb Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 28 May 2015 10:27:17 -0700 Subject: [PATCH 0935/1096] "LMY48G" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f9ba75840b2..5d99193bc19 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48F +export BUILD_ID=LMY48G From 435b17fcc047da57e326628ce7a8960c2fc38cf8 Mon Sep 17 00:00:00 2001 From: Edward Wang Date: Mon, 29 Jun 2015 10:24:11 -0700 Subject: [PATCH 0936/1096] Revert "build: use common factory script and input more parameters" This reverts commit f9202f2069eafa39071b8fda31194b2bbef2b369. Change-Id: Ic37e6ba7c4e3b39937775cc0c9723bce2c3cadd0 --- core/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index 7f4dc4fbc5b..7b259271cfb 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1730,8 +1730,6 @@ $(INTERNAL_FACTORY_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) $(TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT) -v \ -s $(extensions) \ -p $(HOST_OUT) \ - -f $(TARGET_FACTORY_DIR_PATH) \ - -r $(TARGET_RAWPROGRAM_PATH) \ $(BUILT_TARGET_FILES_PACKAGE) $@ .PHONY: factorypackage From e78b239cbe782454d6df0916dc51bbf35ede5572 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Wed, 10 Jun 2015 13:05:24 -0700 Subject: [PATCH 0937/1096] releasetools: Add support for LZMA in blockimgdiff * Requires backports.lzma to be installed for Python2. * To enable, set WITH_LZMA_OTA to true in the build environment. * This results in significantly smaller OTA packages, which results in less $$$ being paid to deliver said OTAs. Unfortunately it is also significantly slower to decompress (parallelization may help). Change-Id: If4b8092718aa6623cfff101030eabd24cde8763c --- core/Makefile | 1 + tools/releasetools/blockimgdiff.py | 19 +++++++++++++++-- tools/releasetools/common.py | 26 ++++++++++++++++++------ tools/releasetools/ota_from_target_files | 22 ++++++++++++++------ 4 files changed, 54 insertions(+), 14 deletions(-) diff --git a/core/Makefile b/core/Makefile index 7b259271cfb..496718c4535 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1690,6 +1690,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) $(hide) MKBOOTIMG=$(MKBOOTIMG) \ $(OTA_FROM_TARGET_SCRIPT) -v \ --block \ + $(if $(WITH_LZMA_OTA), -z) \ -p $(HOST_OUT) \ -k $(KEY_CERT_PAIR) \ --backup=$(backuptool) \ diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py index 8b179d5a320..e4842388a2b 100644 --- a/tools/releasetools/blockimgdiff.py +++ b/tools/releasetools/blockimgdiff.py @@ -27,6 +27,12 @@ import threading import tempfile +try: + from backports import lzma +except ImportError: + lzma = None + pass + from rangelib import * __all__ = ["EmptyImage", "DataImage", "BlockImageDiff"] @@ -190,12 +196,13 @@ def __str__(self): # original image. class BlockImageDiff(object): - def __init__(self, tgt, src=None, threads=None, version=2): + def __init__(self, tgt, src=None, threads=None, version=2, use_lzma=False): if threads is None: threads = multiprocessing.cpu_count() // 2 if threads == 0: threads = 1 self.threads = threads self.version = version + self.use_lzma = use_lzma assert version in (1, 2) @@ -409,7 +416,15 @@ def ComputePatches(self, prefix): print("Reticulating splines...") diff_q = [] patch_num = 0 - with open(prefix + ".new.dat", "wb") as new_f: + + if lzma and self.use_lzma: + open_patch = lzma.open + new_file = ".new.dat.xz" + else: + open_patch = open + new_file = ".new.dat" + + with open_patch(prefix + new_file, "wb") as new_f: for xf in self.transfers: if xf.style == "zero": pass diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 1e0a263179e..8e49b39bf02 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -29,6 +29,11 @@ import time import zipfile +try: + from backports import lzma; +except ImportError: + lzma = None + import blockimgdiff from rangelib import * @@ -1100,11 +1105,12 @@ def worker(): class BlockDifference: - def __init__(self, partition, tgt, src=None, check_first_block=False): + def __init__(self, partition, tgt, src=None, check_first_block=False, use_lzma=False): self.tgt = tgt self.src = src self.partition = partition self.check_first_block = check_first_block + self.use_lzma = use_lzma version = 1 if OPTIONS.info_dict: @@ -1113,7 +1119,7 @@ def __init__(self, partition, tgt, src=None, check_first_block=False): OPTIONS.info_dict.get("blockimgdiff_versions", "1").split(",")) b = blockimgdiff.BlockImageDiff(tgt, src, threads=OPTIONS.worker_threads, - version=version) + version=version, use_lzma=use_lzma) tmpdir = tempfile.mkdtemp() OPTIONS.tempfiles.append(tmpdir) self.path = os.path.join(tmpdir, partition) @@ -1151,18 +1157,26 @@ def WriteVerifyScript(self, script): def _WriteUpdate(self, script, output_zip): partition = self.partition + suffix = ".new.dat" + with open(self.path + ".transfer.list", "rb") as f: ZipWriteStr(output_zip, partition + ".transfer.list", f.read()) - with open(self.path + ".new.dat", "rb") as f: - ZipWriteStr(output_zip, partition + ".new.dat", f.read()) + if lzma and self.use_lzma: + suffix += ".xz" + with open(self.path + suffix, "rb") as f: + ZipWriteStr(output_zip, partition + suffix, f.read(), + compression=zipfile.ZIP_STORED) + else: + with open(self.path + suffix, "rb") as f: + ZipWriteStr(output_zip, partition + suffix, f.read()) with open(self.path + ".patch.dat", "rb") as f: ZipWriteStr(output_zip, partition + ".patch.dat", f.read(), compression=zipfile.ZIP_STORED) call = (('block_image_update("%s", ' 'package_extract_file("%s.transfer.list"), ' - '"%s.new.dat", "%s.patch.dat");\n') % - (self.device, partition, partition, partition)) + '"%s%s", "%s.patch.dat");\n') % + (self.device, partition, partition, suffix, partition)) script.AppendExtra(script._WordWrap(call)) def _CheckFirstBlock(self, script): diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 551f40ecf36..5d49b005867 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -70,6 +70,10 @@ Usage: ota_from_target_files [flags] input_target_files output_ota_package file-based OTA if the target_files is older and doesn't support block-based OTAs. + -z Compress the block-based image using LZMA. Results in substantial + space reduction at the cost of longer compress/decompress time. + Requires the "backports.lzma" module to be installed. + -b (--binary) Use the given binary as the update-binary in the output package, instead of the binary in the build's target_files. Use for @@ -139,6 +143,7 @@ OPTIONS.fallback_to_full = True OPTIONS.backuptool = False OPTIONS.override_device = 'auto' OPTIONS.override_prop = False +OPTIONS.use_lzma = False def MostPopularKey(d, default): """Given a dict, return the key corresponding to the largest @@ -616,7 +621,7 @@ else if get_stage("%(bcb_dev)s") == "3/3" then # writes incrementals to do it. system_tgt = GetImage("system", OPTIONS.input_tmp, OPTIONS.info_dict) system_tgt.ResetFileMap() - system_diff = common.BlockDifference("system", system_tgt, src=None) + system_diff = common.BlockDifference("system", system_tgt, src=None, use_lzma=OPTIONS.use_lzma) system_diff.WriteScript(script, output_zip) else: script.FormatPartition("/system") @@ -648,7 +653,7 @@ else if get_stage("%(bcb_dev)s") == "3/3" then if block_based: vendor_tgt = GetImage("vendor", OPTIONS.input_tmp, OPTIONS.info_dict) vendor_tgt.ResetFileMap() - vendor_diff = common.BlockDifference("vendor", vendor_tgt) + vendor_diff = common.BlockDifference("vendor", vendor_tgt, use_lzma=OPTIONS.use_lzma) vendor_diff.WriteScript(script, output_zip) else: script.FormatPartition("/vendor") @@ -812,7 +817,7 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): system_src = GetImage("system", OPTIONS.source_tmp, OPTIONS.source_info_dict) system_tgt = GetImage("system", OPTIONS.target_tmp, OPTIONS.target_info_dict) system_diff = common.BlockDifference("system", system_tgt, system_src, - check_first_block=True) + check_first_block=True, use_lzma=OPTIONS.use_lzma) if HasVendorPartition(target_zip): if not HasVendorPartition(source_zip): @@ -820,7 +825,7 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): vendor_src = GetImage("vendor", OPTIONS.source_tmp, OPTIONS.source_info_dict) vendor_tgt = GetImage("vendor", OPTIONS.target_tmp, OPTIONS.target_info_dict) vendor_diff = common.BlockDifference("vendor", vendor_tgt, vendor_src, - check_first_block=True) + check_first_block=True, use_lzma=OPTIONS.use_lzma) else: vendor_diff = None @@ -1517,12 +1522,16 @@ def main(argv): OPTIONS.override_device = a elif o in ("--override_prop"): OPTIONS.override_prop = bool(a.lower() == 'true') + elif o in ("-z", "--use_lzma"): + OPTIONS.use_lzma = True + # Import now, and bomb out if backports.lzma isn't installed + from backports import lzma else: return False return True args = common.ParseOptions(argv, __doc__, - extra_opts="b:k:i:d:wne:t:a:2o:", + extra_opts="b:k:i:d:wne:t:a:2o:z", extra_long_opts=["board_config=", "package_key=", "incremental_from=", @@ -1540,7 +1549,8 @@ def main(argv): "no_fallback_to_full", "backup=", "override_device=", - "override_prop="], + "override_prop=", + "use_lzma"], extra_option_handler=option_handler) if len(args) != 2: From fa943a9ef20827c4c4f2da29aaafd4645e34ef5d Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 9 Jul 2015 14:05:13 -0700 Subject: [PATCH 0938/1096] "LMY48I" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 7e33a5b87dc..ed5cf48c503 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48H +export BUILD_ID=LMY48I From c13c1b26fe15cbdb7a5959a9aa4f090e1fdc97ad Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 10 Jul 2015 00:58:53 -0700 Subject: [PATCH 0939/1096] build: Fix image creation for F2FS-only configuration * Add f2fs dependencies regardless of whether we're building ext4 images or not. Change-Id: I886c52edaf56eb96fb931384440f33b00aa5c9ec --- core/Makefile | 15 ++++++++++++--- tools/releasetools/add_img_to_target_files.py | 3 ++- tools/releasetools/build_image.py | 1 + 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/core/Makefile b/core/Makefile index 496718c4535..36b5ec100f7 100644 --- a/core/Makefile +++ b/core/Makefile @@ -723,6 +723,12 @@ INTERNAL_USERIMAGES_EXT_VARIANT := ext4 endif endif endif +ifeq ($(TARGET_USERIMAGES_USE_F2FS),true) +INTERNAL_USERIMAGES_USE_F2FS := true +ifeq ($(INTERNAL_USERIMAGES_EXT_VARIANT),) +INTERNAL_USERIMAGES_EXT_VARIANT := f2fs +endif +endif # These options tell the recovery updater/installer how to mount the partitions writebale. # =[|]... @@ -739,15 +745,17 @@ ifneq ($(TARGET_TRANSPARENT_COMPRESSION_METHOD),) INTERNAL_TRANSPARENT_COMPRESSION_METHOD := $(TARGET_TRANSPARENT_COMPRESSION_METHOD) endif +INTERNAL_USERIMAGES_DEPS := ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true) -INTERNAL_USERIMAGES_DEPS := $(SIMG2IMG) INTERNAL_USERIMAGES_DEPS += $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(E2FSCK) -ifeq ($(TARGET_USERIMAGES_USE_F2FS),true) +endif +ifeq ($(INTERNAL_USERIMAGES_USE_F2FS),true) INTERNAL_USERIMAGES_DEPS += $(MKF2FSUSERIMG) $(MAKE_F2FS) endif -else +ifeq ($(INTERNAL_USERIMAGES_DEPS),) INTERNAL_USERIMAGES_DEPS := $(MKYAFFS2) endif +INTERNAL_USERIMAGES_DEPS += $(SIMG2IMG) INTERNAL_USERIMAGES_BINARY_PATHS := $(sort $(dir $(INTERNAL_USERIMAGES_DEPS))) @@ -762,6 +770,7 @@ INTERNAL_USERIMAGES_DEPS += $(SELINUX_FC) # $(2): additional "key=value" pairs to append to the dictionary file. define generate-userimage-prop-dictionary $(if $(INTERNAL_USERIMAGES_EXT_VARIANT),$(hide) echo "fs_type=$(INTERNAL_USERIMAGES_EXT_VARIANT)" >> $(1)) +$(if $(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "system_fs_type=$(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_SYSTEMIMAGE_PARTITION_SIZE),$(hide) echo "system_size=$(BOARD_SYSTEMIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_SYSTEMIMAGE_JOURNAL_SIZE),$(hide) echo "system_journal_size=$(BOARD_SYSTEMIMAGE_JOURNAL_SIZE)" >> $(1)) $(if $(BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "userdata_fs_type=$(BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index 03334e38bac..9fc700dc476 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -197,7 +197,8 @@ def AddUserdataExtra(output_zip): image_props = build_image.ImagePropFromGlobalDict(OPTIONS.info_dict, "data_extra") # If no userdataextra_size is provided for extfs, skip userdata_extra.img. - if (image_props.get("fs_type", "").startswith("ext") and + if ((image_props.get("fs_type", "").startswith("ext") or + image_props.get("fs_type", "").startswith("f2fs")) and not image_props.get("partition_size")): return diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index b0e374d4cb1..9a57b7aaaf8 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -327,6 +327,7 @@ def copy_prop(src_p, dest_p): d["mount_point"] = mount_point if mount_point == "system": copy_prop("fs_type", "fs_type") + copy_prop("system_fs_type", "fs_type") copy_prop("system_size", "partition_size") copy_prop("system_journal_size", "journal_size") copy_prop("system_verity_block_device", "verity_block_device") From cd8cb89cd987a77ff35b60ab7c4ae2afa2282cda Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 10 Jul 2015 02:31:24 -0700 Subject: [PATCH 0940/1096] build: Fix device detection for a few of the envsetup commands * Edge case where a certain developer ended up with a blank system partition in recovery. Wonder how that happened? Change-Id: I17854a53bf18d07c98c4b7f53df252d6f1d7113d --- envsetup.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 8cdd60f3697..43d2fca9b6a 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -734,7 +734,7 @@ function eat() done echo "Device Found.." fi - if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); + if (adb shell getprop ro.cm.device | grep -q "$CM_BUILD"); then # if adbd isn't root we can't write to /cache/recovery/ adb root @@ -1973,7 +1973,7 @@ function installboot() sleep 1 adb wait-for-online shell mount /system 2>&1 > /dev/null adb wait-for-online remount - if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); + if (adb shell getprop ro.cm.device | grep -q "$CM_BUILD"); then adb push $OUT/boot.img /cache/ for i in $OUT/system/lib/modules/*; @@ -2018,7 +2018,7 @@ function installrecovery() sleep 1 adb wait-for-online shell mount /system 2>&1 >> /dev/null adb wait-for-online remount - if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD"); + if (adb shell getprop ro.cm.device | grep -q "$CM_BUILD"); then adb push $OUT/recovery.img /cache/ adb shell dd if=/cache/recovery.img of=$PARTITION @@ -2398,7 +2398,7 @@ function dopush() echo "Device Found." fi - if (adb shell cat /system/build.prop | grep -q "ro.cm.device=$CM_BUILD") || [ "$FORCE_PUSH" == "true" ]; + if (adb shell getprop ro.cm.device | grep -q "$CM_BUILD") || [ "$FORCE_PUSH" == "true" ]; then # retrieve IP and PORT info if we're using a TCP connection TCPIPPORT=$(adb devices | egrep '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+[^0-9]+' \ From 0f1ef4b3740bd2e2cf7a042e729574dc9dff6688 Mon Sep 17 00:00:00 2001 From: Ameya Thakur Date: Fri, 20 Mar 2015 16:14:27 -0700 Subject: [PATCH 0941/1096] tools:releasetools:Use timestamp from build.prop while building system.img We now use the timestamp written by the build system to build.prop as the value passed to the make_ext4fs tool while generating the regular system image. The ota package generation tools do it already. Without this change the system image created by a normal make will never match the system image in the target files package which would cause incremental block based ota's to fail Change-Id: I95c32c7ff9c2330a264853014a33811ca5ee3fe4 --- tools/releasetools/build_image.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 9a57b7aaaf8..c5ce5dbdd8f 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -220,7 +220,6 @@ def BuildImage(in_dir, prop_dict, out_file, build_command = [] fs_type = prop_dict.get("fs_type", "") run_fsck = False - is_verity_partition = "verity_block_device" in prop_dict verity_supported = prop_dict.get("verity") == "true" # adjust the partition size to make room for the hashes if this is to be verified @@ -248,6 +247,22 @@ def BuildImage(in_dir, prop_dict, out_file, build_command.extend(["-j", prop_dict["journal_size"]]) if "timestamp" in prop_dict: build_command.extend(["-T", str(prop_dict["timestamp"])]) + else: + #Timestamp not provided in property_dict. + #Lets try to find the build.prop file and get the timestamp from there + #instead + path = in_dir + "/build.prop" + if os.path.exists(path): + with open(path) as f: + lines = f.readlines() + for line in lines: + line = line.strip() + if line.startswith("ro.build.date.utc"): + name, value = line.split("=", 1) + print "read ro.build.date.utc from build.prop as ", value + build_command.extend(["-T", value]) + else: + print "unable to open build.prop file..Image will be built using system time" if fs_config is not None: build_command.extend(["-C", fs_config]) if block_list is not None: From 8ab361814d738d447accfe7751fbfdf989cdf3f6 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sun, 12 Jul 2015 12:14:56 -0700 Subject: [PATCH 0942/1096] Revert "Disable -mcpu=cortex-a15 flag for krait" * No issues with this. Revert back to Google's config. This reverts commit 30579b41d1e943a7740b3dfe979d40f40ba0d8cc. Change-Id: Ib2953ccc91ce78ef849ddd9aafd6453ea5ddbed4 --- core/combo/arch/arm/armv7-a-neon.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk index 4c25e22e54e..37f7f86484c 100644 --- a/core/combo/arch/arm/armv7-a-neon.mk +++ b/core/combo/arch/arm/armv7-a-neon.mk @@ -6,7 +6,7 @@ ARCH_ARM_HAVE_VFP := true ARCH_ARM_HAVE_VFP_D32 := true ARCH_ARM_HAVE_NEON := true -ifneq (,$(filter cortex-a15 denver,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) +ifneq (,$(filter cortex-a15 krait denver,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) arch_variant_cflags := -mcpu=cortex-a15 else ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a9) From 808531f3b8b3e018275651724a28d7c492821552 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Fri, 10 Apr 2015 17:02:40 -0700 Subject: [PATCH 0943/1096] AArch64: Addressing Cortex-A53 erratum 835769 Add instruction set feature to cortex-A53 target to address erratum 835769 Change-Id: I2f2f94deb282a1c20dc50ca08b13fa53377c765a --- core/config.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/config.mk b/core/config.mk index 40545005e7a..4f0968c9e80 100644 --- a/core/config.mk +++ b/core/config.mk @@ -561,6 +561,10 @@ DEX2OAT_TARGET_CPU_VARIANT := $(TARGET_CPU_VARIANT) DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := default ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a7 cortex-a15 krait denver generic cortex-a53)) DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := div + ifneq (,$(filter $(DEX2OAT_TARGET_CPU_VARIANT),cortex-a53)) + DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES += needfix_835769 + DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := $(subst $(space),$(comma),$(strip $(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES))) + endif endif ifdef TARGET_2ND_ARCH @@ -569,6 +573,10 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT := $(TARGET_2ND_CPU_VARI $(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := default ifneq (,$(filter $($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT),cortex-a7 cortex-a15 krait denver cortex-a53)) $(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := div + ifneq (,$(filter $($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT),cortex-a53)) + DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES += needfix_835769 + DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := $(subst $(space),$(comma),$(strip $(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES))) + endif endif endif From 1e8eaf9d00c4d9db216c8d1dd07d4446a909bae6 Mon Sep 17 00:00:00 2001 From: David Ng Date: Tue, 14 Apr 2015 19:43:18 -0700 Subject: [PATCH 0944/1096] arm64: Enable Cortex A53 Errata 843419, 835769 ldflags Enable Cortex A53 errata 843419 and 835769 ldflags if TARGET_CPU_CORTEX_A53 is true. Change-Id: Ic9c1998f1fbf15376f38b08813d7bad47d583398 --- core/combo/arch/arm64/armv8-a.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/combo/arch/arm64/armv8-a.mk b/core/combo/arch/arm64/armv8-a.mk index edc0497eeb4..d94f35baa55 100644 --- a/core/combo/arch/arm64/armv8-a.mk +++ b/core/combo/arch/arm64/armv8-a.mk @@ -1 +1,6 @@ arch_variant_cflags := + +ifeq ($(TARGET_CPU_CORTEX_A53),true) +arch_variant_ldflags := -Wl,--fix-cortex-a53-843419 \ + -Wl,--fix-cortex-a53-835769 +endif From 1db3c6e6747faab870aa63fe97626022811322a3 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Wed, 15 Jul 2015 19:47:45 +0530 Subject: [PATCH 0945/1096] Allow setting the recovery density separately from the aapt config Change-Id: I817a4c01302956ec846503d9a585c43e690e45bf --- core/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/Makefile b/core/Makefile index 36b5ec100f7..5e4c383137d 100644 --- a/core/Makefile +++ b/core/Makefile @@ -815,6 +815,9 @@ recovery_resources_common := $(call project-path-for,recovery)/res # Set recovery_density to the density bucket of the device. recovery_density := unknown +ifneq (,$(TARGET_RECOVERY_DENSITY)) +recovery_density := $(filter %dpi,$(TARGET_RECOVERY_DENSITY)) +else ifneq (,$(PRODUCT_AAPT_PREF_CONFIG)) ifeq ($(PRODUCT_AAPT_PREF_CONFIG),560dpi) recovery_density := xxxhdpi @@ -826,6 +829,7 @@ else # Otherwise, use the default medium density. recovery_densities := mdpi endif +endif ifneq (,$(wildcard $(recovery_resources_common)-$(recovery_density))) recovery_resources_common := $(recovery_resources_common)-$(recovery_density) From 8356ec9c03e361a895a7f0ce665936c5714bed33 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Wed, 22 Jul 2015 14:10:29 -0700 Subject: [PATCH 0946/1096] misc_info: Add factory script location to misc_info when available When a factory script is specified for the device, store the location of the script in the misc_info package for proper use during package signing. Change-Id: Icd3ab59ebb68b8b6c92aff8eaf9e44322cdcbc18 Ticket: RM-112 --- core/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/Makefile b/core/Makefile index 5e4c383137d..34ae76e1c77 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1619,6 +1619,9 @@ ifneq ($(OEM_THUMBPRINT_PROPERTIES),) endif ifdef BUILD_NO $(hide) echo "build_number=$(BUILD_NO)" >> $(zip_root)/META/misc_info.txt +endif +ifdef TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT + $(hide) echo "factory_from_target_script=$(TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT)" >> $(zip_root)/META/misc_info.txt endif $(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt) ifeq ($(TARGET_RELEASETOOL_MAKE_RECOVERY_PATCH_SCRIPT),) From c445cc3db9757a635fc267cfaa4a1d99cc109b58 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 23 Jul 2015 10:11:02 -0700 Subject: [PATCH 0947/1096] "LMY48J" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index ed5cf48c503..1e9bb9156d3 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48I +export BUILD_ID=LMY48J From 68d62a7f39944433e929f4b8f9c2c575d088de66 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Thu, 23 Jul 2015 10:36:27 -0700 Subject: [PATCH 0948/1096] build: Allow packaging of factory image files into target files Files may be required inthe target files package for factory flashing processes. Allow these to be added using PRODUCT_FACTORYIMAGE_FILES. Change-Id: I74b42daee7b73f762f3c75904c6c278b1e5f5c53 Ticket: RM-112 --- core/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/Makefile b/core/Makefile index 34ae76e1c77..a8a8b6bc064 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1559,6 +1559,9 @@ endif $(hide) $(foreach t,$(INSTALLED_RADIOIMAGE_TARGET),\ mkdir -p $(zip_root)/RADIO; \ $(ACP) $(t) $(zip_root)/RADIO/$(notdir $(t));) + $(hide) $(foreach fi,$(PRODUCT_FACTORYIMAGE_FILES),\ + mkdir -p $(zip_root)/FACTORY; \ + $(ACP) $(fi) $(zip_root)/FACTORY/$(notdir $(fi));) @# Contents of the system image $(hide) $(call package_files-copy-root, \ $(SYSTEMIMAGE_SOURCE_DIR),$(zip_root)/SYSTEM) From 7c80b85c9d0ce11977a3016de367c73bec6fd5ff Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Mon, 27 Jul 2015 12:30:14 -0700 Subject: [PATCH 0949/1096] "LVY48E" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index d7dfdd298e1..b30af958d1a 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY48D +export BUILD_ID=LVY48E From f32f688549b7ad647adc523b25e955bcdb617f4f Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Wed, 29 Jul 2015 19:06:47 -0700 Subject: [PATCH 0950/1096] otatools: Add f2fs tools to otatools builds Change-Id: Iddc4fc118015e67a94cc0469078e1c75a1ccb764 Ticket: CYNGNOS-639 --- core/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/Makefile b/core/Makefile index a8a8b6bc064..2603c64d24d 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1389,6 +1389,8 @@ DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ $(HOST_OUT_JAVA_LIBRARIES)/signapk.jar \ $(HOST_OUT_EXECUTABLES)/mkuserimg.sh \ $(HOST_OUT_EXECUTABLES)/make_ext4fs \ + $(HOST_OUT_EXECUTABLES)/mkf2fsuserimg.sh \ + $(HOST_OUT_EXECUTABLES)/make_f2fs \ $(HOST_OUT_EXECUTABLES)/simg2img \ $(HOST_OUT_EXECUTABLES)/e2fsck \ $(HOST_OUT_EXECUTABLES)/build_verity_tree \ From a3ebc82c9bb748113736a8fc5bfce4fb9dd4afdc Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 30 Jul 2015 15:05:12 -0700 Subject: [PATCH 0951/1096] "LMY48K" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 1e9bb9156d3..b1cbd29f847 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48J +export BUILD_ID=LMY48K From f50e3fb1b5f0f9da601f7da069ba618c2df8935b Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Fri, 31 Jul 2015 09:36:11 -0700 Subject: [PATCH 0952/1096] otatools: Only build f2fs tools on Linux Let the Mac users continue to build, though they won't be able to build devices that require f2fs. Change-Id: Ie736f5473fc9bf17c6d86ac74dba6d74f10caf04 Ticket: CYNGNOS-639 --- core/Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index 2603c64d24d..343c4936ba3 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1389,8 +1389,6 @@ DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ $(HOST_OUT_JAVA_LIBRARIES)/signapk.jar \ $(HOST_OUT_EXECUTABLES)/mkuserimg.sh \ $(HOST_OUT_EXECUTABLES)/make_ext4fs \ - $(HOST_OUT_EXECUTABLES)/mkf2fsuserimg.sh \ - $(HOST_OUT_EXECUTABLES)/make_f2fs \ $(HOST_OUT_EXECUTABLES)/simg2img \ $(HOST_OUT_EXECUTABLES)/e2fsck \ $(HOST_OUT_EXECUTABLES)/build_verity_tree \ @@ -1398,6 +1396,11 @@ DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ $(HOST_OUT_EXECUTABLES)/append2simg \ $(HOST_OUT_EXECUTABLES)/boot_signer +ifeq ($(HOST_OS),linux) + DISTTOOLS += $(HOST_OUT_EXECUTABLES)/mkf2fsuserimg.sh \ + $(HOST_OUT_EXECUTABLES)/make_f2fs +endif + OTATOOLS := $(DISTTOOLS) \ $(HOST_OUT_EXECUTABLES)/aapt From f165cfbab2ebebaa1d271378646b373da7f11530 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 4 Aug 2015 17:56:00 -0700 Subject: [PATCH 0953/1096] LMY48L --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b1cbd29f847..22656a21901 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48K +export BUILD_ID=LMY48L From 5f0c75131f434b709ff00f21423a56df3e663956 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Thu, 6 Aug 2015 13:21:29 -0700 Subject: [PATCH 0954/1096] build: Fix extra userdata generation Image generation has been combined into the target file script and requires the prefix parameter to work properly. This also needs to be called properly when creating fastboot packages. Change-Id: I1f716cc375ffe401d5f18487330fc9bb809ff3b4 Ticket: OPO-191 --- tools/releasetools/add_img_to_target_files.py | 20 ++++++++++++++----- tools/releasetools/img_from_target_files.py | 2 ++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index 9fc700dc476..f62c37e4792 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -191,19 +191,29 @@ def AddUserdata(output_zip, prefix="IMAGES/"): os.rmdir(temp_dir) -def AddUserdataExtra(output_zip): +def AddUserdataExtra(output_zip, prefix="IMAGES/"): """Create extra userdata image and store it in output_zip.""" image_props = build_image.ImagePropFromGlobalDict(OPTIONS.info_dict, "data_extra") - # If no userdataextra_size is provided for extfs, skip userdata_extra.img. - if ((image_props.get("fs_type", "").startswith("ext") or - image_props.get("fs_type", "").startswith("f2fs")) and - not image_props.get("partition_size")): + + # The build system has to explicitly request extra userdata. + if "fs_type" not in image_props: return extra_name = image_props.get("partition_name", "extra") + prebuilt_path = os.path.join(OPTIONS.input_tmp, prefix, "userdata_%s.img" % extra_name) + if os.path.exists(prebuilt_path): + print "userdata_%s.img already exists in %s, no need to rebuild..." % (extra_name, prefix,) + return + + # We only allow yaffs to have a 0/missing partition_size. + # Extfs, f2fs must have a size. Skip userdata_extra.img if no size. + if (not image_props.get("fs_type", "").startswith("yaffs") and + not image_props.get("partition_size")): + return + print "creating userdata_%s.img..." % extra_name # The name of the directory it is making an image out of matters to diff --git a/tools/releasetools/img_from_target_files.py b/tools/releasetools/img_from_target_files.py index 4c41cd6f0ee..1b0d29f66e5 100755 --- a/tools/releasetools/img_from_target_files.py +++ b/tools/releasetools/img_from_target_files.py @@ -160,6 +160,8 @@ def banner(s): pass # no vendor partition for this device banner("AddUserdata") add_img_to_target_files.AddUserdata(output_zip, prefix="") + banner("AddUserdataExtra") + add_img_to_target_files.AddUserdataExtra(output_zip, prefix="") banner("AddCache") add_img_to_target_files.AddCache(output_zip, prefix="") From e65d7755cb33fdd51cad0149ec8c35ea76e32737 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Thu, 6 Aug 2015 13:21:29 -0700 Subject: [PATCH 0955/1096] build: Fix extra userdata generation some more Use the prefix variable when placing the file in the target files package. Change-Id: Ia4b795416b58c493c3ea91b964e3b6f4cdf0fef1 Ticket: OPO-191 --- tools/releasetools/add_img_to_target_files.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index f62c37e4792..2537c62f9ad 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -232,7 +232,7 @@ def AddUserdataExtra(output_zip, prefix="IMAGES/"): # Disable size check since this fetches original data partition size #common.CheckSize(img.name, "userdata_extra.img", OPTIONS.info_dict) - output_zip.write(img.name, "userdata_%s.img" % extra_name) + output_zip.write(img.name, prefix + "userdata_%s.img" % extra_name) img.close() os.rmdir(user_dir) os.rmdir(temp_dir) From c85b14faf6e27754afe90618f2cfe237002978a0 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Wed, 12 Aug 2015 14:05:03 -0700 Subject: [PATCH 0956/1096] roomservice: use force-sync when adding projects with roomservice This works around the error GitError: --force-sync not enabled; cannot overwrite a local work tree when using roomservice. Since this should only trigger when the device repos haven't been checked out yet, we can use force-sync to overwrite any roomservice device paths in the .repo directory. Change-Id: Iac54a8a2f2913f82f8ca6497b8785a9d5769640b Ticket: CYNGNOS-735 --- tools/roomservice.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/roomservice.py b/tools/roomservice.py index f34963489f1..01a7154e582 100755 --- a/tools/roomservice.py +++ b/tools/roomservice.py @@ -223,7 +223,7 @@ def fetch_dependencies(repo_path, fallback_branch = None): if len(syncable_repos) > 0: print('Syncing dependencies') - os.system('repo sync %s' % ' '.join(syncable_repos)) + os.system('repo sync --force-sync %s' % ' '.join(syncable_repos)) for deprepo in syncable_repos: fetch_dependencies(deprepo) @@ -285,7 +285,7 @@ def has_branch(branches, revision): add_to_manifest([adding], fallback_branch) print("Syncing repository to retrieve project.") - os.system('repo sync %s' % repo_path) + os.system('repo sync --force-sync %s' % repo_path) print("Repository synced!") fetch_dependencies(repo_path, fallback_branch) From 64d3073fae68dbac8a3ff74f46458894ab02913f Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Thu, 13 Aug 2015 18:07:23 -0700 Subject: [PATCH 0957/1096] build/core: Allow EXTERNAL_CLEAN_TARGETS to dump vars. Change-Id: I4623ad38959aaeac75d6b7905133562a195ef531 --- core/dumpvar.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/dumpvar.mk b/core/dumpvar.mk index 47ba476c5a4..555da1d4d91 100644 --- a/core/dumpvar.mk +++ b/core/dumpvar.mk @@ -84,8 +84,10 @@ $(info HOST_OS_EXTRA=$(HOST_OS_EXTRA)) $(info HOST_BUILD_TYPE=$(HOST_BUILD_TYPE)) $(info BUILD_ID=$(BUILD_ID)) $(info OUT_DIR=$(OUT_DIR)) -ifeq ($(CYNGN_TARGET),true) +ifneq (,$(filter true, $(CYNGN_TARGET) $(EXTERNAL_CLEAN_TARGET))) +ifeq ($(CYNGN_TARGET), true) $(info CYNGN_TARGET=$(CYNGN_TARGET)) +endif $(info CYNGN_FEATURES=$(CYNGN_FEATURES)) endif $(info ============================================) From 3b9e3a3bf3ca8e15ef52687459a3100ae44c1533 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 13 Aug 2015 19:41:57 -0700 Subject: [PATCH 0958/1096] "LMY48M" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 22656a21901..631ec250e7d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48L +export BUILD_ID=LMY48M From 09787c9eba822757d5fc7218eb27c532dd946688 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Thu, 13 Aug 2015 20:17:14 -0700 Subject: [PATCH 0959/1096] "LMY48N" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 631ec250e7d..411d813cebc 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48M +export BUILD_ID=LMY48N From 03ca3af77e05af018636f41e2be9383665d9576a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 14 Aug 2015 12:04:01 -0700 Subject: [PATCH 0960/1096] "LVY48F" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index b30af958d1a..01f9e7cb3b8 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY48E +export BUILD_ID=LVY48F From 53fcd130b108995747d3e7b4afee1007239c83a3 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 14 Aug 2015 12:42:14 -0700 Subject: [PATCH 0961/1096] "LMY48O" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 411d813cebc..36930f74723 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48N +export BUILD_ID=LMY48O From ba7e53fe99eacd53f0d25a21ba7f5b03425d168b Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Tue, 9 Jun 2015 19:35:53 -0500 Subject: [PATCH 0962/1096] build: Enable custom ccache cache dir for Android During lunch, check environment variables for ANDROID_CCACHE_DIR. If it is specified, CCACHE_DIR is set to match. Prevents issues with multiple versions of ccache writing to the same cache dir. ANDROID_CCACHE_SIZE should also be specified, allowing for a distinct cache directory size from the default. Syntax for ANDROID_CCACHE_SIZE is the same as applied in the command: 'ccache -M$ANDROID_CCACHE_SIZE' Change-Id: I17497a6f56347850e0fa7b8ebd4de0b5a0b13e55 --- core/combo/select.mk | 6 ++++++ envsetup.sh | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/core/combo/select.mk b/core/combo/select.mk index d66156c16cd..ec10dd2fe14 100644 --- a/core/combo/select.mk +++ b/core/combo/select.mk @@ -104,7 +104,13 @@ ifneq ($(USE_CCACHE),) ifndef CXX_WRAPPER CXX_WRAPPER := $(ccache) endif + ifeq ($(ANDROID_CCACHE_DIR), $(CCACHE_DIR)) + ifneq ($(ANDROID_CCACHE_SIZE),) + ACCSIZE_RESULT := $(shell $(ccache) -M$(ANDROID_CCACHE_SIZE)) + endif + endif ccache = + ACCSIZE_RESULT = endif endif diff --git a/envsetup.sh b/envsetup.sh index 43d2fca9b6a..3a6967af19f 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -228,6 +228,10 @@ function setpaths() unset ANDROID_HOST_OUT export ANDROID_HOST_OUT=$(get_abs_build_var HOST_OUT) + if [ -n "$ANDROID_CCACHE_DIR" ]; then + export CCACHE_DIR=$ANDROID_CCACHE_DIR + fi + # needed for building linux on MacOS # TODO: fix the path #export HOST_EXTRACFLAGS="-I "$T/system/kernel_headers/host_include From cad7d3a86658399799e0d74bd50a7a6dbd63bdd2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Fri, 14 Aug 2015 17:57:15 -0700 Subject: [PATCH 0963/1096] LMY48P --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 36930f74723..23f38b5fdef 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48O +export BUILD_ID=LMY48P From 8dd9ea10c50a989561b4d4d4f7c55947e8c1b19d Mon Sep 17 00:00:00 2001 From: arter97 Date: Tue, 9 Sep 2014 11:44:22 +0900 Subject: [PATCH 0964/1096] Apply correct, optimized mfpu compiler flag for ARMv7-A Cortex CPUs For those ARMv7-A Cortex CPUs that can handle VFPv4 floating point, We can set "-mfpu=neon-vfpv4" instead of generic "-mfpu=neon" to gain extra performance improvements. References : - GCC : https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html - Cortex A15 : http://www.arm.com/products/processors/cortex-a/cortex-a15.php - Cortex A9 : http://www.arm.com/products/processors/cortex-a/cortex-a9.php - Cortex A8 : http://www.arm.com/products/processors/cortex-a/cortex-a8.php - Cortex A7 : http://www.arm.com/products/processors/cortex-a/cortex-a7.php - Cortex A5 : http://www.arm.com/products/processors/cortex-a/cortex-a5.php Currently prebuilt clang doesn't support neon-vfpv4 flag so fall back to neon Also added support for cortex-a5 arch Change-Id: I91893789ed8edabf3767e1782e494b81158332bb Signed-off-by: Park Ju Hyung Signed-off-by: Maxime Poulain --- core/clang/arm.mk | 3 ++- core/combo/arch/arm/armv7-a-neon.mk | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/core/clang/arm.mk b/core/clang/arm.mk index 22c73977a66..69853f6bb39 100644 --- a/core/clang/arm.mk +++ b/core/clang/arm.mk @@ -28,5 +28,6 @@ define subst-clang-incompatible-arm-flags $(subst -march=armv5te,-march=armv5t,\ $(subst -march=armv5e,-march=armv5,\ $(subst -mcpu=cortex-a15,-march=armv7-a,\ - $(1)))) + $(subst -mfpu=neon-vfpv4,-mfpu=neon,\ + $(1))))) endef diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk index 37f7f86484c..393e26fde06 100644 --- a/core/combo/arch/arm/armv7-a-neon.mk +++ b/core/combo/arch/arm/armv7-a-neon.mk @@ -6,27 +6,30 @@ ARCH_ARM_HAVE_VFP := true ARCH_ARM_HAVE_VFP_D32 := true ARCH_ARM_HAVE_NEON := true -ifneq (,$(filter cortex-a15 krait denver,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) - arch_variant_cflags := -mcpu=cortex-a15 +ifneq (,$(filter cortex-a15 denver krait,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) + arch_variant_cflags := -mcpu=cortex-a15 -mfpu=neon-vfpv4 else ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a9) - arch_variant_cflags := -mcpu=cortex-a9 + arch_variant_cflags := -mcpu=cortex-a9 -mfpu=neon else ifneq (,$(filter cortex-a8 scorpion,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) - arch_variant_cflags := -mcpu=cortex-a8 + arch_variant_cflags := -mcpu=cortex-a8 -mfpu=neon else ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a7) - arch_variant_cflags := -mcpu=cortex-a7 + arch_variant_cflags := -mcpu=cortex-a7 -mfpu=neon-vfpv4 else - arch_variant_cflags := -march=armv7-a +ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a5) + arch_variant_cflags := -mcpu=cortex-a7 -mfpu=neon-vfpv4 +else + arch_variant_cflags := -march=armv7-a -mfpu=neon +endif endif endif endif endif arch_variant_cflags += \ - -mfloat-abi=softfp \ - -mfpu=neon + -mfloat-abi=softfp arch_variant_ldflags := \ -Wl,--fix-cortex-a8 From 5e33ceba99f91970f3f2163eb36e2a86611987f5 Mon Sep 17 00:00:00 2001 From: Ian Rogers Date: Wed, 15 Oct 2014 15:44:16 -0700 Subject: [PATCH 0965/1096] Move definition of -D__ARM_FEATURE_LPAE=1 cflag to top-level. LPAE indicates better instructions can be used when atomicity guarantees are needed. However, LPAE's presence isn't advertised by clang/GCC. We fake an ARM feature to advertise its presence on architectures where it is. Also, add a TODO documenting that cortex-a15 is not the correct CPU variant for krait. Change-Id: I580ceea16b2f176543bf3d0ba8d8d998cc1c6bdb Signed-off-by: Maxime Poulain --- core/combo/arch/arm/armv7-a-neon.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk index 393e26fde06..f7a441a7208 100644 --- a/core/combo/arch/arm/armv7-a-neon.mk +++ b/core/combo/arch/arm/armv7-a-neon.mk @@ -8,6 +8,10 @@ ARCH_ARM_HAVE_NEON := true ifneq (,$(filter cortex-a15 denver krait,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) arch_variant_cflags := -mcpu=cortex-a15 -mfpu=neon-vfpv4 + + # Fake an ARM compiler flag as these processors support LPAE which GCC/clang + # don't advertise. + arch_variant_cflags += -D__ARM_FEATURE_LPAE=1 else ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a9) arch_variant_cflags := -mcpu=cortex-a9 -mfpu=neon From abd57a26e6f399cf053d9b7b588571ede1d1d65a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= Date: Wed, 25 Mar 2015 16:59:46 +0100 Subject: [PATCH 0966/1096] Allow -mcpu=cortex-a15 for clang MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clang 3.6 (including the snapshot present in AOSP) added support for -mcpu=cortex-a15 -- there's no need to fall back to generic armv7-a anymore. Signed-off-by: Bernhard Rosenkränzer Signed-off-by: Maxime Poulain Change-Id: I8e1ddc04a6046355c732c35d690453f61ecb206a --- core/clang/arm.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/clang/arm.mk b/core/clang/arm.mk index 69853f6bb39..1b25b9e127d 100644 --- a/core/clang/arm.mk +++ b/core/clang/arm.mk @@ -27,7 +27,6 @@ CLANG_CONFIG_arm_UNKNOWN_CFLAGS := \ define subst-clang-incompatible-arm-flags $(subst -march=armv5te,-march=armv5t,\ $(subst -march=armv5e,-march=armv5,\ - $(subst -mcpu=cortex-a15,-march=armv7-a,\ $(subst -mfpu=neon-vfpv4,-mfpu=neon,\ - $(1))))) + $(1)))) endef From de428e375ae341b78025b03563babcafb1fb481f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= Date: Wed, 25 Mar 2015 17:15:29 +0100 Subject: [PATCH 0967/1096] Don't use -Wl,--fix-cortex-a8 for Cortex A7, A9, A15, Krait or Denver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Wl,--fix-cortex-a8 is a workaround for an Erratum in Cortex-A8 processors. It slightly increases code size and decreases performance, and there's no point in using it on non-A8 CPUs. Instead of forcing it unconditionally, use it when targeting Cortex-A8 or generic armv7-a (which might or might not be A8). Change-Id: I77c674eafda4089267df2dd5649e9fdb60c428ca Signed-off-by: Bernhard Rosenkränzer Signed-off-by: Maxime Poulain --- core/combo/arch/arm/armv7-a-neon.mk | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk index f7a441a7208..c6c38e2a1ac 100644 --- a/core/combo/arch/arm/armv7-a-neon.mk +++ b/core/combo/arch/arm/armv7-a-neon.mk @@ -12,20 +12,33 @@ ifneq (,$(filter cortex-a15 denver krait,$(TARGET_$(combo_2nd_arch_prefix)CPU_VA # Fake an ARM compiler flag as these processors support LPAE which GCC/clang # don't advertise. arch_variant_cflags += -D__ARM_FEATURE_LPAE=1 + arch_variant_ldflags := \ + -Wl,--no-fix-cortex-a8 else ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a9) arch_variant_cflags := -mcpu=cortex-a9 -mfpu=neon + arch_variant_ldflags := \ + -Wl,--no-fix-cortex-a8 else ifneq (,$(filter cortex-a8 scorpion,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) arch_variant_cflags := -mcpu=cortex-a8 -mfpu=neon + arch_variant_ldflags := \ + -Wl,--fix-cortex-a8 else ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a7) arch_variant_cflags := -mcpu=cortex-a7 -mfpu=neon-vfpv4 + arch_variant_ldflags := \ + -Wl,--no-fix-cortex-a8 else ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a5) arch_variant_cflags := -mcpu=cortex-a7 -mfpu=neon-vfpv4 + arch_variant_ldflags := \ + -Wl,--no-fix-cortex-a8 else arch_variant_cflags := -march=armv7-a -mfpu=neon + # Generic ARM might be a Cortex A8 -- better safe than sorry + arch_variant_ldflags := \ + -Wl,--fix-cortex-a8 endif endif endif @@ -34,6 +47,3 @@ endif arch_variant_cflags += \ -mfloat-abi=softfp - -arch_variant_ldflags := \ - -Wl,--fix-cortex-a8 From 4ae8bf518eb546f72f8f2866ce7acea9d34e9e80 Mon Sep 17 00:00:00 2001 From: Andreas Blaesius Date: Fri, 15 May 2015 06:11:44 -0400 Subject: [PATCH 0968/1096] Force bsdiff for recovery_from_boot.p if not using GZIP imgdiff expects a ramdisk to use GZIP, which is causing a chunk size issue if recovery is using LZMA Change-Id: I3194b4faed25a298fe23b4e24b6dea2885bafda8 --- core/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/Makefile b/core/Makefile index 343c4936ba3..6418faa9bc6 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1115,8 +1115,12 @@ $(RECOVERY_FROM_BOOT_PATCH): $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(HOST_OUT_EXECUTABLES)/bsdiff @echo -e ${CL_CYN}"Construct recovery from boot"${CL_RST} mkdir -p $(dir $@) +ifeq ($(TARGET_NOT_USE_GZIP_RECOVERY_RAMDISK),true) + PATH=$(HOST_OUT_EXECUTABLES):$$PATH $(HOST_OUT_EXECUTABLES)/bsdiff $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_RECOVERYIMAGE_TARGET) $@ +else PATH=$(HOST_OUT_EXECUTABLES):$$PATH $(HOST_OUT_EXECUTABLES)/imgdiff $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_RECOVERYIMAGE_TARGET) $@ endif +endif $(INSTALLED_SYSTEMIMAGE): $(BUILT_SYSTEMIMAGE) $(RECOVERY_FROM_BOOT_PATCH) | $(ACP) From b817b6c88626236a07a93e28981d595fcc2ef130 Mon Sep 17 00:00:00 2001 From: Rashed Abdel-Tawab Date: Sun, 12 Jul 2015 20:25:14 -0400 Subject: [PATCH 0969/1096] build: Enable A53 errata workarounds on targets that need it * Automatically enable the errata workarounds on 64bit chips using A53 cores * Leave the TARGET_CPU_CORTEX_A53 flag in case a device that needs these workarounds has side effects from setting the CPU variant. Change-Id: I86917fc70445fef442226e6128c361f836bae755 --- core/combo/arch/arm64/armv8-a.mk | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/combo/arch/arm64/armv8-a.mk b/core/combo/arch/arm64/armv8-a.mk index d94f35baa55..642fe91ff7d 100644 --- a/core/combo/arch/arm64/armv8-a.mk +++ b/core/combo/arch/arm64/armv8-a.mk @@ -1,5 +1,12 @@ arch_variant_cflags := +# If the chip uses a53 cores, enable the errata workarounds +ifneq ($(filter $(TARGET_CPU_VARIANT) $(TARGET_2ND_CPU_VARIANT),cortex-a53),) + TARGET_CPU_CORTEX_A53 ?= true +endif + +# Leave the flag so devices that need the workaround but don't fit in +# the check above can still enable it. ifeq ($(TARGET_CPU_CORTEX_A53),true) arch_variant_ldflags := -Wl,--fix-cortex-a53-843419 \ -Wl,--fix-cortex-a53-835769 From 01e44ce1fb394ad9dacce1879bae027a25f32c35 Mon Sep 17 00:00:00 2001 From: Tom Powell Date: Tue, 4 Aug 2015 15:37:12 -0700 Subject: [PATCH 0970/1096] Support custom gerrit servers via HTTP or SSH Please test/provide feedback. Change-Id: Id7043dc009c1fe5614f73a5da2aa021c0d784a4b Ticket: RM-14 --- tools/repopick.py | 650 ++++++++++++++++++++-------------------------- 1 file changed, 285 insertions(+), 365 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index 679fae4bfc5..022cfced92b 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2013-14 The CyanogenMod Project +# Copyright (C) 2013-15 The CyanogenMod Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -30,385 +30,305 @@ import textwrap try: - # For python3 - import urllib.error - import urllib.request + # For python3 + import urllib.error + import urllib.request except ImportError: - # For python2 - import imp - import urllib2 - urllib = imp.new_module('urllib') - urllib.error = urllib2 - urllib.request = urllib2 - -# Parse the command line -parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, description=textwrap.dedent('''\ - repopick.py is a utility to simplify the process of cherry picking - patches from CyanogenMod's Gerrit instance. - - Given a list of change numbers, repopick will cd into the project path - and cherry pick the latest patch available. - - With the --start-branch argument, the user can specify that a branch - should be created before cherry picking. This is useful for - cherry-picking many patches into a common branch which can be easily - abandoned later (good for testing other's changes.) - - The --abandon-first argument, when used in conjuction with the - --start-branch option, will cause repopick to abandon the specified - branch in all repos first before performing any cherry picks.''')) -parser.add_argument('change_number', nargs='*', help='change number to cherry pick. Use {change number}/{patchset number} to get a specific revision.') -parser.add_argument('-i', '--ignore-missing', action='store_true', help='do not error out if a patch applies to a missing directory') -parser.add_argument('-s', '--start-branch', nargs=1, help='start the specified branch before cherry picking') -parser.add_argument('-a', '--abandon-first', action='store_true', help='before cherry picking, abandon the branch specified in --start-branch') -parser.add_argument('-b', '--auto-branch', action='store_true', help='shortcut to "--start-branch auto --abandon-first --ignore-missing"') -parser.add_argument('-q', '--quiet', action='store_true', help='print as little as possible') -parser.add_argument('-v', '--verbose', action='store_true', help='print extra information to aid in debug') -parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if commit has been merged') -parser.add_argument('-p', '--pull', action='store_true', help='execute pull instead of cherry-pick') -parser.add_argument('-t', '--topic', help='pick all commits from a specified topic') -parser.add_argument('-Q', '--query', help='pick all commits using the specified query') -args = parser.parse_args() -if args.start_branch == None and args.abandon_first: - parser.error('if --abandon-first is set, you must also give the branch name with --start-branch') -if args.auto_branch: - args.abandon_first = True - args.ignore_missing = True - if not args.start_branch: - args.start_branch = ['auto'] -if args.quiet and args.verbose: - parser.error('--quiet and --verbose cannot be specified together') -if len(args.change_number) > 0: - if args.topic or args.query: - parser.error('cannot specify a topic (or query) and change number(s) together') -if args.topic and args.query: - parser.error('cannot specify a topic and a query together') -if len(args.change_number) == 0 and not args.topic and not args.query: - parser.error('must specify at least one commit id or a topic or a query') - -# Helper function to determine whether a path is an executable file -def is_exe(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) - -# Implementation of Unix 'which' in Python -# -# From: http://stackoverflow.com/questions/377017/test-if-executable-exists-in-python -def which(program): - fpath, fname = os.path.split(program) - if fpath: - if is_exe(program): - return program - else: - for path in os.environ["PATH"].split(os.pathsep): - path = path.strip('"') - exe_file = os.path.join(path, program) - if is_exe(exe_file): - return exe_file - - return None - -# Simple wrapper for os.system() that: -# - exits on error if !can_fail -# - prints out the command if --verbose -# - suppresses all output if --quiet -def execute_cmd(cmd, can_fail=False): - if args.verbose: - print('Executing: %s' % cmd) - if args.quiet: - cmd = cmd.replace(' && ', ' &> /dev/null && ') - cmd = cmd + " &> /dev/null" - if os.system(cmd): - if not args.verbose: - print('\nCommand that failed:\n%s' % cmd) - if not can_fail: - sys.exit(1) - -# Verifies whether pathA is a subdirectory (or the same) as pathB -def is_pathA_subdir_of_pathB(pathA, pathB): - pathA = os.path.realpath(pathA) + '/' - pathB = os.path.realpath(pathB) + '/' - return(pathB == pathA[:len(pathB)]) - -# Find the necessary bins - repo -repo_bin = which('repo') -if repo_bin == None: - repo_bin = os.path.join(os.environ["HOME"], 'repo') - if not is_exe(repo_bin): - sys.stderr.write('ERROR: Could not find the repo program in either $PATH or $HOME/bin\n') - sys.exit(1) + # For python2 + import imp + import urllib2 + urllib = imp.new_module('urllib') + urllib.error = urllib2 + urllib.request = urllib2 -# Find the necessary bins - git -git_bin = which('git') -if not is_exe(git_bin): - sys.stderr.write('ERROR: Could not find the git program in $PATH\n') - sys.exit(1) - -# Change current directory to the top of the tree -if 'ANDROID_BUILD_TOP' in os.environ: - top = os.environ['ANDROID_BUILD_TOP'] - if not is_pathA_subdir_of_pathB(os.getcwd(), top): - sys.stderr.write('ERROR: You must run this tool from within $ANDROID_BUILD_TOP!\n') - sys.exit(1) - os.chdir(os.environ['ANDROID_BUILD_TOP']) - -# Sanity check that we are being run from the top level of the tree -if not os.path.isdir('.repo'): - sys.stderr.write('ERROR: No .repo directory found. Please run this from the top of your tree.\n') - sys.exit(1) - -# If --abandon-first is given, abandon the branch before starting -if args.abandon_first: - # Determine if the branch already exists; skip the abandon if it does not - plist = subprocess.Popen([repo_bin,"info"], stdout=subprocess.PIPE) - needs_abandon = False - while(True): - pline = plist.stdout.readline().rstrip() - if not pline: - break - matchObj = re.match(r'Local Branches.*\[(.*)\]', pline.decode()) - if matchObj: - local_branches = re.split('\s*,\s*', matchObj.group(1)) - if any(args.start_branch[0] in s for s in local_branches): - needs_abandon = True - - if needs_abandon: - # Perform the abandon only if the branch already exists - if not args.quiet: - print('Abandoning branch: %s' % args.start_branch[0]) - cmd = '%s abandon %s' % (repo_bin, args.start_branch[0]) - execute_cmd(cmd) - if not args.quiet: - print('') -# Get the list of projects that repo knows about -# - convert the project name to a project path -project_name_to_path = {} -plist = subprocess.Popen([repo_bin,"list"], stdout=subprocess.PIPE) -project_path = None -while(True): - pline = plist.stdout.readline().rstrip() - if not pline: - break - ppaths = re.split('\s*:\s*', pline.decode()) - project_name_to_path[ppaths[1]] = ppaths[0] - -# Get all commits for a specified query -def fetch_query(query): - url = 'http://review.cyanogenmod.org/changes/?q=%s' % query - if args.verbose: - print('Fetching all commits using query: %s\n' % query) - f = urllib.request.urlopen(url) - d = f.read().decode("utf-8") - if args.verbose: - print('Result from request:\n' + d) - - # Clean up the result - d = d.split(')]}\'\n')[1] - matchObj = re.match(r'\[\s*\]', d) - if matchObj: - sys.stderr.write('ERROR: Query %s was not found on the server\n' % query) - sys.exit(1) - d = re.sub(r'\[(.*)\]', r'\1', d) - if args.verbose: - print('Result from request:\n' + d) - - data = json.loads(d) - changelist = [] - for c in xrange(0, len(data)): - changelist.append(data[c]['_number']) - - # Reverse the array as we want to pick the lowest one first - args.change_number = reversed(changelist) - -if args.topic: - fetch_query("topic:{0}".format(args.topic)) - -if args.query: - fetch_query(args.query) - -# Check for range of commits and rebuild array -changelist = [] -for change in args.change_number: - c=str(change) - if '-' in c: - templist = c.split('-') - for i in range(int(templist[0]), int(templist[1]) + 1): - changelist.append(str(i)) +# Verifies whether pathA is a subdirectory (or the same) as pathB +def is_subdir(a, b): + a = os.path.realpath(a) + '/' + b = os.path.realpath(b) + '/' + return b == a[:len(b)] + + +def fetch_query_via_ssh(remote_url, query): + """Given a remote_url and a query, return the list of changes that fit it + This function is slightly messy - the ssh api does not return data in the same structure as the HTTP REST API + We have to get the data, then transform it to match what we're expecting from the HTTP RESET API""" + if remote_url.count(':') == 2: + (uri, userhost, port) = remote_url.split(':') + elif remote_url.count(':') == 1: + (uri, userhost) = remote_url.split(':') + port = 29418 else: - changelist.append(c) + raise Exception('Malformed URI: Expecting ssh://[user@]host[:port]') -args.change_number = changelist -# Iterate through the requested change numbers -for changeps in args.change_number: + out = subprocess.check_output(['ssh', '-x', '-p{0}'.format(port), userhost, 'gerrit', 'query', '--format=JSON --patch-sets --current-patch-set', query]) - if '/' in changeps: - change = changeps.split('/')[0] - patchset = changeps.split('/')[1] + reviews = [] + for line in out.split('\n'): + try: + data = json.loads(line) + # make our data look like the http rest api data + review = { + 'branch': data['branch'], + 'change_id': data['id'], + 'current_revision': data['currentPatchSet']['revision'], + 'number': int(data['number']), + 'revisions': {patch_set['revision']: { + 'number': int(patch_set['number']), + 'fetch': { + 'ssh': { + 'ref': patch_set['ref'], + 'url': u'ssh://{0}:{1}/{2}'.format(userhost, port, data['project']) + } + } + } for patch_set in data['patchSets']}, + 'subject': data['subject'], + 'project': data['project'], + 'status': data['status'] + } + reviews.append(review) + except ValueError: + pass + print('Found {0} reviews'.format(len(reviews))) + return reviews + + +def fetch_query_via_http(remote_url, query): + + """Given a query, fetch the change numbers via http""" + url = '{0}/changes/?q={1}&o=CURRENT_REVISION&o=ALL_REVISIONS'.format(remote_url, query) + data = urllib.request.urlopen(url).read().decode('utf-8') + reviews = json.loads(data[5:]) + + for review in reviews: + review[u'number'] = review.pop('_number') + + return reviews + + +def fetch_query(remote_url, query): + """Wrapper for fetch_query_via_proto functions""" + if remote_url[0:2] == 'ssh': + return fetch_query_via_ssh(remote_url, query) + elif remote_url[0:4] == 'http': + return fetch_query_via_http(remote_url, query.replace(' ', '+')) else: - change = changeps - patchset = '' + raise Exception('Gerrit URL should be in the form http[s]://hostname/ or ssh://[user@]host[:port]') + +if __name__ == '__main__': + parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, description=textwrap.dedent('''\ + repopick.py is a utility to simplify the process of cherry picking + patches from CyanogenMod's Gerrit instance (or any gerrit instance of your choosing) + + Given a list of change numbers, repopick will cd into the project path + and cherry pick the latest patch available. + + With the --start-branch argument, the user can specify that a branch + should be created before cherry picking. This is useful for + cherry-picking many patches into a common branch which can be easily + abandoned later (good for testing other's changes.) + + The --abandon-first argument, when used in conjunction with the + --start-branch option, will cause repopick to abandon the specified + branch in all repos first before performing any cherry picks.''')) + parser.add_argument('change_number', nargs='*', help='change number to cherry pick. Use {change number}/{patchset number} to get a specific revision.') + parser.add_argument('-i', '--ignore-missing', action='store_true', help='do not error out if a patch applies to a missing directory') + parser.add_argument('-s', '--start-branch', nargs=1, help='start the specified branch before cherry picking') + parser.add_argument('-a', '--abandon-first', action='store_true', help='before cherry picking, abandon the branch specified in --start-branch') + parser.add_argument('-b', '--auto-branch', action='store_true', help='shortcut to "--start-branch auto --abandon-first --ignore-missing"') + parser.add_argument('-q', '--quiet', action='store_true', help='print as little as possible') + parser.add_argument('-v', '--verbose', action='store_true', help='print extra information to aid in debug') + parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if commit has been merged') + parser.add_argument('-p', '--pull', action='store_true', help='execute pull instead of cherry-pick') + parser.add_argument('-t', '--topic', help='pick all commits from a specified topic') + parser.add_argument('-Q', '--query', help='pick all commits using the specified query') + parser.add_argument('-g', '--gerrit', default='http://review.cyanogenmod.org', help='Gerrit Instance to use. Form proto://[user@]host[:port]') + args = parser.parse_args() + print (args.gerrit) + if not args.start_branch and args.abandon_first: + parser.error('if --abandon-first is set, you must also give the branch name with --start-branch') + if args.auto_branch: + args.abandon_first = True + args.ignore_missing = True + if not args.start_branch: + args.start_branch = ['auto'] + if args.quiet and args.verbose: + parser.error('--quiet and --verbose cannot be specified together') + + if (1 << bool(args.change_number) << bool(args.topic) << bool(args.query)) != 2: + parser.error('One (and only one) of change_number, topic, and query are allowed') + + # Change current directory to the top of the tree + if 'ANDROID_BUILD_TOP' in os.environ: + top = os.environ['ANDROID_BUILD_TOP'] + + if not is_subdir(os.getcwd(), top): + sys.stderr.write('ERROR: You must run this tool from within $ANDROID_BUILD_TOP!\n') + sys.exit(1) + os.chdir(os.environ['ANDROID_BUILD_TOP']) + + # Sanity check that we are being run from the top level of the tree + if not os.path.isdir('.repo'): + sys.stderr.write('ERROR: No .repo directory found. Please run this from the top of your tree.\n') + sys.exit(1) - if not args.quiet: - if len(patchset) == 0: - print('Applying change number %s ...' % change) + # If --abandon-first is given, abandon the branch before starting + if args.abandon_first: + # Determine if the branch already exists; skip the abandon if it does not + plist = subprocess.check_output(['repo', 'info']) + needs_abandon = False + for pline in plist: + matchObj = re.match(r'Local Branches.*\[(.*)\]', pline) + if matchObj: + local_branches = re.split('\s*,\s*', matchObj.group(1)) + if any(args.start_branch[0] in s for s in local_branches): + needs_abandon = True + + if needs_abandon: + # Perform the abandon only if the branch already exists + if not args.quiet: + print('Abandoning branch: %s' % args.start_branch[0]) + subprocess.check_output(['repo', 'abandon', args.start_branch[0]]) + if not args.quiet: + print('') + + # Get the list of projects that repo knows about + # - convert the project name to a project path + project_name_to_path = {} + plist = subprocess.check_output(['repo', 'list']).split('\n') + + for pline in plist: + if not pline: + break + ppaths = pline.split(' : ') + + project_name_to_path[ppaths[1]] = ppaths[0] + + # get data on requested changes + reviews = [] + change_numbers = [] + if args.topic: + reviews = fetch_query(args.gerrit, 'topic:{0}'.format(args.topic)) + change_numbers = [str(r['number']) for r in reviews] + if args.query: + reviews = fetch_query(args.gerrit, args.query) + change_numbers = [str(r['number']) for r in reviews] + if args.change_number: + reviews = fetch_query(args.gerrit, ' OR '.join('change:{0}'.format(x.split('/')[0]) for x in args.change_number)) + change_numbers = args.change_number + # make list of things to actually merge + + mergables = [] + + for change in change_numbers: + patchset = None + if '/' in change: + (change, patchset) = change.split('/') + change = int(change) + + review = [x for x in reviews if x['number'] == change][0] + mergables.append({ + 'subject': review['subject'], + 'project': review['project'], + 'branch': review['branch'], + 'change_number': review['number'], + 'status': review['status'], + 'fetch': None + }) + mergables[-1]['fetch'] = review['revisions'][review['current_revision']]['fetch'] + mergables[-1]['id'] = change + if patchset: + try: + mergables[-1]['fetch'] = [x['fetch'] for x in review['revisions'] if x['_number'] == patchset][0] + mergables[-1]['id'] = '{0}/{1}'.format(change, patchset) + except (IndexError, ValueError): + print('ERROR: The patch set {0}/{1} could not be found, using CURRENT_REVISION instead.'.format(change, patchset)) + + for item in mergables: + print('Applying change number {0}...'.format(item['id'])) + # Check if commit has already been merged and exit if it has, unless -f is specified + if item['status'] == 'MERGED': + if args.force: + print('!! Force-picking a merged commit !!\n') + else: + print('Commit already merged. Skipping the cherry pick.\nUse -f to force this pick.') + continue + + # Convert the project name to a project path + # - check that the project path exists + project_path = None + if item['project'] in project_name_to_path: + project_path = project_name_to_path[item['project']] + + if project_path.startswith('hardware/qcom/'): + split_path = project_path.split('/') + # split_path[2] might be display or it might be display-caf, trim the -caf + split_path[2] = split_path[2].split('-')[0] + + # Need to treat hardware/qcom/{audio,display,media} specially + if split_path[2] == 'audio' or split_path[2] == 'display' or split_path[2] == 'media': + split_branch = item['branch'].split('-') + + # display is extra special + if split_path[2] == 'display' and len(split_path) == 3: + project_path = '/'.join(split_path) + else: + project_path = '/'.join(split_path[:-1]) + + if len(split_branch) == 4 and split_branch[0] == 'cm' and split_branch[2] == 'caf': + project_path += '-caf/msm' + split_branch[3] + # audio and media are different from display + elif split_path[2] == 'audio' or split_path[2] == 'media': + project_path += '/default' + elif args.ignore_missing: + print('WARNING: Skipping {0} since there is no project directory for: {1}\n'.format(item['id'], item['project'])) + continue else: - print('Applying change number {change}/{patchset} ...'.format(change=change, patchset=patchset)) + sys.stderr.write('ERROR: For {0}, could not determine the project path for project {1}\n'.format(item['id'], item['project'])) + sys.exit(1) - if len(patchset) == 0: - query_revision = 'CURRENT_REVISION' - else: - query_revision = 'ALL_REVISIONS' - - # Fetch information about the change from Gerrit's REST API - # - # gerrit returns two lines, a magic string and then valid JSON: - # )]}' - # [ ... valid JSON ... ] - url = 'http://review.cyanogenmod.org/changes/?q={change}&o={query_revision}&o=CURRENT_COMMIT&pp=0'.format(change=change, query_revision=query_revision) - if args.verbose: - print('Fetching from: %s\n' % url) - try: - f = urllib.request.urlopen(url) - except urllib.error.URLError: - sys.stderr.write('ERROR: Server reported an error, or cannot be reached\n') - sys.exit(1) - d = f.read().decode("utf-8") - if args.verbose: - print('Result from request:\n' + d) - - # Clean up the result - d = d.split('\n')[1] - matchObj = re.match(r'\[\s*\]', d) - if matchObj: - sys.stderr.write('ERROR: Change number %s was not found on the server\n' % change) - sys.exit(1) - d = re.sub(r'\[(.*)\]', r'\1', d) - - # Parse the JSON - try: - data = json.loads(d) - except ValueError: - sys.stderr.write('ERROR: The response from the server could not be parsed properly\n') - if not args.verbose: - sys.stderr.write('The malformed response was: %s\n' % d) - sys.exit(1) + # If --start-branch is given, create the branch (more than once per path is okay; repo ignores gracefully) + if args.start_branch: + subprocess.check_output(['repo', 'start', args.start_branch[0], project_path]) - # Extract information from the JSON response - date_fluff = '.000000000' - project_name = data['project'] - project_branch = data['branch'] - change_number = data['_number'] - status = data['status'] - patchsetfound = False + # Print out some useful info + if not args.quiet: + print('--> Subject: "{0}"'.format(item['subject'])) + print('--> Project path: {0}'.format(project_path)) + print('--> Change number: {0} (Patch Set {0})'.format(item['id'])) - if len(patchset) > 0: - try: - for revision in data['revisions']: - if (int(data['revisions'][revision]['_number']) == int(patchset)) and not patchsetfound: - target_revision = data['revisions'][revision] - if args.verbose: - print('Using found patch set {patchset} ...'.format(patchset=patchset)) - patchsetfound = True - break - if not patchsetfound: - print('ERROR: The patch set could not be found, using CURRENT_REVISION instead.') - except: - print('ERROR: The patch set could not be found, using CURRENT_REVISION instead.') - patchsetfound = False - - if not patchsetfound: - target_revision = data['revisions'][data['current_revision']] - - current_revision = data['revisions'][data['current_revision']] - - patch_number = target_revision['_number'] - fetch_url = target_revision['fetch']['anonymous http']['url'] - fetch_ref = target_revision['fetch']['anonymous http']['ref'] - author_name = current_revision['commit']['author']['name'] - author_email = current_revision['commit']['author']['email'] - author_date = current_revision['commit']['author']['date'].replace(date_fluff, '') - committer_name = current_revision['commit']['committer']['name'] - committer_email = current_revision['commit']['committer']['email'] - committer_date = current_revision['commit']['committer']['date'].replace(date_fluff, '') - subject = current_revision['commit']['subject'] - - # Check if commit has already been merged and exit if it has, unless -f is specified - if status == "MERGED": - if args.force: - print("!! Force-picking a merged commit !!\n") + # Try fetching from GitHub first + if args.verbose: + print('Trying to fetch the change from GitHub') + + if 'anonymous http' in item['fetch']: + method = 'anonymous http' else: - print("Commit already merged. Skipping the cherry pick.\nUse -f to force this pick.") - continue; - - # Convert the project name to a project path - # - check that the project path exists - if project_name in project_name_to_path: - project_path = project_name_to_path[project_name]; - - if project_path.startswith('hardware/qcom/'): - split_path = project_path.split('/') - # split_path[2] might be display or it might be display-caf, trim the -caf - split_path[2] = split_path[2].split('-')[0] - - # Need to treat hardware/qcom/{audio,display,media} specially - if split_path[2] == 'audio' or split_path[2] == 'display' or split_path[2] == 'media': - split_branch = project_branch.split('-') - - # display is extra special - if split_path[2] == 'display' and len(split_path) == 3: - project_path = '/'.join(split_path) - else: - project_path = '/'.join(split_path[:-1]) - - if len(split_branch) == 4 and split_branch[0] == 'cm' and split_branch[2] == 'caf': - project_path += '-caf/msm' + split_branch[3] - # audio and media are different from display - elif split_path[2] == 'audio' or split_path[2] == 'media': - project_path += '/default' - elif args.ignore_missing: - print('WARNING: Skipping %d since there is no project directory for: %s\n' % (change_number, project_name)) - continue; - else: - sys.stderr.write('ERROR: For %d, could not determine the project path for project %s\n' % (change_number, project_name)) - sys.exit(1) + method = 'ssh' - # If --start-branch is given, create the branch (more than once per path is okay; repo ignores gracefully) - if args.start_branch: - cmd = '%s start %s %s' % (repo_bin, args.start_branch[0], project_path) - execute_cmd(cmd) - - # Print out some useful info - if not args.quiet: - print('--> Subject: "%s"' % subject) - print('--> Project path: %s' % project_path) - print('--> Change number: %d (Patch Set %d)' % (change_number, patch_number)) - print('--> Author: %s <%s> %s' % (author_name, author_email, author_date)) - print('--> Committer: %s <%s> %s' % (committer_name, committer_email, committer_date)) - - # Try fetching from GitHub first - if args.verbose: - print('Trying to fetch the change from GitHub') - if args.pull: - cmd = 'cd %s && git pull --no-edit github %s' % (project_path, fetch_ref) - else: - cmd = 'cd %s && git fetch github %s' % (project_path, fetch_ref) - execute_cmd(cmd, True) - # Check if it worked - FETCH_HEAD = '%s/.git/FETCH_HEAD' % project_path - if os.stat(FETCH_HEAD).st_size == 0: - # That didn't work, fetch from Gerrit instead - if args.verbose: - print('Fetching from GitHub didn\'t work, trying to fetch the change from Gerrit') if args.pull: - cmd = 'cd %s && git pull --no-edit %s %s' % (project_path, fetch_url, fetch_ref) + cmd = ['git pull --no-edit github', item['fetch'][method]['ref']] else: - cmd = 'cd %s && git fetch %s %s' % (project_path, fetch_url, fetch_ref) - execute_cmd(cmd) - # Perform the cherry-pick - cmd = 'cd %s && git cherry-pick FETCH_HEAD' % (project_path) - if not args.pull: - execute_cmd(cmd) - if not args.quiet: - print('') + cmd = ['git fetch github', item['fetch'][method]['ref']] + + print(cmd) + subprocess.call([' '.join(cmd)], cwd=project_path, shell=True) + # Check if it worked + FETCH_HEAD = '{0}/.git/FETCH_HEAD'.format(project_path) + if os.stat(FETCH_HEAD).st_size == 0: + # That didn't work, fetch from Gerrit instead + if args.verbose: + print('Fetching from GitHub didn\'t work, trying to fetch the change from Gerrit') + if args.pull: + cmd = ['git pull --no-edit', item['fetch'][method]['url'], item['fetch'][method]['ref']] + else: + cmd = ['git fetch', item['fetch'][method]['url'], item['fetch'][method]['ref']] + subprocess.call([' '.join(cmd)], cwd=project_path, shell=True) + # Perform the cherry-pick + if not args.pull: + cmd = ['git cherry-pick FETCH_HEAD'] + subprocess.call(cmd, cwd=project_path, shell=True) + if not args.quiet: + print('') From 0cf0a1855a558127b565c8569964f999098fa639 Mon Sep 17 00:00:00 2001 From: Sami Tolvanen Date: Tue, 9 Dec 2014 16:40:34 +0000 Subject: [PATCH 0971/1096] Change transfer list format to include block hashes Add source and target block hashes as parameters to transfer list commands that copy or patch data to a partition. This allows the updater to verify the status of each command in the transfer list and makes resuming block based OTAs possible. Due to the changes, update the transfer list version to 3. Needs matching changes from I1e752464134aeb2d396946348e6041acabe13942 Cherrypicked from https://android-review.googlesource.com/#/c/140510/ Bug: 18262110 Change-Id: Ia5c56379f570047f10f0aa7373a1025439495c98 (cherry picked from commit cac671a9d175039ecbfe3cd84fe10b183aab1f8a) --- core/Makefile | 2 +- tools/releasetools/blockimgdiff.py | 59 +++++++++++++++++++++++++++--- tools/releasetools/common.py | 38 ++++++++++++------- 3 files changed, 79 insertions(+), 20 deletions(-) diff --git a/core/Makefile b/core/Makefile index 6418faa9bc6..382116dd16b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1624,7 +1624,7 @@ endif $(hide) echo "use_set_metadata=1" >> $(zip_root)/META/misc_info.txt $(hide) echo "multistage_support=1" >> $(zip_root)/META/misc_info.txt $(hide) echo "update_rename_support=1" >> $(zip_root)/META/misc_info.txt - $(hide) echo "blockimgdiff_versions=1,2" >> $(zip_root)/META/misc_info.txt + $(hide) echo "blockimgdiff_versions=1,2,3" >> $(zip_root)/META/misc_info.txt ifneq ($(OEM_THUMBPRINT_PROPERTIES),) # OTA scripts are only interested in fingerprint related properties $(hide) echo "oem_fingerprint_properties=$(OEM_THUMBPRINT_PROPERTIES)" >> $(zip_root)/META/misc_info.txt diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py index e4842388a2b..fc6167b0895 100644 --- a/tools/releasetools/blockimgdiff.py +++ b/tools/releasetools/blockimgdiff.py @@ -196,7 +196,7 @@ def __str__(self): # original image. class BlockImageDiff(object): - def __init__(self, tgt, src=None, threads=None, version=2, use_lzma=False): + def __init__(self, tgt, src=None, threads=None, version=3, use_lzma=False): if threads is None: threads = multiprocessing.cpu_count() // 2 if threads == 0: threads = 1 @@ -204,7 +204,7 @@ def __init__(self, tgt, src=None, threads=None, version=2, use_lzma=False): self.version = version self.use_lzma = use_lzma - assert version in (1, 2) + assert version in (1, 2, 3) self.tgt = tgt if src is None: @@ -251,6 +251,15 @@ def Compute(self, prefix): self.ComputePatches(prefix) self.WriteTransfers(prefix) + def HashBlocks(self, source, ranges): + data = source.ReadRangeSet(ranges) + ctx = sha1() + + for p in data: + ctx.update(p) + + return ctx.hexdigest() + def WriteTransfers(self, prefix): out = [] @@ -279,14 +288,22 @@ def WriteTransfers(self, prefix): next_stash_id += 1 stashes[s] = sid stashed_blocks += sr.size() - out.append("stash %d %s\n" % (sid, sr.to_string_raw())) + if self.version == 2: + out.append("stash %d %s\n" % (sid, sr.to_string_raw())) + else: + sh = self.HashBlocks(self.src, sr) + if sh in stashes: + stashes[sh] += 1 + else: + stashes[sh] = 1 + out.append("stash %s %s\n" % (sh, sr.to_string_raw())) if stashed_blocks > max_stashed_blocks: max_stashed_blocks = stashed_blocks if self.version == 1: src_string = xf.src_ranges.to_string_raw() - elif self.version == 2: + elif self.version >= 2: # <# blocks> # OR @@ -296,6 +313,7 @@ def WriteTransfers(self, prefix): size = xf.src_ranges.size() src_string = [str(size)] + free_string = [] unstashed_src_ranges = xf.src_ranges mapped_stashes = [] @@ -303,9 +321,18 @@ def WriteTransfers(self, prefix): sid = stashes.pop(s) stashed_blocks -= sr.size() unstashed_src_ranges = unstashed_src_ranges.subtract(sr) + sh = self.HashBlocks(self.src, sr) sr = xf.src_ranges.map_within(sr) mapped_stashes.append(sr) - src_string.append("%d:%s" % (sid, sr.to_string_raw())) + if self.version == 2: + src_string.append("%d:%s" % (sid, sr.to_string_raw())) + else: + assert sh in stashes + src_string.append("%s:%s" % (sh, sr.to_string_raw())) + stashes[sh] -= 1 + if stashes[sh] == 0: + free_string.append("free %s\n" % (sh)) + stashes.pop(sh) heapq.heappush(free_stash_ids, sid) if unstashed_src_ranges: @@ -321,7 +348,7 @@ def WriteTransfers(self, prefix): src_string = " ".join(src_string) - # both versions: + # all versions: # zero # new # erase @@ -335,6 +362,11 @@ def WriteTransfers(self, prefix): # bsdiff patchstart patchlen # imgdiff patchstart patchlen # move + # + # version 3: + # bsdiff patchstart patchlen srchash tgthash + # imgdiff patchstart patchlen srchash tgthash + # move hash tgt_size = xf.tgt_ranges.size() @@ -355,6 +387,11 @@ def WriteTransfers(self, prefix): out.append("%s %s %s\n" % ( xf.style, xf.tgt_ranges.to_string_raw(), src_string)) + elif self.version >= 3: + out.append("%s %s %s %s\n" % ( + xf.style, + self.HashBlocks(self.tgt, xf.tgt_ranges), + xf.tgt_ranges.to_string_raw(), src_string)) total += tgt_size elif xf.style in ("bsdiff", "imgdiff"): performs_read = True @@ -368,6 +405,13 @@ def WriteTransfers(self, prefix): out.append("%s %d %d %s %s\n" % ( xf.style, xf.patch_start, xf.patch_len, xf.tgt_ranges.to_string_raw(), src_string)) + elif self.version >= 3: + out.append("%s %d %d %s %s %s %s\n" % ( + xf.style, + xf.patch_start, xf.patch_len, + self.HashBlocks(self.src, xf.src_ranges), + self.HashBlocks(self.tgt, xf.tgt_ranges), + xf.tgt_ranges.to_string_raw(), src_string)) total += tgt_size elif xf.style == "zero": assert xf.tgt_ranges @@ -378,6 +422,9 @@ def WriteTransfers(self, prefix): else: raise ValueError, "unknown transfer style '%s'\n" % (xf.style,) + if free_string: + out.append("".join(free_string)) + # sanity check: abort if we're going to need more than 512 MB if # stash space diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 8e49b39bf02..8171de63871 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -1138,18 +1138,21 @@ def WriteScript(self, script, output_zip, progress=None): self._WriteUpdate(script, output_zip) def WriteVerifyScript(self, script): + partition = self.partition if not self.src: - script.Print("Image %s will be patched unconditionally." % (self.partition,)) + script.Print("Image %s will be patched unconditionally." % (partition,)) else: + script.AppendExtra(('if block_image_verify("%s", ' + 'package_extract_file("%s.transfer.list"), ' + '"%s.new.dat", "%s.patch.dat") then') % + (self.device, partition, partition, partition)) + script.Print("Verified %s image..." % (partition,)) + script.AppendExtra('else'); + if self.check_first_block: self._CheckFirstBlock(script) - script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' % - (self.device, self.src.care_map.to_string_raw(), - self.src.TotalSha1())) - script.Print("Verified %s image..." % (self.partition,)) - script.AppendExtra(('else\n' - ' (range_sha1("%s", "%s") == "%s") ||\n' + script.AppendExtra(('(range_sha1("%s", "%s") == "%s") ||\n' ' abort("%s partition has unexpected contents");\n' 'endif;') % (self.device, self.tgt.care_map.to_string_raw(), @@ -1179,18 +1182,27 @@ def _WriteUpdate(self, script, output_zip): (self.device, partition, partition, suffix, partition)) script.AppendExtra(script._WordWrap(call)) + def _HashBlocks(self, source, ranges): + data = source.ReadRangeSet(ranges) + ctx = sha1() + + for p in data: + ctx.update(p) + + return ctx.hexdigest() + def _CheckFirstBlock(self, script): r = RangeSet((0, 1)) - h = sha1() - for data in self.src.ReadRangeSet(r): - h.update(data) - h = h.hexdigest() + srchash = self._HashBlocks(self.src, r); + tgthash = self._HashBlocks(self.tgt, r); script.AppendExtra(('(range_sha1("%s", "%s") == "%s") || ' + '(range_sha1("%s", "%s") == "%s") || ' 'abort("%s has been remounted R/W; ' 'reflash device to reenable OTA updates");') - % (self.device, r.to_string_raw(), h, self.device)) - + % (self.device, r.to_string_raw(), srchash, + self.device, r.to_string_raw(), tgthash, + self.device)) DataImage = blockimgdiff.DataImage From 957f1abff844088fb7c4c68c6ee8a036f04ba045 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Sat, 15 Aug 2015 15:29:29 +0100 Subject: [PATCH 0972/1096] product: Let a device customize its own locales Use TARGET_LOCALES. If existing, it'll override the defaults except for en_US Change-Id: I450fa5023ba48f07622d23158012b5b7d5f2130b --- target/product/full_base.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/product/full_base.mk b/target/product/full_base.mk index cd6e00b196e..f9b850506c0 100644 --- a/target/product/full_base.mk +++ b/target/product/full_base.mk @@ -36,8 +36,12 @@ $(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk) # Get the TTS language packs $(call inherit-product-if-exists, external/svox/pico/lang/all_pico_languages.mk) +ifeq ($(TARGET_LOCALES),) # Get a list of languages. $(call inherit-product, $(SRC_TARGET_DIR)/product/locales_full.mk) +else +PRODUCT_LOCALES := $(TARGET_LOCALES) +endif # Get everything else from the parent package $(call inherit-product, $(SRC_TARGET_DIR)/product/generic_no_telephony.mk) From 080390f638b7a9b83d35b108b37c131293e5eb20 Mon Sep 17 00:00:00 2001 From: Jesse Zhao Date: Mon, 2 Mar 2015 16:53:08 -0800 Subject: [PATCH 0973/1096] Fix the error that free_string is not defined. Change-Id: I7490a91ea930daaf194dad0c8b3a3357558b4770 Bug:19573713 (cherry picked from commit 7ca20d1a1c422dddbdca97c7927cfadd6c38dc68) --- tools/releasetools/blockimgdiff.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py index fc6167b0895..13131a2cbf1 100644 --- a/tools/releasetools/blockimgdiff.py +++ b/tools/releasetools/blockimgdiff.py @@ -301,6 +301,8 @@ def WriteTransfers(self, prefix): if stashed_blocks > max_stashed_blocks: max_stashed_blocks = stashed_blocks + free_string = [] + if self.version == 1: src_string = xf.src_ranges.to_string_raw() elif self.version >= 2: @@ -313,7 +315,6 @@ def WriteTransfers(self, prefix): size = xf.src_ranges.size() src_string = [str(size)] - free_string = [] unstashed_src_ranges = xf.src_ranges mapped_stashes = [] From a195bcf2a830434ac428e0ded546a8dde0b69b6e Mon Sep 17 00:00:00 2001 From: Michael Runge Date: Wed, 11 Feb 2015 19:28:08 -0800 Subject: [PATCH 0974/1096] Do not use block_verify on target-files where feature is missing. This will only be used when the block file format is at least version 3. For V1/V2 (L, L MR1) block versions, fall back to the old range_sha1 check. Bug: 19357591 Change-Id: I7cb178b70d48ec3c98cdb88ed1c94cf7797a01d0 (cherry picked from commit cad78c12fbb44b6030bcc80823c010e65b9c3f37) --- tools/releasetools/common.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 8171de63871..e5124908c7a 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -1112,14 +1112,14 @@ def __init__(self, partition, tgt, src=None, check_first_block=False, use_lzma=F self.check_first_block = check_first_block self.use_lzma = use_lzma - version = 1 + self.version = 1 if OPTIONS.info_dict: - version = max( + self.version = max( int(i) for i in OPTIONS.info_dict.get("blockimgdiff_versions", "1").split(",")) b = blockimgdiff.BlockImageDiff(tgt, src, threads=OPTIONS.worker_threads, - version=version, use_lzma=use_lzma) + version=self.version, use_lzma=use_lzma) tmpdir = tempfile.mkdtemp() OPTIONS.tempfiles.append(tmpdir) self.path = os.path.join(tmpdir, partition) @@ -1142,10 +1142,15 @@ def WriteVerifyScript(self, script): if not self.src: script.Print("Image %s will be patched unconditionally." % (partition,)) else: - script.AppendExtra(('if block_image_verify("%s", ' - 'package_extract_file("%s.transfer.list"), ' - '"%s.new.dat", "%s.patch.dat") then') % - (self.device, partition, partition, partition)) + if self.version >= 3: + script.AppendExtra(('if block_image_verify("%s", ' + 'package_extract_file("%s.transfer.list"), ' + '"%s.new.dat", "%s.patch.dat") then') % + (self.device, partition, partition, partition)) + else: + script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' % + (self.device, self.src.care_map.to_string_raw(), + self.src.TotalSha1())) script.Print("Verified %s image..." % (partition,)) script.AppendExtra('else'); From e1b758200ae4d6d84f1baa536b25f74f507dad88 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 12 Mar 2015 12:32:37 -0700 Subject: [PATCH 0975/1096] Restrict the verification in block-based incremental OTAs BlockImageDiff has three versions. Only the incremental OTAs generated with the latest version (3) can be re-applied to the system that's already on the target build. Otherwise, operations like move will make unconditional changes and damage the system. During the verification phase, abort the OTA update if BlockImageDiff is less than 3 and it doesn't match the checksum of the source build. Change-Id: Ic630346eab2a993a84d0aeaacd7167ef62cc24f6 (cherry picked from commit daebaa6ed3fbf4e7943e6c8290ec6b9233b542e9) --- tools/releasetools/common.py | 37 ++++++++++++++---------- tools/releasetools/ota_from_target_files | 34 ++++++++++++++++++---- 2 files changed, 50 insertions(+), 21 deletions(-) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index e5124908c7a..5c5f058b8ab 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -1105,18 +1105,20 @@ def worker(): class BlockDifference: - def __init__(self, partition, tgt, src=None, check_first_block=False, use_lzma=False): + def __init__(self, partition, tgt, src=None, check_first_block=False, version=None, use_lzma=False): self.tgt = tgt self.src = src self.partition = partition self.check_first_block = check_first_block self.use_lzma = use_lzma - self.version = 1 - if OPTIONS.info_dict: - self.version = max( - int(i) for i in - OPTIONS.info_dict.get("blockimgdiff_versions", "1").split(",")) + if version is None: + version = 1 + if OPTIONS.info_dict: + version = max( + int(i) for i in + OPTIONS.info_dict.get("blockimgdiff_versions", "1").split(",")) + self.version = version b = blockimgdiff.BlockImageDiff(tgt, src, threads=OPTIONS.worker_threads, version=self.version, use_lzma=use_lzma) @@ -1151,17 +1153,25 @@ def WriteVerifyScript(self, script): script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' % (self.device, self.src.care_map.to_string_raw(), self.src.TotalSha1())) - script.Print("Verified %s image..." % (partition,)) + script.Print('Verified %s image...' % (partition,)) script.AppendExtra('else'); + # When generating incrementals for the system and vendor partitions, + # explicitly check the first block (which contains the superblock) of + # the partition to see if it's what we expect. If this check fails, + # give an explicit log message about the partition having been + # remounted R/W (the most likely explanation) and the need to flash to + # get OTAs working again. if self.check_first_block: self._CheckFirstBlock(script) - script.AppendExtra(('(range_sha1("%s", "%s") == "%s") ||\n' - ' abort("%s partition has unexpected contents");\n' - 'endif;') % - (self.device, self.tgt.care_map.to_string_raw(), - self.tgt.TotalSha1(), self.partition)) + # Abort the OTA update. Note that the incremental OTA cannot be applied + # even if it may match the checksum of the target partition. + # a) If version < 3, operations like move and erase will make changes + # unconditionally and damage the partition. + # b) If version >= 3, it won't even reach here. + script.AppendExtra(('abort("%s partition has unexpected contents");\n' + 'endif;') % (partition,)) def _WriteUpdate(self, script, output_zip): partition = self.partition @@ -1199,14 +1209,11 @@ def _HashBlocks(self, source, ranges): def _CheckFirstBlock(self, script): r = RangeSet((0, 1)) srchash = self._HashBlocks(self.src, r); - tgthash = self._HashBlocks(self.tgt, r); script.AppendExtra(('(range_sha1("%s", "%s") == "%s") || ' - '(range_sha1("%s", "%s") == "%s") || ' 'abort("%s has been remounted R/W; ' 'reflash device to reenable OTA updates");') % (self.device, r.to_string_raw(), srchash, - self.device, r.to_string_raw(), tgthash, self.device)) DataImage = blockimgdiff.DataImage diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 5d49b005867..78438047b11 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -816,8 +816,17 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): system_src = GetImage("system", OPTIONS.source_tmp, OPTIONS.source_info_dict) system_tgt = GetImage("system", OPTIONS.target_tmp, OPTIONS.target_info_dict) + + blockimgdiff_version = 1 + if OPTIONS.info_dict: + blockimgdiff_version = max( + int(i) for i in + OPTIONS.info_dict.get("blockimgdiff_versions", "1").split(",")) + system_diff = common.BlockDifference("system", system_tgt, system_src, - check_first_block=True, use_lzma=OPTIONS.use_lzma) + check_first_block=True, + version=blockimgdiff_version, + use_lzma=OPTIONS.use_lzma) if HasVendorPartition(target_zip): if not HasVendorPartition(source_zip): @@ -825,7 +834,9 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): vendor_src = GetImage("vendor", OPTIONS.source_tmp, OPTIONS.source_info_dict) vendor_tgt = GetImage("vendor", OPTIONS.target_tmp, OPTIONS.target_info_dict) vendor_diff = common.BlockDifference("vendor", vendor_tgt, vendor_src, - check_first_block=True, use_lzma=OPTIONS.use_lzma) + check_first_block=True, + version=blockimgdiff_version, + use_lzma=OPTIONS.use_lzma) else: vendor_diff = None @@ -886,11 +897,22 @@ else if get_stage("%(bcb_dev)s") != "3/3" then device_specific.IncrementalOTA_VerifyBegin() if oem_props is None: - script.AssertSomeFingerprint(source_fp, target_fp) + # When blockimgdiff version is less than 3 (non-resumable block-based OTA), + # patching on a device that's already on the target build will damage the + # system. Because operations like move don't check the block state, they + # always apply the changes unconditionally. + if blockimgdiff_version <= 2: + script.AssertSomeFingerprint(source_fp) + else: + script.AssertSomeFingerprint(source_fp, target_fp) else: - script.AssertSomeThumbprint( - GetBuildProp("ro.build.thumbprint", OPTIONS.target_info_dict), - GetBuildProp("ro.build.thumbprint", OPTIONS.source_info_dict)) + if blockimgdiff_version <= 2: + script.AssertSomeThumbprint( + GetBuildProp("ro.build.thumbprint", OPTIONS.source_info_dict)) + else: + script.AssertSomeThumbprint( + GetBuildProp("ro.build.thumbprint", OPTIONS.target_info_dict), + GetBuildProp("ro.build.thumbprint", OPTIONS.source_info_dict)) if updating_boot: boot_type, boot_device = common.GetTypeAndDevice("/boot", OPTIONS.info_dict) From 8b7a6eb0afe5c6cf0c29bd1b88524e2a284bccb9 Mon Sep 17 00:00:00 2001 From: Sami Tolvanen Date: Fri, 17 Apr 2015 16:28:08 +0100 Subject: [PATCH 0976/1096] Calculate max_stashed_blocks correctly for block OTA v3 The updater automatically stashes overlapping source blocks to make it possible to resume if the command performing the update is interrupted. However, blockimgdiff.py does not take this into account and therefore, max_stashed_blocks indicates only the number of explicitly stashed blocks. Change blockimgdiff.py to correctly calculate the maximum used stash space, including any automatically stashed blocks. Bug: 20309033 Change-Id: Ibf5cb1abc38c54e60a6ad3ce4cbce43556b08ac2 --- tools/releasetools/blockimgdiff.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py index 13131a2cbf1..11bf24a841b 100644 --- a/tools/releasetools/blockimgdiff.py +++ b/tools/releasetools/blockimgdiff.py @@ -389,6 +389,12 @@ def WriteTransfers(self, prefix): xf.style, xf.tgt_ranges.to_string_raw(), src_string)) elif self.version >= 3: + # take into account automatic stashing of overlapping blocks + if xf.src_ranges.overlaps(xf.tgt_ranges): + temp_stash_usage = stashed_blocks + xf.src_ranges.size(); + if temp_stash_usage > max_stashed_blocks: + max_stashed_blocks = temp_stash_usage + out.append("%s %s %s %s\n" % ( xf.style, self.HashBlocks(self.tgt, xf.tgt_ranges), @@ -407,6 +413,12 @@ def WriteTransfers(self, prefix): xf.style, xf.patch_start, xf.patch_len, xf.tgt_ranges.to_string_raw(), src_string)) elif self.version >= 3: + # take into account automatic stashing of overlapping blocks + if xf.src_ranges.overlaps(xf.tgt_ranges): + temp_stash_usage = stashed_blocks + xf.src_ranges.size(); + if temp_stash_usage > max_stashed_blocks: + max_stashed_blocks = temp_stash_usage + out.append("%s %d %d %s %s %s %s\n" % ( xf.style, xf.patch_start, xf.patch_len, From 52ffc4687b580bbe466e7a4aa5e3c5b66243af33 Mon Sep 17 00:00:00 2001 From: Sami Tolvanen Date: Fri, 24 Apr 2015 11:54:01 +0100 Subject: [PATCH 0977/1096] Check partition hash before resorting to block_image_verify It's not necessary to call block_image_verify for the most common case where we attempt an update for the first time and the target partition has expected contents. It is sufficient to confirm that the target partition is intact. Computing a hash is much faster than simulating the update, which means this change should make the update speed for v3 much closer to v2 for the common case. If the update was interrupted, this is going to make resuming somewhat slower, of course. Hopefully this should be rather rare. Bug: 20309033 Change-Id: I04792f3681bf2cd5d9a4e1c41eb883c7f26c6f58 --- tools/releasetools/common.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 5c5f058b8ab..69139a61401 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -1145,10 +1145,13 @@ def WriteVerifyScript(self, script): script.Print("Image %s will be patched unconditionally." % (partition,)) else: if self.version >= 3: - script.AppendExtra(('if block_image_verify("%s", ' + script.AppendExtra(('if (range_sha1("%s", "%s") == "%s" || ' + 'block_image_verify("%s", ' 'package_extract_file("%s.transfer.list"), ' - '"%s.new.dat", "%s.patch.dat") then') % - (self.device, partition, partition, partition)) + '"%s.new.dat", "%s.patch.dat")) then') % ( + self.device, self.src.care_map.to_string_raw(), + self.src.TotalSha1(), + self.device, partition, partition, partition)) else: script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' % (self.device, self.src.care_map.to_string_raw(), From bb4ab1e3a1bcdc4c36771abd03fdd161046babad Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 21 May 2015 14:09:49 -0700 Subject: [PATCH 0978/1096] Assert the stash size when generating OTAs. With block-based OTA v2 and v3, it requires stash space on the /cache partition to back up blocks during an update. We need to ensure that it doesn't exceed the partition size. Since there might be other files on /cache as well, we use cache_size * threshold as the maximum allowed size. The threshold defaults to 0.8, which can be overridden by command line option '--stash_threshold'. Change-Id: I5c2e353ea4716328d6cdc6a7f758520de8d88b8e (cherry picked from commit 23ac4042128e47f6fe1ef176e7cb96f907d8e149) --- tools/releasetools/blockimgdiff.py | 26 ++++++++++++++++++------ tools/releasetools/ota_from_target_files | 19 +++++++++++++++++ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py index 11bf24a841b..fbdbd1924f5 100644 --- a/tools/releasetools/blockimgdiff.py +++ b/tools/releasetools/blockimgdiff.py @@ -16,6 +16,7 @@ from collections import deque, OrderedDict from hashlib import sha1 +import common import heapq import itertools import multiprocessing @@ -438,10 +439,20 @@ def WriteTransfers(self, prefix): if free_string: out.append("".join(free_string)) - - # sanity check: abort if we're going to need more than 512 MB if - # stash space - assert max_stashed_blocks * self.tgt.blocksize < (512 << 20) + if self.version >= 2: + # Sanity check: abort if we're going to need more stash space than + # the allowed size (cache_size * threshold). There are two purposes + # of having a threshold here. a) Part of the cache may have been + # occupied by some recovery logs. b) It will buy us some time to deal + # with the oversize issue. + cache_size = common.OPTIONS.cache_size + stash_threshold = common.OPTIONS.stash_threshold + max_allowed = cache_size * stash_threshold + assert max_stashed_blocks * self.tgt.blocksize < max_allowed, \ + 'Stash size %d (%d * %d) exceeds the limit %d (%d * %.2f)' % ( + max_stashed_blocks * self.tgt.blocksize, max_stashed_blocks, + self.tgt.blocksize, max_allowed, cache_size, + stash_threshold) all_tgt = RangeSet(data=(0, self.tgt.total_blocks)) if performs_read: @@ -469,8 +480,11 @@ def WriteTransfers(self, prefix): f.write(i) if self.version >= 2: - print("max stashed blocks: %d (%d bytes)\n" % ( - max_stashed_blocks, max_stashed_blocks * self.tgt.blocksize)) + max_stashed_size = max_stashed_blocks * self.tgt.blocksize + max_allowed = common.OPTIONS.cache_size * common.OPTIONS.stash_threshold + print("max stashed blocks: %d (%d bytes), limit: %d bytes (%.2f%%)\n" % ( + max_stashed_blocks, max_stashed_size, max_allowed, + max_stashed_size * 100.0 / max_allowed)) def ComputePatches(self, prefix): print("Reticulating splines...") diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 78438047b11..4afb783a56d 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -83,6 +83,10 @@ Usage: ota_from_target_files [flags] input_target_files output_ota_package Specifies the number of worker-threads that will be used when generating patches for incremental updates (defaults to 3). + --stash_threshold + Specifies the threshold that will be used to compute the maximum + allowed stash size (defaults to 0.8). + --backup Enable or disable the execution of backuptool.sh. Disabled by default. @@ -140,6 +144,9 @@ OPTIONS.block_based = False OPTIONS.updater_binary = None OPTIONS.oem_source = None OPTIONS.fallback_to_full = True +# Stash size cannot exceed cache_size * threshold. +OPTIONS.cache_size = None +OPTIONS.stash_threshold = 0.8 OPTIONS.backuptool = False OPTIONS.override_device = 'auto' OPTIONS.override_prop = False @@ -1538,6 +1545,12 @@ def main(argv): OPTIONS.updater_binary = a elif o in ("--no_fallback_to_full",): OPTIONS.fallback_to_full = False + elif o == "--stash_threshold": + try: + OPTIONS.stash_threshold = float(a) + except ValueError: + raise ValueError("Cannot parse value %r for option %r - expecting " + "a float" % (a, o)) elif o in ("--backup"): OPTIONS.backuptool = bool(a.lower() == 'true') elif o in ("--override_device"): @@ -1569,6 +1582,7 @@ def main(argv): "oem_settings=", "verify", "no_fallback_to_full", + "stash_threshold=", "backup=", "override_device=", "override_prop=", @@ -1628,6 +1642,11 @@ def main(argv): output_zip = zipfile.ZipFile(temp_zip_file, "w", compression=zipfile.ZIP_DEFLATED) + cache_size = OPTIONS.info_dict.get("cache_size", None) + if cache_size is None: + raise RuntimeError("can't determine the cache partition size") + OPTIONS.cache_size = cache_size + if OPTIONS.incremental_source is None: WriteFullOTAPackage(input_zip, output_zip) if OPTIONS.package_key is None: From 407cfc7ffd547c55b9a3f1f7d70ff94956fa6483 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 13 Aug 2015 14:44:15 -0700 Subject: [PATCH 0979/1096] Free the stash after its use in BBOTA v2. In BBOTA v2, the stash size computation is inaccurate. A stash will be used only once, so we deduct its size from stashed_blocks right after its use. However, the stash doesn't actually get freed until being overwritten by another stash or destroyed at the end of an update. This leads to OTA failures due to insufficient space on /cache. This CL changes the BBOTA v2 script to generate an explicit free right after its use. Bug: 23119955 Change-Id: Icdd8352bb0ff778945937c870990a888c7a4d38b --- tools/releasetools/blockimgdiff.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py index fbdbd1924f5..0dd17d1ac6b 100644 --- a/tools/releasetools/blockimgdiff.py +++ b/tools/releasetools/blockimgdiff.py @@ -328,6 +328,12 @@ def WriteTransfers(self, prefix): mapped_stashes.append(sr) if self.version == 2: src_string.append("%d:%s" % (sid, sr.to_string_raw())) + # A stash will be used only once. We need to free the stash + # immediately after the use, instead of waiting for the automatic + # clean-up at the end. Because otherwise it may take up extra space + # and lead to OTA failures. + # Bug: 23119955 + free_string.append("free %d\n" % (sid,)) else: assert sh in stashes src_string.append("%s:%s" % (sh, sr.to_string_raw())) From 8a26e162a6b412cb11f706cc1bf80486fa339007 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Mon, 17 Aug 2015 09:45:13 -0700 Subject: [PATCH 0980/1096] Revise stash for BBOTAs when needed. When generating incremental BBOTAs (v2 and above), we need to ensure that the needed runtime stash is below the given threshold. If it's running out of space on /cache, we replace the command that uses a stash with a "new" command instead. This may increase the OTA package size, since it is carrying more full blocks instead of patches. It gets even worse for large files that span a number of blocks, because currently we will store all the blocks for the file as "new" blocks if stashing cannot be satisfied. We may further optimize by splitting them into smaller chunks so that most of them can still be stashed. Bug: 22430577 Change-Id: I5a49e361adc7d3d41de2e9c08ee9b08c1e6c091a --- tools/releasetools/blockimgdiff.py | 77 ++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py index 0dd17d1ac6b..558d8e074cf 100644 --- a/tools/releasetools/blockimgdiff.py +++ b/tools/releasetools/blockimgdiff.py @@ -160,6 +160,12 @@ def NetStashChange(self): return (sum(sr.size() for (_, sr) in self.stash_before) - sum(sr.size() for (_, sr) in self.use_stash)) + def ConvertToNew(self): + assert self.style != "new" + self.use_stash = [] + self.style = "new" + self.src_ranges = RangeSet() + def __str__(self): return (str(self.id) + ": <" + str(self.src_ranges) + " " + self.style + " to " + str(self.tgt_ranges) + ">") @@ -246,6 +252,10 @@ def Compute(self, prefix): self.ReverseBackwardEdges() self.ImproveVertexSequence() + # Ensure the runtime stash size is under the limit. + if self.version >= 2 and common.OPTIONS.cache_size is not None: + self.ReviseStashSize() + # Double-check our work. self.AssertSequenceGood() @@ -492,6 +502,73 @@ def WriteTransfers(self, prefix): max_stashed_blocks, max_stashed_size, max_allowed, max_stashed_size * 100.0 / max_allowed)) + def ReviseStashSize(self): + print("Revising stash size...") + stashes = {} + + # Create the map between a stash and its def/use points. For example, for a + # given stash of (idx, sr), stashes[idx] = (sr, def_cmd, use_cmd). + for xf in self.transfers: + # Command xf defines (stores) all the stashes in stash_before. + for idx, sr in xf.stash_before: + stashes[idx] = (sr, xf) + + # Record all the stashes command xf uses. + for idx, _ in xf.use_stash: + stashes[idx] += (xf,) + + # Compute the maximum blocks available for stash based on /cache size and + # the threshold. + cache_size = common.OPTIONS.cache_size + stash_threshold = common.OPTIONS.stash_threshold + max_allowed = cache_size * stash_threshold / self.tgt.blocksize + + stashed_blocks = 0 + + # Now go through all the commands. Compute the required stash size on the + # fly. If a command requires excess stash than available, it deletes the + # stash by replacing the command that uses the stash with a "new" command + # instead. + for xf in self.transfers: + replaced_cmds = [] + + # xf.stash_before generates explicit stash commands. + for idx, sr in xf.stash_before: + if stashed_blocks + sr.size() > max_allowed: + # We cannot stash this one for a later command. Find out the command + # that will use this stash and replace the command with "new". + use_cmd = stashes[idx][2] + replaced_cmds.append(use_cmd) + print(" %s replaced due to an explicit stash of %d blocks." % ( + use_cmd, sr.size())) + else: + stashed_blocks += sr.size() + + # xf.use_stash generates free commands. + for _, sr in xf.use_stash: + stashed_blocks -= sr.size() + + # "move" and "diff" may introduce implicit stashes in BBOTA v3. Prior to + # ComputePatches(), they both have the style of "diff". + if xf.style == "diff" and self.version >= 3: + assert xf.tgt_ranges and xf.src_ranges + if xf.src_ranges.overlaps(xf.tgt_ranges): + if stashed_blocks + xf.src_ranges.size() > max_allowed: + replaced_cmds.append(xf) + print(" %s replaced due to an implicit stash of %d blocks." % ( + xf, xf.src_ranges.size())) + + # Replace the commands in replaced_cmds with "new"s. + for cmd in replaced_cmds: + # It no longer uses any commands in "use_stash". Remove the def points + # for all those stashes. + for idx, sr in cmd.use_stash: + def_cmd = stashes[idx][1] + assert (idx, sr) in def_cmd.stash_before + def_cmd.stash_before.remove((idx, sr)) + + cmd.ConvertToNew() + def ComputePatches(self, prefix): print("Reticulating splines...") diff_q = [] From bcfca4758b5e88a3e513731c562d60f9c911910f Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Fri, 7 Aug 2015 19:49:45 -0700 Subject: [PATCH 0981/1096] Change the cache partition size check into warnings. For some old builds, we may not define cache partition size. Change the exception into a warning to make the script backward compatible. Change-Id: Ie94c7fbb1a9f3a7db3f16e8d845e493a534aac5b --- tools/releasetools/blockimgdiff.py | 16 +++++++++++----- tools/releasetools/common.py | 4 ++++ tools/releasetools/ota_from_target_files | 5 +---- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py index 558d8e074cf..079523ad998 100644 --- a/tools/releasetools/blockimgdiff.py +++ b/tools/releasetools/blockimgdiff.py @@ -455,7 +455,7 @@ def WriteTransfers(self, prefix): if free_string: out.append("".join(free_string)) - if self.version >= 2: + if self.version >= 2 and common.OPTIONS.cache_size is not None: # Sanity check: abort if we're going to need more stash space than # the allowed size (cache_size * threshold). There are two purposes # of having a threshold here. a) Part of the cache may have been @@ -497,10 +497,16 @@ def WriteTransfers(self, prefix): if self.version >= 2: max_stashed_size = max_stashed_blocks * self.tgt.blocksize - max_allowed = common.OPTIONS.cache_size * common.OPTIONS.stash_threshold - print("max stashed blocks: %d (%d bytes), limit: %d bytes (%.2f%%)\n" % ( - max_stashed_blocks, max_stashed_size, max_allowed, - max_stashed_size * 100.0 / max_allowed)) + OPTIONS = common.OPTIONS + if OPTIONS.cache_size is not None: + max_allowed = OPTIONS.cache_size * OPTIONS.stash_threshold + print("max stashed blocks: %d (%d bytes), " + "limit: %d bytes (%.2f%%)\n" % ( + max_stashed_blocks, max_stashed_size, max_allowed, + max_stashed_size * 100.0 / max_allowed)) + else: + print("max stashed blocks: %d (%d bytes), limit: \n" % ( + max_stashed_blocks, max_stashed_size)) def ReviseStashSize(self): print("Revising stash size...") diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 69139a61401..499e8c2667f 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -67,6 +67,10 @@ class Options(object): pass OPTIONS.extras = {} OPTIONS.info_dict = None +# Stash size cannot exceed cache_size * threshold. +OPTIONS.cache_size = None +OPTIONS.stash_threshold = 0.8 + # Values for "certificate" in apkcerts that mean special things. SPECIAL_CERT_STRINGS = ("PRESIGNED", "EXTERNAL") diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 4afb783a56d..4b9e44ca862 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -144,9 +144,6 @@ OPTIONS.block_based = False OPTIONS.updater_binary = None OPTIONS.oem_source = None OPTIONS.fallback_to_full = True -# Stash size cannot exceed cache_size * threshold. -OPTIONS.cache_size = None -OPTIONS.stash_threshold = 0.8 OPTIONS.backuptool = False OPTIONS.override_device = 'auto' OPTIONS.override_prop = False @@ -1644,7 +1641,7 @@ def main(argv): cache_size = OPTIONS.info_dict.get("cache_size", None) if cache_size is None: - raise RuntimeError("can't determine the cache partition size") + print "--- can't determine the cache partition size ---" OPTIONS.cache_size = cache_size if OPTIONS.incremental_source is None: From 24ddce302503e9408c47bd571a0d510546dcfd1a Mon Sep 17 00:00:00 2001 From: Scott Mertz Date: Wed, 29 Jul 2015 14:39:13 -0700 Subject: [PATCH 0982/1096] build: kernel: arm64 uses Image.gz as the target Change-Id: Icc194d2a16f9ffcf5803226fc1f2a5b091b4d861 --- core/tasks/kernel.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 1556a263d34..6c00bf786d2 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -55,7 +55,11 @@ else ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true) TARGET_PREBUILT_INT_KERNEL_TYPE := Image else - TARGET_PREBUILT_INT_KERNEL_TYPE := zImage + ifeq ($(TARGET_KERNEL_ARCH),arm64) + TARGET_PREBUILT_INT_KERNEL_TYPE := Image.gz + else + TARGET_PREBUILT_INT_KERNEL_TYPE := zImage + endif endif endif From 00cbe08991a7bf86e637599c1d3da5b98f8e0008 Mon Sep 17 00:00:00 2001 From: Marcos Marado Date: Fri, 14 Aug 2015 19:20:18 +0100 Subject: [PATCH 0983/1096] Adding msm8909 as a QCOM board platform Change-Id: I01c35348b463a769454d7b64e6710a647cabe4f7 --- core/qcom_utils.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/qcom_utils.mk b/core/qcom_utils.mk index d1dd262b033..bb1202c49d7 100755 --- a/core/qcom_utils.mk +++ b/core/qcom_utils.mk @@ -4,6 +4,7 @@ QCOM_BOARD_PLATFORMS += msm7x30 QCOM_BOARD_PLATFORMS += msm8226 QCOM_BOARD_PLATFORMS += msm8610 QCOM_BOARD_PLATFORMS += msm8660 +QCOM_BOARD_PLATFORMS += msm8909 QCOM_BOARD_PLATFORMS += msm8916 QCOM_BOARD_PLATFORMS += msm8960 QCOM_BOARD_PLATFORMS += msm8974 From 5b1e35cc0757d8a4e527e665cd50dd7de5812a25 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 1 Sep 2015 14:43:06 -0700 Subject: [PATCH 0984/1096] LMY48Q --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 23f38b5fdef..750dfd4ca99 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48P +export BUILD_ID=LMY48Q From df45e9fc2e7855f9247081d13185091f1bcd8ba6 Mon Sep 17 00:00:00 2001 From: jrior001 Date: Fri, 21 Aug 2015 17:23:25 -0400 Subject: [PATCH 0985/1096] repopick: skip abandoned commits Change-Id: I7f203fc4f790bf26acce1112c5c24c703acd9326 --- tools/repopick.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index 022cfced92b..f369f2b135a 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -139,7 +139,7 @@ def fetch_query(remote_url, query): parser.add_argument('-b', '--auto-branch', action='store_true', help='shortcut to "--start-branch auto --abandon-first --ignore-missing"') parser.add_argument('-q', '--quiet', action='store_true', help='print as little as possible') parser.add_argument('-v', '--verbose', action='store_true', help='print extra information to aid in debug') - parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if commit has been merged') + parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if change is closed') parser.add_argument('-p', '--pull', action='store_true', help='execute pull instead of cherry-pick') parser.add_argument('-t', '--topic', help='pick all commits from a specified topic') parser.add_argument('-Q', '--query', help='pick all commits using the specified query') @@ -247,12 +247,12 @@ def fetch_query(remote_url, query): for item in mergables: print('Applying change number {0}...'.format(item['id'])) - # Check if commit has already been merged and exit if it has, unless -f is specified - if item['status'] == 'MERGED': + # Check if change is open and exit if it's not, unless -f is specified + if item['status'] != 'OPEN' and not args.query: if args.force: - print('!! Force-picking a merged commit !!\n') + print('!! Force-picking a closed change !!\n') else: - print('Commit already merged. Skipping the cherry pick.\nUse -f to force this pick.') + print('Change is closed. Skipping the cherry pick.\nUse -f to force this pick.') continue # Convert the project name to a project path From 529e3b24485c6c7bded99fa2de6836421310a9df Mon Sep 17 00:00:00 2001 From: Anthony King Date: Mon, 20 Jul 2015 17:39:20 -0400 Subject: [PATCH 0986/1096] repopick: handle hardware_ril/ril-caf Change-Id: Ib72255d899529effb0d6121034f42a7532d4a02b --- tools/repopick.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/repopick.py b/tools/repopick.py index f369f2b135a..8452eb80b0c 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -281,6 +281,10 @@ def fetch_query(remote_url, query): # audio and media are different from display elif split_path[2] == 'audio' or split_path[2] == 'media': project_path += '/default' + elif project_path.startswith('hardware/ril'): + project_path = project_path.rstrip('-caf') + if item["branch"].split('-')[-1] == 'caf': + project_path += '-caf' elif args.ignore_missing: print('WARNING: Skipping {0} since there is no project directory for: {1}\n'.format(item['id'], item['project'])) continue From 12fe3d4396df3737945f591d012c80ed33d91347 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 1 Sep 2015 17:52:03 -0700 Subject: [PATCH 0987/1096] LMY48R --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 750dfd4ca99..92094044617 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48Q +export BUILD_ID=LMY48R From d2a49a4461e39a91eb164b1fcdd087c45b0836d7 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 1 Sep 2015 18:04:41 -0700 Subject: [PATCH 0988/1096] LMY48S --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 92094044617..238aa14db9c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48R +export BUILD_ID=LMY48S From 8e9b8d2c6993ad4847a24c09575f0704cac26f1e Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 1 Sep 2015 18:57:52 -0700 Subject: [PATCH 0989/1096] LVY48G --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 01f9e7cb3b8..f2d6fd8e4a4 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY48F +export BUILD_ID=LVY48G From 7e980a740fa4af1d3420690156dc36f193bc62c9 Mon Sep 17 00:00:00 2001 From: Tom Powell Date: Tue, 1 Sep 2015 16:52:40 -0700 Subject: [PATCH 0990/1096] Fix custom URL error. Merged from cm_build_config Change-Id: Iffe7766f137889f113bc5a94254058dc4dbf0ea3 (cherry picked from commit 04d470c5efa7510cc86e614cb401a9b6a41947f0) --- tools/repopick.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index 8452eb80b0c..b0742c8a8b9 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -55,8 +55,10 @@ def fetch_query_via_ssh(remote_url, query): We have to get the data, then transform it to match what we're expecting from the HTTP RESET API""" if remote_url.count(':') == 2: (uri, userhost, port) = remote_url.split(':') + userhost = userhost[2:] elif remote_url.count(':') == 1: (uri, userhost) = remote_url.split(':') + userhost = userhost[2:] port = 29418 else: raise Exception('Malformed URI: Expecting ssh://[user@]host[:port]') @@ -88,7 +90,7 @@ def fetch_query_via_ssh(remote_url, query): 'status': data['status'] } reviews.append(review) - except ValueError: + except: pass print('Found {0} reviews'.format(len(reviews))) return reviews @@ -109,7 +111,7 @@ def fetch_query_via_http(remote_url, query): def fetch_query(remote_url, query): """Wrapper for fetch_query_via_proto functions""" - if remote_url[0:2] == 'ssh': + if remote_url[0:3] == 'ssh': return fetch_query_via_ssh(remote_url, query) elif remote_url[0:4] == 'http': return fetch_query_via_http(remote_url, query.replace(' ', '+')) From e7031998f999e240f91359207fa8d7e76f1e073c Mon Sep 17 00:00:00 2001 From: Tom Powell Date: Wed, 2 Sep 2015 05:46:55 +0000 Subject: [PATCH 0991/1096] repopick: open changes are either NEW or OPEN, not just OPEN Gerrit's API is terrible. I believe it was written by monkeys. Change-Id: Idb39a357c241ce7923549a3d217f7ee632326e92 --- tools/repopick.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/repopick.py b/tools/repopick.py index b0742c8a8b9..296fec8afb7 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -250,7 +250,7 @@ def fetch_query(remote_url, query): for item in mergables: print('Applying change number {0}...'.format(item['id'])) # Check if change is open and exit if it's not, unless -f is specified - if item['status'] != 'OPEN' and not args.query: + if (item['status'] != 'OPEN' and item['status'] != 'NEW') and not args.query: if args.force: print('!! Force-picking a closed change !!\n') else: From 4ad248565d75d9603c74e093e10abe68a0867896 Mon Sep 17 00:00:00 2001 From: Marcos Marado Date: Wed, 2 Sep 2015 12:02:11 +0100 Subject: [PATCH 0992/1096] msm8909 uses the same branches as msm8916 Instead of have duplicated branches, I'm creating here the concept of "generic platform". For now, only msm8909 is affected by this (its generic platform being msm8916), but this might be useful in the future, where other platforms share the same branch. Change-Id: Ib410bc644373e6acfab5ad449584171b948743ae --- core/qcom_target.mk | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 69a3287872d..4cf4dc65e64 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -47,15 +47,20 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 2ND_CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) 2ND_CLANG_TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) -$(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) +TARGET_BOARD_PLATFORM_GENERIC := $(TARGET_BOARD_PLATFORM) +ifneq ($(filter msm8909,$(TARGET_BOARD_PLATFORM)),) + TARGET_BOARD_PLATFORM_GENERIC := msm8916 +endif + +$(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM_GENERIC)) ifeq ($(USE_DEVICE_SPECIFIC_CAMERA),true) $(call project-set-path,qcom-camera,$(TARGET_DEVICE_DIR)/camera) else $(call qcom-set-path-variant,CAMERA,camera) endif -$(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PLATFORM)) +$(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PLATFORM_GENERIC)) $(call qcom-set-path-variant,GPS,gps) -$(call project-set-path,qcom-media,hardware/qcom/media-caf/$(TARGET_BOARD_PLATFORM)) +$(call project-set-path,qcom-media,hardware/qcom/media-caf/$(TARGET_BOARD_PLATFORM_GENERIC)) $(call qcom-set-path-variant,SENSORS,sensors) $(call ril-set-path-variant,ril) $(call loc-api-set-path-variant,vendor/qcom/opensource/location) @@ -63,7 +68,7 @@ $(call gps-hal-set-path-variant,hardware/qcom/gps) else $(call project-set-path,qcom-audio,hardware/qcom/audio/default) $(call qcom-set-path-variant,CAMERA,camera) -$(call project-set-path,qcom-display,hardware/qcom/display/$(TARGET_BOARD_PLATFORM)) +$(call project-set-path,qcom-display,hardware/qcom/display/$(TARGET_BOARD_PLATFORM_GENERIC)) $(call qcom-set-path-variant,GPS,gps) $(call project-set-path,qcom-media,hardware/qcom/media/default) $(call qcom-set-path-variant,SENSORS,sensors) From 665e136741ba4f19f62fdbd23f6c4e6f7b97ec9d Mon Sep 17 00:00:00 2001 From: Ethan Chen Date: Wed, 2 Sep 2015 10:41:07 -0700 Subject: [PATCH 0993/1096] Revert "msm8909 uses the same branches as msm8916" * Swap this implementation out for the existing custom HAL variant patch. This reverts commit 4ad248565d75d9603c74e093e10abe68a0867896. Change-Id: I959b958098deb976c06597c82d3d532e3b80546d --- core/qcom_target.mk | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 4cf4dc65e64..69a3287872d 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -47,20 +47,15 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 2ND_CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) 2ND_CLANG_TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) -TARGET_BOARD_PLATFORM_GENERIC := $(TARGET_BOARD_PLATFORM) -ifneq ($(filter msm8909,$(TARGET_BOARD_PLATFORM)),) - TARGET_BOARD_PLATFORM_GENERIC := msm8916 -endif - -$(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM_GENERIC)) +$(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) ifeq ($(USE_DEVICE_SPECIFIC_CAMERA),true) $(call project-set-path,qcom-camera,$(TARGET_DEVICE_DIR)/camera) else $(call qcom-set-path-variant,CAMERA,camera) endif -$(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PLATFORM_GENERIC)) +$(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,GPS,gps) -$(call project-set-path,qcom-media,hardware/qcom/media-caf/$(TARGET_BOARD_PLATFORM_GENERIC)) +$(call project-set-path,qcom-media,hardware/qcom/media-caf/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,SENSORS,sensors) $(call ril-set-path-variant,ril) $(call loc-api-set-path-variant,vendor/qcom/opensource/location) @@ -68,7 +63,7 @@ $(call gps-hal-set-path-variant,hardware/qcom/gps) else $(call project-set-path,qcom-audio,hardware/qcom/audio/default) $(call qcom-set-path-variant,CAMERA,camera) -$(call project-set-path,qcom-display,hardware/qcom/display/$(TARGET_BOARD_PLATFORM_GENERIC)) +$(call project-set-path,qcom-display,hardware/qcom/display/$(TARGET_BOARD_PLATFORM)) $(call qcom-set-path-variant,GPS,gps) $(call project-set-path,qcom-media,hardware/qcom/media/default) $(call qcom-set-path-variant,SENSORS,sensors) From 338b399a2976993f0758c2f4e61620e987f4cb19 Mon Sep 17 00:00:00 2001 From: Anthony King Date: Wed, 2 Sep 2015 11:01:31 -0700 Subject: [PATCH 0994/1096] build: Allow QC platforms to share/customize HAL variants * Allow devices to override HAL variant using QCOM_HARDWARE_VARIANT * 8909 and 8916 share HALs by default * 8610, 8226, 8974 share HALs by default * 8992, 8994 share HALs by default Change-Id: Idfbdc405a35c5ba518fc71c8b691fc177ddf9068 --- core/qcom_target.mk | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 69a3287872d..a6d3965b0c9 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -47,15 +47,31 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 2ND_CLANG_TARGET_GLOBAL_CFLAGS += $(qcom_flags) 2ND_CLANG_TARGET_GLOBAL_CPPFLAGS += $(qcom_flags) -$(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(TARGET_BOARD_PLATFORM)) + ifeq ($(QCOM_HARDWARE_VARIANT),) + ifneq ($(filter msm8610 msm8226 msm8974,$(TARGET_BOARD_PLATFORM)),) + QCOM_HARDWARE_VARIANT := msm8974 + else + ifneq ($(filter msm8909 msm8916,$(TARGET_BOARD_PLATFORM)),) + QCOM_HARDWARE_VARIANT := msm8916 + else + ifneq ($(filter msm8992 msm8994,$(TARGET_BOARD_PLATFORM)),) + QCOM_HARDWARE_VARIANT := msm8994 + else + QCOM_HARDWARE_VARIANT := $(TARGET_BOARD_PLATFORM) + endif + endif + endif + endif + +$(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(QCOM_HARDWARE_VARIANT)) ifeq ($(USE_DEVICE_SPECIFIC_CAMERA),true) $(call project-set-path,qcom-camera,$(TARGET_DEVICE_DIR)/camera) else $(call qcom-set-path-variant,CAMERA,camera) endif -$(call project-set-path,qcom-display,hardware/qcom/display-caf/$(TARGET_BOARD_PLATFORM)) +$(call project-set-path,qcom-display,hardware/qcom/display-caf/$(QCOM_HARDWARE_VARIANT)) $(call qcom-set-path-variant,GPS,gps) -$(call project-set-path,qcom-media,hardware/qcom/media-caf/$(TARGET_BOARD_PLATFORM)) +$(call project-set-path,qcom-media,hardware/qcom/media-caf/$(QCOM_HARDWARE_VARIANT)) $(call qcom-set-path-variant,SENSORS,sensors) $(call ril-set-path-variant,ril) $(call loc-api-set-path-variant,vendor/qcom/opensource/location) From 91f91b8c78d38dc600cd2aeeba4e2d076973f5c8 Mon Sep 17 00:00:00 2001 From: luca020400 Date: Mon, 7 Sep 2015 15:22:02 +0200 Subject: [PATCH 0995/1096] build: allow using host flex binary * Prebuilt flex doesn't work on newer glibc flex-2.5.39: loadlocale.c:131: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_COLLATE) / sizeof (_nl_value_type_LC_COLLATE[0]))' failed. * Enable with USE_HOST_LEX=yes Change-Id: Id683ff2fdf03edf88f8459ed32986a05334cd7fc --- core/config.mk | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/config.mk b/core/config.mk index 4f0968c9e80..ddc4007cd98 100644 --- a/core/config.mk +++ b/core/config.mk @@ -369,8 +369,11 @@ endif # --------------------------------------------------------------- # Generic tools. - -LEX := prebuilts/misc/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/flex/flex-2.5.39 +ifeq ($(USE_HOST_LEX),yes) + LEX := flex +else + LEX := prebuilts/misc/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/flex/flex-2.5.39 +endif # The default PKGDATADIR built in the prebuilt bison is a relative path # external/bison/data. # To run bison from elsewhere you need to set up enviromental variable From 2eeb136aec58a92e99514290294fa13db7a299f6 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Wed, 2 Sep 2015 10:28:08 -0700 Subject: [PATCH 0996/1096] releasetools: Fix the bug in symlink deletion. For file-based OTAs, symlinks in the source build but not in the target build will be deleted. However, if a symlink is replaced by a regular file in the target build, the file will be accidentally deleted when applying (resuming) the same package again. Verify the checksum of a symlink that will be unpacked or renamed to. Delete the file only if it doesn't have the target checksum. Bug: 23646151 Change-Id: Ie322abb6022b6fa812c6b36a3127872d9614fc3b --- tools/releasetools/edify_generator.py | 13 ++++++++-- tools/releasetools/ota_from_target_files | 31 +++++++++++++++++++++--- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index c566efdc123..d771ea208a2 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -269,6 +269,15 @@ def DeleteFiles(self, file_list): cmd = "delete(" + ",\0".join(['"%s"' % (i,) for i in file_list]) + ");" self.script.append(self._WordWrap(cmd)) + def DeleteFilesIfNotMatching(self, file_list): + """Delete the file in file_list if not matching the checksum.""" + if not file_list: + return + for name, sha1 in file_list: + cmd = ('sha1_check(read_file("{name}"), "{sha1}") || ' + 'delete("{name}");'.format(name=name, sha1=sha1)) + self.script.append(self.WordWrap(cmd)) + def RenameFile(self, srcfile, tgtfile): """Moves a file from one location to another.""" if self.info.get("update_rename_support", False): @@ -280,8 +289,8 @@ def SkipNextActionIfTargetExists(self, tgtfile, tgtsha1): """Prepend an action with an apply_patch_check in order to skip the action if the file exists. Used when a patch is later renamed.""" - cmd = ('sha1_check(read_file("%s"), %s) || ' % (tgtfile, tgtsha1)) - self.script.append(self._WordWrap(cmd)) + cmd = ('sha1_check(read_file("%s"), %s) ||' % (tgtfile, tgtsha1)) + self.script.append(self.WordWrap(cmd)) def ApplyPatch(self, srcfile, tgtfile, tgtsize, tgtsha1, *patchpairs): """Apply binary patches (in *patchpairs) to the given srcfile to diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 4b9e44ca862..44711f43826 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -1424,11 +1424,36 @@ else # Delete all the symlinks in source that aren't in target. This # needs to happen before verbatim files are unpacked, in case a # symlink in the source is replaced by a real file in the target. - to_delete = [] + + # If a symlink in the source will be replaced by a regular file, we cannot + # delete the symlink/file in case the package gets applied again. For such + # a symlink, we prepend a sha1_check() to detect if it has been updated. + # (Bug: 23646151) + replaced_symlinks = dict() + if system_diff: + for i in system_diff.verbatim_targets: + replaced_symlinks["/%s" % (i[0],)] = i[2] + if vendor_diff: + for i in vendor_diff.verbatim_targets: + replaced_symlinks["/%s" % (i[0],)] = i[2] + + if system_diff: + for tf in system_diff.renames.values(): + replaced_symlinks["/%s" % (tf.name,)] = tf.sha1 + if vendor_diff: + for tf in vendor_diff.renames.values(): + replaced_symlinks["/%s" % (tf.name,)] = tf.sha1 + + always_delete = [] + may_delete = [] for dest, link in source_symlinks: if link not in target_symlinks_d: - to_delete.append(link) - script.DeleteFiles(to_delete) + if link in replaced_symlinks: + may_delete.append((link, replaced_symlinks[link])) + else: + always_delete.append(link) + script.DeleteFiles(always_delete) + script.DeleteFilesIfNotMatching(may_delete) if system_diff.verbatim_targets: script.Print("Unpacking new system files...") From f28d284476707ca12309787675db3ba1f1d95e59 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 3 Sep 2015 21:17:37 -0700 Subject: [PATCH 0997/1096] releasetools: Fix the bug when deleting files. For file-based OTAs, we used to remove unneeded files in ascending order, which failed to delete non-empty directories. Reverse the order to fix the issue. For example, now we have the following in our generated script: delete("/system/app/Calculator/arm/Calculator.odex", "/system/app/Calculator/arm/", "/system/app/Calculator/Calculator.apk", "/system/app/Calculator/"); Bug: 22960996 Change-Id: I0d36d29b7862fb53bf55bf5685a990180f9c0b3b --- tools/releasetools/ota_from_target_files | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index 44711f43826..cf88572fc0b 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -1101,11 +1101,13 @@ class FileDifference: script.FileCheck(tf.name, tf.sha1) def RemoveUnneededFiles(self, script, extras=()): - script.DeleteFiles(["/"+i[0] for i in self.verbatim_targets] + - ["/"+i for i in sorted(self.source_data) - if i not in self.target_data and - i not in self.renames] + - list(extras)) + file_list = ["/" + i[0] for i in self.verbatim_targets] + file_list += ["/" + i for i in self.source_data + if i not in self.target_data and i not in self.renames] + file_list += list(extras) + # Sort the list in descending order, which removes all the files first + # before attempting to remove the folder. (Bug: 22960996) + script.DeleteFiles(sorted(file_list, reverse=True)) def TotalPatchSize(self): return sum(i[1].size for i in self.patch_list) From d7a213b2eeaba965bbd4b7ab03cbb0091266bd23 Mon Sep 17 00:00:00 2001 From: Keith Mok Date: Thu, 3 Sep 2015 11:48:23 -0700 Subject: [PATCH 0998/1096] Add darwin support for f2fs host tools Change-Id: I1e55ac6f1c448cee823454b4206baaecad206415 --- core/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 382116dd16b..617fdf07f50 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1400,7 +1400,7 @@ DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ $(HOST_OUT_EXECUTABLES)/append2simg \ $(HOST_OUT_EXECUTABLES)/boot_signer -ifeq ($(HOST_OS),linux) +ifneq (,$(filter linux darwin,$(HOST_OS))) DISTTOOLS += $(HOST_OUT_EXECUTABLES)/mkf2fsuserimg.sh \ $(HOST_OUT_EXECUTABLES)/make_f2fs endif From 5dee2dd63a2bcb6cbd1c4c3b1a843a4dcfed81f6 Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Mon, 20 Jul 2015 14:20:44 -0700 Subject: [PATCH 0999/1096] build: better zsh dopush support Fixes the use of mmp/mmmp/mkap commands with zsh. Change-Id: Ia8eab6fcdec15769a2d29ff6a1e6631629bafb8a Signed-off-by: Roman Birg --- envsetup.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 3a6967af19f..4be6cebdb4a 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2451,10 +2451,13 @@ EOF fi stop_n_start=false - for FILE in $LOC; do + for FILE in $(echo $LOC | xargs -n1 -i echo '{}'); do # Make sure file is in $OUT/system or $OUT/data case $FILE in - $OUT/system/*|$OUT/data/*) + $OUT/system/*) + TARGET=$(echo $FILE | sed "s#$OUT##") + ;; + $OUT/data/*) # Get target file name (i.e. /system/bin/adb) TARGET=$(echo $FILE | sed "s#$OUT##") ;; @@ -2481,7 +2484,9 @@ EOF fi adb shell restorecon "$TARGET" ;; - /system/priv-app/SystemUI/SystemUI.apk|/system/framework/*) + + # | works here because there's only one wildcard to match + {/system/}priv-app/SystemUI/SystemUI.apk|framework/*) # Only need to stop services once if ! $stop_n_start; then adb shell stop From 1966a9e7c22b95eb4c16be6aee7adf43cb6ce118 Mon Sep 17 00:00:00 2001 From: Diogo Ferreira Date: Fri, 4 Sep 2015 11:59:13 +0100 Subject: [PATCH 1000/1096] build: Create a oem image when BOARD_OEMIMAGE_FILE_SYSTEM_TYPE is defined This adds the capability of generating a OEM image with the build and adding it to target files when BOARD_OEMIMAGE_FILE_SYSTEM_TYPE is set. Change-Id: I6c596d58d9d5ece1a261d953eeb8c60eac30e642 Ticket: CYNGNOS-936 --- core/Makefile | 7 ++++ core/tasks/oem_image.mk | 11 ++++++- tools/releasetools/add_img_to_target_files.py | 33 +++++++++++++++++++ tools/releasetools/img_from_target_files.py | 6 ++++ 4 files changed, 56 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 617fdf07f50..6d9ba090b21 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1477,6 +1477,7 @@ endif # Depending on the various images guarantees that the underlying # directories are up-to-date. +include $(BUILD_SYSTEM)/tasks/oem_image.mk $(BUILT_TARGET_FILES_PACKAGE): \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(INSTALLED_RADIOIMAGE_TARGET) \ @@ -1485,6 +1486,7 @@ $(BUILT_TARGET_FILES_PACKAGE): \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_CACHEIMAGE_TARGET) \ $(INSTALLED_VENDORIMAGE_TARGET) \ + $(INSTALLED_OEMIMAGE_TARGET) \ $(INSTALLED_ANDROID_INFO_TXT_TARGET) \ $(SELINUX_FC) \ $(built_ota_tools) \ @@ -1587,6 +1589,11 @@ ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE @# Contents of the vendor image $(hide) $(call package_files-copy-root, \ $(TARGET_OUT_VENDOR),$(zip_root)/VENDOR) +endif +ifdef BOARD_OEMIMAGE_FILE_SYSTEM_TYPE + @# Contents of the oem image + $(call package_files-copy-root, \ + $(TARGET_OUT_OEM),$(zip_root)/OEM) endif @# Extra contents of the OTA package $(hide) mkdir -p $(zip_root)/OTA/bin diff --git a/core/tasks/oem_image.mk b/core/tasks/oem_image.mk index 26b9aba018a..c68a341bcea 100644 --- a/core/tasks/oem_image.mk +++ b/core/tasks/oem_image.mk @@ -15,7 +15,16 @@ # # We build oem.img only if it's asked for. +skip_oem_image := true ifneq ($(filter $(MAKECMDGOALS),oem_image),) + skip_oem_image := false +endif + +ifneq ($(BOARD_OEMIMAGE_FILE_SYSTEM_TYPE),) + skip_oem_image := false +endif + +ifneq ($(skip_oem_image),true) ifndef BOARD_OEMIMAGE_PARTITION_SIZE $(error BOARD_OEMIMAGE_PARTITION_SIZE is not set.) endif @@ -43,4 +52,4 @@ $(INSTALLED_OEMIMAGE_TARGET) : $(INTERNAL_USERIMAGES_DEPS) $(INTERNAL_OEMIMAGE_F oem_image : $(INSTALLED_OEMIMAGE_TARGET) $(call dist-for-goals, oem_image, $(INSTALLED_OEMIMAGE_TARGET)) -endif # oem_image in $(MAKECMDGOALS) +endif diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index 2537c62f9ad..db9895dba00 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -105,6 +105,29 @@ def BuildVendor(input_dir, info_dict, block_list=None): file containing it.""" return CreateImage(input_dir, info_dict, "vendor", block_list=block_list) +def AddOem(output_zip, prefix="IMAGES/"): + """Turn the contents of OEM into a oem image and store in it + output_zip.""" + + prebuilt_path = os.path.join(OPTIONS.input_tmp, prefix, "oem.img") + if os.path.exists(prebuilt_path): + print "oem.img already exists in %s, no need to rebuild..." % (prefix,) + return + + block_list = common.MakeTempFile(prefix="oem-blocklist-", suffix=".map") + imgname = BuildOem(OPTIONS.input_tmp, OPTIONS.info_dict, + block_list=block_list) + with open(imgname, "rb") as f: + common.ZipWriteStr(output_zip, prefix + "oem.img", f.read()) + with open(block_list, "rb") as f: + common.ZipWriteStr(output_zip, prefix + "oem.map", f.read()) + + +def BuildOem(input_dir, info_dict, block_list=None): + """Build the (sparse) oem image and return the name of a temp + file containing it.""" + return CreateImage(input_dir, info_dict, "oem", block_list=block_list) + def CreateImage(input_dir, info_dict, what, block_list=None): print "creating " + what + ".img..." @@ -290,6 +313,12 @@ def AddImagesToTargetFiles(filename): except KeyError: has_vendor = False + try: + input_zip.getinfo("OEM/") + has_oem = True + except KeyError: + has_oem = False + OPTIONS.info_dict = common.LoadInfoDict(input_zip) if "selinux_fc" in OPTIONS.info_dict: OPTIONS.info_dict["selinux_fc"] = os.path.join( @@ -341,6 +370,10 @@ def banner(s): AddUserdataExtra(output_zip) banner("cache") AddCache(output_zip) + if has_oem: + banner("oem") + AddOem(output_zip) + output_zip.close() diff --git a/tools/releasetools/img_from_target_files.py b/tools/releasetools/img_from_target_files.py index 1b0d29f66e5..d659ec22934 100755 --- a/tools/releasetools/img_from_target_files.py +++ b/tools/releasetools/img_from_target_files.py @@ -164,6 +164,12 @@ def banner(s): add_img_to_target_files.AddUserdataExtra(output_zip, prefix="") banner("AddCache") add_img_to_target_files.AddCache(output_zip, prefix="") + try: + input_zip.getinfo("OEM/") + banner("AddOem") + add_img_to_target_files.AddOem(output_zip, prefix="") + except KeyError: + pass # no oem partition for this device finally: print "cleaning up..." From c845e5992e64541b066b75c223c645effc0d4794 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 8 Sep 2015 13:36:51 -0700 Subject: [PATCH 1001/1096] "LMY48T" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 238aa14db9c..3ff7a90fe3c 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48S +export BUILD_ID=LMY48T From bd2ac506cbecbc46dfce2620a2b4f78fc4e7e7df Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 8 Sep 2015 15:15:20 -0700 Subject: [PATCH 1002/1096] "LVY48H" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index f2d6fd8e4a4..cf02b9de096 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LVY48G +export BUILD_ID=LVY48H From cd811c3318450fc0f8fa4eff20fa779120cfbe9a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 8 Sep 2015 16:32:15 -0700 Subject: [PATCH 1003/1096] "LMY48U" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 3ff7a90fe3c..79b9d93ef31 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48T +export BUILD_ID=LMY48U From a531281f460e90a12d392faaf258e75c8b62118b Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Tue, 8 Sep 2015 17:32:00 -0700 Subject: [PATCH 1004/1096] "LMY48V" --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 79b9d93ef31..625a15ff1fe 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48U +export BUILD_ID=LMY48V From 05bb2bb19048e1a2fa696c53adc0356ae5315af8 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Wed, 9 Sep 2015 23:38:16 -0500 Subject: [PATCH 1005/1096] repopick: print the status of a skipped cherry pick Change-Id: I5181910dc80fe4cf2d69cc22089e191b36a80c9e --- tools/repopick.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/repopick.py b/tools/repopick.py index 296fec8afb7..eaeb3956a89 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -254,7 +254,7 @@ def fetch_query(remote_url, query): if args.force: print('!! Force-picking a closed change !!\n') else: - print('Change is closed. Skipping the cherry pick.\nUse -f to force this pick.') + print('Change status is ' + item['status'] + '. Skipping the cherry pick.\nUse -f to force this pick.') continue # Convert the project name to a project path From 759879316858b94b5560889f876db2a75c1e3a17 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Wed, 9 Sep 2015 22:29:28 -0700 Subject: [PATCH 1006/1096] repopick: Update script with some fixes Make quiet actually be quiet. Allow overriding the path for a repopick. Sort query and topic results to have a better chance of them applying cleanly. Don't try to pull from github when using a custom gerrit address. Catch git command failures and properly return failure codes. Change-Id: I7ff010fbfbf1026c6fe03cb27649f677637e1bb5 --- tools/repopick.py | 77 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index eaeb3956a89..a2ee36ea406 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -92,7 +92,7 @@ def fetch_query_via_ssh(remote_url, query): reviews.append(review) except: pass - print('Found {0} reviews'.format(len(reviews))) + args.quiet or print('Found {0} reviews'.format(len(reviews))) return reviews @@ -119,6 +119,9 @@ def fetch_query(remote_url, query): raise Exception('Gerrit URL should be in the form http[s]://hostname/ or ssh://[user@]host[:port]') if __name__ == '__main__': + # Default to CyanogenMod Gerrit + default_gerrit = 'http://review.cyanogenmod.org' + parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, description=textwrap.dedent('''\ repopick.py is a utility to simplify the process of cherry picking patches from CyanogenMod's Gerrit instance (or any gerrit instance of your choosing) @@ -143,11 +146,11 @@ def fetch_query(remote_url, query): parser.add_argument('-v', '--verbose', action='store_true', help='print extra information to aid in debug') parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if change is closed') parser.add_argument('-p', '--pull', action='store_true', help='execute pull instead of cherry-pick') + parser.add_argument('-P', '--path', help='use the specified path for the change') parser.add_argument('-t', '--topic', help='pick all commits from a specified topic') parser.add_argument('-Q', '--query', help='pick all commits using the specified query') - parser.add_argument('-g', '--gerrit', default='http://review.cyanogenmod.org', help='Gerrit Instance to use. Form proto://[user@]host[:port]') + parser.add_argument('-g', '--gerrit', default=default_gerrit, help='Gerrit Instance to use. Form proto://[user@]host[:port]') args = parser.parse_args() - print (args.gerrit) if not args.start_branch and args.abandon_first: parser.error('if --abandon-first is set, you must also give the branch name with --start-branch') if args.auto_branch: @@ -212,15 +215,15 @@ def fetch_query(remote_url, query): change_numbers = [] if args.topic: reviews = fetch_query(args.gerrit, 'topic:{0}'.format(args.topic)) - change_numbers = [str(r['number']) for r in reviews] + change_numbers = sorted([str(r['number']) for r in reviews]) if args.query: reviews = fetch_query(args.gerrit, args.query) - change_numbers = [str(r['number']) for r in reviews] + change_numbers = sorted([str(r['number']) for r in reviews]) if args.change_number: reviews = fetch_query(args.gerrit, ' OR '.join('change:{0}'.format(x.split('/')[0]) for x in args.change_number)) change_numbers = args.change_number - # make list of things to actually merge + # make list of things to actually merge mergables = [] for change in change_numbers: @@ -245,10 +248,10 @@ def fetch_query(remote_url, query): mergables[-1]['fetch'] = [x['fetch'] for x in review['revisions'] if x['_number'] == patchset][0] mergables[-1]['id'] = '{0}/{1}'.format(change, patchset) except (IndexError, ValueError): - print('ERROR: The patch set {0}/{1} could not be found, using CURRENT_REVISION instead.'.format(change, patchset)) + args.quiet or print('ERROR: The patch set {0}/{1} could not be found, using CURRENT_REVISION instead.'.format(change, patchset)) for item in mergables: - print('Applying change number {0}...'.format(item['id'])) + args.quiet or print('Applying change number {0}...'.format(item['id'])) # Check if change is open and exit if it's not, unless -f is specified if (item['status'] != 'OPEN' and item['status'] != 'NEW') and not args.query: if args.force: @@ -287,6 +290,8 @@ def fetch_query(remote_url, query): project_path = project_path.rstrip('-caf') if item["branch"].split('-')[-1] == 'caf': project_path += '-caf' + elif args.path: + project_path = args.path elif args.ignore_missing: print('WARNING: Skipping {0} since there is no project directory for: {1}\n'.format(item['id'], item['project'])) continue @@ -304,37 +309,61 @@ def fetch_query(remote_url, query): print('--> Project path: {0}'.format(project_path)) print('--> Change number: {0} (Patch Set {0})'.format(item['id'])) - # Try fetching from GitHub first - if args.verbose: - print('Trying to fetch the change from GitHub') - if 'anonymous http' in item['fetch']: method = 'anonymous http' else: method = 'ssh' - if args.pull: - cmd = ['git pull --no-edit github', item['fetch'][method]['ref']] - else: - cmd = ['git fetch github', item['fetch'][method]['ref']] + # Try fetching from GitHub first if using default gerrit + if args.gerrit == default_gerrit: + if args.verbose: + print('Trying to fetch the change from GitHub') - print(cmd) - subprocess.call([' '.join(cmd)], cwd=project_path, shell=True) + if args.pull: + cmd = ['git pull --no-edit github', item['fetch'][method]['ref']] + else: + cmd = ['git fetch github', item['fetch'][method]['ref']] + if args.quiet: + cmd.append('--quiet') + else: + print(cmd) + result = subprocess.call([' '.join(cmd)], cwd=project_path, shell=True) + if result != 0: + print('ERROR: git command failed') + sys.exit(result) + FETCH_HEAD = '{0}/.git/FETCH_HEAD'.format(project_path) # Check if it worked - FETCH_HEAD = '{0}/.git/FETCH_HEAD'.format(project_path) - if os.stat(FETCH_HEAD).st_size == 0: - # That didn't work, fetch from Gerrit instead + if args.gerrit != default_gerrit or os.stat(FETCH_HEAD).st_size == 0: + # If not using the default gerrit or github failed, fetch from gerrit. if args.verbose: - print('Fetching from GitHub didn\'t work, trying to fetch the change from Gerrit') + if args.gerrit == default_gerrit: + print('Fetching from GitHub didn\'t work, trying to fetch the change from Gerrit') + else: + print('Fetching from {0}'.format(args.gerrit)) + if args.pull: cmd = ['git pull --no-edit', item['fetch'][method]['url'], item['fetch'][method]['ref']] else: cmd = ['git fetch', item['fetch'][method]['url'], item['fetch'][method]['ref']] - subprocess.call([' '.join(cmd)], cwd=project_path, shell=True) + if args.quiet: + cmd.append('--quiet') + else: + print(cmd) + result = subprocess.call([' '.join(cmd)], cwd=project_path, shell=True) + if result != 0: + print('ERROR: git command failed') + sys.exit(result) # Perform the cherry-pick if not args.pull: cmd = ['git cherry-pick FETCH_HEAD'] - subprocess.call(cmd, cwd=project_path, shell=True) + if args.quiet: + cmd_out = open(os.devnull, 'wb') + else: + cmd_out = None + result = subprocess.call(cmd, cwd=project_path, shell=True, stdout=cmd_out, stderr=cmd_out) + if result != 0: + print('ERROR: git command failed') + sys.exit(result) if not args.quiet: print('') From 58ff1edfb64e56d0929c39db06373e0e13ee6cd2 Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Tue, 8 Sep 2015 17:11:37 -0700 Subject: [PATCH 1007/1096] img_from_target_files: Skip oem.img in fastboot image creation We don't need this package to be included in fastboot images, so skip it when we are creating fastboot images. Change-Id: I1e0676f5cbf7468088e6997f83ae845578864668 Ticket: CYNGNOS-936 --- tools/releasetools/img_from_target_files.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tools/releasetools/img_from_target_files.py b/tools/releasetools/img_from_target_files.py index d659ec22934..eef4c974c13 100755 --- a/tools/releasetools/img_from_target_files.py +++ b/tools/releasetools/img_from_target_files.py @@ -112,11 +112,13 @@ def option_handler(o, a): if os.path.exists(images_path): # If this is a new target-files, it already contains the images, # and all we have to do is copy them to the output zip. + # Skip oem.img files since they are not needed in fastboot images. images = os.listdir(images_path) if images: for i in images: if bootable_only and i not in ("boot.img", "recovery.img"): continue if not i.endswith(".img"): continue + if i == "oem.img": continue with open(os.path.join(images_path, i), "r") as f: common.ZipWriteStr(output_zip, i, f.read()) done = True @@ -164,12 +166,6 @@ def banner(s): add_img_to_target_files.AddUserdataExtra(output_zip, prefix="") banner("AddCache") add_img_to_target_files.AddCache(output_zip, prefix="") - try: - input_zip.getinfo("OEM/") - banner("AddOem") - add_img_to_target_files.AddOem(output_zip, prefix="") - except KeyError: - pass # no oem partition for this device finally: print "cleaning up..." From 784fb8ba68dada736ecb3e0a0a88e0e1758cde8d Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Tue, 8 Sep 2015 10:57:18 -0500 Subject: [PATCH 1008/1096] build: Separate commands in recovery foreach loops The foreach loops output a space separated list, not necessarily one command per line. Separate commands with semicolons. Notably, this fixes an issue with multiple device directories included in TARGET_RECOVERY_DEVICE_DIRS. Change-Id: I5ebdc84ecaaacabaea77b8b752141e2041622480 --- core/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index 6d9ba090b21..a0d08542bde 100644 --- a/core/Makefile +++ b/core/Makefile @@ -956,11 +956,11 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(hide) cp -rf $(recovery_resources_common)/* $(TARGET_RECOVERY_ROOT_OUT)/res $(hide) cp -f $(recovery_font) $(TARGET_RECOVERY_ROOT_OUT)/res/images/font.png $(hide) $(foreach item,$(recovery_root_private), \ - cp -rf $(item) $(TARGET_RECOVERY_OUT)/) + cp -rf $(item) $(TARGET_RECOVERY_OUT)/;) $(hide) $(foreach item,$(recovery_resources_private), \ - cp -rf $(item) $(TARGET_RECOVERY_ROOT_OUT)/) + cp -rf $(item) $(TARGET_RECOVERY_ROOT_OUT)/;) $(hide) $(foreach item,$(recovery_fstab), \ - cp -f $(item) $(TARGET_RECOVERY_ROOT_OUT)/etc/recovery.fstab) + cp -f $(item) $(TARGET_RECOVERY_ROOT_OUT)/etc/recovery.fstab;) $(hide) cp $(RECOVERY_INSTALL_OTA_KEYS) $(TARGET_RECOVERY_ROOT_OUT)/res/keys $(hide) cat $(INSTALLED_DEFAULT_PROP_TARGET) $(recovery_build_prop) \ > $(TARGET_RECOVERY_ROOT_OUT)/default.prop From 1dd05bd24098b315b0e338fd2cbb880cb1eb7553 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 16 Sep 2015 11:34:22 -0700 Subject: [PATCH 1009/1096] LMY48W --- core/build_id.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build_id.mk b/core/build_id.mk index 625a15ff1fe..e59666c110b 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=LMY48V +export BUILD_ID=LMY48W From 86ea4c89617b0f9e017dcbc40089cad73ce69d67 Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Mon, 21 Sep 2015 14:37:56 -0700 Subject: [PATCH 1010/1096] Revert "build: better zsh dopush support" breaks restarting framework on bash This reverts commit 5dee2dd63a2bcb6cbd1c4c3b1a843a4dcfed81f6. Change-Id: I2579d82d03ee4712f6aaedb99144986c6d92263e --- envsetup.sh | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 4be6cebdb4a..3a6967af19f 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2451,13 +2451,10 @@ EOF fi stop_n_start=false - for FILE in $(echo $LOC | xargs -n1 -i echo '{}'); do + for FILE in $LOC; do # Make sure file is in $OUT/system or $OUT/data case $FILE in - $OUT/system/*) - TARGET=$(echo $FILE | sed "s#$OUT##") - ;; - $OUT/data/*) + $OUT/system/*|$OUT/data/*) # Get target file name (i.e. /system/bin/adb) TARGET=$(echo $FILE | sed "s#$OUT##") ;; @@ -2484,9 +2481,7 @@ EOF fi adb shell restorecon "$TARGET" ;; - - # | works here because there's only one wildcard to match - {/system/}priv-app/SystemUI/SystemUI.apk|framework/*) + /system/priv-app/SystemUI/SystemUI.apk|/system/framework/*) # Only need to stop services once if ! $stop_n_start; then adb shell stop From 521b58be61a577933c670b9f53a110623d26ce57 Mon Sep 17 00:00:00 2001 From: Scott Mertz Date: Thu, 20 Aug 2015 16:05:10 -0700 Subject: [PATCH 1011/1096] Revert "tools:releasetools:Use timestamp from build.prop while building system.img" This reverts commit 0f1ef4b3740bd2e2cf7a042e729574dc9dff6688. Change-Id: I13c84cd02b31f03ba2af48cf02ad0fc286afe40c --- tools/releasetools/build_image.py | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index c5ce5dbdd8f..9a57b7aaaf8 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -220,6 +220,7 @@ def BuildImage(in_dir, prop_dict, out_file, build_command = [] fs_type = prop_dict.get("fs_type", "") run_fsck = False + is_verity_partition = "verity_block_device" in prop_dict verity_supported = prop_dict.get("verity") == "true" # adjust the partition size to make room for the hashes if this is to be verified @@ -247,22 +248,6 @@ def BuildImage(in_dir, prop_dict, out_file, build_command.extend(["-j", prop_dict["journal_size"]]) if "timestamp" in prop_dict: build_command.extend(["-T", str(prop_dict["timestamp"])]) - else: - #Timestamp not provided in property_dict. - #Lets try to find the build.prop file and get the timestamp from there - #instead - path = in_dir + "/build.prop" - if os.path.exists(path): - with open(path) as f: - lines = f.readlines() - for line in lines: - line = line.strip() - if line.startswith("ro.build.date.utc"): - name, value = line.split("=", 1) - print "read ro.build.date.utc from build.prop as ", value - build_command.extend(["-T", value]) - else: - print "unable to open build.prop file..Image will be built using system time" if fs_config is not None: build_command.extend(["-C", fs_config]) if block_list is not None: From c3afd0e138ba5d6c15241d75a642c71ad004a151 Mon Sep 17 00:00:00 2001 From: Tom Powell Date: Fri, 25 Sep 2015 14:23:26 -0700 Subject: [PATCH 1012/1096] repopick: support projects which get checked out multiple times see: caf branches for multimedia, where different branches get checked out under different paths. Change removes hacks needed for -caf branches, as this data is taken directly out of 'repo manifest' Change-Id: Id7aa24709c3dc6bc874899ef605e58271fec082c --- tools/repopick.py | 60 ++++++++++++++++++----------------------------- 1 file changed, 23 insertions(+), 37 deletions(-) diff --git a/tools/repopick.py b/tools/repopick.py index a2ee36ea406..ac8875af262 100755 --- a/tools/repopick.py +++ b/tools/repopick.py @@ -28,6 +28,7 @@ import re import argparse import textwrap +from xml.etree import ElementTree try: # For python3 @@ -198,17 +199,27 @@ def fetch_query(remote_url, query): if not args.quiet: print('') - # Get the list of projects that repo knows about - # - convert the project name to a project path - project_name_to_path = {} - plist = subprocess.check_output(['repo', 'list']).split('\n') + # Get the master manifest from repo + # - convert project name and revision to a path + project_name_to_data = {} + manifest = subprocess.check_output(['repo', 'manifest']) + xml_root = ElementTree.fromstring(manifest) + projects = xml_root.findall('project') + default_revision = xml_root.findall('default')[0].get('revision').split('/')[-1] - for pline in plist: - if not pline: - break - ppaths = pline.split(' : ') + #dump project data into the a list of dicts with the following data: + #{project: {path, revision}} - project_name_to_path[ppaths[1]] = ppaths[0] + for project in projects: + name = project.get('name') + path = project.get('path') + revision = project.get('revision') + if revision is None: + revision = default_revision + + if not name in project_name_to_data: + project_name_to_data[name] = {} + project_name_to_data[name][revision] = path # get data on requested changes reviews = [] @@ -263,33 +274,9 @@ def fetch_query(remote_url, query): # Convert the project name to a project path # - check that the project path exists project_path = None - if item['project'] in project_name_to_path: - project_path = project_name_to_path[item['project']] - - if project_path.startswith('hardware/qcom/'): - split_path = project_path.split('/') - # split_path[2] might be display or it might be display-caf, trim the -caf - split_path[2] = split_path[2].split('-')[0] - - # Need to treat hardware/qcom/{audio,display,media} specially - if split_path[2] == 'audio' or split_path[2] == 'display' or split_path[2] == 'media': - split_branch = item['branch'].split('-') - - # display is extra special - if split_path[2] == 'display' and len(split_path) == 3: - project_path = '/'.join(split_path) - else: - project_path = '/'.join(split_path[:-1]) - - if len(split_branch) == 4 and split_branch[0] == 'cm' and split_branch[2] == 'caf': - project_path += '-caf/msm' + split_branch[3] - # audio and media are different from display - elif split_path[2] == 'audio' or split_path[2] == 'media': - project_path += '/default' - elif project_path.startswith('hardware/ril'): - project_path = project_path.rstrip('-caf') - if item["branch"].split('-')[-1] == 'caf': - project_path += '-caf' + + if item['project'] in project_name_to_data and item['branch'] in project_name_to_data[item['project']]: + project_path = project_name_to_data[item['project']][item['branch']] elif args.path: project_path = args.path elif args.ignore_missing: @@ -366,4 +353,3 @@ def fetch_query(remote_url, query): sys.exit(result) if not args.quiet: print('') - From 53c503550bade08efa5874cc73aff70734b59d85 Mon Sep 17 00:00:00 2001 From: Jackeagle Date: Wed, 30 Sep 2015 13:55:01 -0400 Subject: [PATCH 1013/1096] tools/device: Remove deprecated line gsm.mk no longer exist in vendor/cm Change-Id: I0b6d50b424b3d24065e7287e1a03b64348014817 Signed-off-by: Jackeagle --- tools/device/cm.mk.template | 3 --- 1 file changed, 3 deletions(-) diff --git a/tools/device/cm.mk.template b/tools/device/cm.mk.template index ed5ce1d73dc..e07898a411c 100644 --- a/tools/device/cm.mk.template +++ b/tools/device/cm.mk.template @@ -1,6 +1,3 @@ -## Specify phone tech before including full_phone -$(call inherit-product, vendor/cm/config/gsm.mk) - # Release name PRODUCT_RELEASE_NAME := __DEVICE__ From 90e8653df2beb646d88175ef7bc429f5aa42015b Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Wed, 30 Sep 2015 12:17:41 -0700 Subject: [PATCH 1014/1096] build: Make sure we're building our secondary resource package as dependency. This allows us to reference internal or public resources without going explicitily through the platform sdk. Change-Id: Iba361a3dcd20bc62a06e600e0240fb09d4e7bda4 --- core/package_internal.mk | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/core/package_internal.mk b/core/package_internal.mk index a6ad354b421..101b4429699 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -297,11 +297,24 @@ framework_res_package_export_deps := $(framework_res_package_export) else # LOCAL_SDK_RES_VERSION framework_res_package_export := \ $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk + +# Avoid possible circular dependency with our platform-res +ifneq ($(LOCAL_IGNORE_SUBDIR), true) +cm_plat_res_package_export := \ + $(call intermediates-dir-for,APPS,org.cyanogenmod.platform-res,,COMMON)/package-export.apk +endif # LOCAL_IGNORE_SUBDIR + # We can't depend directly on the export.apk file; it won't get its # PRIVATE_ vars set up correctly if we do. Instead, depend on the # corresponding R.stamp file, which lists the export.apk as a dependency. framework_res_package_export_deps := \ $(dir $(framework_res_package_export))src/R.stamp + +ifneq ($(LOCAL_IGNORE_SUBDIR), true) +cm_plat_res_package_export_deps := \ + $(dir $(cm_plat_res_package_export))src/R.stamp +endif # LOCAL_IGNORE_SUBDIR + endif # LOCAL_SDK_RES_VERSION all_library_res_package_exports := \ $(framework_res_package_export) \ @@ -313,6 +326,13 @@ all_library_res_package_export_deps := \ $(foreach lib,$(LOCAL_RES_LIBRARIES),\ $(call intermediates-dir-for,APPS,$(lib),,COMMON)/src/R.stamp) +ifneq ($(LOCAL_IGNORE_SUBDIR), true) +all_library_res_package_exports += \ + $(cm_plat_res_package_export) +all_library_res_package_export_deps += \ + $(cm_plat_res_package_export_deps) +endif # LOCAL_IGNORE_SUBDIR + $(resource_export_package) $(R_file_stamp) $(LOCAL_BUILT_MODULE): $(all_library_res_package_export_deps) $(LOCAL_INTERMEDIATE_TARGETS): \ PRIVATE_AAPT_INCLUDES := $(all_library_res_package_exports) From ca2a4884a62e561a969d6fab460d08cdf0b45757 Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Thu, 1 Oct 2015 15:37:55 -0700 Subject: [PATCH 1015/1096] build: Fix import build step. Change-Id: Id5a042bd12cf37eec7c856a22d5a7de0e175c2e7 --- core/apicheck_msg_current.txt | 67 +++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/core/apicheck_msg_current.txt b/core/apicheck_msg_current.txt index 2e065aeffaf..99fd547e971 100644 --- a/core/apicheck_msg_current.txt +++ b/core/apicheck_msg_current.txt @@ -10,6 +10,73 @@ To make these errors go away, you have two choices: make update-api ^^^^^^^^^^^^^^^^^^ + CONGRATS YOU EARNED A QUAIL STAR! + + M + MM + MMM + M.MM + MM M + 7M MM + MMMMM MMMMM + MMMMM .MMMMM + MMMM MMMM + MM M + MM M .M + M+M MMMM + .M++MM .MM + MM+++MM MM + 8NNNNN MM+++++MM + NNNN $Z8. MM+++++MM MM + MM $Z8M7IMNN+++++MM MM + .$$$D ~NNMNN+++++MM MMMM + INNNNM NMNM++++++M M M + NNO:NI=MM+++++++MM MM MM + 8M$MMMMMD?+++++++MM .MMMMMMMMMMMMMMM MMMMN MMMMM + M$$NMMMMMM$++++++++MMMMMMM=+++++++++++++MM MMMMM MMMMM + M77$IMMMMMN.,+++++++++++++++++++++++++++MM .MMMMM MMMMM + .??I8,?M777OM.?+++++++++++++++++++++++++MM MM MM + O==?M7MM$MMI7$.~M+++++++++++++++++++++++MM .M M + NMMM+~M??MMMMMMMMMMMI$$++++++++++++++++++++MM MMMM + MMMM++++MM~=+I$OMMMOO?7M$Z$$$+++++++++++++++++MM MM + NMMM++++++++~~MO~7$OM8O8OMZZ$Z$M$$M++++++++++++++MM7MMM MM + MMMM++++++++++++==D~M~:8N88MMOMMZDM$$Z$$M+++++++++++MM77777MMM +MMM+++++++++++++++~MM~~M $O,NM88MOMMZ$$MM$$$+++++++++MM777777777MMMM + MMM++++++++++++M~M~IMMMO888NMOMMOZM$ZZDZ$$+++++++MM7777777777777OMMZ + MMM+++++++++++~~M~~MDOOMMO8NOOOOZZ$$Z.Z$$M++++MM77777777777777777MMM + MMM++++++++M.Z, D+ 8O88M8D,OOMDZZ$D.$$$N+++M7MMMMMD77777777777777MMM + .MM+++++++MM:.D:ZMMM8888OOOOOOZZ$ND$$$M++MM777777MMMM7777777777777MMD + MMM+++++~M.$.M~,~7M8?MON MOOZZ$$N$$$M++MD777777777MMMM77777777777MMM + MM=+++=ZMZ.MM MMZOOOO88OOZM$M.$$$$+++M7777777777777MMMM7777777777MM + MMM++MM~,,$M.+~M$OOMOOMZMI$$$$$$$++MM7777777777777777MMM777777777MM + MM++++=. ~$$.$.M~M$MZOM7MMZ$$$$$$++MMMMMMD7777777777777MMMI7777777MMM + .M++++++MM+OMI$7M??N+OZM8MMMD$$M$$++M77777MMMMN77777777777MMM7777777MMM + M++++++++M+=?+++++++++++MNMZN$$N$$+MM777777777MMMM7777777777MMM777777MM, + M+++++M=?7$$M+++++++++++++++$NO$$$$+M7777777777777MMMM777777777MMM77777MM + M++~M$M$M+++++M++MMM++++++++++M=$$D$MMMMMMMM7777777777MMM$7777777MMM77777MM + M+M$$$M+++++++++MM MMMMM+++++++M$Z$$M MMMMMI7777777MMMM7777777MM77777MM + M++7NMIN++Z++NMM MMMMM+++N$M$M MMMM7777777MMM777777MM$777MM + M=++8+++++++MM MMMMMZ$M$M MMMM777777MMM77777MMZ777MM + MM++++++++MM MM$ MMM77777MMM77777MM7777MM + MM++++++MM MMMM7777MMM7777MM777MM + MM++++MMM .MMM7777MM7777MM77$M + MM+++MM M MMM777MMN777MM77MM + NM+MM M MMM77MMM77NMM7MM + MM MM MMM77MMM77MM77M + .MMM MMM7MMM7IMM7MM + MM M MMM7MMM7MM7MM + M MM MM7MMN7MMMM + MMMM MMMM MMMMMIMMMM + MMMM. MMMMM MMMMMMMMM + MMMMM MMMMM MMMMMMMM + MM MM OMMMMMM + M MM MMMMMM + MM M MMMMM + MMM MMM + MM MM + M + + NO. NO. STOP BEING LAZY. SERIOUSLY. DO NOT DO THIS in CM. THIS IS A LIE. IT WILL BREAK THINGS. From f3f529b23ce26a91e0c2b3e01be34d9f36f3720a Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Wed, 12 Aug 2015 16:11:20 -0700 Subject: [PATCH 1016/1096] Fix issie #23116383: Include security patch level in Settings Change-Id: I46303c064d1365781a2c8a05bd6087518afb2aec --- CleanSpec.mk | 2 ++ core/Makefile | 2 ++ core/version_defaults.mk | 17 +++++++++++++++++ tools/buildinfo.sh | 2 ++ 4 files changed, 23 insertions(+) diff --git a/CleanSpec.mk b/CleanSpec.mk index e706b9c9e5e..b3cb1aac4d9 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -314,6 +314,8 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/Makefile b/core/Makefile index a0d08542bde..9ab196a3248 100644 --- a/core/Makefile +++ b/core/Makefile @@ -240,6 +240,8 @@ endif BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \ BUILD_NUMBER="$(BUILD_NUMBER)" \ PLATFORM_VERSION="$(PLATFORM_VERSION)" \ + PLATFORM_SECURITY_PATCH="$(PLATFORM_SECURITY_PATCH)" \ + PLATFORM_BASE_OS="$(PLATFORM_BASE_OS)" \ PLATFORM_SDK_VERSION="$(PLATFORM_SDK_VERSION)" \ PLATFORM_VERSION_CODENAME="$(PLATFORM_VERSION_CODENAME)" \ PLATFORM_VERSION_ALL_CODENAMES="$(PLATFORM_VERSION_ALL_CODENAMES)" \ diff --git a/core/version_defaults.mk b/core/version_defaults.mk index cc63286b28f..ff49c70614f 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -24,6 +24,7 @@ # DEFAULT_APP_TARGET_SDK # BUILD_ID # BUILD_NUMBER +# SECURITY_PATCH # # Look for an optional file containing overrides of the defaults, @@ -80,6 +81,22 @@ ifeq "" "$(DEFAULT_APP_TARGET_SDK)" endif endif +ifeq "" "$(PLATFORM_SECURITY_PATCH)" + # Used to indicate the security patch that has been applied to the device. + # Can be an arbitrary string, but must be a single word. + # + # If there is no $PLATFORM_SECURITY_PATCH set, keep it empty. + PLATFORM_SECURITY_PATCH := +endif + +ifeq "" "$(PLATFORM_BASE_OS)" + # Used to indicate the base os applied to the device. + # Can be an arbitrary string, but must be a single word. + # + # If there is no $PLATFORM_BASE_OS set, keep it empty. + PLATFORM_BASE_OS := +endif + ifeq "" "$(BUILD_ID)" # Used to signify special builds. E.g., branches and/or releases, # like "M5-RC7". Can be an arbitrary string, but must be a single diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh index d96c589036d..a54960705be 100755 --- a/tools/buildinfo.sh +++ b/tools/buildinfo.sh @@ -10,6 +10,8 @@ echo "ro.build.version.sdk=$PLATFORM_SDK_VERSION" echo "ro.build.version.codename=$PLATFORM_VERSION_CODENAME" echo "ro.build.version.all_codenames=$PLATFORM_VERSION_ALL_CODENAMES" echo "ro.build.version.release=$PLATFORM_VERSION" +echo "ro.build.version.security_patch=$PLATFORM_SECURITY_PATCH" +echo "ro.build.version.base_os=$PLATFORM_BASE_OS" echo "ro.build.date=`date`" echo "ro.build.date.utc=`date +%s`" echo "ro.build.type=$TARGET_BUILD_TYPE" From f828f559d853f13478a3473a74ce1ab3df416370 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Tue, 6 Oct 2015 02:54:47 +0300 Subject: [PATCH 1017/1096] Set the Security Patch level with Oct 1 for LP Change-Id: Id258ff785f86b881e65298695077cc9495051c87 --- core/version_defaults.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/version_defaults.mk b/core/version_defaults.mk index ff49c70614f..b133c5ec12a 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -86,7 +86,7 @@ ifeq "" "$(PLATFORM_SECURITY_PATCH)" # Can be an arbitrary string, but must be a single word. # # If there is no $PLATFORM_SECURITY_PATCH set, keep it empty. - PLATFORM_SECURITY_PATCH := + PLATFORM_SECURITY_PATCH := 2015-10-01 endif ifeq "" "$(PLATFORM_BASE_OS)" From 2f9989ddde6a4b2423a05448a1722fa9776d8e50 Mon Sep 17 00:00:00 2001 From: Stephen Boyd Date: Wed, 21 Aug 2013 17:05:26 -0700 Subject: [PATCH 1018/1096] generate_extra_images: Look for 3.10 dtbs The dtbs have changed location between 3.4 and 3.10. Look for the new location first and fallback to the 3.4 location if they're missing. Change-Id: I7aada8dbcf01ea6f62b3235b452c9329cd69e5e8 --- core/generate_extra_images.mk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/generate_extra_images.mk b/core/generate_extra_images.mk index c2536685657..9c41028a20d 100644 --- a/core/generate_extra_images.mk +++ b/core/generate_extra_images.mk @@ -99,9 +99,12 @@ DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX) INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img +possible_dtb_dirs = $(KERNEL_OUT)/arch/arm/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/ +dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs))) + define build-dtimage-target $(call pretty,"Target dt image: $(INSTALLED_DTIMAGE_TARGET)") - $(hide) $(DTBTOOL) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(KERNEL_OUT)/arch/arm/boot/ + $(hide) $(DTBTOOL) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir) $(hide) chmod a+r $@ endef From a606db3054c406097d012cef81b539334ac0d599 Mon Sep 17 00:00:00 2001 From: David Ng Date: Wed, 11 Dec 2013 12:29:39 -0800 Subject: [PATCH 1019/1096] build: Generalize kernel DTB path Use $TARGET_KERNEL_ARCH to specify the architecture-dependent path location of the DTB files. Change-Id: I302f407d987e1b33acb0e47b284a1cb793747691 --- core/generate_extra_images.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/generate_extra_images.mk b/core/generate_extra_images.mk index 9c41028a20d..b796d3f43a1 100644 --- a/core/generate_extra_images.mk +++ b/core/generate_extra_images.mk @@ -99,7 +99,7 @@ DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX) INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img -possible_dtb_dirs = $(KERNEL_OUT)/arch/arm/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/ +possible_dtb_dirs = $(KERNEL_OUT)/arch/$(TARGET_KERNEL_ARCH)/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/ dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs))) define build-dtimage-target From 47548141dcd54a261db2f789d94ab2360d8d25d8 Mon Sep 17 00:00:00 2001 From: Khalid Zubair Date: Tue, 6 Oct 2015 11:00:55 -0700 Subject: [PATCH 1020/1096] mka: allow mka to be run from anywhere in the tree The Android build system expects to be launched from the top of the tree. Invoking mka at any other level often has unintended consequence (e.g. targets the host ARCH because ARCH was not set). The various build shortcuts like m and mm invoke Make from the top of the tree. mka now does the same. Change-Id: Id956cf04cbaf1d12d12549ca54e32b9c2ce1fc29 --- envsetup.sh | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 3a6967af19f..21d7c953cdd 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2329,14 +2329,20 @@ function cmrebase() { } function mka() { - case `uname -s` in - Darwin) - make -j `sysctl hw.ncpu|cut -d" " -f2` "$@" - ;; - *) - mk_timer schedtool -B -n 1 -e ionice -n 1 make -j$(cat /proc/cpuinfo | grep "^processor" | wc -l) "$@" - ;; - esac + local T=$(gettop) + if [ "$T" ]; then + case `uname -s` in + Darwin) + make -C $T -j `sysctl hw.ncpu|cut -d" " -f2` "$@" + ;; + *) + mk_timer schedtool -B -n 1 -e ionice -n 1 make -C $T -j$(cat /proc/cpuinfo | grep "^processor" | wc -l) "$@" + ;; + esac + + else + echo "Couldn't locate the top of the tree. Try setting TOP." + fi } function cmka() { From 8237106ba8f3948e3071217820653f30379ab6fb Mon Sep 17 00:00:00 2001 From: Matt Wagantall Date: Thu, 15 Oct 2015 13:54:19 -0700 Subject: [PATCH 1021/1096] kernel: use merge-config.sh for integrating KERNEL_ADDITIONAL_CONFIG Using 'cat' to combine defconfig fragments is not, in general, safe. Overriding options is not correctly handled, and it's possible to produce illegal configurations which violate Kconfig dependency constraints. Instead, use the merge-config.sh script from the kernel tree which more intelligently combines defconfig fragments. An 'alldefconfig' make target is also introduced, as merge-config.sh depends on it. Change-Id: I91a8c5e4bcf7072a3f95651dffe17380174134e4 --- core/tasks/kernel.mk | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 6c00bf786d2..b78c183e65e 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -226,8 +226,8 @@ $(KERNEL_CONFIG): $(KERNEL_OUT) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ - cat $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG) >> $(KERNEL_OUT)/.config; \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi + $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig; fi TARGET_KERNEL_BINARIES: $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL) $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE) @@ -258,8 +258,8 @@ $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ - cat $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG) >> $(KERNEL_OUT)/.config; \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi + $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig; fi kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) tags @@ -271,6 +271,10 @@ kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) savedefconfig cp $(KERNEL_OUT)/defconfig $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG) +alldefconfig: $(KERNEL_OUT) + env KCONFIG_NOTIMESTAMP=true \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) alldefconfig + endif # FULL_KERNEL_BUILD ## Install it From 9c32ee8d0aaf17bd4d9d1248cdb1668a1d0fa029 Mon Sep 17 00:00:00 2001 From: Matt Wagantall Date: Fri, 16 Oct 2015 16:32:33 -0700 Subject: [PATCH 1022/1096] kernel: Don't update defconfig with KERNEL_ADDITIONAL_CONFIG options If 'make kernelconfig' is run in an environment where KERNEL_ADDITIONAL_CONFIG is set, the options in the additional defconfig will be saved back to the defconfig when savedefconfig is performed. While not really a bug, this increases the likelihood of someone accidentally committing these changes or getting confused by unexpected deltas added to their defconfigs. Fix this by skipping the merge-config.sh step for the 'kernelconfig' make target. As a side-effect, options in KERNEL_ADDITIONAL_CONFIG will also not be displayed in menuconfig. This is not easily avoidable, and arguably not wrong anyway. Change-Id: I920be0338bb8afc87f6061c55aafb27ba658974d --- core/tasks/kernel.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index b78c183e65e..e10adeb1df0 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -264,7 +264,11 @@ $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG) kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) tags -kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) +kernelconfig: $(KERNEL_OUT) + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG) + $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ + echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ + echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; fi env KCONFIG_NOTIMESTAMP=true \ $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) menuconfig env KCONFIG_NOTIMESTAMP=true \ From 9f5ee481326e37f26cde2ffbb311539eec7bb308 Mon Sep 17 00:00:00 2001 From: Martin Blumenstingl Date: Tue, 20 Oct 2015 20:05:40 +0200 Subject: [PATCH 1023/1096] edify: Fix _WordWrap function calls DeleteFilesIfNotMatching and SkipNextActionIfTargetExists are both referencing the non-existing method "WordWrap". This seems to be a typo, because all other methods are referencing the _WordWrap method. Change-Id: I6165087a0c1c6cc39c370472bfe728a312342961 --- tools/releasetools/edify_generator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index d771ea208a2..80cf7ce47ed 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -276,7 +276,7 @@ def DeleteFilesIfNotMatching(self, file_list): for name, sha1 in file_list: cmd = ('sha1_check(read_file("{name}"), "{sha1}") || ' 'delete("{name}");'.format(name=name, sha1=sha1)) - self.script.append(self.WordWrap(cmd)) + self.script.append(self._WordWrap(cmd)) def RenameFile(self, srcfile, tgtfile): """Moves a file from one location to another.""" @@ -290,7 +290,7 @@ def SkipNextActionIfTargetExists(self, tgtfile, tgtsha1): skip the action if the file exists. Used when a patch is later renamed.""" cmd = ('sha1_check(read_file("%s"), %s) ||' % (tgtfile, tgtsha1)) - self.script.append(self.WordWrap(cmd)) + self.script.append(self._WordWrap(cmd)) def ApplyPatch(self, srcfile, tgtfile, tgtsize, tgtsha1, *patchpairs): """Apply binary patches (in *patchpairs) to the given srcfile to From 7fc9ab74b3528db4ff41e49cacf2ed0a157389d9 Mon Sep 17 00:00:00 2001 From: Abhinav1997 Date: Sun, 18 Oct 2015 19:49:13 +0200 Subject: [PATCH 1024/1096] envsetup: Show error when supplied dir isn't present with mmm When a directory isn't present with mmm, don't show "No Android.mk present", rather show that the directory isn't present Change-Id: I7259a60012c6f30c470daa60d5a5097d01ffc4c7 Signed-off-by: Abhinav1997 (cherry picked from commit c3eb1079ea1ee513422cfe16d4c5574a2c1ee7a5) --- envsetup.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 21d7c953cdd..51f32539803 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -910,7 +910,12 @@ function mmm() case $DIR in showcommands | snod | dist | incrementaljavac) ARGS="$ARGS $DIR";; GET-INSTALL-PATH) GET_INSTALL_PATH=$DIR;; - *) echo "No Android.mk in $DIR."; return 1;; + *) if [ -d $DIR ]; then + echo "No Android.mk in $DIR."; + else + echo "Couldn't locate the directory $DIR"; + fi + return 1;; esac fi done From 67416e929381acdfba85c3c7d50350f770d2a78d Mon Sep 17 00:00:00 2001 From: Ethan Chen Date: Thu, 29 Oct 2015 16:25:33 -0700 Subject: [PATCH 1025/1096] build: Adjust for device-specific HAL paths * QCOM variant HALs are pretty much deprecated, long live device-specific HALs! Change-Id: I636d1e851519aba31ea3744b369aea06d6db6f68 --- core/qcom_target.mk | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index a6d3965b0c9..83c14904d2e 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -1,17 +1,14 @@ # Target-specific configuration # Populate the qcom hardware variants in the project pathmap. -define qcom-set-path-variant -$(call project-set-path-variant,qcom-$(2),TARGET_QCOM_$(1)_VARIANT,hardware/qcom/$(2)) -endef define ril-set-path-variant $(call project-set-path-variant,ril,TARGET_RIL_VARIANT,hardware/$(1)) endef -define gps-hal-set-path-variant -$(call project-set-path-variant,gps-hal,TARGET_GPS_HAL_PATH,$(1)) -endef -define loc-api-set-path-variant -$(call project-set-path-variant,loc-api,TARGET_LOC_API_PATH,$(1)) + +# Set device-specific HALs into project pathmap +define set-device-specific-path +$(call project-set-path,qcom-$(2),$(strip $(if $(USE_DEVICE_SPECIFIC_$(1)), \ + $(TARGET_DEVICE_DIR)/$(2), $(3)))) endef ifeq ($(BOARD_USES_QCOM_HARDWARE),true) @@ -64,26 +61,20 @@ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) endif $(call project-set-path,qcom-audio,hardware/qcom/audio-caf/$(QCOM_HARDWARE_VARIANT)) -ifeq ($(USE_DEVICE_SPECIFIC_CAMERA),true) -$(call project-set-path,qcom-camera,$(TARGET_DEVICE_DIR)/camera) -else -$(call qcom-set-path-variant,CAMERA,camera) -endif +$(call set-device-specific-path,CAMERA,camera,hardware/qcom/camera) $(call project-set-path,qcom-display,hardware/qcom/display-caf/$(QCOM_HARDWARE_VARIANT)) -$(call qcom-set-path-variant,GPS,gps) +$(call set-device-specific-path,GPS,gps,hardware/qcom/gps) $(call project-set-path,qcom-media,hardware/qcom/media-caf/$(QCOM_HARDWARE_VARIANT)) -$(call qcom-set-path-variant,SENSORS,sensors) +$(call set-device-specific-path,SENSORS,sensors,hardware/qcom/sensors) $(call ril-set-path-variant,ril) -$(call loc-api-set-path-variant,vendor/qcom/opensource/location) -$(call gps-hal-set-path-variant,hardware/qcom/gps) +$(call set-device-specific-path,LOC_API,loc-api,vendor/qcom/opensource/location) else $(call project-set-path,qcom-audio,hardware/qcom/audio/default) -$(call qcom-set-path-variant,CAMERA,camera) +$(call project-set-path,qcom-camera,hardware/qcom/camera) $(call project-set-path,qcom-display,hardware/qcom/display/$(TARGET_BOARD_PLATFORM)) -$(call qcom-set-path-variant,GPS,gps) +$(call project-set-path,qcom-gps,hardware/qcom/gps) $(call project-set-path,qcom-media,hardware/qcom/media/default) -$(call qcom-set-path-variant,SENSORS,sensors) +$(call project-set-path,qcom-sensors,hardware/qcom/sensors) $(call ril-set-path-variant,ril) -$(call loc-api-set-path-variant,vendor/qcom/opensource/location) -$(call gps-hal-set-path-variant,hardware/qcom/gps) +$(call project-set-path,loc-api,vendor/qcom/opensource/location) endif From efa52fa97252902d1a1cb87cd658c6c1870717f7 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Thu, 29 Oct 2015 18:03:05 +0200 Subject: [PATCH 1026/1096] generate_extra_images: Allow supplying arguments to dtbtool * Also add a message to indicate when dt.img is generated Change-Id: I670cc8aa571269d1dc1085e51b063fb890dc05f2 --- core/generate_extra_images.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/generate_extra_images.mk b/core/generate_extra_images.mk index b796d3f43a1..041253ce451 100644 --- a/core/generate_extra_images.mk +++ b/core/generate_extra_images.mk @@ -104,12 +104,13 @@ dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs))) define build-dtimage-target $(call pretty,"Target dt image: $(INSTALLED_DTIMAGE_TARGET)") - $(hide) $(DTBTOOL) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir) + $(hide) $(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir) $(hide) chmod a+r $@ endef $(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET) $(build-dtimage-target) + @echo -e ${CL_CYN}"Made DT image: $@"${CL_RST} ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET) ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET) From 395b7ef8193ebbe97ad0e53c383e34ce7a277375 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Thu, 9 Jan 2014 02:26:20 -0200 Subject: [PATCH 1027/1096] Splitting Ubuntu and Android boot and initrd images We need the android initrd to boot the container and to replace the default boot initrd with the Ubuntu one. Change-Id: Ie096cf863156e515a2c5519a649bf994f97126e7 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/Makefile | 88 ++++++++++++++++++++++++++++-------- core/config.mk | 2 +- core/envsetup.mk | 3 ++ tools/pull-lp-bin.py | 88 ++++++++++++++++++++++++++++++++++++ tools/releasetools/common.py | 35 ++++++++------ 5 files changed, 183 insertions(+), 33 deletions(-) create mode 100755 tools/pull-lp-bin.py diff --git a/core/Makefile b/core/Makefile index 9ab196a3248..a335dba79d4 100644 --- a/core/Makefile +++ b/core/Makefile @@ -480,14 +480,39 @@ INTERNAL_RAMDISK_FILES := $(filter $(TARGET_ROOT_OUT)/%, \ $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES)) +# Default ramdisk comes now from Ubuntu BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img +BUILT_RAMDISK_TARGET_ANDROID := $(PRODUCT_OUT)/android-ramdisk.img # We just build this directly to the install location. -INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET) -$(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) $(INTERNAL_RAMDISK_FILES) | $(MINIGZIP) - $(call pretty,"Target ram disk: $@") +INSTALLED_RAMDISK_TARGET_ANDROID := $(BUILT_RAMDISK_TARGET_ANDROID) +$(INSTALLED_RAMDISK_TARGET_ANDROID): $(MKBOOTFS) $(INTERNAL_RAMDISK_FILES) | $(MINIGZIP) + $(call pretty,"Target Android ram disk: $@") $(hide) $(MKBOOTFS) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $@ +BOOT_ANDROID_RAMDISK_IMG := $(TARGET_OUT)/boot/android-ramdisk.img + +$(BOOT_ANDROID_RAMDISK_IMG): $(INSTALLED_RAMDISK_TARGET_ANDROID) + $(hide) mkdir -p $(dir $@) + $(hide) $(ACP) $(INSTALLED_RAMDISK_TARGET_ANDROID) $@ + +# Download the Ubuntu Touch ramdisk from the archive +TARGET_UBUNTU_INITRD_PKG := ubuntu-touch-generic-initrd +TARGET_UBUNTU_INITRD_SERIES := trusty +TARGET_OUT_UBUNTU_INITRD := $(TARGET_OUT_UBUNTU)/$(TARGET_UBUNTU_INITRD_PKG) +TARGET_UBUNTU_INITRD := $(TARGET_OUT_UBUNTU_INITRD)/usr/lib/ubuntu-touch-generic-initrd/initrd.img-touch +INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET) + +.PHONY: $(INSTALLED_RAMDISK_TARGET) +$(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) | $(MINIGZIP) + $(call pretty,"Target Ubuntu Touch ram disk: $@") + $(hide) rm -rf $(TARGET_OUT_UBUNTU_INITRD) $(TARGET_UBUNTU_ROOT_OUT) + $(hide) mkdir -p $(TARGET_OUT_UBUNTU_INITRD) $(TARGET_UBUNTU_ROOT_OUT) + $(hide) $(PULL_LP_BIN) $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD) $(TARGET_UBUNTU_INITRD_SERIES) + $(hide) dpkg-deb -x $(TARGET_OUT_UBUNTU_INITRD)/$(TARGET_UBUNTU_INITRD_PKG)*.deb $(TARGET_OUT_UBUNTU_INITRD) + $(hide) $(ACP) $(TARGET_UBUNTU_INITRD) $@ + $(hide) cd $(TARGET_UBUNTU_ROOT_OUT) && $(MINIGZIP) -c -d $@ | cpio -id + .PHONY: ramdisk-nodeps ramdisk-nodeps: $(MKBOOTFS) | $(MINIGZIP) @echo "make $@: ignoring dependencies" @@ -497,6 +522,13 @@ ifneq ($(strip $(TARGET_NO_KERNEL)),true) # ----------------------------------------------------------------- # the boot image, which is a collection of other images. +INTERNAL_BOOTIMAGE_ARGS_ANDROID := \ + $(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \ + --kernel $(INSTALLED_KERNEL_TARGET) \ + --ramdisk $(INSTALLED_RAMDISK_TARGET_ANDROID) + +INTERNAL_BOOTIMAGE_FILES_ANDROID := $(filter-out --%,$(INTERNAL_BOOTIMAGE_ARGS_ANDROID)) + INTERNAL_BOOTIMAGE_ARGS := \ $(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \ --kernel $(INSTALLED_KERNEL_TARGET) \ @@ -506,17 +538,17 @@ INTERNAL_BOOTIMAGE_FILES := $(filter-out --%,$(INTERNAL_BOOTIMAGE_ARGS)) BOARD_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE)) ifdef BOARD_KERNEL_CMDLINE - INTERNAL_BOOTIMAGE_ARGS += --cmdline "$(BOARD_KERNEL_CMDLINE)" + INTERNAL_BOOTIMAGE_ARGS_COMMON += --cmdline "$(BOARD_KERNEL_CMDLINE)" endif BOARD_KERNEL_BASE := $(strip $(BOARD_KERNEL_BASE)) ifdef BOARD_KERNEL_BASE - INTERNAL_BOOTIMAGE_ARGS += --base $(BOARD_KERNEL_BASE) + INTERNAL_BOOTIMAGE_ARGS_COMMON += --base $(BOARD_KERNEL_BASE) endif BOARD_KERNEL_PAGESIZE := $(strip $(BOARD_KERNEL_PAGESIZE)) ifdef BOARD_KERNEL_PAGESIZE - INTERNAL_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE) + INTERNAL_BOOTIMAGE_ARGS_COMMON += --pagesize $(BOARD_KERNEL_PAGESIZE) endif INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img @@ -526,19 +558,21 @@ ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) BOOTIMAGE_EXTRA_DEPS := $(INSTALLED_DTIMAGE_TARGET) endif -INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img +INSTALLED_BOOTIMAGE_TARGET_ANDROID := $(PRODUCT_OUT)/android-boot.img ifeq ($(TARGET_BOOTIMAGE_USE_EXT2),true) tmp_dir_for_image := $(call intermediates-dir-for,EXECUTABLES,boot_img)/bootimg -INTERNAL_BOOTIMAGE_ARGS += --tmpdir $(tmp_dir_for_image) -INTERNAL_BOOTIMAGE_ARGS += --genext2fs $(MKEXT2IMG) +INTERNAL_BOOTIMAGE_ARGS_COMMON += --tmpdir $(tmp_dir_for_image) +INTERNAL_BOOTIMAGE_ARGS_COMMON += --genext2fs $(MKEXT2IMG) +INTERNAL_BOOTIMAGE_ARGS += $(INTERNAL_BOOTIMAGE_ARGS_COMMON) +INTERNAL_BOOTIMAGE_ARGS_ANDROID += $(INTERNAL_BOOTIMAGE_ARGS_COMMON) -ifeq ($(TARGET_BOOTIMAGE_USE_EXTLINUX),true) -INTERNAL_BOOTIMAGE_ARGS += --extlinuxconf $(TARGET_BOOTIMAGE_EXTLINUX_CONFIG) -endif +$(INSTALLED_BOOTIMAGE_TARGET_ANDROID): $(MKEXT2IMG) $(INTERNAL_BOOTIMAGE_FILES_ANDROID) + $(call pretty,"Target boot image for Android: $@") + $(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS_ANDROID) --output $@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKEXT2IMG) $(INTERNAL_BOOTIMAGE_FILES) - $(call pretty,"Target boot image: $@") + $(call pretty,"Target boot image for Ubuntu Touch: $@") $(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $@ @echo -e ${CL_CYN}"Made boot image: $@"${CL_RST} @@ -551,10 +585,14 @@ else ifndef BOARD_CUSTOM_BOOTIMG_MK ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) # TARGET_BOOTIMAGE_USE_EXT2 != true +$(INSTALLED_BOOTIMAGE_TARGET_ANDROID): $(MKEXT2IMG) $(INTERNAL_BOOTIMAGE_FILES_ANDROID) + $(call pretty,"Target boot image for Android: $@") + $(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS_ANDROID) --output $@ + $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOT_SIGNER) $(BOOTIMAGE_EXTRA_DEPS) - $(call pretty,"Target boot image: $@") + $(call pretty,"Target boot image for Ubuntu Touch: $@") $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ - $(BOOT_SIGNER) /boot $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).pk8 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).x509.pem $@ + $(BOOT_SIGNER) /boot $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $@ $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE)) .PHONY: bootimage-nodeps @@ -565,9 +603,16 @@ bootimage-nodeps: $(MKBOOTIMG) $(BOOT_SIGNER) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) else # PRODUCT_SUPPORTS_VERITY != true +INTERNAL_BOOTIMAGE_ARGS += $(INTERNAL_BOOTIMAGE_ARGS_COMMON) +INTERNAL_BOOTIMAGE_ARGS_ANDROID += $(INTERNAL_BOOTIMAGE_ARGS_COMMON) + +$(INSTALLED_BOOTIMAGE_TARGET_ANDROID): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES_ANDROID) + $(call pretty,"Target boot image for Android: $@") + $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS_ANDROID) $(BOARD_MKBOOTIMG_ARGS) --output $@ + $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw) $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOTIMAGE_EXTRA_DEPS) - $(call pretty,"Target boot image: $@") + $(call pretty,"Target boot image for Ubuntu Touch: $@") $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE)) @echo -e ${CL_CYN}"Made boot image: $@"${CL_RST} @@ -589,6 +634,7 @@ else # TARGET_NO_KERNEL # TODO: make the emulator use bootimages, and make mkbootimg accept # kernel-less inputs. INSTALLED_BOOTIMAGE_TARGET := $(INSTALLED_RAMDISK_TARGET) +INSTALLED_BOOTIMAGE_TARGET_ANDROID := $(INSTALLED_RAMDISK_TARGET_ANDROID) endif # ----------------------------------------------------------------- @@ -934,6 +980,7 @@ $(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) $(extra_keys) $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(INSTALLED_RAMDISK_TARGET) \ + $(INSTALLED_RAMDISK_TARGET_ANDROID) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(recovery_binary) \ $(recovery_initrc) $(recovery_sepolicy) \ @@ -1036,7 +1083,8 @@ INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \ $(ALL_GENERATED_SOURCES) \ $(ALL_DEFAULT_INSTALLED_MODULES) \ $(PDK_FUSION_SYSIMG_FILES) \ - $(RECOVERY_RESOURCE_ZIP)) + $(RECOVERY_RESOURCE_ZIP) \ + $(BOOT_ANDROID_RAMDISK_IMG)) FULL_SYSTEMIMAGE_DEPS := $(INTERNAL_SYSTEMIMAGE_FILES) $(INTERNAL_USERIMAGES_DEPS) # ----------------------------------------------------------------- @@ -1482,6 +1530,7 @@ endif include $(BUILD_SYSTEM)/tasks/oem_image.mk $(BUILT_TARGET_FILES_PACKAGE): \ $(INSTALLED_BOOTIMAGE_TARGET) \ + $(INSTALLED_BOOTIMAGE_TARGET_ANDROID) \ $(INSTALLED_RADIOIMAGE_TARGET) \ $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(INSTALLED_SYSTEMIMAGE) \ @@ -1535,7 +1584,7 @@ endif @# Components of the boot image $(hide) mkdir -p $(zip_root)/BOOT $(hide) $(call package_files-copy-root, \ - $(TARGET_ROOT_OUT),$(zip_root)/BOOT/RAMDISK) + $(TARGET_UBUNTU_ROOT_OUT),$(zip_root)/BOOT/RAMDISK) ifdef INSTALLED_KERNEL_TARGET $(hide) $(ACP) $(INSTALLED_KERNEL_TARGET) $(zip_root)/BOOT/kernel endif @@ -1892,6 +1941,7 @@ INTERNAL_EMULATOR_PACKAGE_FILES += \ $(HOST_OUT_EXECUTABLES)/emulator$(HOST_EXECUTABLE_SUFFIX) \ prebuilts/qemu-kernel/$(TARGET_ARCH)/kernel-qemu \ $(INSTALLED_RAMDISK_TARGET) \ + $(INSTALLED_RAMDISK_TARGET_ANDROID) \ $(INSTALLED_SYSTEMIMAGE) \ $(INSTALLED_USERDATAIMAGE_TARGET) @@ -1948,6 +1998,7 @@ ATREE_FILES := \ $(ALL_COPIED_HEADERS) \ $(ALL_DEFAULT_INSTALLED_MODULES) \ $(INSTALLED_RAMDISK_TARGET) \ + $(INSTALLED_RAMDISK_TARGET_ANDROID) \ $(ALL_DOCS) \ $(ALL_SDK_FILES) endif @@ -1983,6 +2034,7 @@ deps := \ $(INSTALLED_SYSTEMIMAGE) \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_RAMDISK_TARGET) \ + $(INSTALLED_RAMDISK_TARGET_ANDROID) \ $(INSTALLED_SDK_BUILD_PROP_TARGET) \ $(INSTALLED_BUILD_PROP_TARGET) \ $(ATREE_FILES) \ diff --git a/core/config.mk b/core/config.mk index ddc4007cd98..a8920616fa8 100644 --- a/core/config.mk +++ b/core/config.mk @@ -417,7 +417,7 @@ JAVATAGS := build/tools/java-event-log-tags.py LLVM_RS_CC := $(HOST_OUT_EXECUTABLES)/llvm-rs-cc$(HOST_EXECUTABLE_SUFFIX) BCC_COMPAT := $(HOST_OUT_EXECUTABLES)/bcc_compat$(HOST_EXECUTABLE_SUFFIX) LINT := prebuilts/sdk/tools/lint -RMTYPEDEFS := $(HOST_OUT_EXECUTABLES)/rmtypedefs +PULL_LP_BIN := build/tools/pull-lp-bin.py APPEND2SIMG := $(HOST_OUT_EXECUTABLES)/append2simg VERITY_SIGNER := $(HOST_OUT_EXECUTABLES)/verity_signer BUILD_VERITY_TREE := $(HOST_OUT_EXECUTABLES)/build_verity_tree diff --git a/core/envsetup.mk b/core/envsetup.mk index 468661f0546..55ce49a8665 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -296,6 +296,7 @@ TARGET_OUT_KEYCHARS := $(TARGET_OUT)/usr/keychars TARGET_OUT_ETC := $(TARGET_OUT)/etc TARGET_OUT_NOTICE_FILES := $(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages +TARGET_OUT_UBUNTU := $(PRODUCT_OUT)/ubuntu # Out for TARGET_2ND_ARCH TARGET_2ND_ARCH_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX) @@ -375,6 +376,8 @@ TARGET_ROOT_OUT_SBIN := $(TARGET_ROOT_OUT)/sbin TARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc TARGET_ROOT_OUT_USR := $(TARGET_ROOT_OUT)/usr +TARGET_UBUNTU_ROOT_OUT := $(PRODUCT_OUT)/ubuntu-root + TARGET_RECOVERY_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RECOVERY) TARGET_RECOVERY_ROOT_OUT := $(TARGET_RECOVERY_OUT)/root diff --git a/tools/pull-lp-bin.py b/tools/pull-lp-bin.py new file mode 100755 index 00000000000..ec41cd00734 --- /dev/null +++ b/tools/pull-lp-bin.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# +# pull-lp-bin -- pull a binary package from Launchpad +# +# Copyright (C) 2013, Canonical Ltd. +# +# Based on the pull-lp-source script (ubuntu-dev-tools) made by: +# - Iain Lane +# - Stefano Rivera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 3 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# See file /usr/share/common-licenses/GPL for more details. +# +# Author: Ricardo Salveti + +import os +import sys +import urllib2 +from optparse import OptionParser +from launchpadlib.launchpad import Launchpad + +cachedir = "~/.launchpadlib/cache" + +def main(): + usage = "Usage: %prog [-a|--arch ] [-o|--output ] [release]" + opt_parser = OptionParser(usage) + opt_parser.add_option('-a', '--arch', default='armhf', dest='ubuntu_arch', + help='Architecture for the binary package (default: armhf)') + opt_parser.add_option('-o', '--output', + help='Directory used to output the desired package') + (options, args) = opt_parser.parse_args() + if not args: + opt_parser.error("Must specify a package name") + + package = str(args[0]).lower() + + # Login anonymously to LP + lp = Launchpad.login_anonymously('pull-lp-bin', 'production', + cachedir, version="devel") + distro = lp.distributions['ubuntu'] + archive = lp.distributions['ubuntu'].main_archive + + if len(args) > 1: + release = str(args[1]) + else: + release = distro.current_series_link.split('/')[-1] + + pocket = 'Release' + bin_url = None + bpph = None + + series = distro.getSeries(name_or_version=release) + arch_series = series.getDistroArchSeries(archtag=options.ubuntu_arch) + bpph = archive.getPublishedBinaries(binary_name=package, + distro_arch_series=arch_series, + status="Published", pocket=pocket, + exact_match=True) + + if bpph: + version = bpph[0].binary_package_version + bin_url = bpph[0].binaryFileUrls()[0] + + if bin_url: + print 'Downloading %s version %s' % (package, version) + url = urllib2.urlopen(bin_url) + data = url.read() + package_name = "%s_%s_%s.deb" % (package, version, options.ubuntu_arch) + if options.output: + target = "%s/%s" % (options.output, package_name) + else: + target = package_name + with open(target, "wb") as package: + package.write(data) + else: + print "Unable to find a published version of package %s (%s) at %s" % ( + package, options.ubuntu_arch, release) + +if __name__ == '__main__': + main() diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 499e8c2667f..8ef97166c50 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -296,29 +296,37 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): data, or None if sourcedir does not appear to contains files for building the requested image.""" - if (not os.access(os.path.join(sourcedir, "RAMDISK"), os.F_OK) or + if (((not os.access(os.path.join(sourcedir, "RAMDISK"), os.F_OK)) or + not os.access(os.path.join(sourcedir, "ramdisk.img"), os.F_OK)) or not os.access(os.path.join(sourcedir, "kernel"), os.F_OK)): return None if info_dict is None: info_dict = OPTIONS.info_dict - ramdisk_img = tempfile.NamedTemporaryFile() img = tempfile.NamedTemporaryFile() bootimg_key = os.getenv("PRODUCT_PRIVATE_KEY", None) - if os.access(fs_config_file, os.F_OK): - cmd = ["mkbootfs", "-f", fs_config_file, os.path.join(sourcedir, "RAMDISK")] + # prefer the pre-built ramdisk, otherwise build a new from RAMDISK + if os.access(os.path.join(sourcedir, "ramdisk.img"), os.F_OK): + ramdisk = os.path.join(sourcedir, "ramdisk.img") else: - cmd = ["mkbootfs", os.path.join(sourcedir, "RAMDISK")] - p1 = Run(cmd, stdout=subprocess.PIPE) - p2 = Run(["minigzip"], - stdin=p1.stdout, stdout=ramdisk_img.file.fileno()) + ramdisk_img = tempfile.NamedTemporaryFile() + ramdisk = ramdisk_img.name - p2.wait() - p1.wait() - assert p1.returncode == 0, "mkbootfs of %s ramdisk failed" % (targetname,) - assert p2.returncode == 0, "minigzip of %s ramdisk failed" % (targetname,) + if os.access(fs_config_file, os.F_OK): + cmd = ["mkbootfs", "-f", fs_config_file, os.path.join(sourcedir, "RAMDISK")] + else: + cmd = ["mkbootfs", os.path.join(sourcedir, "RAMDISK")] + p1 = Run(cmd, stdout=subprocess.PIPE) + p2 = Run(["minigzip"], + stdin=p1.stdout, stdout=ramdisk_img.file.fileno()) + + p2.wait() + p1.wait() + assert p1.returncode == 0, "mkbootfs of %s ramdisk failed" % (targetname,) + assert p2.returncode == 0, "minigzip of %s ramdisk failed" % (targetname,) + ramdisk_img.close() """check if uboot is requested""" fn = os.path.join(sourcedir, "ubootargs") @@ -380,7 +388,7 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): if args and args.strip(): cmd.extend(shlex.split(args)) - cmd.extend(["--ramdisk", ramdisk_img.name, + cmd.extend(["--ramdisk", ramdisk, "--output", img.name]) p = Run(cmd, stdout=subprocess.PIPE) p.communicate() @@ -433,7 +441,6 @@ def BuildBootableImage(sourcedir, fs_config_file, info_dict=None): img.seek(os.SEEK_SET, 0) data = img.read() - ramdisk_img.close() img.close() return data From 4e7967f8ade72aca1926c4bf64f802b536413f5f Mon Sep 17 00:00:00 2001 From: Sergio Schvezov Date: Mon, 6 May 2013 15:19:12 -0300 Subject: [PATCH 1028/1096] Remove the need of signapk Change-Id: I900f9957e42a2965661edb1b2afb4c93a98dca5d Signed-off-by: Sergio Schvezov Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/Makefile | 1 - tools/releasetools/ota_from_target_files | 6 ++---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/core/Makefile b/core/Makefile index a335dba79d4..e56293a9aea 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1440,7 +1440,6 @@ DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ $(HOST_OUT_EXECUTABLES)/bsdiff \ $(HOST_OUT_EXECUTABLES)/imgdiff \ $(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar \ - $(HOST_OUT_JAVA_LIBRARIES)/signapk.jar \ $(HOST_OUT_EXECUTABLES)/mkuserimg.sh \ $(HOST_OUT_EXECUTABLES)/make_ext4fs \ $(HOST_OUT_EXECUTABLES)/simg2img \ diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files index cf88572fc0b..47cf370301c 100755 --- a/tools/releasetools/ota_from_target_files +++ b/tools/releasetools/ota_from_target_files @@ -1662,8 +1662,7 @@ def main(argv): if os.path.exists(args[1]): os.unlink(args[1]) output_zip = zipfile.ZipFile(args[1], "w", compression=zipfile.ZIP_DEFLATED) else: - temp_zip_file = tempfile.NamedTemporaryFile() - output_zip = zipfile.ZipFile(temp_zip_file, "w", + output_zip = zipfile.ZipFile(args[1], "w",, compression=zipfile.ZIP_DEFLATED) cache_size = OPTIONS.info_dict.get("cache_size", None) @@ -1706,8 +1705,7 @@ def main(argv): output_zip.close() if not OPTIONS.no_signing: - SignOutput(temp_zip_file.name, args[1]) - temp_zip_file.close() + print "done." From 09dcb85d4ccb3d67432a8ddab6cb992e3d9c9772 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Thu, 9 Jan 2014 11:52:56 -0200 Subject: [PATCH 1029/1096] Makefile: using bsdiff from the host instead of building our own Change-Id: I93e8a06a63ee4856063502ca67b97a9f860549f6 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index e56293a9aea..fe7d10804a6 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1161,8 +1161,7 @@ RECOVERY_FROM_BOOT_PATCH := endif $(RECOVERY_FROM_BOOT_PATCH): $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ - $(HOST_OUT_EXECUTABLES)/imgdiff \ - $(HOST_OUT_EXECUTABLES)/bsdiff + $(HOST_OUT_EXECUTABLES)/imgdiff @echo -e ${CL_CYN}"Construct recovery from boot"${CL_RST} mkdir -p $(dir $@) ifeq ($(TARGET_NOT_USE_GZIP_RECOVERY_RAMDISK),true) @@ -1437,7 +1436,6 @@ DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ $(HOST_OUT_EXECUTABLES)/fs_config \ $(HOST_OUT_EXECUTABLES)/mkyaffs2image \ $(HOST_OUT_EXECUTABLES)/zipalign \ - $(HOST_OUT_EXECUTABLES)/bsdiff \ $(HOST_OUT_EXECUTABLES)/imgdiff \ $(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar \ $(HOST_OUT_EXECUTABLES)/mkuserimg.sh \ From ab9c823a37a8525eb06888688b236490e2cf1bf8 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Thu, 9 Jan 2014 11:55:07 -0200 Subject: [PATCH 1030/1096] Don't include libcompiler_rt by default, not needed Change-Id: I5189914355453d6632c5002de97ed0e16e1c56e3 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/binary.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/binary.mk b/core/binary.mk index 170e20c5e63..553de5551fc 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -178,9 +178,9 @@ ifeq ($(strip $($(LOCAL_2ND_ARCH_VAR_PREFIX)WITHOUT_$(my_prefix)CLANG)),true) endif # Add in libcompiler_rt for all regular device builds -ifeq (,$(LOCAL_SDK_VERSION)$(LOCAL_IS_HOST_MODULE)$(WITHOUT_LIBCOMPILER_RT)) - my_static_libraries += $(COMPILER_RT_CONFIG_EXTRA_STATIC_LIBRARIES) -endif +#ifeq (,$(LOCAL_SDK_VERSION)$(LOCAL_IS_HOST_MODULE)$(WITHOUT_LIBCOMPILER_RT)) +# my_static_libraries += $(COMPILER_RT_CONFIG_EXTRA_STATIC_LIBRARIES) +#endif my_compiler_dependencies := From ba1aaef7cd9d27bba586bee7593e494aef69b793 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Thu, 9 Jan 2014 13:05:22 -0200 Subject: [PATCH 1031/1096] Changing default build for a minimal build, only what is required by Ubuntu Touch Instead of building and enabling all the projects and makefiles, we manually select just the core components that are required for Ubuntu Touch (base image + HALs). Change-Id: Ib3d8b1570b2828abbe0d8aa6c01d291b599c7a15 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/main.mk | 140 +++++++++++++++++++++++++++++++++++- core/tasks/apicheck.mk | 3 +- target/product/core_base.mk | 35 ++++++++- 3 files changed, 174 insertions(+), 4 deletions(-) diff --git a/core/main.mk b/core/main.mk index 039b3c3bb09..fcde4d06081 100644 --- a/core/main.mk +++ b/core/main.mk @@ -473,9 +473,145 @@ endif else # !SDK_ONLY # -# Typical build; include any Android.mk files we can find. +# Include select projects needed for Ubuntu Touch only # -subdirs := $(TOP) + +subdirs := \ + abi/cpp \ + bionic \ + bootable/recovery \ + build/libs \ + build/target \ + build/tools/acp \ + build/tools/check_prereq \ + build/tools/fs_config \ + build/tools/zipalign \ + development/tools/emulator/opengl \ + external/aac \ + external/busybox \ + external/bzip2 \ + external/checkpolicy \ + external/compiler-rt \ + external/e2fsprogs \ + external/expat \ + external/flac \ + external/freetype \ + external/fsck_msdos \ + external/gcc-demangle \ + external/genext2fs \ + external/giflib \ + external/gtest \ + external/icu/icu4c \ + external/jemalloc \ + external/jhead \ + external/jpeg \ + external/jsmn \ + external/jsoncpp \ + external/libcxx \ + external/libcxxabi \ + external/liblzf \ + external/libnl \ + external/libgsm \ + external/libpng \ + external/libvpx \ + external/libogg \ + external/libopus \ + external/libselinux \ + external/libsepol \ + external/libunwind \ + external/mdnsresponder \ + external/mksh \ + external/openssl \ + external/pcre \ + external/pigz \ + external/protobuf \ + external/qemu \ + external/scrypt \ + external/sepolicy \ + external/sfntly \ + external/skia \ + external/sonivox \ + external/speex \ + external/sqlite \ + external/stlport \ + external/tinycompress \ + external/tinyalsa \ + external/tremolo \ + external/webp \ + external/webrtc \ + external/wpa_supplicant_6 \ + external/wpa_supplicant_8 \ + external/yaffs2 \ + external/zlib \ + external/zopfli \ + frameworks/av/camera \ + frameworks/av/drm \ + frameworks/av/media/common_time \ + frameworks/av/media/libcpustats \ + frameworks/av/media/libaah_rtp \ + frameworks/av/media/libeffects \ + frameworks/av/media/libmedia \ + frameworks/av/media/libmedia_native \ + frameworks/av/media/libmediaplayerservice \ + frameworks/av/media/libnbaio \ + frameworks/av/media/libstagefright \ + frameworks/av/media/mediaserver \ + frameworks/av/services/audioflinger \ + frameworks/av/services/medialog \ + frameworks/av/services/camera/libcameraservice \ + frameworks/base/cmds/bootanimation \ + frameworks/base/cmds/screencap \ + frameworks/base/libs/androidfw \ + frameworks/base/libs/diskusage \ + frameworks/base/libs/input \ + frameworks/native/services/inputflinger \ + frameworks/base/tools/aapt \ + frameworks/native/cmds/installd \ + frameworks/native/cmds/sensorservice \ + frameworks/native/cmds/servicemanager \ + frameworks/native/cmds/surfaceflinger \ + frameworks/native/libs \ + frameworks/native/opengl \ + frameworks/native/services \ + frameworks/opt/emoji \ + hardware \ + prebuilts/tools/linux-x86/sdl \ + sdk/emulator \ + system/core \ + system/vold \ + system/bluetooth \ + system/extras/ext4_utils \ + system/extras/f2fs_utils \ + system/media/audio_utils \ + system/media/camera \ + system/media/audio_route \ + system/netd \ + system/su \ + system/security/keystore \ + system/security/softkeymaster + +# device and vendor +subdirs += \ + device/asus \ + device/generic \ + device/lge \ + device/samsung \ + vendor/asus \ + vendor/audience \ + vendor/broadcom \ + vendor/cm \ + vendor/elan \ + vendor/invensense \ + vendor/lge \ + vendor/nvidia \ + vendor/nxp \ + vendor/qcom \ + vendor/samsung \ + vendor/widevine + +# Specific projects for Ubuntu Touch +subdirs += \ + ubuntu FULL_BUILD := true diff --git a/core/tasks/apicheck.mk b/core/tasks/apicheck.mk index f109527cbb3..f3468828ae0 100644 --- a/core/tasks/apicheck.mk +++ b/core/tasks/apicheck.mk @@ -18,7 +18,8 @@ # # skip api check for PDK buid -ifeq (,$(filter true, $(WITHOUT_CHECK_API) $(TARGET_BUILD_PDK))) +#ifeq (,$(filter true, $(WITHOUT_CHECK_API) $(TARGET_BUILD_PDK))) +ifeq (true, false) .PHONY: checkapi diff --git a/target/product/core_base.mk b/target/product/core_base.mk index 4873ba4564f..5e7cbeb019a 100644 --- a/target/product/core_base.mk +++ b/target/product/core_base.mk @@ -27,6 +27,7 @@ PRODUCT_PACKAGES += \ libaudioutils \ libfilterpack_imageproc \ libgabi++ \ + libinput \ libmdnssd \ libnfc_ndef \ libpowermanager \ @@ -54,7 +55,39 @@ PRODUCT_PACKAGES += \ libvariablespeed \ libwebrtc_audio_preprocessing \ mdnsd \ + recovery_resize2fs \ requestsync \ - wifi-service + libadf \ + libutils \ + libz \ + libpng \ + libsuspend \ + libbatteryservice \ + libbinder \ + libminui \ + healthd + +# for Ubuntu Touch (hybris, platform-api, utils, etc) +PRODUCT_PACKAGES += \ + apns-conf.xml \ + libcamera_compat_layer \ + camera_service \ + libis_compat_layer \ + libmedia_compat_layer \ + libsf_compat_layer \ + libui_compat_layer \ + libubuntu_application_api \ + upstart-property-watcher + +# for testing +PRODUCT_PACKAGES += \ + autopilot-finger.idc \ + direct_camera_test \ + direct_input_test \ + direct_media_test \ + direct_sf_test \ + direct_ubuntu_application_sensors_c_api_for_hybris_test \ + direct_ubuntu_application_sensors_for_hybris_test \ + direct_ubuntu_application_gps_c_api_for_hybris_test $(call inherit-product, $(SRC_TARGET_DIR)/product/core_minimal.mk) From cb5c7f6b378307b2804042948e9f72dcbacd6b9c Mon Sep 17 00:00:00 2001 From: Ondrej Kubik Date: Thu, 11 Jun 2015 14:09:40 +0100 Subject: [PATCH 1032/1096] Start producing CWM recovery. Change-Id: I295a0eac0446ef23628b7289d9918ab29caf49b3 Signed-off-by: Ondrej Kubik --- core/Makefile | 3 +-- core/config.mk | 12 ++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index fe7d10804a6..0dfa6b86bcc 100644 --- a/core/Makefile +++ b/core/Makefile @@ -983,7 +983,7 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(INSTALLED_RAMDISK_TARGET_ANDROID) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(recovery_binary) \ - $(recovery_initrc) $(recovery_sepolicy) \ + $(recovery_initrc) \ $(INSTALLED_2NDBOOTLOADER_TARGET) \ $(recovery_build_prop) $(recovery_resource_deps) $(recovery_root_deps) \ $(recovery_fstab) \ @@ -997,7 +997,6 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(hide) rm -f $(TARGET_RECOVERY_ROOT_OUT)/init*.rc $(hide) cp -f $(recovery_initrc) $(TARGET_RECOVERY_ROOT_OUT)/ $(hide) rm -f $(TARGET_RECOVERY_ROOT_OUT)/sepolicy - $(hide) cp -f $(recovery_sepolicy) $(TARGET_RECOVERY_ROOT_OUT)/sepolicy $(hide) -cp $(TARGET_ROOT_OUT)/init.recovery.*.rc $(TARGET_RECOVERY_ROOT_OUT)/ $(hide) cp -f $(recovery_binary) $(TARGET_RECOVERY_ROOT_OUT)/sbin/ $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/res diff --git a/core/config.mk b/core/config.mk index a8920616fa8..3e6d05d6b87 100644 --- a/core/config.mk +++ b/core/config.mk @@ -476,6 +476,18 @@ else MD5SUM:=md5sum endif +# In-place sed is done different in linux than OS X +ifeq ($(HOST_OS),darwin) +GSED:=$(shell which gsed) +ifeq ($(GSED),) +SED_INPLACE:=sed -i '' +else +SED_INPLACE:=gsed -i +endif +else +SED_INPLACE:=sed -i +endif + APICHECK_CLASSPATH := $(HOST_JDK_TOOLS_JAR) APICHECK_CLASSPATH := $(APICHECK_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) APICHECK_CLASSPATH := $(APICHECK_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX) From 655d1ccce80e488fee88d106f8220b4ac1774a41 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Tue, 14 Jan 2014 20:34:27 -0200 Subject: [PATCH 1033/1096] Adding support for the native Ubuntu androideabi toolchain Change-Id: I42f6c1ea4c324d5faa627ca15eec59dd8099fc0e Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/combo/HOST_linux-x86.mk | 2 +- core/combo/TARGET_linux-arm.mk | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/core/combo/HOST_linux-x86.mk b/core/combo/HOST_linux-x86.mk index 3ca7443e763..428f070818c 100644 --- a/core/combo/HOST_linux-x86.mk +++ b/core/combo/HOST_linux-x86.mk @@ -18,7 +18,7 @@ # Included by combo/select.mk ifeq ($(strip $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)),) -$(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX := prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/bin/x86_64-linux- +$(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX := /usr/bin endif # Don't do anything if the toolchain is not there ifneq (,$(strip $(wildcard $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)gcc))) diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk index 95b18045903..3cc1898a026 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -53,9 +53,14 @@ include $(BUILD_SYSTEM)/combo/fdo.mk # You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),) +ifneq (,$(wildcard /usr/bin/arm-linux-androideabi-*)) +$(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT := /usr/bin +$(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX := $($(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/arm-linux-androideabi- +else $(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-linux-androideabi-$($(combo_2nd_arch_prefix)TARGET_GCC_VERSION) $(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX := $($(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/bin/arm-linux-androideabi- endif +endif $(combo_2nd_arch_prefix)TARGET_CC := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX) $(combo_2nd_arch_prefix)TARGET_CXX := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX) From c494ff7f92dbcec25ae6e8b0046f4deaa86029c8 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Wed, 15 Jan 2014 00:32:30 -0200 Subject: [PATCH 1034/1096] pull-lp-bin.py: add support to download the kernel package from a PPA Change-Id: Id590fa83ff6cab6e858e8719d860049379915a95 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- tools/pull-lp-bin.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tools/pull-lp-bin.py b/tools/pull-lp-bin.py index ec41cd00734..044a6d9cf55 100755 --- a/tools/pull-lp-bin.py +++ b/tools/pull-lp-bin.py @@ -31,12 +31,16 @@ cachedir = "~/.launchpadlib/cache" def main(): - usage = "Usage: %prog [-a|--arch ] [-o|--output ] [release]" + usage = "Usage: %prog [-a|--arch ] [-o|--output ] [-t|--team ] [-p|--ppa ] [release]" opt_parser = OptionParser(usage) opt_parser.add_option('-a', '--arch', default='armhf', dest='ubuntu_arch', help='Architecture for the binary package (default: armhf)') opt_parser.add_option('-o', '--output', help='Directory used to output the desired package') + opt_parser.add_option('-t', '--team', + help='Launchpad team that owns the PPA (to be used with --ppa)') + opt_parser.add_option('-p', '--ppa', + help='PPA used to look for the binary package') (options, args) = opt_parser.parse_args() if not args: opt_parser.error("Must specify a package name") @@ -47,7 +51,15 @@ def main(): lp = Launchpad.login_anonymously('pull-lp-bin', 'production', cachedir, version="devel") distro = lp.distributions['ubuntu'] - archive = lp.distributions['ubuntu'].main_archive + + if options.ppa and not options.team: + print "To use a PPA you also need to provide a team (from Launchpad)" + return + + if options.ppa: + archive = lp.people[options.team].getPPAByName(name=options.ppa) + else: + archive = lp.distributions['ubuntu'].main_archive if len(args) > 1: release = str(args[1]) From 315ddd49f5e21b96e17e0698b76e8c81ea604586 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Wed, 15 Jan 2014 00:13:50 -0200 Subject: [PATCH 1035/1096] kernel.mk: adding kernel build rules from CM Change-Id: I456a3cfb1d9b19222f0776ec392a80ccea6da827 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/tasks/kernel.mk | 257 ++++++++++++++++++++----------------------- 1 file changed, 120 insertions(+), 137 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index e10adeb1df0..87ebf290485 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -29,55 +29,27 @@ SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG) KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ KERNEL_CONFIG := $(KERNEL_OUT)/.config -TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH)) -ifeq ($(TARGET_KERNEL_ARCH),) -KERNEL_ARCH := $(TARGET_ARCH) -else -KERNEL_ARCH := $(TARGET_KERNEL_ARCH) -endif +KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr +KERNEL_MODULES_INSTALL := system +KERNEL_MODULES_OUT := $(TARGET_OUT)/lib/modules -TARGET_KERNEL_HEADER_ARCH := $(strip $(TARGET_KERNEL_HEADER_ARCH)) -ifeq ($(TARGET_KERNEL_HEADER_ARCH),) -KERNEL_HEADER_ARCH := $(KERNEL_ARCH) -else -KERNEL_HEADER_ARCH := $(TARGET_KERNEL_HEADER_ARCH) +ifneq ($(TARGET_KERNEL_UBUNTU_PPA_TEAM),) + PULL_LP_BIN_EXTRA_OPTS := -t $(TARGET_KERNEL_UBUNTU_PPA_TEAM) -p $(TARGET_KERNEL_UBUNTU_PPA_NAME) endif +TARGET_OUT_UBUNTU_KERNEL := $(TARGET_OUT_UBUNTU)/kernel -KERNEL_HEADER_DEFCONFIG := $(strip $(KERNEL_HEADER_DEFCONFIG)) -ifeq ($(KERNEL_HEADER_DEFCONFIG),) -KERNEL_HEADER_DEFCONFIG := $(KERNEL_DEFCONFIG) +ifeq ($(TARGET_ARCH),x86) +TARGET_UBUNTU_ARCH := i386 +else +TARGET_UBUNTU_ARCH := armhf endif - ifneq ($(BOARD_KERNEL_IMAGE_NAME),) - TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME) + TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME) + TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE) else - ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true) - TARGET_PREBUILT_INT_KERNEL_TYPE := Image - else - ifeq ($(TARGET_KERNEL_ARCH),arm64) - TARGET_PREBUILT_INT_KERNEL_TYPE := Image.gz - else - TARGET_PREBUILT_INT_KERNEL_TYPE := zImage - endif - endif -endif - -TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE) - -# Clear this first to prevent accidental poisoning from env -MAKE_FLAGS := - -ifeq ($(KERNEL_ARCH),arm64) - # Avoid "unsupported RELA relocation: 311" errors (R_AARCH64_ADR_GOT_PAGE) - MAKE_FLAGS += CFLAGS_MODULE="-fno-pic" - ifeq ($(TARGET_ARCH),arm) - KERNEL_CONFIG_OVERRIDE := CONFIG_ANDROID_BINDER_IPC_32BIT=y - endif -endif - -ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),) -KERNEL_ADDITIONAL_CONFIG := $(TARGET_KERNEL_ADDITIONAL_CONFIG) + TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/zImage + TARGET_PREBUILT_INT_KERNEL_TYPE := zImage endif ## Do be discontinued in a future version. Notify builder about target @@ -90,7 +62,32 @@ else ifeq ($(BOARD_USES_UNCOMPRESSED_BOOT),true) endif endif -ifeq "$(wildcard $(KERNEL_SRC) )" "" +ifeq ($(TARGET_KERNEL_UBUNTU),true) + ifneq ($(TARGET_PREBUILT_INT_KERNEL_TYPE),zImage) + $(warning ***************************************************************) + $(warning * At the moment only zImage kernel is supported when fetching *) + $(warning * kernel from the Ubuntu archive. Make sure your device does *) + $(warning * not use BOARD_USES_UBOOT or BOARD_USES_UNCOMPRESSED_BOOT *) + $(warning ***************************************************************) + $(error "INCOMPATIBLE KERNEL TYPE") + endif + + ifneq ($(TARGET_KERNEL_UBUNTU_META),) + NEEDS_KERNEL_COPY := true + FETCH_KERNEL_UBUNTU := true + FULL_KERNEL_BUILD := false + KERNEL_BIN := $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz + else + $(warning ***************************************************************) + $(warning * As the Ubuntu kernel package ABI version in part of the *) + $(warning * package name, a meta package is used to track the latest *) + $(warning * version available in the archive. Please make that the *) + $(warning * required meta package is available and defined by the *) + $(warning * variable TARGET_KERNEL_UBUNTU_META *) + $(warning ***************************************************************) + $(error "MISSING TARGET_KERNEL_UBUNTU_META") + endif +else ifeq "$(wildcard $(KERNEL_SRC) )" "" ifneq ($(TARGET_PREBUILT_KERNEL),) HAS_PREBUILT_KERNEL := true NEEDS_KERNEL_COPY := true @@ -140,61 +137,62 @@ else else #$(info Kernel source found, building it) FULL_KERNEL_BUILD := true - KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL) + ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true) + $(info Using uncompressed kernel) + KERNEL_BIN := $(KERNEL_OUT)/piggy + else + KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL) + endif endif endif -ifeq ($(BOARD_HAS_MTK_HARDWARE),true) - ifeq ($(BOARD_USES_MTK_KERNELBUILD),true) - include $(CLEAR_VARS) - $(shell rm -f $(TARGET_PREBUILT_INT_KERNEL)) - FULL_KERNEL_BUILD := false - PROJECT_NAME := $(TARGET_KERNEL_CONFIG) -$(TARGET_PREBUILT_INT_KERNEL): - cd $(TARGET_KERNEL_SOURCE) && env -i PATH=$(PATH) ./makeMtk -t -o=OUT_DIR=$(OUT_DIR),TARGET_BUILD_VARIANT=$(TARGET_BUILD_VARIANT) $(PROJECT_NAME) r k - -cd $(TARGET_KERNEL_SOURCE) && git clean -fd - - endif -endif - -ifeq ($(FULL_KERNEL_BUILD),true) - -KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr -KERNEL_MODULES_INSTALL := system -KERNEL_MODULES_OUT := $(TARGET_OUT)/lib/modules - -TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)) -ifeq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),) -ifeq ($(KERNEL_TOOLCHAIN_PREFIX),) -KERNEL_TOOLCHAIN_PREFIX := arm-eabi- -endif -else -KERNEL_TOOLCHAIN_PREFIX := $(TARGET_KERNEL_CROSS_COMPILE_PREFIX) -endif - -ifeq ($(KERNEL_TOOLCHAIN),) -KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX) -else -ifneq ($(KERNEL_TOOLCHAIN_PREFIX),) -KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX) -endif -endif - -ifneq ($(USE_CCACHE),) - ccache := $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache - # Check that the executable is here. - ccache := $(strip $(wildcard $(ccache))) -endif - -KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(ccache) $(KERNEL_TOOLCHAIN_PATH)" -ccache = +ifeq ($(FETCH_KERNEL_UBUNTU),true) +## Also install the kernel headers if the source is available +$(KERNEL_HEADERS_INSTALL): + if [ -f $(KERNEL_SRC)/Makefile ]; then \ + mkdir -p $(KERNEL_OUT); \ + $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) headers_install; \ + fi + +.PHONY: $(TARGET_OUT_UBUNTU_KERNEL) +$(TARGET_OUT_UBUNTU_KERNEL): + $(hide) rm -rf $(TARGET_OUT_UBUNTU_KERNEL) + $(hide) rm -rf $(KERNEL_MODULES_OUT) + $(hide) mkdir -p $(TARGET_OUT_UBUNTU_KERNEL) + $(hide) mkdir -p $(KERNEL_MODULES_OUT) + $(hide) mkdir -p $(TARGET_OUT)/boot + +.PHONY: $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz +$(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz: $(TARGET_OUT_UBUNTU_KERNEL) $(KERNEL_HEADERS_INSTALL) + $(hide) $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $(TARGET_KERNEL_UBUNTU_META) -o $(TARGET_OUT_UBUNTU_KERNEL) -a $(TARGET_UBUNTU_ARCH) $(TARGET_KERNEL_UBUNTU_SERIES) + $(hide) IFS=", "; for dep in \ + `dpkg-deb -f $(TARGET_OUT_UBUNTU_KERNEL)/$(TARGET_KERNEL_UBUNTU_META)_*.deb Depends`; do \ + if echo $$dep | grep -q "linux-image-"; then \ + kernel_image=$$dep; \ + fi; \ + done; \ + if [ -n "$$kernel_image" ]; then \ + $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $$kernel_image -o $(TARGET_OUT_UBUNTU_KERNEL) -a $(TARGET_UBUNTU_ARCH) $(TARGET_KERNEL_UBUNTU_SERIES); \ + dpkg-deb -x $(TARGET_OUT_UBUNTU_KERNEL)/linux-image-[0-9]*.deb $(TARGET_OUT_UBUNTU_KERNEL); \ + kernel_version=$${kernel_image#linux-image-}; \ + cp -v $(TARGET_OUT_UBUNTU_KERNEL)/boot/vmlinuz-$$kernel_version $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz; \ + cp -a $(TARGET_OUT_UBUNTU_KERNEL)/boot/*-$$kernel_version $(TARGET_OUT)/boot/; \ + cp -a $(TARGET_OUT_UBUNTU_KERNEL)/lib/modules/$$kernel_version $(KERNEL_MODULES_OUT); \ + depmod -a -b $(TARGET_OUT) $$kernel_version; \ + else \ + echo -n "Unable to find a valid linux-image dependency from "; \ + echo "the meta package $(TARGET_KERNEL_UBUNTU_META), aborting."; \ + exit 1; \ + fi; + +else ifeq ($(FULL_KERNEL_BUILD),true) define mv-modules mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.order`;\ if [ "$$mdpath" != "" ];then\ mpath=`dirname $$mdpath`;\ ko=`find $$mpath/kernel -type f -name *.ko`;\ - for i in $$ko; do $(KERNEL_TOOLCHAIN_PATH)strip --strip-unneeded $$i;\ + for i in $$ko; do $(ARM_EABI_TOOLCHAIN)/arm-eabi-strip --strip-unneeded $$i;\ mv $$i $(KERNEL_MODULES_OUT)/; done;\ fi endef @@ -206,8 +204,32 @@ define clean-module-folder fi endef +ifeq ($(TARGET_ARCH),arm) + ifneq ($(USE_CCACHE),) + # search executable + ccache = + ifneq ($(strip $(wildcard $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_EXTRA_TAG)/ccache/ccache)),) + ccache := $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_EXTRA_TAG)/ccache/ccache + else + ifneq ($(strip $(wildcard $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache)),) + ccache := $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache + endif + endif + endif + ifneq ($(TARGET_KERNEL_CUSTOM_TOOLCHAIN),) + ifeq ($(HOST_OS),darwin) + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-" + else + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-" + endif + else + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ARM_EABI_TOOLCHAIN)/arm-eabi-" + endif + ccache = +endif + ifeq ($(HOST_OS),darwin) - MAKE_FLAGS += C_INCLUDE_PATH=$(ANDROID_BUILD_TOP)/external/elfutils/0.153/libelf/ + MAKE_FLAGS := C_INCLUDE_PATH=$(ANDROID_BUILD_TOP)/external/elfutils/libelf endif ifeq ($(TARGET_KERNEL_MODULES),) @@ -219,21 +241,15 @@ $(KERNEL_OUT): mkdir -p $(KERNEL_MODULES_OUT) $(KERNEL_CONFIG): $(KERNEL_OUT) - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG) - $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ - echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ - echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi - $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ - echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ - $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig; fi + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG) + +$(KERNEL_OUT)/piggy : $(TARGET_PREBUILT_INT_KERNEL) + $(hide) gunzip -c $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/compressed/piggy.gzip > $(KERNEL_OUT)/piggy TARGET_KERNEL_BINARIES: $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL) - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE) - -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) dtbs - -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) modules - -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) modules_install + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE) + -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules + -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules_install $(mv-modules) $(clean-module-folder) @@ -244,40 +260,7 @@ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES) $(clean-module-folder) $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG) - $(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \ - rm -f ../$(KERNEL_CONFIG); \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_HEADER_DEFCONFIG); \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) $(KERNEL_CROSS_COMPILE) headers_install; fi - $(hide) if [ "$(KERNEL_HEADER_DEFCONFIG)" != "$(KERNEL_DEFCONFIG)" ]; then \ - echo "Used a different defconfig for header generation"; \ - rm -f ../$(KERNEL_CONFIG); \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG); fi - $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ - echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ - echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi - $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ - echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ - $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig; fi - -kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG) - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) tags - -kernelconfig: $(KERNEL_OUT) - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG) - $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ - echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ - echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; fi - env KCONFIG_NOTIMESTAMP=true \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) menuconfig - env KCONFIG_NOTIMESTAMP=true \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) savedefconfig - cp $(KERNEL_OUT)/defconfig $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG) - -alldefconfig: $(KERNEL_OUT) - env KCONFIG_NOTIMESTAMP=true \ - $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) alldefconfig + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) headers_install endif # FULL_KERNEL_BUILD From b93c101ce733661f2313c30c015957492eba0d21 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Thu, 30 Jan 2014 09:56:12 +0000 Subject: [PATCH 1036/1096] generic: reducing system image partition size Change-Id: If19c680b4bb25613238ee3957022c6dd5ac4bd70 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- target/board/generic/BoardConfig.mk | 2 +- target/board/generic_mips/BoardConfig.mk | 2 +- target/board/generic_x86/BoardConfig.mk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk index 3ae5860809d..99c52dc2f8f 100644 --- a/target/board/generic/BoardConfig.mk +++ b/target/board/generic/BoardConfig.mk @@ -68,7 +68,7 @@ USE_OPENGL_RENDERER := true VSYNC_EVENT_PHASE_OFFSET_NS := 0 TARGET_USERIMAGES_USE_EXT4 := true -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 576716800 +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 209715200 BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 diff --git a/target/board/generic_mips/BoardConfig.mk b/target/board/generic_mips/BoardConfig.mk index 7cef96865f7..4c08ea050bd 100644 --- a/target/board/generic_mips/BoardConfig.mk +++ b/target/board/generic_mips/BoardConfig.mk @@ -50,7 +50,7 @@ BUILD_EMULATOR_OPENGL := true USE_OPENGL_RENDERER := true TARGET_USERIMAGES_USE_EXT4 := true -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 838860800 +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 209715200 BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk index 5d091f515c2..6875258ea78 100644 --- a/target/board/generic_x86/BoardConfig.mk +++ b/target/board/generic_x86/BoardConfig.mk @@ -35,7 +35,7 @@ BUILD_EMULATOR_OPENGL := true USE_OPENGL_RENDERER := true TARGET_USERIMAGES_USE_EXT4 := true -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 786432000 +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 209715200 BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 From 2117af3af1e84da74d5b8fcc63bbf4ed1524bed8 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Fri, 31 Jan 2014 14:24:50 +0000 Subject: [PATCH 1037/1096] build: also using sparse images for goldfish So we can share the same code path at the system-image server, and also have a reduced image as part of the ubuntu android package. Change-Id: I43191e50610fce42be3bf91f4417ef975f984e1e Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- target/board/generic/BoardConfig.mk | 2 +- target/board/generic_mips/BoardConfig.mk | 2 +- target/board/generic_x86/BoardConfig.mk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk index 99c52dc2f8f..9470bfb8a83 100644 --- a/target/board/generic/BoardConfig.mk +++ b/target/board/generic/BoardConfig.mk @@ -73,7 +73,7 @@ BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_FLASH_BLOCK_SIZE := 512 -TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true +#TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true BOARD_SEPOLICY_DIRS += build/target/board/generic/sepolicy BOARD_SEPOLICY_UNION += \ diff --git a/target/board/generic_mips/BoardConfig.mk b/target/board/generic_mips/BoardConfig.mk index 4c08ea050bd..932fb198103 100644 --- a/target/board/generic_mips/BoardConfig.mk +++ b/target/board/generic_mips/BoardConfig.mk @@ -55,7 +55,7 @@ BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_FLASH_BLOCK_SIZE := 512 -TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true +#TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true BOARD_SEPOLICY_DIRS += build/target/board/generic/sepolicy BOARD_SEPOLICY_UNION += \ diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk index 6875258ea78..78c53f0da8e 100644 --- a/target/board/generic_x86/BoardConfig.mk +++ b/target/board/generic_x86/BoardConfig.mk @@ -40,7 +40,7 @@ BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_FLASH_BLOCK_SIZE := 512 -TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true +#TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true BOARD_SEPOLICY_DIRS += \ build/target/board/generic/sepolicy \ From 78aef2265fd7b4e8b6a4cebe87de179aeaa3fcbd Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Sat, 1 Feb 2014 01:23:08 +0000 Subject: [PATCH 1038/1096] BoardConfig.mk: enabling kernel from the archive (generic/goldfish) Change-Id: I7980f87a1efe7a34edcf29d7ba85035d593a55e5 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/Makefile | 2 +- target/board/generic/BoardConfig.mk | 6 +++++- target/board/generic_x86/BoardConfig.mk | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index 0dfa6b86bcc..075eb3daa82 100644 --- a/core/Makefile +++ b/core/Makefile @@ -498,7 +498,7 @@ $(BOOT_ANDROID_RAMDISK_IMG): $(INSTALLED_RAMDISK_TARGET_ANDROID) # Download the Ubuntu Touch ramdisk from the archive TARGET_UBUNTU_INITRD_PKG := ubuntu-touch-generic-initrd -TARGET_UBUNTU_INITRD_SERIES := trusty +TARGET_UBUNTU_INITRD_SERIES := vivid TARGET_OUT_UBUNTU_INITRD := $(TARGET_OUT_UBUNTU)/$(TARGET_UBUNTU_INITRD_PKG) TARGET_UBUNTU_INITRD := $(TARGET_OUT_UBUNTU_INITRD)/usr/lib/ubuntu-touch-generic-initrd/initrd.img-touch INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET) diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk index 9470bfb8a83..664aa134d2b 100644 --- a/target/board/generic/BoardConfig.mk +++ b/target/board/generic/BoardConfig.mk @@ -5,7 +5,7 @@ # The generic product target doesn't have any hardware-specific pieces. TARGET_NO_BOOTLOADER := true -TARGET_NO_KERNEL := true +TARGET_NO_KERNEL := false TARGET_ARCH := arm # Note: we build the platform images for ARMv7-A _without_ NEON. @@ -92,3 +92,7 @@ ifeq ($(TARGET_PRODUCT),sdk) # include an expanded selection of fonts for the SDK. EXTENDED_FONT_FOOTPRINT := true endif + +TARGET_KERNEL_UBUNTU := true +TARGET_KERNEL_UBUNTU_META := linux-image-goldfish +TARGET_KERNEL_UBUNTU_SERIES := vivid diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk index 78c53f0da8e..faf3848694e 100644 --- a/target/board/generic_x86/BoardConfig.mk +++ b/target/board/generic_x86/BoardConfig.mk @@ -5,7 +5,7 @@ # The generic product target doesn't have any hardware-specific pieces. TARGET_NO_BOOTLOADER := true -TARGET_NO_KERNEL := true +TARGET_NO_KERNEL := false TARGET_CPU_ABI := x86 TARGET_ARCH := x86 TARGET_ARCH_VARIANT := x86 @@ -58,3 +58,7 @@ BOARD_SEPOLICY_UNION += \ shell.te \ system_server.te \ zygote.te + +TARGET_KERNEL_UBUNTU := true +TARGET_KERNEL_UBUNTU_META := linux-image-goldfish +TARGET_KERNEL_UBUNTU_SERIES := vivid From b77fe466ad07f21b5c02a1520d295f92b118501a Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Mon, 10 Feb 2014 00:48:57 -0200 Subject: [PATCH 1039/1096] main.mk: Also adding qemu pc-bios when building the x86 emulator Change-Id: I24924ee5b03cd4bde9065f2c4babb92f30ec528b Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/main.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/main.mk b/core/main.mk index fcde4d06081..8c869549072 100644 --- a/core/main.mk +++ b/core/main.mk @@ -590,6 +590,11 @@ subdirs := \ system/security/keystore \ system/security/softkeymaster +ifeq ($(TARGET_DEVICE),generic_x86) +subdirs += \ + prebuilts/qemu-kernel/x86/pc-bios +endif + # device and vendor subdirs += \ device/asus \ From 1f8538ac77bafa58e72250d2abf93f79e7db34dc Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Mon, 2 Nov 2015 21:45:22 +0100 Subject: [PATCH 1040/1096] revert task_kernel --- core/tasks/kernel.mk | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 87ebf290485..bf9435b73b1 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -38,12 +38,6 @@ ifneq ($(TARGET_KERNEL_UBUNTU_PPA_TEAM),) endif TARGET_OUT_UBUNTU_KERNEL := $(TARGET_OUT_UBUNTU)/kernel -ifeq ($(TARGET_ARCH),x86) -TARGET_UBUNTU_ARCH := i386 -else -TARGET_UBUNTU_ARCH := armhf -endif - ifneq ($(BOARD_KERNEL_IMAGE_NAME),) TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME) TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE) @@ -160,11 +154,10 @@ $(TARGET_OUT_UBUNTU_KERNEL): $(hide) rm -rf $(KERNEL_MODULES_OUT) $(hide) mkdir -p $(TARGET_OUT_UBUNTU_KERNEL) $(hide) mkdir -p $(KERNEL_MODULES_OUT) - $(hide) mkdir -p $(TARGET_OUT)/boot .PHONY: $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz: $(TARGET_OUT_UBUNTU_KERNEL) $(KERNEL_HEADERS_INSTALL) - $(hide) $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $(TARGET_KERNEL_UBUNTU_META) -o $(TARGET_OUT_UBUNTU_KERNEL) -a $(TARGET_UBUNTU_ARCH) $(TARGET_KERNEL_UBUNTU_SERIES) + $(hide) $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $(TARGET_KERNEL_UBUNTU_META) -o $(TARGET_OUT_UBUNTU_KERNEL) $(TARGET_KERNEL_UBUNTU_SERIES) $(hide) IFS=", "; for dep in \ `dpkg-deb -f $(TARGET_OUT_UBUNTU_KERNEL)/$(TARGET_KERNEL_UBUNTU_META)_*.deb Depends`; do \ if echo $$dep | grep -q "linux-image-"; then \ @@ -172,11 +165,10 @@ $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz: $(TARGET_OUT_UBUNTU_KERNEL) $(KERNEL_HEADER fi; \ done; \ if [ -n "$$kernel_image" ]; then \ - $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $$kernel_image -o $(TARGET_OUT_UBUNTU_KERNEL) -a $(TARGET_UBUNTU_ARCH) $(TARGET_KERNEL_UBUNTU_SERIES); \ + $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $$kernel_image -o $(TARGET_OUT_UBUNTU_KERNEL) $(TARGET_KERNEL_UBUNTU_SERIES); \ dpkg-deb -x $(TARGET_OUT_UBUNTU_KERNEL)/linux-image-[0-9]*.deb $(TARGET_OUT_UBUNTU_KERNEL); \ kernel_version=$${kernel_image#linux-image-}; \ cp -v $(TARGET_OUT_UBUNTU_KERNEL)/boot/vmlinuz-$$kernel_version $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz; \ - cp -a $(TARGET_OUT_UBUNTU_KERNEL)/boot/*-$$kernel_version $(TARGET_OUT)/boot/; \ cp -a $(TARGET_OUT_UBUNTU_KERNEL)/lib/modules/$$kernel_version $(KERNEL_MODULES_OUT); \ depmod -a -b $(TARGET_OUT) $$kernel_version; \ else \ From 9f8f2899762635e37a432f7c61f562e5a34bc3c0 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Mon, 10 Feb 2014 01:39:51 -0200 Subject: [PATCH 1041/1096] Allow x86 initrd and kernel packages Change-Id: I254de04426be7cb9878d2a5c5001c18c70788924 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/Makefile | 7 ++++++- core/tasks/kernel.mk | 10 ++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index 075eb3daa82..7569a55b9ed 100644 --- a/core/Makefile +++ b/core/Makefile @@ -502,13 +502,18 @@ TARGET_UBUNTU_INITRD_SERIES := vivid TARGET_OUT_UBUNTU_INITRD := $(TARGET_OUT_UBUNTU)/$(TARGET_UBUNTU_INITRD_PKG) TARGET_UBUNTU_INITRD := $(TARGET_OUT_UBUNTU_INITRD)/usr/lib/ubuntu-touch-generic-initrd/initrd.img-touch INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET) +ifeq ($(TARGET_ARCH),x86) +TARGET_UBUNTU_ARCH := i386 +else +TARGET_UBUNTU_ARCH := armhf +endif .PHONY: $(INSTALLED_RAMDISK_TARGET) $(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) | $(MINIGZIP) $(call pretty,"Target Ubuntu Touch ram disk: $@") $(hide) rm -rf $(TARGET_OUT_UBUNTU_INITRD) $(TARGET_UBUNTU_ROOT_OUT) $(hide) mkdir -p $(TARGET_OUT_UBUNTU_INITRD) $(TARGET_UBUNTU_ROOT_OUT) - $(hide) $(PULL_LP_BIN) $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD) $(TARGET_UBUNTU_INITRD_SERIES) + $(hide) $(PULL_LP_BIN) $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD) -a $(TARGET_UBUNTU_ARCH) $(TARGET_UBUNTU_INITRD_SERIES) $(hide) dpkg-deb -x $(TARGET_OUT_UBUNTU_INITRD)/$(TARGET_UBUNTU_INITRD_PKG)*.deb $(TARGET_OUT_UBUNTU_INITRD) $(hide) $(ACP) $(TARGET_UBUNTU_INITRD) $@ $(hide) cd $(TARGET_UBUNTU_ROOT_OUT) && $(MINIGZIP) -c -d $@ | cpio -id diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index bf9435b73b1..08601e3d709 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -38,6 +38,12 @@ ifneq ($(TARGET_KERNEL_UBUNTU_PPA_TEAM),) endif TARGET_OUT_UBUNTU_KERNEL := $(TARGET_OUT_UBUNTU)/kernel +ifeq ($(TARGET_ARCH),x86) +TARGET_UBUNTU_ARCH := i386 +else +TARGET_UBUNTU_ARCH := armhf +endif + ifneq ($(BOARD_KERNEL_IMAGE_NAME),) TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME) TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE) @@ -157,7 +163,7 @@ $(TARGET_OUT_UBUNTU_KERNEL): .PHONY: $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz: $(TARGET_OUT_UBUNTU_KERNEL) $(KERNEL_HEADERS_INSTALL) - $(hide) $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $(TARGET_KERNEL_UBUNTU_META) -o $(TARGET_OUT_UBUNTU_KERNEL) $(TARGET_KERNEL_UBUNTU_SERIES) + $(hide) $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $(TARGET_KERNEL_UBUNTU_META) -o $(TARGET_OUT_UBUNTU_KERNEL) -a $(TARGET_UBUNTU_ARCH) $(TARGET_KERNEL_UBUNTU_SERIES) $(hide) IFS=", "; for dep in \ `dpkg-deb -f $(TARGET_OUT_UBUNTU_KERNEL)/$(TARGET_KERNEL_UBUNTU_META)_*.deb Depends`; do \ if echo $$dep | grep -q "linux-image-"; then \ @@ -165,7 +171,7 @@ $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz: $(TARGET_OUT_UBUNTU_KERNEL) $(KERNEL_HEADER fi; \ done; \ if [ -n "$$kernel_image" ]; then \ - $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $$kernel_image -o $(TARGET_OUT_UBUNTU_KERNEL) $(TARGET_KERNEL_UBUNTU_SERIES); \ + $(PULL_LP_BIN) $(PULL_LP_BIN_EXTRA_OPTS) $$kernel_image -o $(TARGET_OUT_UBUNTU_KERNEL) -a $(TARGET_UBUNTU_ARCH) $(TARGET_KERNEL_UBUNTU_SERIES); \ dpkg-deb -x $(TARGET_OUT_UBUNTU_KERNEL)/linux-image-[0-9]*.deb $(TARGET_OUT_UBUNTU_KERNEL); \ kernel_version=$${kernel_image#linux-image-}; \ cp -v $(TARGET_OUT_UBUNTU_KERNEL)/boot/vmlinuz-$$kernel_version $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz; \ From 7c62f7e04c65440370d2b6d1eef2c171c3a0cb18 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Thu, 13 Feb 2014 03:30:26 -0200 Subject: [PATCH 1042/1096] Changing product brand and model for the emulators We're Ubuntu Touch now :-) Change-Id: Icf538ad2d39f84318f49b9d9ca5ce638d552bfe6 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- target/product/full.mk | 4 ++-- target/product/full_x86.mk | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/product/full.mk b/target/product/full.mk index b66ae92a532..f682a4ae1a7 100644 --- a/target/product/full.mk +++ b/target/product/full.mk @@ -27,5 +27,5 @@ include $(SRC_TARGET_DIR)/product/emulator.mk # Overrides PRODUCT_NAME := full PRODUCT_DEVICE := generic -PRODUCT_BRAND := Android -PRODUCT_MODEL := AOSP on ARM Emulator +PRODUCT_BRAND := Ubuntu +PRODUCT_MODEL := ARM Emulator diff --git a/target/product/full_x86.mk b/target/product/full_x86.mk index 4dff7134246..cd01a5039dd 100644 --- a/target/product/full_x86.mk +++ b/target/product/full_x86.mk @@ -40,5 +40,5 @@ PRODUCT_PACKAGES += \ # Overrides PRODUCT_NAME := full_x86 PRODUCT_DEVICE := generic_x86 -PRODUCT_BRAND := Android -PRODUCT_MODEL := AOSP on IA Emulator +PRODUCT_BRAND := Ubuntu +PRODUCT_MODEL := X86 Emulator From 0686e2fe1589df69885439aeb3fd4ac05d0a773b Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Fri, 28 Feb 2014 14:24:13 -0300 Subject: [PATCH 1043/1096] kernel.mk: also publish the additional artifacts from the kernel package Change-Id: I4d1c47abdeaa5a6f0131881bc5e43702345da935 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/tasks/kernel.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 08601e3d709..0e549e30500 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -175,6 +175,7 @@ $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz: $(TARGET_OUT_UBUNTU_KERNEL) $(KERNEL_HEADER dpkg-deb -x $(TARGET_OUT_UBUNTU_KERNEL)/linux-image-[0-9]*.deb $(TARGET_OUT_UBUNTU_KERNEL); \ kernel_version=$${kernel_image#linux-image-}; \ cp -v $(TARGET_OUT_UBUNTU_KERNEL)/boot/vmlinuz-$$kernel_version $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz; \ + cp -a $(TARGET_OUT_UBUNTU_KERNEL)/boot/*-$$kernel_version $(TARGET_OUT)/boot/; \ cp -a $(TARGET_OUT_UBUNTU_KERNEL)/lib/modules/$$kernel_version $(KERNEL_MODULES_OUT); \ depmod -a -b $(TARGET_OUT) $$kernel_version; \ else \ From b050a15c34a1c6ed275a713697f2cc47f6ab5a98 Mon Sep 17 00:00:00 2001 From: Dimitri John Ledkov Date: Tue, 4 Mar 2014 17:29:45 +0000 Subject: [PATCH 1044/1096] Prefer, if available, system-wide toolchain for target-x86 as well. Change-Id: I481155097fc5859187b2c8860e277c47a1ebaf3d Signed-off-by: Dimitri John Ledkov Signed-off-by: Ondrej Kubik --- core/combo/TARGET_linux-x86.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk index 15ee249ba5f..2ec83e25500 100644 --- a/core/combo/TARGET_linux-x86.mk +++ b/core/combo/TARGET_linux-x86.mk @@ -45,9 +45,15 @@ include $(BUILD_SYSTEM)/combo/fdo.mk # You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),) +ifneq (,$(wildcard /usr/bin/x86_64-linux-android-*)) +$(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT := /usr/bin +$(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX := $($(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/x86_64-linux-android- +else $(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/x86/x86_64-linux-android-$($(combo_2nd_arch_prefix)TARGET_GCC_VERSION) $(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX := $($(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/bin/x86_64-linux-android- endif +endif + $(combo_2nd_arch_prefix)TARGET_CC := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX) $(combo_2nd_arch_prefix)TARGET_CXX := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX) From 2373caf99c9d95b68e75647dd5d469c053b2ab5b Mon Sep 17 00:00:00 2001 From: Jani Monoses Date: Fri, 14 Mar 2014 13:45:16 +0200 Subject: [PATCH 1045/1096] Do not build Android recovery OTA keys. This disables one of the last pieces needing Java at build time. Change-Id: I6c0fe42d0c1e525f4969faa7eca38e7943b2f192 Signed-off-by: Jani Monoses Signed-off-by: Ondrej Kubik --- core/Makefile | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/core/Makefile b/core/Makefile index 7569a55b9ed..f4ce33ed01e 100644 --- a/core/Makefile +++ b/core/Makefile @@ -972,16 +972,16 @@ endif # Generate a file containing the keys that will be read by the # recovery binary. -RECOVERY_INSTALL_OTA_KEYS := \ - $(call intermediates-dir-for,PACKAGING,ota_keys)/keys -DUMPKEY_JAR := $(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar -$(RECOVERY_INSTALL_OTA_KEYS): PRIVATE_OTA_PUBLIC_KEYS := $(OTA_PUBLIC_KEYS) -$(RECOVERY_INSTALL_OTA_KEYS): extra_keys := $(patsubst %,%.x509.pem,$(PRODUCT_EXTRA_RECOVERY_KEYS)) -$(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) $(extra_keys) - @echo "DumpPublicKey: $@ <= $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys)" - @rm -rf $@ - @mkdir -p $(dir $@) - java -jar $(DUMPKEY_JAR) $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys) > $@ +#RECOVERY_INSTALL_OTA_KEYS := \ +# $(call intermediates-dir-for,PACKAGING,ota_keys)/keys +#DUMPKEY_JAR := $(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar +#$(RECOVERY_INSTALL_OTA_KEYS): PRIVATE_OTA_PUBLIC_KEYS := $(OTA_PUBLIC_KEYS) +#$(RECOVERY_INSTALL_OTA_KEYS): extra_keys := $(patsubst %,%.x509.pem,$(PRODUCT_EXTRA_RECOVERY_KEYS)) +#$(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) $(extra_keys) +# @echo "DumpPublicKey: $@ <= $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys)" +# @rm -rf $@ +# @mkdir -p $(dir $@) +# java -jar $(DUMPKEY_JAR) $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys) > $@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(INSTALLED_RAMDISK_TARGET) \ @@ -991,8 +991,7 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ $(recovery_initrc) \ $(INSTALLED_2NDBOOTLOADER_TARGET) \ $(recovery_build_prop) $(recovery_resource_deps) $(recovery_root_deps) \ - $(recovery_fstab) \ - $(RECOVERY_INSTALL_OTA_KEYS) + $(recovery_fstab) @echo -e ${CL_CYN}"----- Making recovery image ------"${CL_RST} $(hide) mkdir -p $(TARGET_RECOVERY_OUT) $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/etc $(TARGET_RECOVERY_ROOT_OUT)/tmp @@ -1014,7 +1013,6 @@ $(recovery_ramdisk): $(MKBOOTFS) $(MINIGZIP) $(RECOVERYIMAGE_EXTRA_DEPS) \ cp -rf $(item) $(TARGET_RECOVERY_ROOT_OUT)/;) $(hide) $(foreach item,$(recovery_fstab), \ cp -f $(item) $(TARGET_RECOVERY_ROOT_OUT)/etc/recovery.fstab;) - $(hide) cp $(RECOVERY_INSTALL_OTA_KEYS) $(TARGET_RECOVERY_ROOT_OUT)/res/keys $(hide) cat $(INSTALLED_DEFAULT_PROP_TARGET) $(recovery_build_prop) \ > $(TARGET_RECOVERY_ROOT_OUT)/default.prop $(hide) $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk) From 0b01293cd24158a4522a3869a6e8e5649e2ea475 Mon Sep 17 00:00:00 2001 From: Jani Monoses Date: Fri, 14 Mar 2014 13:46:21 +0200 Subject: [PATCH 1046/1096] Do not check for the JDK anymore. Since the build does not rely on Java do not probe for the JDK. Change-Id: I3b5fc40509614e0cbef9375a80f9c7b12d703842 Signed-off-by: Jani Monoses Signed-off-by: Ondrej Kubik --- core/config.mk | 38 +++++++------- core/main.mk | 132 ++++++++++++++++++++++++------------------------- 2 files changed, 85 insertions(+), 85 deletions(-) diff --git a/core/config.mk b/core/config.mk index 3e6d05d6b87..8efab629673 100644 --- a/core/config.mk +++ b/core/config.mk @@ -445,29 +445,29 @@ else COLUMN:= column endif -ifeq ($(HOST_OS),darwin) -ifeq ($(LEGACY_USE_JAVA6),) -HOST_JDK_TOOLS_JAR:= $(shell $(BUILD_SYSTEM)/find-jdk-tools-jar.sh) -else +#ifeq ($(HOST_OS),darwin) +#ifeq ($(LEGACY_USE_JAVA6),) +#HOST_JDK_TOOLS_JAR:= $(shell $(BUILD_SYSTEM)/find-jdk-tools-jar.sh) +#else # Deliberately set to blank for Java 6 installations on MacOS. These # versions allegedly use a non-standard directory structure. -HOST_JDK_TOOLS_JAR := -endif -else -HOST_JDK_TOOLS_JAR:= $(shell $(BUILD_SYSTEM)/find-jdk-tools-jar.sh) -endif - -ifneq ($(HOST_JDK_TOOLS_JAR),) -ifeq ($(wildcard $(HOST_JDK_TOOLS_JAR)),) -$(error Error: could not find jdk tools.jar, please check if your JDK was installed correctly) -endif -endif +#HOST_JDK_TOOLS_JAR := +#endif +#else +#HOST_JDK_TOOLS_JAR:= $(shell $(BUILD_SYSTEM)/find-jdk-tools-jar.sh) +#endif + +#ifneq ($(HOST_JDK_TOOLS_JAR),) +#ifeq ($(wildcard $(HOST_JDK_TOOLS_JAR)),) +#$(error Error: could not find jdk tools.jar, please check if your JDK was installed correctly) +#endif +#endif # Is the host JDK 64-bit version? -HOST_JDK_IS_64BIT_VERSION := -ifneq ($(filter 64-Bit, $(shell java -version 2>&1)),) -HOST_JDK_IS_64BIT_VERSION := true -endif +#HOST_JDK_IS_64BIT_VERSION := +#ifneq ($(filter 64-Bit, $(shell java -version 2>&1)),) +#HOST_JDK_IS_64BIT_VERSION := true +#endif # It's called md5 on Mac OS and md5sum on Linux ifeq ($(HOST_OS),darwin) diff --git a/core/main.mk b/core/main.mk index 8c869549072..c4e4d26e767 100644 --- a/core/main.mk +++ b/core/main.mk @@ -143,87 +143,87 @@ $(warning ************************************************************) $(error Directory names containing spaces not supported) endif -java_version_str := $(shell unset _JAVA_OPTIONS JAVA_TOOL_OPTIONS && java -version 2>&1) -javac_version_str := $(shell unset _JAVA_OPTIONS JAVA_TOOL_OPTIONS && javac -version 2>&1) +#java_version_str := $(shell unset _JAVA_OPTIONS JAVA_TOOL_OPTIONS && java -version 2>&1) +#javac_version_str := $(shell unset _JAVA_OPTIONS JAVA_TOOL_OPTIONS && javac -version 2>&1) # Check for the correct version of java, should be 1.7 by # default, and 1.6 if LEGACY_USE_JAVA6 is set. -ifeq ($(LEGACY_USE_JAVA6),) -required_version := "1.7.x" -required_javac_version := "1.7" -java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.7[\. "$$]') -javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.7[\. "$$]') -else # if LEGACY_USE_JAVA6 -required_version := "1.6.x" -required_javac_version := "1.6" -java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.6[\. "$$]') -javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.6[\. "$$]') -endif # if LEGACY_USE_JAVA6 - -ifeq ($(strip $(java_version)),) -$(info ************************************************************) -$(info You are attempting to build with the incorrect version) -$(info of java.) -$(info $(space)) -$(info Your version is: $(java_version_str).) -$(info The required version is: $(required_version)) -$(info $(space)) -$(info Please follow the machine setup instructions at) -$(info $(space)$(space)$(space)$(space)https://source.android.com/source/initializing.html) -$(info ************************************************************) -$(error stop) -endif +#ifeq ($(LEGACY_USE_JAVA6),) +#required_version := "1.7.x" +#required_javac_version := "1.7" +#java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.7[\. "$$]') +#javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.7[\. "$$]') +#else # if LEGACY_USE_JAVA6 +#required_version := "1.6.x" +#required_javac_version := "1.6" +#java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.6[\. "$$]') +#javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.6[\. "$$]') +#endif # if LEGACY_USE_JAVA6 + +#ifeq ($(strip $(java_version)),) +#$(info ************************************************************) +#$(info You are attempting to build with the incorrect version) +#$(info of java.) +#$(info $(space)) +#$(info Your version is: $(java_version_str).) +#$(info The required version is: $(required_version)) +#$(info $(space)) +#$(info Please follow the machine setup instructions at) +#$(info $(space)$(space)$(space)$(space)https://source.android.com/source/initializing.html) +#$(info ************************************************************) +#$(error stop) +#endif # Check for the current JDK. # # For Java 1.7, we require OpenJDK on linux and Oracle JDK on Mac OS. # For Java 1.6, we require Oracle for all host OSes. -requires_openjdk := false -ifeq ($(LEGACY_USE_JAVA6),) -ifeq ($(HOST_OS), linux) -requires_openjdk := true -endif -endif +#requires_openjdk := false +#ifeq ($(LEGACY_USE_JAVA6),) +#ifeq ($(HOST_OS), linux) +#requires_openjdk := true +#endif +#endif # Check for the current jdk -ifeq ($(requires_openjdk), true) +#ifeq ($(requires_openjdk), true) # The user asked for java7 openjdk, so check that the host # java version is really openjdk -ifeq ($(shell echo '$(java_version_str)' | grep -i openjdk),) -$(info ************************************************************) -$(info You asked for an OpenJDK 7 build but your version is) -$(info $(java_version_str).) -$(info ************************************************************) -$(error stop) -endif # java version is not OpenJdk -else # if requires_openjdk -ifneq ($(shell echo '$(java_version_str)' | grep -i openjdk),) -$(info ************************************************************) -$(info You are attempting to build with an unsupported JDK.) -$(info $(space)) -$(info You use OpenJDK but only Sun/Oracle JDK is supported.) -$(info Please follow the machine setup instructions at) -$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html) -$(info ************************************************************) -$(error stop) -endif # java version is not Sun Oracle JDK -endif # if requires_openjdk +#ifeq ($(shell echo '$(java_version_str)' | grep -i openjdk),) +#$(info ************************************************************) +#$(info You asked for an OpenJDK 7 build but your version is) +#$(info $(java_version_str).) +#$(info ************************************************************) +#$(error stop) +#endif # java version is not OpenJdk +#else # if requires_openjdk +#ifneq ($(shell echo '$(java_version_str)' | grep -i openjdk),) +#$(info ************************************************************) +#$(info You are attempting to build with an unsupported JDK.) +#$(info $(space)) +#$(info You use OpenJDK but only Sun/Oracle JDK is supported.) +#$(info Please follow the machine setup instructions at) +#$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html) +#$(info ************************************************************) +#$(error stop) +#endif # java version is not Sun Oracle JDK +#endif # if requires_openjdk # Check for the correct version of javac -ifeq ($(strip $(javac_version)),) -$(info ************************************************************) -$(info You are attempting to build with the incorrect version) -$(info of javac.) -$(info $(space)) -$(info Your version is: $(javac_version_str).) -$(info The required version is: $(required_javac_version)) -$(info $(space)) -$(info Please follow the machine setup instructions at) -$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html) -$(info ************************************************************) -$(error stop) -endif +#ifeq ($(strip $(javac_version)),) +#$(info ************************************************************) +#$(info You are attempting to build with the incorrect version) +#$(info of javac.) +#$(info $(space)) +#$(info Your version is: $(javac_version_str).) +#$(info The required version is: $(required_javac_version)) +#$(info $(space)) +#$(info Please follow the machine setup instructions at) +#$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html) +#$(info ************************************************************) +#$(error stop) +#endif ifndef BUILD_EMULATOR From ff7c7d19394ddd536d0c4f6d4d6bc121b1910baa Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Thu, 6 Mar 2014 16:27:48 -0300 Subject: [PATCH 1047/1096] Adding script to update the android system image on Ubuntu Touch We're not automatically mounting /data, so in order to replace the android system image, we first need to make sure that /data is available. Script also support real Ubuntu partitions Change-Id: Id7cb5b90cff336bd6848338106ac01ccbef03ba0 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- envsetup.sh | 10 +++ tools/update-system-img.sh | 131 +++++++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100755 tools/update-system-img.sh diff --git a/envsetup.sh b/envsetup.sh index 51f32539803..5de6aaeb787 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2604,6 +2604,16 @@ function pez { return $retval } +function updatesystemimg() +{ + T=$(gettop) + if [ ! "$T" ]; then + echo "Couldn't locate the top of the tree. Try setting TOP." >&2 + return + fi + ("$T"/build/tools/update-system-img.sh) +} + function get_make_command() { echo command make diff --git a/tools/update-system-img.sh b/tools/update-system-img.sh new file mode 100755 index 00000000000..6340875dc11 --- /dev/null +++ b/tools/update-system-img.sh @@ -0,0 +1,131 @@ +#!/bin/sh -e +# +# Copyright (C) 2013 Canonical, Ltd. +# +# Licensed under the Apache License, Version 2.0 (the 'License'); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an 'AS IS' BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +MNTPATH="/tmp/update-img" +USYSIMG="/data/ubuntu.img" +SYSTEM="/system" +ANDROID="/var/lib/lxc/android/system.img" +SERIAL=$ANDROID_SERIAL + +do_shell() +{ + adb $ADBOPTS shell "$@" +} + +do_push() +{ + adb $ADBOPTS push $@ +} + +convert_android_img() +{ + simg2img $SYSIMG $SYSRAW + resize2fs -M $SYSRAW >/dev/null +} + +cleanup() +{ + [ -f $SYSRAW ] && rm -f $SYSRAW +} + +print_usage() { + cat << EOF +usage: $(basename $0) [-s SERIAL] + + Update the android system image on a Ubuntu Touch device (from recovery) using the + system image format. + + -s SERIAL Device serial number + -h This message +EOF +} + +trap cleanup 1 2 3 9 15 + +while getopts s:h opt; do + case $opt in + h) + print_usage + exit 0 + ;; + s) + SERIAL="$OPTARG" + ;; + esac +done + +if [ -n "$SERIAL" ]; then + ADBOPTS="-s $SERIAL" +fi + +# Also check if there is a default image in the build output path +shift $((OPTIND - 1)) +SYSIMG=$@ +if [ -z "$SYSIMG" ]; then + if [ -z "$OUT" ]; then + SYSIMG=out/target/product/*/system.img + else + SYSIMG=$OUT/system.img + fi +fi +SYSRAW=${SYSIMG}.raw + +if [ ! -f "$SYSIMG" ]; then + echo "Need a valid Android system image path" + exit 1 +fi + +echo "Pushing android image available at $SYSIMG" + +if ! do_shell "ls /sbin/recovery" | grep -q "^/sbin/recovery"; then + echo "Please make sure the device is attached via USB and in recovery mode" + exit 1 +fi + +echo "Mounting system and data partitions" +do_shell "mount /data" +do_shell "mount /system" + +echo "Checking first for the ubuntu.img bind-mounted solution" +if do_shell "ls $USYSIMG" | grep -q "^$USYSIMG"; then + do_shell "mkdir -p $MNTPATH" + do_shell "mount $USYSIMG $MNTPATH" + ANDROIDIMG="$MNTPATH/$ANDROID" +else + echo "Bind mounted ubuntu image not found, looking for the system partition" + ANDROIDIMG="$SYSTEM/$ANDROID" +fi + +if ! do_shell "ls $ANDROIDIMG" | grep -q "^$ANDROIDIMG"; then + echo "Couldn't find the Android image file ($ANDROIDIMG), aborting" + exit 1 +fi + +echo "Converting android system.img to a valid image format" +convert_android_img + +echo "Copying $SYSRAW to the ubuntu system image" +do_push $SYSRAW $ANDROIDIMG + +if do_shell "ls $MNTPATH" | grep -q "^$MNTPATH"; then + do_shell "umount $MNTPATH" +fi + +do_shell "umount /data" +do_shell "umount /system" + +echo "Rebooting device" +adb $ADBOPTS reboot From 895e91fc936c803ff606f20307f4ddf49b09541b Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Thu, 27 Mar 2014 01:19:57 -0300 Subject: [PATCH 1048/1096] Disable stack protector on x86, until our toolchain is fixed Workaround done by Dimitri John Ledkov , that needs to be dropped once bug LP: #1302799 gets fixed. Change-Id: I2396e3daa66a865f6e3118665d919612acc8b11f Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/combo/TARGET_linux-x86.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk index 2ec83e25500..7c385cccb8c 100644 --- a/core/combo/TARGET_linux-x86.mk +++ b/core/combo/TARGET_linux-x86.mk @@ -95,12 +95,14 @@ $(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += \ -fstrict-aliasing \ -funswitch-loops \ -funwind-tables \ - -fstack-protector \ -m32 \ -no-canonical-prefixes \ -fno-canonical-system-headers \ -include $(android_config_h) \ -I $(dir $(android_config_h)) +# FIXME: This needs to be added back once the android toolchain provided by the +# gcc-i686-linux-android package gets fixed (LP: #1302799) +# -fstack-protector \ $(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += $(arch_variant_cflags) From 7bfc34a79504bf773e30a29ca91774247ff1cdff Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Mon, 5 May 2014 19:04:17 -0300 Subject: [PATCH 1049/1096] TARGET_linux-x86.mk: forcing -Wl,-Bsymbolic While -Bsymbolic is used by default on android, it depends on the toolchain to provide that option, instead of forcing it by default. Workaround for bug https://bugs.launchpad.net/ubuntu/+source/gcc-i686-linux-android/+bug/1305315 Change-Id: I5b764686e2607923f091ef4e5d76745b5d5094b5 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/combo/TARGET_linux-x86.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk index 7c385cccb8c..ac560759756 100644 --- a/core/combo/TARGET_linux-x86.mk +++ b/core/combo/TARGET_linux-x86.mk @@ -207,6 +207,7 @@ define $(combo_2nd_arch_prefix)transform-o-to-static-executable-inner $(hide) $(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Bstatic \ + -Wl,-Bsymbolic \ -o $@ \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_STATIC_O)) \ From 40381ba7d9d8532499d82fcfca9043a7a39386b9 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Mon, 26 May 2014 15:11:45 +0200 Subject: [PATCH 1050/1096] Dropping all device specific apns-conf file Change-Id: Ia7355858c07ad0283fc65dba34d24ea608ed4092 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- target/board/generic/device.mk | 1 - target/board/generic_mips/device.mk | 1 - target/board/generic_x86/device.mk | 1 - target/board/generic_x86_64/device.mk | 1 - 4 files changed, 4 deletions(-) diff --git a/target/board/generic/device.mk b/target/board/generic/device.mk index 06a7d8a3e21..26e4fcdb759 100644 --- a/target/board/generic/device.mk +++ b/target/board/generic/device.mk @@ -23,7 +23,6 @@ PRODUCT_PROPERTY_OVERRIDES := \ ro.adb.qemud=1 PRODUCT_COPY_FILES := \ - device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \ diff --git a/target/board/generic_mips/device.mk b/target/board/generic_mips/device.mk index 590f4224d56..0e2f56e3331 100644 --- a/target/board/generic_mips/device.mk +++ b/target/board/generic_mips/device.mk @@ -23,7 +23,6 @@ PRODUCT_PROPERTY_OVERRIDES := \ ro.adb.qemud=1 PRODUCT_COPY_FILES := \ - device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \ diff --git a/target/board/generic_x86/device.mk b/target/board/generic_x86/device.mk index b5b0fafb0b6..4a27dbf8897 100644 --- a/target/board/generic_x86/device.mk +++ b/target/board/generic_x86/device.mk @@ -23,7 +23,6 @@ PRODUCT_PROPERTY_OVERRIDES := \ ro.adb.qemud=1 PRODUCT_COPY_FILES := \ - device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \ diff --git a/target/board/generic_x86_64/device.mk b/target/board/generic_x86_64/device.mk index b5b0fafb0b6..4a27dbf8897 100755 --- a/target/board/generic_x86_64/device.mk +++ b/target/board/generic_x86_64/device.mk @@ -23,7 +23,6 @@ PRODUCT_PROPERTY_OVERRIDES := \ ro.adb.qemud=1 PRODUCT_COPY_FILES := \ - device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \ From de9a4f99145a9cfc6916e5a94d904b02bd54c815 Mon Sep 17 00:00:00 2001 From: Dimitri John Ledkov Date: Thu, 12 Jun 2014 15:02:25 +0100 Subject: [PATCH 1051/1096] generic*: add recovery.fstab to make recovery-initrd bootable Change-Id: I44cd52ba44a6f113d5328a5d4fa4b54f0f7786bf Signed-off-by: Dimitri John Ledkov Signed-off-by: Ondrej Kubik --- target/board/generic/recovery.fstab | 7 +++++++ target/board/generic_x86/recovery.fstab | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 target/board/generic/recovery.fstab create mode 100644 target/board/generic_x86/recovery.fstab diff --git a/target/board/generic/recovery.fstab b/target/board/generic/recovery.fstab new file mode 100644 index 00000000000..fd1219a22c7 --- /dev/null +++ b/target/board/generic/recovery.fstab @@ -0,0 +1,7 @@ +# Android fstab file. +# +# The filesystem that contains the filesystem checker binary (typically /system) cannot +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK +/dev/block/mtdblock0 /system ext4 ro,barrier=1 wait +/dev/block/mtdblock1 /data ext4 noatime,nosuid,nodev,barrier=1,nomblk_io_submit wait,check +/dev/block/mtdblock2 /cache ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check diff --git a/target/board/generic_x86/recovery.fstab b/target/board/generic_x86/recovery.fstab new file mode 100644 index 00000000000..fd1219a22c7 --- /dev/null +++ b/target/board/generic_x86/recovery.fstab @@ -0,0 +1,7 @@ +# Android fstab file. +# +# The filesystem that contains the filesystem checker binary (typically /system) cannot +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK +/dev/block/mtdblock0 /system ext4 ro,barrier=1 wait +/dev/block/mtdblock1 /data ext4 noatime,nosuid,nodev,barrier=1,nomblk_io_submit wait,check +/dev/block/mtdblock2 /cache ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check From e6c5682098ffed6c2841a0ff8ec9f5486ea4c8ef Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Sun, 20 Jul 2014 02:48:08 -0300 Subject: [PATCH 1052/1096] mkdevicetarball.sh: adding script to create a device tarball Change-Id: Ie9961f9fbbf21a080f5fbc226d2aee41da157981 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- tools/mkdevicetarball.sh | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 tools/mkdevicetarball.sh diff --git a/tools/mkdevicetarball.sh b/tools/mkdevicetarball.sh new file mode 100755 index 00000000000..d29ec20459c --- /dev/null +++ b/tools/mkdevicetarball.sh @@ -0,0 +1,65 @@ +#!/bin/bash +# +# Copyright (C) 2014, Canonical Ltd. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 3 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# See file /usr/share/common-licenses/GPL for more details. +# +# Make a device tarball from the Android build image, to be flashed +# with ubuntu-device-flash (--device-tarball) + +TMPDEVICEDIR=$(mktemp -d) +IMGDIR=${OUT} +DEVICETARBALL=${IMGDIR}/device_${TARGET_PRODUCT}.tar.xz +LXCPATH=${TMPDEVICEDIR}/system/var/lib/lxc/android + +function onExit() { + rm -Rf $TMPDEVICEDIR +} + +trap onExit EXIT + +[ -f $IMGDIR/system.img ] || { + echo $IMGDIR does not seem to contain the required Android img files + exit -1 +} + +mkdir -p ${LXCPATH} + +if file $IMGDIR/system.img | grep ": data" >/dev/null; then + echo "Copying system.img into a proper EXT4 filesystem" + simg2img $IMGDIR/system.img tmp.img >/dev/null + resize2fs -M tmp.img >/dev/null 2>&1 + mv tmp.img $LXCPATH/system.img +else + echo "Copying system.img which is already an EXT4 filesystem" + cp $IMGDIR/system.img /$LXCPATH +fi + +PDIR=${TMPDEVICEDIR}/partitions +mkdir -p $PDIR +cp ${IMGDIR}/boot.img $PDIR +cp ${IMGDIR}/recovery.img $PDIR + +echo "Creating the tarball" + +if which pxz >/dev/null;then + XZ=pxz + echo "Using parallel XZ compression" +else + echo "Using single threaded XZ compression, you may want to install pxz" + XZ=xz +fi + +pushd $TMPDEVICEDIR >/dev/null +tar --use-compress-program=$XZ -cf $DEVICETARBALL $(find . -type f) --owner=0 --group=0 +popd >/dev/null From 12336c355b53eaa1fa6a0cb19b6e078d17f8e1ae Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Tue, 5 Aug 2014 04:57:09 -0300 Subject: [PATCH 1053/1096] HOST_linux-x86: force 4.8 to avoid unexpected regressions Change-Id: I17a2b81359c5b0bae5e01763830c0c0d02ba4feb Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Ondrej Kubik --- core/combo/HOST_linux-x86.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/combo/HOST_linux-x86.mk b/core/combo/HOST_linux-x86.mk index 428f070818c..59ba71db550 100644 --- a/core/combo/HOST_linux-x86.mk +++ b/core/combo/HOST_linux-x86.mk @@ -22,8 +22,8 @@ $(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX := /usr/bin endif # Don't do anything if the toolchain is not there ifneq (,$(strip $(wildcard $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)gcc))) -$(combo_2nd_arch_prefix)HOST_CC := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)gcc -$(combo_2nd_arch_prefix)HOST_CXX := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)g++ +HOST_CC := $(HOST_TOOLCHAIN_PREFIX)/gcc-4.8 +HOST_CXX := $(HOST_TOOLCHAIN_PREFIX)/g++-4.8 $(combo_2nd_arch_prefix)HOST_AR := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)ar endif # $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)gcc exists From 1a9d224c7eb555c7145a8149a3f9ae1e3a5452e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?You-Sheng=20Yang=20=28=E6=A5=8A=E6=9C=89=E5=8B=9D=29?= Date: Wed, 29 Apr 2015 17:16:49 +0800 Subject: [PATCH 1054/1096] mkdir $(TARGET_OUT)/boot first MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ia6034defa866be877b9d4c9a8e6399dd73b9c302 Signed-off-by: You-Sheng Yang (楊有勝) Signed-off-by: Ondrej Kubik --- core/tasks/kernel.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 0e549e30500..87ebf290485 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -160,6 +160,7 @@ $(TARGET_OUT_UBUNTU_KERNEL): $(hide) rm -rf $(KERNEL_MODULES_OUT) $(hide) mkdir -p $(TARGET_OUT_UBUNTU_KERNEL) $(hide) mkdir -p $(KERNEL_MODULES_OUT) + $(hide) mkdir -p $(TARGET_OUT)/boot .PHONY: $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz: $(TARGET_OUT_UBUNTU_KERNEL) $(KERNEL_HEADERS_INSTALL) From 48824e79e0dae8d0dd6ee6d5087f9fc0b8f28f83 Mon Sep 17 00:00:00 2001 From: Ondrej Kubik Date: Thu, 25 Jun 2015 16:35:11 +0100 Subject: [PATCH 1055/1096] Fixing build error when moving to android-5.1 Change-Id: I7cdab4a5c5032d5b0dfe9a1d42f0714059b7142f Signed-off-by: Ondrej Kubik --- core/tasks/boot_jars_package_check.mk | 46 ---- core/tasks/check_boot_jars/check_boot_jars.py | 83 ------- .../check_boot_jars/package_whitelist.txt | 214 ------------------ 3 files changed, 343 deletions(-) delete mode 100644 core/tasks/boot_jars_package_check.mk delete mode 100755 core/tasks/check_boot_jars/check_boot_jars.py delete mode 100644 core/tasks/check_boot_jars/package_whitelist.txt diff --git a/core/tasks/boot_jars_package_check.mk b/core/tasks/boot_jars_package_check.mk deleted file mode 100644 index 188c267400a..00000000000 --- a/core/tasks/boot_jars_package_check.mk +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (C) 2014 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# -# Rules to check if classes in the boot jars are from the whitelisted packages. -# - -ifneq ($(SKIP_BOOT_JARS_CHECK),true) -ifneq ($(TARGET_BUILD_PDK),true) -ifdef PRODUCT_BOOT_JARS - -intermediates := $(call intermediates-dir-for, PACKAGING, boot-jars-package-check,,COMMON) -stamp := $(intermediates)/stamp -built_boot_jars := $(foreach j, $(PRODUCT_BOOT_JARS), \ - $(call intermediates-dir-for, JAVA_LIBRARIES, $(j),,COMMON)/classes.jar) -script := build/core/tasks/check_boot_jars/check_boot_jars.py -whitelist_file := build/core/tasks/check_boot_jars/package_whitelist.txt - -$(stamp): PRIVATE_BOOT_JARS := $(built_boot_jars) -$(stamp): PRIVATE_SCRIPT := $(script) -$(stamp): PRIVATE_WHITELIST := $(whitelist_file) -$(stamp) : $(built_boot_jars) $(script) $(whitelist_file) - @echo "Check package name for $(PRIVATE_BOOT_JARS)" - $(hide) $(PRIVATE_SCRIPT) $(PRIVATE_WHITELIST) $(PRIVATE_BOOT_JARS) - $(hide) mkdir -p $(dir $@) && touch $@ - -.PHONY: check-boot-jars -check-boot-jars : $(stamp) - -# Run check-boot-jars by default -droidcore : check-boot-jars - -endif # PRODUCT_BOOT_JARS -endif # TARGET_BUILD_PDK not true -endif # SKIP_BOOT_JARS_CHECK not true diff --git a/core/tasks/check_boot_jars/check_boot_jars.py b/core/tasks/check_boot_jars/check_boot_jars.py deleted file mode 100755 index 89d9ee82706..00000000000 --- a/core/tasks/check_boot_jars/check_boot_jars.py +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env python - -""" -Check boot jars. - -Usage: check_boot_jars.py ... -""" -import logging -import os.path -import re -import subprocess -import sys - - -# The compiled whitelist RE. -whitelist_re = None - - -def LoadWhitelist(filename): - """ Load and compile whitelist regular expressions from filename. - """ - lines = [] - with open(filename, 'r') as f: - for line in f: - line = line.strip() - if not line or line.startswith('#'): - continue - lines.append(line) - combined_re = r'^(%s)$' % '|'.join(lines) - global whitelist_re - try: - whitelist_re = re.compile(combined_re) - except re.error: - logging.exception( - 'Cannot compile package whitelist regular expression: %r', - combined_re) - whitelist_re = None - return False - return True - - -def CheckJar(jar): - """Check a jar file. - """ - # Get the list of files inside the jar file. - p = subprocess.Popen(args='jar tf %s' % jar, - stdout=subprocess.PIPE, shell=True) - stdout, _ = p.communicate() - if p.returncode != 0: - return False - items = stdout.split() - for f in items: - if f.endswith('.class'): - package_name = os.path.dirname(f) - package_name = package_name.replace('/', '.') - # Skip class without a package name - if package_name and not whitelist_re.match(package_name): - print >> sys.stderr, ('Error: %s: unknown package name of class file %s' - % (jar, f)) - return False - return True - - -def main(argv): - if len(argv) < 2: - print __doc__ - sys.exit(1) - - if not LoadWhitelist(argv[0]): - sys.exit(1) - - passed = True - for jar in argv[1:]: - if not CheckJar(jar): - passed = False - if not passed: - return 1 - - return 0 - - -if __name__ == '__main__': - main(sys.argv[1:]) diff --git a/core/tasks/check_boot_jars/package_whitelist.txt b/core/tasks/check_boot_jars/package_whitelist.txt deleted file mode 100644 index 4d6261572e4..00000000000 --- a/core/tasks/check_boot_jars/package_whitelist.txt +++ /dev/null @@ -1,214 +0,0 @@ -# Boot jar package name whitelist. -# Each line is interpreted as a regular expression. - -################################################### -# core-libart.jar -java\.awt\.font -java\.beans -java\.io -java\.lang -java\.lang\.annotation -java\.lang\.ref -java\.lang\.reflect -java\.math -java\.net -java\.nio -java\.nio\.channels -java\.nio\.channels\.spi -java\.nio\.charset -java\.nio\.charset\.spi -java\.security -java\.security\.acl -java\.security\.cert -java\.security\.interfaces -java\.security\.spec -java\.sql -java\.text -java\.util -java\.util\.concurrent -java\.util\.concurrent\.atomic -java\.util\.concurrent\.locks -java\.util\.jar -java\.util\.logging -java\.util\.prefs -java\.util\.regex -java\.util\.zip -javax\.crypto -javax\.crypto\.interfaces -javax\.crypto\.spec -javax\.net -javax\.net\.ssl -javax\.security\.auth -javax\.security\.auth\.callback -javax\.security\.auth\.login -javax\.security\.auth\.x500 -javax\.security\.cert -javax\.sql -javax\.xml -javax\.xml\.datatype -javax\.xml\.namespace -javax\.xml\.parsers -javax\.xml\.transform -javax\.xml\.transform\.dom -javax\.xml\.transform\.sax -javax\.xml\.transform\.stream -javax\.xml\.validation -javax\.xml\.xpath -sun\.misc -org\.w3c\.dom -org\.w3c\.dom\.ls -org\.w3c\.dom\.traversal - -# TODO: Move these internal org.apache.harmony classes to libcore.* -org\.apache\.harmony\.crypto\.internal -org\.apache\.harmony\.dalvik -org\.apache\.harmony\.dalvik\.ddmc -org\.apache\.harmony\.luni\.internal\.util -org\.apache\.harmony\.security -org\.apache\.harmony\.security\.asn1 -org\.apache\.harmony\.security\.fortress -org\.apache\.harmony\.security\.pkcs10 -org\.apache\.harmony\.security\.pkcs7 -org\.apache\.harmony\.security\.pkcs8 -org\.apache\.harmony\.security\.provider\.crypto -org\.apache\.harmony\.security\.utils -org\.apache\.harmony\.security\.x501 -org\.apache\.harmony\.security\.x509 -org\.apache\.harmony\.security\.x509\.tsp -org\.apache\.harmony\.xml -org\.apache\.harmony\.xml\.dom -org\.apache\.harmony\.xml\.parsers - -org\.json -org\.xmlpull\.v1 -org\.xmlpull\.v1\.sax2 - -# TODO: jarjar org.kxml2.io to com.android org\.kxml2\.io -org\.kxml2\.io -org\.xml -org\.xml\.sax -org\.xml\.sax\.ext -org\.xml\.sax\.helpers - -dalvik\..* -libcore\..* -android\..* -com\.android\..* - - -################################################### -# core-junit.jar -junit\.extensions -junit\.framework - - -################################################### -# ext.jar -# TODO: jarjar javax.sip to com.android -javax\.sip -javax\.sip\.address -javax\.sip\.header -javax\.sip\.message - -# TODO: jarjar org.apache.commons to com.android -org\.apache\.commons\.codec -org\.apache\.commons\.codec\.binary -org\.apache\.commons\.codec\.language -org\.apache\.commons\.codec\.net -org\.apache\.commons\.logging -org\.apache\.commons\.logging\.impl -org\.apache\.http -org\.apache\.http\.auth -org\.apache\.http\.auth\.params -org\.apache\.http\.client -org\.apache\.http\.client\.entity -org\.apache\.http\.client\.methods -org\.apache\.http\.client\.params -org\.apache\.http\.client\.protocol -org\.apache\.http\.client\.utils -org\.apache\.http\.conn -org\.apache\.http\.conn\.params -org\.apache\.http\.conn\.routing -org\.apache\.http\.conn\.scheme -org\.apache\.http\.conn\.ssl -org\.apache\.http\.conn\.util -org\.apache\.http\.cookie -org\.apache\.http\.cookie\.params -org\.apache\.http\.entity -org\.apache\.http\.impl -org\.apache\.http\.impl\.auth -org\.apache\.http\.impl\.client -org\.apache\.http\.impl\.client -org\.apache\.http\.impl\.conn -org\.apache\.http\.impl\.conn\.tsccm -org\.apache\.http\.impl\.cookie -org\.apache\.http\.impl\.entity -org\.apache\.http\.impl\.io -org\.apache\.http\.impl\.io -org\.apache\.http\.io -org\.apache\.http\.message -org\.apache\.http\.params -org\.apache\.http\.protocol -org\.apache\.http\.util - -# TODO: jarjar gov.nist to com.android -gov\.nist\.core -gov\.nist\.core\.net -gov\.nist\.javax\.sip -gov\.nist\.javax\.sip\.address -gov\.nist\.javax\.sip\.clientauthutils -gov\.nist\.javax\.sip\.header -gov\.nist\.javax\.sip\.header\.extensions -gov\.nist\.javax\.sip\.header\.ims -gov\.nist\.javax\.sip\.message -gov\.nist\.javax\.sip\.parser -gov\.nist\.javax\.sip\.parser\.extensions -gov\.nist\.javax\.sip\.parser\.ims -gov\.nist\.javax\.sip\.stack - -org\.ccil\.cowan\.tagsoup -org\.ccil\.cowan\.tagsoup\.jaxp - -################################################### -# framework.jar -javax\.microedition\.khronos\.opengles -javax\.microedition\.khronos\.egl - -android - - -################################################### -# telephony-common.jar -com\.google\..* - - -################################################### -# apache-xml.jar -org\.apache\.xml\.res -org\.apache\.xml\.utils -org\.apache\.xml\.utils\.res -org\.apache\.xml\.dtm -org\.apache\.xml\.dtm\.ref -org\.apache\.xml\.dtm\.ref\.dom2dtm -org\.apache\.xml\.dtm\.ref\.sax2dtm -org\.apache\.xml\.serializer -org\.apache\.xml\.serializer\.utils -org\.apache\.xml\.serializer\.dom3 -org\.apache\.xpath -org\.apache\.xpath\.operations -org\.apache\.xpath\.domapi -org\.apache\.xpath\.functions -org\.apache\.xpath\.res -org\.apache\.xpath\.axes -org\.apache\.xpath\.objects -org\.apache\.xpath\.patterns -org\.apache\.xpath\.jaxp -org\.apache\.xpath\.compiler -org\.apache\.xalan -org\.apache\.xalan\.res -org\.apache\.xalan\.templates -org\.apache\.xalan\.serialize -org\.apache\.xalan\.extensions -org\.apache\.xalan\.processor -org\.apache\.xalan\.transformer -org\.apache\.xalan\.xslt From 74d74a43a3b070875e245b9b89e12e2397a6ccec Mon Sep 17 00:00:00 2001 From: Ondrej Kubik Date: Fri, 17 Jul 2015 17:02:13 +0100 Subject: [PATCH 1056/1096] Adding extra build options bootimage-nodeps works as expected Build options: bootimage-nodeps - rebuild boot image without dependencies, repacks ubuntu ramdisk devicepackage - build device package tarball ubunturootfsimage - build Ubuntu rootfs image ubunturootfsimage-nodeps - build Ubuntu rootfs image without dependencies ubuntucustomimage - build Ubuntu custom image if supported ubuntucustomimage-nodeps - build Ubuntu custom image if supported, without dependencies build targets for ubunturootfs image and deevice tarball Extra options for build: BOARD_USE_PREBUILT_KERNEL - do not download kernel from ppa, use existing prebuilt BOARD_USE_LOCAL_INITRD - do not download initrd from ppa, use existing from git repo BOARD_OVERLAY_INITRD - debuging option to overlay initrd in ubuntu ramdisk DEVICE_PACKAGE_OVERLAY - overlay to be included in the device package tarball UBUNTU_ROOTFS_PACKAGES - packages to be included in Ubuntu rootfs image UBUNTU_CUSTOM_PACKAGES - packages to be included in Ubuntu custom image if present Change-Id: Ic1ffd1b7186d094be1ef5ea449332e0e973ffec1 Signed-off-by: Ondrej Kubik --- core/Makefile | 180 ++++++++++++++++-- core/config.mk | 1 + core/envsetup.mk | 16 +- core/main.mk | 12 ++ core/product.mk | 1 + tools/releasetools/build_image.py | 31 ++- tools/releasetools/common.py | 2 + .../device_package_from_target_files.sh | 151 +++++++++++++++ 8 files changed, 378 insertions(+), 16 deletions(-) create mode 100755 tools/releasetools/device_package_from_target_files.sh diff --git a/core/Makefile b/core/Makefile index f4ce33ed01e..996faea4875 100644 --- a/core/Makefile +++ b/core/Makefile @@ -481,8 +481,11 @@ INTERNAL_RAMDISK_FILES := $(filter $(TARGET_ROOT_OUT)/%, \ $(ALL_DEFAULT_INSTALLED_MODULES)) # Default ramdisk comes now from Ubuntu -BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img -BUILT_RAMDISK_TARGET_ANDROID := $(PRODUCT_OUT)/android-ramdisk.img +INTERNAL_UBUNTURAMDISK_FILES := \ + $(filter $(TARGET_OUT_UBUNTU_RAMDISK)/%,$(ALL_DEFAULT_INSTALLED_MODULES)) + +BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk-ubuntu.img +BUILT_RAMDISK_TARGET_ANDROID := $(PRODUCT_OUT)/ramdisk-android.img # We just build this directly to the install location. INSTALLED_RAMDISK_TARGET_ANDROID := $(BUILT_RAMDISK_TARGET_ANDROID) @@ -499,8 +502,9 @@ $(BOOT_ANDROID_RAMDISK_IMG): $(INSTALLED_RAMDISK_TARGET_ANDROID) # Download the Ubuntu Touch ramdisk from the archive TARGET_UBUNTU_INITRD_PKG := ubuntu-touch-generic-initrd TARGET_UBUNTU_INITRD_SERIES := vivid -TARGET_OUT_UBUNTU_INITRD := $(TARGET_OUT_UBUNTU)/$(TARGET_UBUNTU_INITRD_PKG) -TARGET_UBUNTU_INITRD := $(TARGET_OUT_UBUNTU_INITRD)/usr/lib/ubuntu-touch-generic-initrd/initrd.img-touch +TARGET_OUT_UBUNTU_INITRD_PKG := $(TARGET_OUT_UBUNTU)/$(TARGET_UBUNTU_INITRD_PKG) +TARGET_UBUNTU_INITRD_LP_IMG := $(TARGET_OUT_UBUNTU_INITRD_PKG)/usr/lib/ubuntu-touch-generic-initrd/initrd.img-touch +TARGET_UBUNTU_INITRD_REPO := $(PWD)/ubuntu/ubuntu_prebuilt_initrd/initrd.img-touch INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET) ifeq ($(TARGET_ARCH),x86) TARGET_UBUNTU_ARCH := i386 @@ -509,19 +513,34 @@ TARGET_UBUNTU_ARCH := armhf endif .PHONY: $(INSTALLED_RAMDISK_TARGET) -$(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) | $(MINIGZIP) +$(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) $(INTERNAL_UBUNTURAMDISK_FILES) | $(MINIGZIP) $(call pretty,"Target Ubuntu Touch ram disk: $@") - $(hide) rm -rf $(TARGET_OUT_UBUNTU_INITRD) $(TARGET_UBUNTU_ROOT_OUT) - $(hide) mkdir -p $(TARGET_OUT_UBUNTU_INITRD) $(TARGET_UBUNTU_ROOT_OUT) - $(hide) $(PULL_LP_BIN) $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD) -a $(TARGET_UBUNTU_ARCH) $(TARGET_UBUNTU_INITRD_SERIES) - $(hide) dpkg-deb -x $(TARGET_OUT_UBUNTU_INITRD)/$(TARGET_UBUNTU_INITRD_PKG)*.deb $(TARGET_OUT_UBUNTU_INITRD) - $(hide) $(ACP) $(TARGET_UBUNTU_INITRD) $@ - $(hide) cd $(TARGET_UBUNTU_ROOT_OUT) && $(MINIGZIP) -c -d $@ | cpio -id + $(hide) rm -rf $(TARGET_OUT_UBUNTU_INITRD) + $(hide) mkdir -p $(TARGET_OUT_UBUNTU_INITRD) $(TARGET_OUT_UBUNTU_INITRD_PKG) +ifdef BOARD_USE_LOCAL_INITRD + $(call pretty,"Using local initrd repo:$(TARGET_UBUNTU_INITRD_REPO)") + $(hide) $(ACP) $(TARGET_UBUNTU_INITRD_REPO) $@ +else + $(call pretty,"Downloading upstream initrd: $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD_PKG) -a $(TARGET_UBUNTU_ARCH) $(TARGET_UBUNTU_INITRD_SERIES)") + $(hide) rm -rf $(TARGET_OUT_UBUNTU_INITRD_PKG) + $(hide) mkdir -p $(TARGET_OUT_UBUNTU_INITRD_PKG) + $(hide) $(PULL_LP_BIN) $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD_PKG) -a $(TARGET_UBUNTU_ARCH) $(TARGET_UBUNTU_INITRD_SERIES) + $(hide) dpkg-deb -x $(TARGET_OUT_UBUNTU_INITRD_PKG)/$(TARGET_UBUNTU_INITRD_PKG)*.deb $(TARGET_OUT_UBUNTU_INITRD_PKG) + $(hide) $(ACP) $(TARGET_UBUNTU_INITRD_LP_IMG) $@ +endif + $(hide) cd $(TARGET_OUT_UBUNTU_INITRD) && $(MINIGZIP) -c -d $@ | cpio -id +ifdef BOARD_OVERLAY_INITRD + $(hide) if [ -d $(TARGET_OUT_UBUNTU_RAMDISK) ]; then cp -r $(TARGET_OUT_UBUNTU_RAMDISK)/* $(TARGET_OUT_UBUNTU_INITRD); fi + $(call pretty,"Repacking ubuntu ramdisk to: $@") + $(hide) cd $(TARGET_OUT_UBUNTU_INITRD) && find . | cpio -o -H newc | $(MINIGZIP) > $@ +endif .PHONY: ramdisk-nodeps ramdisk-nodeps: $(MKBOOTFS) | $(MINIGZIP) @echo "make $@: ignoring dependencies" - $(hide) $(MKBOOTFS) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $(INSTALLED_RAMDISK_TARGET) + $(call pretty,"Target Android ram disk: $@") + $(hide) $(MKBOOTFS) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $(INSTALLED_RAMDISK_TARGET_ANDROID) + $(hide) $(ACP) $(INSTALLED_RAMDISK_TARGET_ANDROID) $(BOOT_ANDROID_RAMDISK_IMG) ifneq ($(strip $(TARGET_NO_KERNEL)),true) @@ -584,6 +603,8 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKEXT2IMG) $(INTERNAL_BOOTIMAGE_FILES) .PHONY: bootimage-nodeps bootimage-nodeps: $(MKEXT2IMG) @echo "make $@: ignoring dependencies" + $(call pretty,"Repacking ubuntu ramdisk to: $(INSTALLED_RAMDISK_TARGET)") + $(hide) cd $(TARGET_OUT_UBUNTU_INITRD) && find . | cpio -o -H newc | $(MINIGZIP) > $(INSTALLED_RAMDISK_TARGET) $(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET) else ifndef BOARD_CUSTOM_BOOTIMG_MK @@ -603,6 +624,8 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOT_S .PHONY: bootimage-nodeps bootimage-nodeps: $(MKBOOTIMG) $(BOOT_SIGNER) @echo "make $@: ignoring dependencies" + $(call pretty,"Repacking ubuntu ramdisk to: $(INSTALLED_RAMDISK_TARGET)") + $(hide) cd $(TARGET_OUT_UBUNTU_INITRD) && find . | cpio -o -H newc | $(MINIGZIP) >$(INSTALLED_RAMDISK_TARGET) $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET) $(BOOT_SIGNER) /boot $(INSTALLED_BOOTIMAGE_TARGET) $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).pk8 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).x509.pem $(INSTALLED_BOOTIMAGE_TARGET) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) @@ -625,6 +648,8 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOTIM .PHONY: bootimage-nodeps bootimage-nodeps: $(MKBOOTIMG) @echo "make $@: ignoring dependencies" + $(call pretty,"Repacking ubuntu ramdisk to: $(INSTALLED_RAMDISK_TARGET)") + $(hide) cd $(TARGET_OUT_UBUNTU_INITRD) && find . | cpio -o -H newc | $(MINIGZIP) > $(INSTALLED_RAMDISK_TARGET) $(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET) $(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE)) @echo -e ${CL_INS}"Made boot image: $@"${CL_RST} @@ -802,6 +827,7 @@ INTERNAL_USERIMAGES_DEPS := ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true) INTERNAL_USERIMAGES_DEPS += $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(E2FSCK) endif +INTERNAL_USERIMAGES_DEPS += $(MKEXTUBUNTUIMG) ifeq ($(INTERNAL_USERIMAGES_USE_F2FS),true) INTERNAL_USERIMAGES_DEPS += $(MKF2FSUSERIMG) $(MAKE_F2FS) endif @@ -832,6 +858,8 @@ $(if $(BOARD_USERDATAEXTRAIMAGE_PARTITION_SIZE),$(hide) echo "userdataextra_size $(if $(BOARD_USERDATAEXTRAIMAGE_PARTITION_NAME),$(hide) echo "userdataextra_name=$(BOARD_USERDATAEXTRAIMAGE_PARTITION_NAME)" >> $(1)) $(if $(BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "cache_fs_type=$(BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_CACHEIMAGE_PARTITION_SIZE),$(hide) echo "cache_size=$(BOARD_CACHEIMAGE_PARTITION_SIZE)" >> $(1)) +$(if $(BOARD_UBUNTUROOTFSIMAGE_PARTITION_SIZE),$(hide) echo "ubuntu_rootfs_size=$(BOARD_UBUNTUROOTFSIMAGE_PARTITION_SIZE)" >> $(1)) +$(if $(BOARD_UBUNTUCUSTOMIMAGE_PARTITION_SIZE),$(hide) echo "ubuntu_custom_size=$(BOARD_UBUNTUCUSTOMIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "vendor_fs_type=$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_VENDORIMAGE_PARTITION_SIZE),$(hide) echo "vendor_size=$(BOARD_VENDORIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_VENDORIMAGE_JOURNAL_SIZE),$(hide) echo "vendor_journal_size=$(BOARD_VENDORIMAGE_JOURNAL_SIZE)" >> $(1)) @@ -841,6 +869,8 @@ $(if $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG),$(hide) echo "extfs_sparse_flag=$(IN $(if $(INTERNAL_TRANSPARENT_COMPRESSION_METHOD),$(hide) echo "transparent_compression_method=$(INTERNAL_TRANSPARENT_COMPRESSION_METHOD)" >> $(1)) $(if $(mkyaffs2_extra_flags),$(hide) echo "mkyaffs2_extra_flags=$(mkyaffs2_extra_flags)" >> $(1)) $(hide) echo "selinux_fc=$(SELINUX_FC)" >> $(1) +$(hide) echo "ubuntu_rootfs_content=$(TARGET_OUT_UBUNTU_ROOTFS).content" >> $(1) +$(hide) echo "ubuntu_custom_content=$(TARGET_OUT_UBUNTU_CUSTOM).content" >> $(1) $(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),$(hide) echo "verity=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)" >> $(1)) $(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),$(hide) echo "verity_key=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY)" >> $(1)) $(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),$(hide) echo "verity_signer_cmd=$(VERITY_SIGNER)" >> $(1)) @@ -1350,6 +1380,131 @@ $(INSTALLED_USERDATATARBALL_TARGET): $(FS_GET_STATS) $(INTERNAL_USERDATAIMAGE_FI userdatatarball-nodeps: $(FS_GET_STATS) $(build-userdatatarball-target) +# ----------------------------------------------------------------- +# Ubuntu Rootfs Image - Start +INTERNAL_UBUNTUROOTFSIMAGE_FILES := \ + $(filter $(TARGET_OUT_UBUNTU_ROOTFS)/%,$(ALL_DEFAULT_INSTALLED_MODULES)) + +ubuntu_rootfs_image_intermediates := \ + $(call intermediates-dir-for,PACKAGING,ubunturootfs) +BUILT_UBUNTU_ROOTFS_IMAGE_TARGET := $(PRODUCT_OUT)/ubunturootfs.img + +define build-ubunturootfs-image-target + $(call pretty,"Target Ubuntu rootfs fs image: $(INSTALLED_UBUNTU_ROOTFS_IMAGE_TARGET)") + @mkdir -p $(TARGET_OUT_UBUNTU_ROOTFS) + @mkdir -p $(ubuntu_rootfs_image_intermediates) && rm -rf $(ubuntu_rootfs_image_intermediates)/ubuntu_rootfs_image_info.txt + $(call generate-userimage-prop-dictionary, $(ubuntu_rootfs_image_intermediates)/ubuntu_rootfs_image_info.txt, skip_fsck=true) + $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \ + ./build/tools/releasetools/build_image.py \ + $(TARGET_OUT_UBUNTU_ROOTFS) $(ubuntu_rootfs_image_intermediates)/ubuntu_rootfs_image_info.txt $(INSTALLED_UBUNTU_ROOTFS_IMAGE_TARGET) + $(hide) $(call assert-max-image-size,$(INSTALLED_UBUNTU_ROOTFS_IMAGE_TARGET),$(BOARD_UBUNTUIMAGE_PARTITION_SIZE),yaffs) + $(if $(BOARD_UBUNTUROOTFSIMAGE_PARTITION_SIZE),, + $(hide) mv $(INSTALLED_UBUNTU_ROOTFS_IMAGE_TARGET) $(PRODUCT_OUT)/system.img) +endef + +# We just build this directly to the install location. +ROOTFS_PACKAGES := $(ubuntu_rootfs_image_intermediates)/ubuntu_rootfs_image_content +INSTALLED_UBUNTU_ROOTFS_IMAGE_TARGET := $(BUILT_UBUNTU_ROOTFS_IMAGE_TARGET) +$(INSTALLED_UBUNTU_ROOTFS_IMAGE_TARGET): $(INTERNAL_USERIMAGES_DEPS) \ + $(INTERNAL_UBUNTUROOTFSIMAGE_FILES) $(INSTALL_DEVICE_PACKAGE_TARGET) + +UBUNTU_PREPARE_PACKAGES := ubuntu/prebuilts/prepare-ubuntu-packages-for-build +UBUNTU_UNPACK_ROOTFS := ubuntu/prebuilts/unpack_rootfs.sh +.PHONY: ubunturootfsimage +ubunturootfsimage: $(INSTALLED_UBUNTU_ROOTFS_IMAGE_TARGET) + @mkdir -p $(TARGET_OUT_UBUNTU_ROOTFS) + @mkdir -p $(ubuntu_rootfs_image_intermediates) + $(hide) if [ -z "$$UBUNTU_ROOTFS_PACKAGES" ]; then \ + ROOTFS_PACKAGES=$(ROOTFS_PACKAGES) $(SHELL) $(UBUNTU_PREPARE_PACKAGES); \ + else \ + echo "export UBUNTU_ROOTFS_PACKAGES=\"$$UBUNTU_ROOTFS_PACKAGES\"" > $(ROOTFS_PACKAGES);\ + fi + @echo "Unpacking Ubuntu rootfs packages..." + $(hide) $(SHELL) $(UBUNTU_UNPACK_ROOTFS) $(TARGET_OUT_UBUNTU_ROOTFS) $(ROOTFS_PACKAGES) + $(hide) if [ -d $(devicepackage_intermediates)/system ]; then\ + cp -r $(devicepackage_intermediates)/system/. $(TARGET_OUT_UBUNTU_ROOTFS);\ + else \ + cp $(BUILT_SYSTEMIMAGE) $(TARGET_OUT_UBUNTU_ROOTFS)/var/lib/lxc/android/;\ + fi + $(build-ubunturootfs-image-target) + +.PHONY: ubunturootfsimage-nodeps +ubunturootfsimage-nodeps: | $(INTERNAL_USERIMAGES_DEPS) + $(build-ubunturootfs-image-target) + +# Ubuntu Rootfs Image - End + +# ----------------------------------------------------------------- +# Ubuntu Custom Image - Start +INTERNAL_UBUNTUCUSTOMIMAGE_FILES := \ + $(filter $(TARGET_OUT_UBUNTU_CUSTOM)/%,$(ALL_DEFAULT_INSTALLED_MODULES)) + +ubuntu_custom_image_intermediates := \ + $(call intermediates-dir-for,PACKAGING,ubuntucustom) +BUILT_UBUNTU_CUSTOM_IMAGE_TARGET := $(PRODUCT_OUT)/ubuntucustom$(UBUNTU_CUSTOM_TAG).img + +define build-ubuntucustom-image-target + $(call pretty,"Target Ubuntu custom fs image: $(INSTALLED_UBUNTU_CUSTOM_IMAGE_TARGET)") + @mkdir -p $(TARGET_OUT_UBUNTU_CUSTOM) + @mkdir -p $(ubuntu_custom_image_intermediates) && rm -rf $(ubuntu_custom_image_intermediates)/ubuntu_custom_image_info.txt + $(call generate-userimage-prop-dictionary, $(ubuntu_custom_image_intermediates)/ubuntu_custom_image_info.txt, skip_fsck=true) + $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \ + ./build/tools/releasetools/build_image.py \ + $(TARGET_OUT_UBUNTU_CUSTOM) $(ubuntu_custom_image_intermediates)/ubuntu_custom_image_info.txt $(INSTALLED_UBUNTU_CUSTOM_IMAGE_TARGET) + $(hide) $(call assert-max-image-size,$(INSTALLED_UBUNTU_CUSTOM_IMAGE_TARGET),$(BOARD_UCUSTOMIMAGE_PARTITION_SIZE),yaffs) +endef + +# We just build this directly to the install location. +INSTALLED_UBUNTU_CUSTOM_IMAGE_TARGET := $(BUILT_UBUNTU_CUSTOM_IMAGE_TARGET) +$(INSTALLED_UBUNTU_CUSTOM_IMAGE_TARGET): $(INTERNAL_USERIMAGES_DEPS) \ + $(INTERNAL_UBUNTUCUSTOMIMAGE_FILES) + $(build-ubuntucustom-image-target) + +.PHONY: ubuntucustomimage-nodeps +ubuntucustomimage-nodeps: | $(INTERNAL_USERIMAGES_DEPS) + $(build-ubuntucustom-image-target) + +# Ubuntu Custom Image - End + +# Ubuntu device package - Start +# Default ramdisk comes now from Ubuntu +INTERNAL_DEVICE_PACKAGE_FILES := \ + $(filter $(PRODUCT_OUT)/pre-update.sh,$(ALL_DEFAULT_INSTALLED_MODULES)) \ + $(filter $(PRODUCT_OUT)/post-update.sh,$(ALL_DEFAULT_INSTALLED_MODULES)) + +INSTALL_DEVICE_PACKAGE_TARGET := $(PRODUCT_OUT)/device.tar.xz +BUILT_UBUNTU_DEVICE_PACKAGE_TOOL := build/tools/releasetools/device_package_from_target_files.sh +devicepackage_intermediates := \ + $(call intermediates-dir-for,PACKAGING,devicepackage) + +define build-ubuntu-device-package-target + $(call pretty,"Creating Target Ubuntu device package: $(INSTALL_DEVICE_PACKAGE_TARGET)") + $(hide) PWD="$(PWD)" \ + PRODUCT_OUT="$(PRODUCT_OUT)" \ + BUILT_SYSTEMIMAGE="$(BUILT_SYSTEMIMAGE)" \ + PACKAGING_INTERMEDIATES="$(devicepackage_intermediates)" \ + DEVICE_PACKAGE_TARGET="$(INSTALL_DEVICE_PACKAGE_TARGET)" \ + RAW_PARTITIONS="$(INSTALLED_BOOTIMAGE_TARGET):boot.img \ + $(INSTALLED_RECOVERYIMAGE_TARGET):recovery.img" \ + DEVICE_BUILD_ID="true" \ + IGNORE_BLOBS="ubunturootfs.img ubuntucustom.img system.img cache.img userdata.img boot.img recovery.img" \ + DEVICE_PACKAGE_OVERLAY=$(DEVICE_PACKAGE_OVERLAY) \ + KEYPATH=$(KEYPATH) \ + $(SHELL) $(BUILT_UBUNTU_DEVICE_PACKAGE_TOOL) + $(call pretty,"Target device package for Ubuntu: $@") +endef + +$(INSTALL_DEVICE_PACKAGE_TARGET): $(INTERNAL_USERIMAGES_DEPS) \ + $(INSTALLED_SYSTEMIMAGE) \ + $(INSTALLED_BOOTIMAGE_TARGET) \ + $(INSTALLED_RECOVERYIMAGE_TARGET) \ + $(INTERNAL_DEVICE_PACKAGE_FILES) + $(build-ubuntu-device-package-target) + +.PHONY: devicepackage-nodeps +devicepackage-nodeps: | $(INTERNAL_USERIMAGES_DEPS) + $(build-ubuntu-device-package-target) +# Ubuntu device package - End # ----------------------------------------------------------------- # cache partition image @@ -1441,6 +1596,7 @@ DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ $(HOST_OUT_EXECUTABLES)/imgdiff \ $(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar \ $(HOST_OUT_EXECUTABLES)/mkuserimg.sh \ + $(HOST_OUT_EXECUTABLES)/mkubuntuimg.sh \ $(HOST_OUT_EXECUTABLES)/make_ext4fs \ $(HOST_OUT_EXECUTABLES)/simg2img \ $(HOST_OUT_EXECUTABLES)/e2fsck \ diff --git a/core/config.mk b/core/config.mk index 8efab629673..7d1a61b10ac 100644 --- a/core/config.mk +++ b/core/config.mk @@ -403,6 +403,7 @@ FS_GET_STATS := $(HOST_OUT_EXECUTABLES)/fs_get_stats$(HOST_EXECUTABLE_SUFFIX) MKEXT2IMG := $(HOST_OUT_EXECUTABLES)/genext2fs$(HOST_EXECUTABLE_SUFFIX) MAKE_EXT4FS := $(HOST_OUT_EXECUTABLES)/make_ext4fs$(HOST_EXECUTABLE_SUFFIX) MKEXTUSERIMG := $(HOST_OUT_EXECUTABLES)/mkuserimg.sh +MKEXTUBUNTUIMG := $(HOST_OUT_EXECUTABLES)/mkubuntuimg.sh MAKE_F2FS := $(HOST_OUT_EXECUTABLES)/make_f2fs$(HOST_EXECUTABLE_SUFFIX) MKF2FSUSERIMG := $(HOST_OUT_EXECUTABLES)/mkf2fsuserimg.sh MKEXT2BOOTIMG := external/genext2fs/mkbootimg_ext2.sh diff --git a/core/envsetup.mk b/core/envsetup.mk index 55ce49a8665..7035d1b9f91 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -52,6 +52,12 @@ ifneq (,$(findstring CYGWIN,$(UNAME))) HOST_OS := windows endif +# On OS X by default using local initrd and prebuilt kernel +ifeq ($(HOST_OS),darwin) + BOARD_USE_PREBUILT_KERNEL := true + BOARD_USE_LOCAL_INITRD := true +endif + # BUILD_OS is the real host doing the build. BUILD_OS := $(HOST_OS) @@ -122,6 +128,10 @@ TARGET_COPY_OUT_DATA := data TARGET_COPY_OUT_OEM := oem TARGET_COPY_OUT_ROOT := root TARGET_COPY_OUT_RECOVERY := recovery +TARGET_COPY_OUT_UBUNTU_INITRD := initrd +TARGET_COPY_OUT_UBUNTU_RAMDISK := ramdisk +TARGET_COPY_OUT_UBUNTU_CUSTOM := custom +TARGET_COPY_OUT_UBUNTU_ROOTFS := rootfs ########################################### # Define TARGET_COPY_OUT_VENDOR to a placeholder, for at this point # we don't know if the device wants to build a separate vendor.img @@ -375,8 +385,10 @@ TARGET_ROOT_OUT_BIN := $(TARGET_ROOT_OUT)/bin TARGET_ROOT_OUT_SBIN := $(TARGET_ROOT_OUT)/sbin TARGET_ROOT_OUT_ETC := $(TARGET_ROOT_OUT)/etc TARGET_ROOT_OUT_USR := $(TARGET_ROOT_OUT)/usr - -TARGET_UBUNTU_ROOT_OUT := $(PRODUCT_OUT)/ubuntu-root +TARGET_OUT_UBUNTU_RAMDISK := $(TARGET_OUT_UBUNTU)/$(TARGET_COPY_OUT_UBUNTU_RAMDISK) +TARGET_OUT_UBUNTU_INITRD := $(TARGET_OUT_UBUNTU)/$(TARGET_COPY_OUT_UBUNTU_INITRD) +TARGET_OUT_UBUNTU_ROOTFS := $(TARGET_OUT_UBUNTU)/$(TARGET_COPY_OUT_UBUNTU_ROOTFS) +TARGET_OUT_UBUNTU_CUSTOM := $(TARGET_OUT_UBUNTU)/$(TARGET_COPY_OUT_UBUNTU_CUSTOM) TARGET_RECOVERY_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_RECOVERY) TARGET_RECOVERY_ROOT_OUT := $(TARGET_RECOVERY_OUT)/root diff --git a/core/main.mk b/core/main.mk index c4e4d26e767..dd4affe6f54 100644 --- a/core/main.mk +++ b/core/main.mk @@ -78,6 +78,9 @@ dont_bother_goals := clean clobber dataclean installclean \ userdataimage-nodeps userdatatarball-nodeps \ cacheimage-nodeps \ vendorimage-nodeps \ + ubunturootfsimage-nodeps \ + ubuntucustomimage-nodeps \ + devicepackage \ ramdisk-nodeps \ bootimage-nodeps @@ -1024,6 +1027,15 @@ cacheimage: $(INSTALLED_CACHEIMAGE_TARGET) .PHONY: vendorimage vendorimage: $(INSTALLED_VENDORIMAGE_TARGET) +.PHONY: ubuntucustomimage +ubuntucustomimage: $(INSTALLED_UBUNTU_CUSTOM_IMAGE_TARGET) + +.PHONY: ubunturootfsimage +ubunturootfsimage: $(INSTALLED_UBUNTU_ROOTFS_IMAGE_TARGET) + +.PHONY: devicepackage +devicepackage: $(INSTALL_DEVICE_PACKAGE_TARGET) + .PHONY: bootimage bootimage: $(INSTALLED_BOOTIMAGE_TARGET) diff --git a/core/product.mk b/core/product.mk index feeba5602b8..749705b0f78 100644 --- a/core/product.mk +++ b/core/product.mk @@ -304,6 +304,7 @@ _product_stash_var_list += \ BOARD_USES_GENERIC_AUDIO \ BOARD_KERNEL_CMDLINE \ BOARD_KERNEL_BASE \ + BOARD_USE_PREBUILT_KERNEL \ BOARD_HAVE_BLUETOOTH \ BOARD_VENDOR_USE_AKMD \ BOARD_EGL_CFG \ diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 9a57b7aaaf8..0510d205e74 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -220,6 +220,7 @@ def BuildImage(in_dir, prop_dict, out_file, build_command = [] fs_type = prop_dict.get("fs_type", "") run_fsck = False + ubuntu_image = (os.path.basename(out_file).startswith("ubuntu")) is_verity_partition = "verity_block_device" in prop_dict verity_supported = prop_dict.get("verity") == "true" @@ -233,10 +234,16 @@ def BuildImage(in_dir, prop_dict, out_file, prop_dict["original_partition_size"] = str(partition_size) if fs_type.startswith("ext"): - build_command = ["mkuserimg.sh"] + if ubuntu_image: + build_command = ["mkubuntuimg.sh"] + else: + build_command = ["mkuserimg.sh"] if "extfs_sparse_flag" in prop_dict: build_command.append(prop_dict["extfs_sparse_flag"]) #run_fsck = True + if not ubuntu_image and "extfs_inodes" in prop_dict: + build_command.append("-i") + build_command.append(prop_dict["extfs_inodes"]) if "is_userdataextra" in prop_dict: build_command.extend([in_dir, out_file, fs_type, "data"]) @@ -256,8 +263,10 @@ def BuildImage(in_dir, prop_dict, out_file, build_command.extend(["-M", prop_dict["transparent_compression_method"]]) if fc_config is not None: build_command.append(fc_config) - elif "selinux_fc" in prop_dict: + elif not ubuntu_image and "selinux_fc" in prop_dict: build_command.append(prop_dict["selinux_fc"]) + elif ubuntu_image and "fs_content" in prop_dict: + build_command.append(prop_dict["fs_content"]) elif fs_type.startswith("f2fs"): build_command = ["mkf2fsuserimg.sh"] build_command.extend([out_file, prop_dict["partition_size"]]) @@ -353,6 +362,19 @@ def copy_prop(src_p, dest_p): copy_prop("fs_type", "fs_type") copy_prop("oem_size", "partition_size") copy_prop("oem_journal_size", "journal_size") + elif mount_point == "ubuntu-custom": + copy_prop("fs_type", "fs_type") + copy_prop("ubuntu_custom_size", "partition_size") + copy_prop("ubuntu_custom_content", "fs_content") + # Actual mount point for Ubuntu is also custom, correct it + del d["mount_point"] + d["mount_point"] = "custom" + del d["selinux_fc"] + elif mount_point == "/": + copy_prop("fs_type", "fs_type") + copy_prop("ubuntu_rootfs_size", "partition_size") + copy_prop("ubuntu_rootfs_content", "fs_content") + del d["selinux_fc"] return d @@ -391,6 +413,11 @@ def main(argv): mount_point = "cache" elif image_filename == "vendor.img": mount_point = "vendor" + # Allow Ubuntu custom images to have custom tags + elif image_filename.startswith("ubuntucustom") and image_filename.endswith(".img"): + mount_point = "ubuntu-custom" + elif image_filename == "ubunturootfs.img": + mount_point = "/" elif image_filename == "oem.img": mount_point = "oem" else: diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 8ef97166c50..60c59e607f8 100755 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -177,6 +177,8 @@ def makeint(key): makeint("vendor_size") makeint("userdata_size") makeint("cache_size") + makeint("ubuntu_custom_size") + makeint("ubuntu_rootfs_size") makeint("recovery_size") makeint("boot_size") makeint("fstab_version") diff --git a/tools/releasetools/device_package_from_target_files.sh b/tools/releasetools/device_package_from_target_files.sh new file mode 100755 index 00000000000..606976ddabd --- /dev/null +++ b/tools/releasetools/device_package_from_target_files.sh @@ -0,0 +1,151 @@ +#!/bin/bash +# +# Copyright 2014 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Create Ubuntu device package with all binary blobs needed for factory images +# Script should have defined following global variables +# SOURCE_ROOT: path to the root of the source tree +# PRODUCT_OUT: product outpus relative path to SOURCE_ROOT (out/targer/product//) +# PACKAGING_INTERMEDIATES: relative path to dir to use for intermediate files (out/targer/product//obj/PACKAGING/devicepackage_intermediates) +# DEVICE_PACKAGE_TARGET: collection of pairs of targer update package file relative to SOURCE_ROOT and target name in update package +# eg: out/targer/product//boot.img:boot.img +# IGNORE_BLOBS: blobs not to be included in the device package. eg: system.img cache.img +# DEVICE_BUILD_ID: flag if to include device build ID, "true" if included +# PACKAGE_ANDROID_IMG: if defined as no, then android image will be extracted and included as device/ instead +# KEYPATH: optional path to gpg signign keys +# DEVICE_PACKAGE_OVERLAY: overlay to be added to device package + +echo "Creating Device update package" +DEVICE_PACKAGE_PARTITIONS=$PACKAGING_INTERMEDIATES/partitions +DEVICE_PACKAGE_BLOBS=$PACKAGING_INTERMEDIATES/blobs +PRODUCT_SYSTEM=$PRODUCT_OUT/system +DEVICE_PACKAGE_CONTENT="blobs partitions" +# clean old files +rm -rf $PACKAGING_INTERMEDIATES +mkdir -p $PACKAGING_INTERMEDIATES + +# determing all needed blobs to be included in the package +BLOBS_TO_FLASH=$(grep "file_name" $PRODUCT_OUT/*Android_scatter.txt | awk '{ print $2}' | grep -v "NONE") +HAS_ROOTFS=$(grep "ubunturootfs.img" $PRODUCT_OUT/*Android_scatter.txt) + +# copy all device blobs for update +mkdir -p $DEVICE_PACKAGE_BLOBS +cp $PRODUCT_OUT/*Android_scatter.txt $DEVICE_PACKAGE_BLOBS +for BLOB in $BLOBS_TO_FLASH +do + IGNORE=0 + for name in $IGNORE_BLOBS + do + if [ $name == $BLOB ]; then + IGNORE=1 + fi + done + if [ $IGNORE -eq 0 ]; then + if [ -e $PRODUCT_OUT/$BLOB ]; then + cp $PRODUCT_OUT/$BLOB $DEVICE_PACKAGE_BLOBS + fi + fi +done + +# copy supporting files if presented +if [ -n "$PRE_UPDATE_SCRIPT" -a -f $PRODUCT_OUT/$PRE_UPDATE_SCRIPT ]; then + cp $PRODUCT_OUT/$PRE_UPDATE_SCRIPT $PACKAGING_INTERMEDIATES + DEVICE_PACKAGE_CONTENT="$PRE_UPDATE_SCRIPT $DEVICE_PACKAGE_CONTENT" +fi + +if [ -n "$POST_UPDATE_SCRIPT" -a -f $PRODUCT_OUT/$POST_UPDATE_SCRIPT ]; then + cp $PRODUCT_OUT/$POST_UPDATE_SCRIPT $PACKAGING_INTERMEDIATES + DEVICE_PACKAGE_CONTENT="$POST_UPDATE_SCRIPT $DEVICE_PACKAGE_CONTENT" +fi + +# copy all device raw partitions images to update +mkdir -p $DEVICE_PACKAGE_PARTITIONS +for pair in $RAW_PARTITIONS +do + IFS=':' read src dest <<< $pair + if [ -f "$src" ]; then + echo -e "Including raw partition image $src as $dest" + cp $src $DEVICE_PACKAGE_PARTITIONS/$dest + else + echo -e "Skipping missing partition file $src" + fi + shift +done + +# Optionally generate a build ID based on the date and latest git +# commit +if [ "$DEVICE_BUILD_ID" == "true" ]; then + DEVICE_BUILD="device-build" + pushd .repo/manifests + SERIAL="$(date +%Y%m%d)-$(git describe --tags --dirty --always)" + popd + echo "$DEVICE_BUILD: $SERIAL" + echo $SERIAL >> $PACKAGING_INTERMEDIATES/$DEVICE_BUILD + DEVICE_PACKAGE_CONTENT="$DEVICE_PACKAGE_CONTENT $DEVICE_BUILD" +fi + +if [[ "$PACKAGE_ANDROID_IMG" == "no" ]]; then + # copy content of android system to device folder for packaging + echo "Packaging constent of Android system" + cp -r $PRODUCT_SYSTEM $PACKAGING_INTERMEDIATES/device + DEVICE_PACKAGE_CONTENT="$DEVICE_PACKAGE_CONTENT device" +else + echo "Packaging Android system.img for loop mounting" + # create Android system image + DEVICE_PACKAGE_LXC=$PACKAGING_INTERMEDIATES/system/var/lib/lxc/android + if [ -n "$BUILT_SYSTEMIMAGE" ]; then + mkdir -p $DEVICE_PACKAGE_LXC + cp $BUILT_SYSTEMIMAGE $DEVICE_PACKAGE_LXC + DEVICE_PACKAGE_CONTENT="$DEVICE_PACKAGE_CONTENT system" + fi +fi + +# copy file file_context +cp $PRODUCT_OUT/root/file_contexts $DEVICE_PACKAGE_BLOBS + +# copy overlay files if defined +if [ ! -z $DEVICE_PACKAGE_OVERLAY ]; then + echo "Adding overlay to the device package" + mkdir -p $PACKAGING_INTERMEDIATES/system + cp -r $DEVICE_PACKAGE_OVERLAY/. $PACKAGING_INTERMEDIATES/system/ + if [[ "$PACKAGE_ANDROID_IMG" == "no" ]]; then + DEVICE_PACKAGE_CONTENT="$DEVICE_PACKAGE_CONTENT system" + fi +fi + +# determine packing tool +if which pxz >/dev/null;then + XZ=pxz + echo "Using parallel XZ compression" +else + echo "Using single threaded XZ compression, you may want to install pxz" + XZ=xz +fi + +# if we are on OS X ignore ownership +if [ -z $(uname | grep Darwin) ]; then + TAR_OWNER_OPT=" --owner=0 --group=0 " +fi + +# create device update package +tar -C $PACKAGING_INTERMEDIATES $TAR_OWNER_OPT --use-compress-program=$XZ -cf $DEVICE_PACKAGE_TARGET $DEVICE_PACKAGE_CONTENT + +# Optionally create ASCII armored detached GPG signature for the tarball +# KEYPATH should hold the signing keys. +if [ -d "$KEYPATH" ]; then + echo "Creating GPG signature for the device tarball" + gpg --yes --homedir $KEYPATH -sba $DEVICE_PACKAGE_TARGET +fi From e8b95c4bcb0aaf14c46566d709627bf2eb6f056c Mon Sep 17 00:00:00 2001 From: Ondrej Kubik Date: Fri, 17 Jul 2015 17:16:28 +0100 Subject: [PATCH 1057/1096] Switching to nonsparse image for android system.img This streamlines developmnent, since system.img can be directly used on device without further conversion and resizing. To increase android system.img size to allow writable mount user BOARD_SYSTEMIMAGE_PARTITION_PADDING build option Size of padding is in bytes, min value is 10485760 ~10M Change-Id: I3010fcf59bc9a24773342d58a10e79e371ff2a87 Signed-off-by: Ondrej Kubik --- core/Makefile | 7 +++++-- core/product.mk | 1 + tools/releasetools/build_image.py | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index 996faea4875..43d71702331 100644 --- a/core/Makefile +++ b/core/Makefile @@ -850,7 +850,8 @@ INTERNAL_USERIMAGES_DEPS += $(SELINUX_FC) define generate-userimage-prop-dictionary $(if $(INTERNAL_USERIMAGES_EXT_VARIANT),$(hide) echo "fs_type=$(INTERNAL_USERIMAGES_EXT_VARIANT)" >> $(1)) $(if $(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "system_fs_type=$(BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) -$(if $(BOARD_SYSTEMIMAGE_PARTITION_SIZE),$(hide) echo "system_size=$(BOARD_SYSTEMIMAGE_PARTITION_SIZE)" >> $(1)) +# Use actual size of the system to create directly right size of the system, with spare 10M. Avoid using du -b since it's not support on BSD +$(hide) echo "system_size=$$(du -sk $(TARGET_OUT) | awk '{print $$1*1024+$(if $(BOARD_SYSTEMIMAGE_PARTITION_PADDING),$(BOARD_SYSTEMIMAGE_PARTITION_PADDING),10485760)}')" >> $(1) $(if $(BOARD_SYSTEMIMAGE_JOURNAL_SIZE),$(hide) echo "system_journal_size=$(BOARD_SYSTEMIMAGE_JOURNAL_SIZE)" >> $(1)) $(if $(BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "userdata_fs_type=$(BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_USERDATAIMAGE_PARTITION_SIZE),$(hide) echo "userdata_size=$(BOARD_USERDATAIMAGE_PARTITION_SIZE)" >> $(1)) @@ -858,7 +859,9 @@ $(if $(BOARD_USERDATAEXTRAIMAGE_PARTITION_SIZE),$(hide) echo "userdataextra_size $(if $(BOARD_USERDATAEXTRAIMAGE_PARTITION_NAME),$(hide) echo "userdataextra_name=$(BOARD_USERDATAEXTRAIMAGE_PARTITION_NAME)" >> $(1)) $(if $(BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "cache_fs_type=$(BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_CACHEIMAGE_PARTITION_SIZE),$(hide) echo "cache_size=$(BOARD_CACHEIMAGE_PARTITION_SIZE)" >> $(1)) -$(if $(BOARD_UBUNTUROOTFSIMAGE_PARTITION_SIZE),$(hide) echo "ubuntu_rootfs_size=$(BOARD_UBUNTUROOTFSIMAGE_PARTITION_SIZE)" >> $(1)) +# if we don't have dedicated Ubuntu rootfs partition, use system instead +$(if $(BOARD_UBUNTUROOTFSIMAGE_PARTITION_SIZE),$(hide) echo "ubuntu_rootfs_size=$(BOARD_UBUNTUROOTFSIMAGE_PARTITION_SIZE)" >> $(1), + $(hide) echo "ubuntu_rootfs_size=$(BOARD_SYSTEMIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_UBUNTUCUSTOMIMAGE_PARTITION_SIZE),$(hide) echo "ubuntu_custom_size=$(BOARD_UBUNTUCUSTOMIMAGE_PARTITION_SIZE)" >> $(1)) $(if $(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "vendor_fs_type=$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE)" >> $(1)) $(if $(BOARD_VENDORIMAGE_PARTITION_SIZE),$(hide) echo "vendor_size=$(BOARD_VENDORIMAGE_PARTITION_SIZE)" >> $(1)) diff --git a/core/product.mk b/core/product.mk index 749705b0f78..e391f35d104 100644 --- a/core/product.mk +++ b/core/product.mk @@ -311,6 +311,7 @@ _product_stash_var_list += \ BOARD_BOOTIMAGE_PARTITION_SIZE \ BOARD_RECOVERYIMAGE_PARTITION_SIZE \ BOARD_SYSTEMIMAGE_PARTITION_SIZE \ + BOARD_SYSTEMIMAGE_PARTITION_PADDING \ BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE \ BOARD_USERDATAIMAGE_PARTITION_SIZE \ BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE \ diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 0510d205e74..28933ec9025 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -406,6 +406,8 @@ def main(argv): image_filename = os.path.basename(out_file) mount_point = "" if image_filename == "system.img": + # don't use sparse option for Android system.img + glob_dict.pop("extfs_sparse_flag", None) mount_point = "system" elif image_filename == "userdata.img": mount_point = "data" From e80048582814e0d7fa42ae4cbdae8963a501c9c9 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Mon, 9 Nov 2015 01:09:05 +0100 Subject: [PATCH 1058/1096] Add necessarily projects for CM & Oneplus one --- core/main.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/main.mk b/core/main.mk index dd4affe6f54..66f6133d1cf 100644 --- a/core/main.mk +++ b/core/main.mk @@ -522,6 +522,7 @@ subdirs := \ external/libselinux \ external/libsepol \ external/libunwind \ + external/lz4 \ external/mdnsresponder \ external/mksh \ external/openssl \ @@ -589,6 +590,7 @@ subdirs := \ system/media/camera \ system/media/audio_route \ system/netd \ + system/qcom \ system/su \ system/security/keystore \ system/security/softkeymaster @@ -604,6 +606,9 @@ subdirs += \ device/generic \ device/lge \ device/samsung \ + device/qcom/common \ + vendor/oneplus/bacon \ + vendor/oppo/msm8974-common \ vendor/asus \ vendor/audience \ vendor/broadcom \ From c6635fd7e4ae80fa120a44dd8de2c82d8bd8f8ef Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Mon, 8 Feb 2016 02:39:16 +0100 Subject: [PATCH 1059/1096] Remove java build, since ubuntu touch does not use the java parts --- core/java.mk | 521 --------------------------------------- core/java_library.mk | 114 --------- core/package_internal.mk | 2 +- 3 files changed, 1 insertion(+), 636 deletions(-) delete mode 100644 core/java.mk diff --git a/core/java.mk b/core/java.mk deleted file mode 100644 index 3f5a9fbc3d1..00000000000 --- a/core/java.mk +++ /dev/null @@ -1,521 +0,0 @@ -# Requires: -# LOCAL_MODULE_SUFFIX -# LOCAL_MODULE_CLASS -# all_res_assets - -ifeq ($(TARGET_BUILD_PDK),true) -ifeq ($(TARGET_BUILD_PDK_JAVA_PLATFORM),) -# LOCAL_SDK not defined or set to current -ifeq ($(filter-out current,$(LOCAL_SDK_VERSION)),) -LOCAL_SDK_VERSION := $(PDK_BUILD_SDK_VERSION) -endif -endif # !PDK_JAVA -endif #PDK - -LOCAL_NO_STANDARD_LIBRARIES:=$(strip $(LOCAL_NO_STANDARD_LIBRARIES)) -LOCAL_SDK_VERSION:=$(strip $(LOCAL_SDK_VERSION)) - -ifneq ($(LOCAL_SDK_VERSION),) - ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true) - $(error $(LOCAL_PATH): Must not define both LOCAL_NO_STANDARD_LIBRARIES and LOCAL_SDK_VERSION) - else - ifeq ($(strip $(filter $(LOCAL_SDK_VERSION),$(TARGET_AVAILABLE_SDK_VERSIONS))),) - $(error $(LOCAL_PATH): Invalid LOCAL_SDK_VERSION '$(LOCAL_SDK_VERSION)' \ - Choices are: $(TARGET_AVAILABLE_SDK_VERSIONS)) - else - ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),current) - # Use android_stubs_current if LOCAL_SDK_VERSION is current and no TARGET_BUILD_APPS. - LOCAL_JAVA_LIBRARIES := android_stubs_current $(LOCAL_JAVA_LIBRARIES) - else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),system_current) - LOCAL_JAVA_LIBRARIES := android_system_stubs_current $(LOCAL_JAVA_LIBRARIES) - else - LOCAL_JAVA_LIBRARIES := sdk_v$(LOCAL_SDK_VERSION) $(LOCAL_JAVA_LIBRARIES) - endif - endif - endif -else - ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true) - LOCAL_JAVA_LIBRARIES := $(TARGET_DEFAULT_JAVA_LIBRARIES) $(LOCAL_JAVA_LIBRARIES) - endif -endif - -proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES)) -ifneq ($(proto_sources),) -ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),micro) - LOCAL_STATIC_JAVA_LIBRARIES += libprotobuf-java-2.3.0-micro -else - ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),nano) - LOCAL_STATIC_JAVA_LIBRARIES += libprotobuf-java-2.3.0-nano - else - LOCAL_STATIC_JAVA_LIBRARIES += libprotobuf-java-2.3.0-lite - endif -endif -endif - -# LOCAL_STATIC_JAVA_AAR_LIBRARIES are special LOCAL_STATIC_JAVA_LIBRARIES -LOCAL_STATIC_JAVA_LIBRARIES := $(strip $(LOCAL_STATIC_JAVA_LIBRARIES) $(LOCAL_STATIC_JAVA_AAR_LIBRARIES)) - -LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES)) - -LOCAL_BUILT_MODULE_STEM := $(strip $(LOCAL_BUILT_MODULE_STEM)) -ifeq ($(LOCAL_BUILT_MODULE_STEM),) -$(error $(LOCAL_PATH): Target java template must define LOCAL_BUILT_MODULE_STEM) -endif -ifneq ($(filter classes-compiled.jar classes.jar,$(LOCAL_BUILT_MODULE_STEM)),) -$(error LOCAL_BUILT_MODULE_STEM may not be "$(LOCAL_BUILT_MODULE_STEM)") -endif - - -############################################################################## -# Define the intermediate targets before including base_rules so they get -# the correct environment. -############################################################################## - -intermediates := $(call local-intermediates-dir) -intermediates.COMMON := $(call local-intermediates-dir,COMMON) - -# Choose leaf name for the compiled jar file. -ifeq ($(LOCAL_EMMA_INSTRUMENT),true) -full_classes_compiled_jar_leaf := classes-no-debug-var.jar -built_dex_intermediate_leaf := no-local -else -full_classes_compiled_jar_leaf := classes-full-debug.jar -built_dex_intermediate_leaf := with-local -endif - -ifeq ($(LOCAL_PROGUARD_ENABLED),disabled) -LOCAL_PROGUARD_ENABLED := -endif - -ifdef LOCAL_PROGUARD_ENABLED -proguard_jar_leaf := proguard.classes.jar -else -proguard_jar_leaf := noproguard.classes.jar -endif - -full_classes_compiled_jar := $(intermediates.COMMON)/$(full_classes_compiled_jar_leaf) -jarjar_leaf := classes-jarjar.jar -full_classes_jarjar_jar := $(intermediates.COMMON)/$(jarjar_leaf) -emma_intermediates_dir := $(intermediates.COMMON)/emma_out -# emma is hardcoded to use the leaf name of its input for the output file -- -# only the output directory can be changed -full_classes_emma_jar := $(emma_intermediates_dir)/lib/$(jarjar_leaf) -full_classes_proguard_jar := $(intermediates.COMMON)/$(proguard_jar_leaf) -built_dex_intermediate := $(intermediates.COMMON)/$(built_dex_intermediate_leaf)/classes.dex -full_classes_stubs_jar := $(intermediates.COMMON)/stubs.jar - -ifeq ($(LOCAL_MODULE_CLASS)$(LOCAL_SRC_FILES)$(LOCAL_STATIC_JAVA_LIBRARIES)$(LOCAL_SOURCE_FILES_ALL_GENERATED),APPS) -# If this is an apk without any Java code (e.g. framework-res), we should skip compiling Java. -full_classes_jar := -built_dex := -else -full_classes_jar := $(intermediates.COMMON)/classes.jar -built_dex := $(intermediates.COMMON)/classes.dex -endif - -LOCAL_INTERMEDIATE_TARGETS += \ - $(full_classes_compiled_jar) \ - $(full_classes_jarjar_jar) \ - $(full_classes_emma_jar) \ - $(full_classes_jar) \ - $(full_classes_proguard_jar) \ - $(built_dex_intermediate) \ - $(built_dex) \ - $(full_classes_stubs_jar) - - -LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src - -############################################################### -## .rs files: RenderScript sources to .java files and .bc files -## .fs files: Filterscript sources to .java files and .bc files -############################################################### -renderscript_sources := $(filter %.rs %.fs,$(LOCAL_SRC_FILES)) -# Because names of the java files from RenderScript are unknown until the -# .rs file(s) are compiled, we have to depend on a timestamp file. -RenderScript_file_stamp := -rs_compatibility_jni_libs := -ifneq ($(renderscript_sources),) -renderscript_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(renderscript_sources)) -RenderScript_file_stamp := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/RenderScript.stamp -renderscript_intermediate.COMMON := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/renderscript - -renderscript_target_api := - -ifneq (,$(LOCAL_RENDERSCRIPT_TARGET_API)) -renderscript_target_api := $(LOCAL_RENDERSCRIPT_TARGET_API) -else -ifneq (,$(LOCAL_SDK_VERSION)) -# Set target-api for LOCAL_SDK_VERSIONs other than current. -ifneq (,$(filter-out current system_current, $(LOCAL_SDK_VERSION))) -renderscript_target_api := $(LOCAL_SDK_VERSION) -endif -endif # LOCAL_SDK_VERSION is set -endif # LOCAL_RENDERSCRIPT_TARGET_API is set - -ifeq ($(LOCAL_RENDERSCRIPT_CC),) -LOCAL_RENDERSCRIPT_CC := $(LLVM_RS_CC) -endif - -# Turn on all warnings and warnings as errors for RS compiles. -# This can be disabled with LOCAL_RENDERSCRIPT_FLAGS := -Wno-error -renderscript_flags := -Wall -Werror -renderscript_flags += $(LOCAL_RENDERSCRIPT_FLAGS) - -# prepend the RenderScript system include path -ifneq ($(filter-out current system_current,$(LOCAL_SDK_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current system_current,$(LOCAL_SDK_VERSION))),) -# if a numeric LOCAL_SDK_VERSION, or current LOCAL_SDK_VERSION with TARGET_BUILD_APPS -LOCAL_RENDERSCRIPT_INCLUDES := \ - $(HISTORICAL_SDK_VERSIONS_ROOT)/renderscript/clang-include \ - $(HISTORICAL_SDK_VERSIONS_ROOT)/renderscript/include \ - $(LOCAL_RENDERSCRIPT_INCLUDES) -else -LOCAL_RENDERSCRIPT_INCLUDES := \ - $(TOPDIR)external/clang/lib/Headers \ - $(TOPDIR)frameworks/rs/scriptc \ - $(LOCAL_RENDERSCRIPT_INCLUDES) -endif - -ifneq ($(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE),) -LOCAL_RENDERSCRIPT_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE) -endif - -$(RenderScript_file_stamp): PRIVATE_RS_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES) -$(RenderScript_file_stamp): PRIVATE_RS_CC := $(LOCAL_RENDERSCRIPT_CC) -$(RenderScript_file_stamp): PRIVATE_RS_FLAGS := $(renderscript_flags) -$(RenderScript_file_stamp): PRIVATE_RS_SOURCE_FILES := $(renderscript_sources_fullpath) -# By putting the generated java files into $(LOCAL_INTERMEDIATE_SOURCE_DIR), they will be -# automatically found by the java compiling function transform-java-to-classes.jar. -$(RenderScript_file_stamp): PRIVATE_RS_OUTPUT_DIR := $(renderscript_intermediate.COMMON) -$(RenderScript_file_stamp): PRIVATE_RS_TARGET_API := $(renderscript_target_api) -$(RenderScript_file_stamp): $(renderscript_sources_fullpath) $(LOCAL_RENDERSCRIPT_CC) - $(transform-renderscripts-to-java-and-bc) - -ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),) -bc_files := $(patsubst %.fs,%.bc, $(patsubst %.rs,%.bc, $(notdir $(renderscript_sources)))) -rs_generated_bc := $(addprefix \ - $(renderscript_intermediate.COMMON)/res/raw/, $(bc_files)) - -renderscript_intermediate := $(intermediates)/renderscript - -# We don't need the .so files in bundled branches -# Prevent these from showing up on the device -ifneq (,$(TARGET_BUILD_APPS)$(FORCE_BUILD_RS_COMPAT)) - -rs_compatibility_jni_libs := $(addprefix \ - $(renderscript_intermediate)/librs., \ - $(patsubst %.bc,%.so, $(bc_files))) - -$(rs_generated_bc) : $(RenderScript_file_stamp) - -rs_support_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRSSupport.so -rs_jni_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/librsjni.so -LOCAL_JNI_SHARED_LIBRARIES += libRSSupport librsjni - - - -$(rs_compatibility_jni_libs): $(RenderScript_file_stamp) $(RS_PREBUILT_CLCORE) \ - $(rs_support_lib) $(rs_jni_lib) $(rs_compiler_rt) -$(rs_compatibility_jni_libs): $(BCC_COMPAT) -$(rs_compatibility_jni_libs): PRIVATE_CXX := $(TARGET_CXX) -$(rs_compatibility_jni_libs): $(renderscript_intermediate)/librs.%.so: \ - $(renderscript_intermediate.COMMON)/res/raw/%.bc - $(transform-bc-to-so) - -endif - -endif - -# include the dependency files (.d) generated by llvm-rs-cc. -renderscript_generated_dep_files := $(addprefix $(renderscript_intermediate.COMMON)/, \ - $(patsubst %.fs,%.d, $(patsubst %.rs,%.d, $(notdir $(renderscript_sources))))) --include $(renderscript_generated_dep_files) - -LOCAL_INTERMEDIATE_TARGETS += $(RenderScript_file_stamp) -# Make sure the generated resource will be added to the apk. -LOCAL_RESOURCE_DIR := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/renderscript/res $(LOCAL_RESOURCE_DIR) -endif - -# All of the rules after full_classes_compiled_jar are very unlikely -# to fail except for bugs in their respective tools. If you would -# like to run these rules, add the "all" modifier goal to the make -# command line. -ifdef full_classes_jar -java_alternative_checked_module := $(full_classes_compiled_jar) -else -java_alternative_checked_module := -endif - -# TODO: It looks like the only thing we need from base_rules is -# all_java_sources. See if we can get that by adding a -# common_java.mk, and moving the include of base_rules.mk to -# after all the declarations. - -####################################### -include $(BUILD_SYSTEM)/base_rules.mk -####################################### - -java_alternative_checked_module := - -####################################### -# defines built_odex along with rule to install odex -include $(BUILD_SYSTEM)/dex_preopt_odex_install.mk -####################################### - -# Make sure there's something to build. -ifdef full_classes_jar -ifndef need_compile_java -$(error $(LOCAL_PATH): Target java module does not define any source or resource files) -endif -endif - -# Install the RS compatibility libraries to /system/lib/ if necessary -ifdef rs_compatibility_jni_libs -installed_rs_compatibility_jni_libs := $(addprefix $(TARGET_OUT_SHARED_LIBRARIES)/,\ - $(notdir $(rs_compatibility_jni_libs))) -# Provide a way to skip sources included in multiple projects. -ifdef LOCAL_RENDERSCRIPT_SKIP_INSTALL -skip_install_rs_libs := $(patsubst %.rs,%.so, \ - $(addprefix $(TARGET_OUT_SHARED_LIBRARIES)/librs., \ - $(notdir $(LOCAL_RENDERSCRIPT_SKIP_INSTALL)))) -installed_rs_compatibility_jni_libs := \ - $(filter-out $(skip_install_rs_libs),$(installed_rs_compatibility_jni_libs)) -endif -ifneq (,$(strip $(installed_rs_compatibility_jni_libs))) -$(installed_rs_compatibility_jni_libs) : $(TARGET_OUT_SHARED_LIBRARIES)/lib%.so : \ - $(renderscript_intermediate)/lib%.so - $(hide) mkdir -p $(dir $@) && cp -f $< $@ - -# Install them only if the current module is installed. -$(LOCAL_INSTALLED_MODULE) : $(installed_rs_compatibility_jni_libs) -endif -endif - -# We use intermediates.COMMON because the classes.jar/.dex files will be -# common even if LOCAL_BUILT_MODULE isn't. -# -# Override some target variables that base_rules set up for us. -$(LOCAL_INTERMEDIATE_TARGETS): \ - PRIVATE_CLASS_INTERMEDIATES_DIR := $(intermediates.COMMON)/classes -$(LOCAL_INTERMEDIATE_TARGETS): \ - PRIVATE_SOURCE_INTERMEDIATES_DIR := $(LOCAL_INTERMEDIATE_SOURCE_DIR) - -# Since we're using intermediates.COMMON, make sure that it gets cleaned -# properly. -$(cleantarget): PRIVATE_CLEAN_FILES += $(intermediates.COMMON) - -ifdef full_classes_jar - -# Droiddoc isn't currently able to generate stubs for modules, so we're just -# allowing it to use the classes.jar as the "stubs" that would be use to link -# against, for the cases where someone needs the jar to link against. -# - Use the classes.jar instead of the handful of other intermediates that -# we have, because it's the most processed, but still hasn't had dex run on -# it, so it's closest to what's on the device. -# - This extra copy, with the dependency on LOCAL_BUILT_MODULE allows the -# PRIVATE_ vars to be preserved. -$(full_classes_stubs_jar): PRIVATE_SOURCE_FILE := $(full_classes_jar) -$(full_classes_stubs_jar) : $(LOCAL_BUILT_MODULE) | $(ACP) - @echo -e ${CL_GRN}"Copying"${CL_RST}" $(PRIVATE_SOURCE_FILE)" - $(hide) $(ACP) -fp $(PRIVATE_SOURCE_FILE) $@ -ALL_MODULES.$(LOCAL_MODULE).STUBS := $(full_classes_stubs_jar) - -# The layers file allows you to enforce a layering between java packages. -# Run build/tools/java-layers.py for more details. -layers_file := $(addprefix $(LOCAL_PATH)/, $(LOCAL_JAVA_LAYERS_FILE)) -$(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file) -$(full_classes_compiled_jar): PRIVATE_WARNINGS_ENABLE := $(LOCAL_WARNINGS_ENABLE) - -ifdef LOCAL_RMTYPEDEFS -$(full_classes_compiled_jar): | $(RMTYPEDEFS) -endif - -# Compile the java files to a .jar file. -# This intentionally depends on java_sources, not all_java_sources. -# Deps for generated source files must be handled separately, -# via deps on the target that generates the sources. -$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) -$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES := $(LOCAL_JAR_EXCLUDE_FILES) -$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES := $(LOCAL_JAR_PACKAGES) -$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES := $(LOCAL_JAR_EXCLUDE_PACKAGES) -$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS := $(LOCAL_RMTYPEDEFS) -$(full_classes_compiled_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF) -$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \ - $(jar_manifest_file) $(layers_file) $(RenderScript_file_stamp) \ - $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES) - $(transform-java-to-classes.jar) - -$(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g - -# Run jarjar if necessary, otherwise just copy the file. -ifneq ($(strip $(LOCAL_JARJAR_RULES)),) -$(full_classes_jarjar_jar): PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES) -$(full_classes_jarjar_jar): $(full_classes_compiled_jar) $(LOCAL_JARJAR_RULES) | $(JARJAR) - @echo -e ${CL_GRN}"JarJar:"${CL_RST}" $@" - $(hide) java -jar $(JARJAR) process $(PRIVATE_JARJAR_RULES) $< $@ -else -$(full_classes_jarjar_jar): $(full_classes_compiled_jar) | $(ACP) - @echo -e ${CL_GRN}"Copying:"${CL_RST}" $@" - $(hide) $(ACP) -fp $< $@ -endif - -ifeq ($(LOCAL_EMMA_INSTRUMENT),true) -$(full_classes_emma_jar): PRIVATE_EMMA_COVERAGE_FILE := $(intermediates.COMMON)/coverage.em -$(full_classes_emma_jar): PRIVATE_EMMA_INTERMEDIATES_DIR := $(emma_intermediates_dir) -# module level coverage filter can be defined using LOCAL_EMMA_COVERAGE_FILTER -# in Android.mk -ifdef LOCAL_EMMA_COVERAGE_FILTER -$(full_classes_emma_jar): PRIVATE_EMMA_COVERAGE_FILTER := $(LOCAL_EMMA_COVERAGE_FILTER) -else -# by default, avoid applying emma instrumentation onto emma classes itself, -# otherwise there will be exceptions thrown -$(full_classes_emma_jar): PRIVATE_EMMA_COVERAGE_FILTER := *,-emma,-emmarun,-com.vladium.* -endif -# this rule will generate both $(PRIVATE_EMMA_COVERAGE_FILE) and -# $(full_classes_emma_jar) -$(full_classes_emma_jar): $(full_classes_jarjar_jar) | $(EMMA_JAR) - $(transform-classes.jar-to-emma) - -else -$(full_classes_emma_jar): $(full_classes_jarjar_jar) | $(ACP) - @echo -e ${CL_GRN}"Copying:"${CL_RST}" $@" - $(copy-file-to-target) -endif - -# Keep a copy of the jar just before proguard processing. -$(full_classes_jar): $(full_classes_emma_jar) | $(ACP) - @echo -e ${CL_GRN}"Copying:"${CL_RST}" $@" - $(hide) $(ACP) -fp $< $@ - -# Run proguard if necessary, otherwise just copy the file. -ifdef LOCAL_PROGUARD_ENABLED -ifneq ($(filter-out full custom nosystem obfuscation optimization shrinktests,$(LOCAL_PROGUARD_ENABLED)),) - $(warning while processing: $(LOCAL_MODULE)) - $(error invalid value for LOCAL_PROGUARD_ENABLED: $(LOCAL_PROGUARD_ENABLED)) -endif -proguard_dictionary := $(intermediates.COMMON)/proguard_dictionary -proguard_flags := $(addprefix -libraryjars ,$(full_shared_java_libs)) \ - -forceprocessing \ - -printmapping $(proguard_dictionary) - -ifeq ($(filter nosystem,$(LOCAL_PROGUARD_ENABLED)),) -proguard_flags += -include $(BUILD_SYSTEM)/proguard.flags -ifeq ($(LOCAL_EMMA_INSTRUMENT),true) -proguard_flags += -include $(BUILD_SYSTEM)/proguard.emma.flags -endif -# If this is a test package, add proguard keep flags for tests. -ifneq ($(LOCAL_INSTRUMENTATION_FOR)$(filter tests,$(LOCAL_MODULE_TAGS)),) -proguard_flags += -include $(BUILD_SYSTEM)/proguard_tests.flags -ifeq ($(filter shrinktests,$(LOCAL_PROGUARD_ENABLED)),) -proguard_flags += -dontshrink # don't shrink tests by default -endif # shrinktests -endif # test package -ifeq ($(filter obfuscation,$(LOCAL_PROGUARD_ENABLED)),) -# By default no obfuscation -proguard_flags += -dontobfuscate -endif # No obfuscation -ifeq ($(filter optimization,$(LOCAL_PROGUARD_ENABLED)),) -# By default no optimization -proguard_flags += -dontoptimize -endif # No optimization - -ifdef LOCAL_INSTRUMENTATION_FOR -ifeq ($(filter obfuscation,$(LOCAL_PROGUARD_ENABLED)),) -# If no obfuscation, link in the instrmented package's classes.jar as a library. -# link_instr_classes_jar is defined in base_rule.mk -proguard_flags += -libraryjars $(link_instr_classes_jar) -else # obfuscation -# If obfuscation is enabled, the main app must be obfuscated too. -# We need to run obfuscation using the main app's dictionary, -# and treat the main app's class.jar as injars instead of libraryjars. -proguard_flags := -injars $(link_instr_classes_jar) \ - -outjars $(intermediates.COMMON)/proguard.$(LOCAL_INSTRUMENTATION_FOR).jar \ - -include $(link_instr_intermediates_dir.COMMON)/proguard_options \ - -applymapping $(link_instr_intermediates_dir.COMMON)/proguard_dictionary \ - -verbose \ - $(proguard_flags) - -# Sometimes (test + main app) uses different keep rules from the main app - -# apply the main app's dictionary anyway. -proguard_flags += -ignorewarnings - -# Make sure we run Proguard on the main app first -$(full_classes_proguard_jar) : $(link_instr_intermediates_dir.COMMON)/proguard.classes.jar - -endif # no obfuscation -endif # LOCAL_INSTRUMENTATION_FOR -endif # LOCAL_PROGUARD_ENABLED is not nosystem - -proguard_flag_files := $(addprefix $(LOCAL_PATH)/, $(LOCAL_PROGUARD_FLAG_FILES)) -LOCAL_PROGUARD_FLAGS += $(addprefix -include , $(proguard_flag_files)) - -ifdef LOCAL_TEST_MODULE_TO_PROGUARD_WITH -extra_input_jar := $(call intermediates-dir-for,APPS,$(LOCAL_TEST_MODULE_TO_PROGUARD_WITH),,COMMON)/classes.jar -else -extra_input_jar := -endif -$(full_classes_proguard_jar): PRIVATE_EXTRA_INPUT_JAR := $(extra_input_jar) -$(full_classes_proguard_jar): PRIVATE_PROGUARD_FLAGS := $(proguard_flags) $(LOCAL_PROGUARD_FLAGS) -$(full_classes_proguard_jar) : $(full_classes_jar) $(extra_input_jar) $(proguard_flag_files) | $(ACP) $(PROGUARD) - $(call transform-jar-to-proguard) - -else # LOCAL_PROGUARD_ENABLED not defined -$(full_classes_proguard_jar) : $(full_classes_jar) - @echo Copying: $@ - $(hide) $(ACP) -fp $< $@ - -endif # LOCAL_PROGUARD_ENABLED defined - - -# Override PRIVATE_INTERMEDIATES_DIR so that install-dex-debug -# will work even when intermediates != intermediates.COMMON. -$(built_dex_intermediate): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON) -$(built_dex_intermediate): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS) -# If you instrument class files that have local variable debug information in -# them emma does not correctly maintain the local variable table. -# This will cause an error when you try to convert the class files for Android. -# The workaround here is to build different dex file here based on emma switch -# then later copy into classes.dex. When emma is on, dx is run with --no-locals -# option to remove local variable information -ifeq ($(LOCAL_EMMA_INSTRUMENT),true) -$(built_dex_intermediate): PRIVATE_DX_FLAGS += --no-locals -endif -$(built_dex_intermediate): $(full_classes_proguard_jar) $(DX) - $(transform-classes.jar-to-dex) -$(built_dex): $(built_dex_intermediate) | $(ACP) - @echo -e ${CL_GRN}"Copying:"${CL_RST}" $@" - $(hide) mkdir -p $(dir $@) - $(hide) rm -f $(dir $@)/classes*.dex - $(hide) $(ACP) -fp $(dir $<)/classes*.dex $(dir $@) -ifneq ($(GENERATE_DEX_DEBUG),) - $(install-dex-debug) -endif - -findbugs_xml := $(intermediates.COMMON)/findbugs.xml -$(findbugs_xml) : PRIVATE_JAR_FILE := $(full_classes_jar) -$(findbugs_xml) : PRIVATE_AUXCLASSPATH := $(addprefix -auxclasspath ,$(strip \ - $(call normalize-path-list,$(filter %.jar,\ - $(full_java_libs))))) -# We can't depend directly on full_classes_jar because the PRIVATE_ -# vars won't be set up correctly. -$(findbugs_xml) : $(LOCAL_BUILT_MODULE) - @echo Findbugs: $@ - $(hide) $(FINDBUGS) -textui -effort:min -xml:withMessages \ - $(PRIVATE_AUXCLASSPATH) \ - $(PRIVATE_JAR_FILE) \ - > $@ - -ALL_FINDBUGS_FILES += $(findbugs_xml) - -findbugs_html := $(PRODUCT_OUT)/findbugs/$(LOCAL_MODULE).html -$(findbugs_html) : PRIVATE_XML_FILE := $(findbugs_xml) -$(LOCAL_MODULE)-findbugs : $(findbugs_html) -$(findbugs_html) : $(findbugs_xml) - @mkdir -p $(dir $@) - @echo ConvertXmlToText: $@ - $(hide) $(FINDBUGS_DIR)/convertXmlToText -html:fancy.xsl $(PRIVATE_XML_FILE) \ - > $@ - -$(LOCAL_MODULE)-findbugs : $(findbugs_html) - -endif # full_classes_jar is defined diff --git a/core/java_library.mk b/core/java_library.mk index 267f1460012..e69de29bb2d 100644 --- a/core/java_library.mk +++ b/core/java_library.mk @@ -1,114 +0,0 @@ -########################################################### -## Standard rules for building a java library. -## -########################################################### - -ifdef LOCAL_IS_HOST_MODULE -$(error $(LOCAL_PATH): Host java libraries must use BUILD_HOST_JAVA_LIBRARY) -endif - -LOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX) -LOCAL_MODULE_CLASS := JAVA_LIBRARIES - -ifneq (,$(LOCAL_ASSET_DIR)) -$(error $(LOCAL_PATH): Target java libraries may not set LOCAL_ASSET_DIR) -endif - -ifneq (true,$(LOCAL_IS_STATIC_JAVA_LIBRARY)) -ifneq (,$(LOCAL_RESOURCE_DIR)) -$(error $(LOCAL_PATH): Target java libraries may not set LOCAL_RESOURCE_DIR) -endif -# base_rules.mk looks at this -all_res_assets := -endif - -LOCAL_BUILT_MODULE_STEM := javalib.jar - -intermediates.COMMON := $(call local-intermediates-dir,COMMON) - -# This file will be the one that other modules should depend on. -common_javalib.jar := $(intermediates.COMMON)/$(LOCAL_BUILT_MODULE_STEM) -LOCAL_INTERMEDIATE_TARGETS += $(common_javalib.jar) - -ifeq ($(LOCAL_PROGUARD_ENABLED),disabled) - LOCAL_PROGUARD_ENABLED := -endif - -ifeq (true,$(EMMA_INSTRUMENT)) -ifeq (true,$(LOCAL_EMMA_INSTRUMENT)) -ifeq (true,$(EMMA_INSTRUMENT_STATIC)) -LOCAL_STATIC_JAVA_LIBRARIES += emma -endif # LOCAL_EMMA_INSTRUMENT -endif # EMMA_INSTRUMENT_STATIC -else -LOCAL_EMMA_INSTRUMENT := false -endif # EMMA_INSTRUMENT - -################################# -include $(BUILD_SYSTEM)/java.mk -################################# - -ifeq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true) -# No dex; all we want are the .class files with resources. -$(common_javalib.jar) : $(java_resource_sources) -ifdef LOCAL_PROGUARD_ENABLED -$(common_javalib.jar) : $(full_classes_proguard_jar) -else -$(common_javalib.jar) : $(full_classes_jar) -endif - @echo -e ${CL_GRN}"target Static Jar:"${CL_RST}" $(PRIVATE_MODULE) ($@)" - $(copy-file-to-target) -ifneq ($(extra_jar_args),) - $(add-java-resources-to-package) -endif - -$(LOCAL_BUILT_MODULE): $(common_javalib.jar) - $(copy-file-to-target) - -else # !LOCAL_IS_STATIC_JAVA_LIBRARY - -$(common_javalib.jar): PRIVATE_DEX_FILE := $(built_dex) -$(common_javalib.jar) : $(built_dex) $(java_resource_sources) - @echo -e ${CL_GRN}"target Jar:"${CL_RST}" $(PRIVATE_MODULE) ($@)" - $(create-empty-package) - $(add-dex-to-package) - $(add-carried-java-resources) -ifneq ($(extra_jar_args),) - $(add-java-resources-to-package) -endif - -ifdef LOCAL_DEX_PREOPT -ifneq ($(dexpreopt_boot_jar_module),) # boot jar -# boot jar's rules are defined in dex_preopt.mk -dexpreopted_boot_jar := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(dexpreopt_boot_jar_module)_nodex.jar -$(LOCAL_BUILT_MODULE) : $(dexpreopted_boot_jar) | $(ACP) - $(call copy-file-to-target) - -# For libart boot jars, we don't have .odex files. -ifeq ($(DALVIK_VM_LIB),libdvm.so) -dexpreopted_boot_odex := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(dexpreopt_boot_jar_module).odex -$(built_odex) : $(dexpreopted_boot_odex) | $(ACP) - $(call copy-file-to-target) -endif - -else # ! boot jar -$(built_odex): PRIVATE_MODULE := $(LOCAL_MODULE) -# Use pattern rule - we may have multiple built odex files. -$(built_odex) : $(dir $(LOCAL_BUILT_MODULE))% : $(common_javalib.jar) - @echo -e ${CL_GRN}"Dexpreopt Jar:"${CL_RST}" $(PRIVATE_MODULE) ($@)" - $(call dexpreopt-one-file,$<,$@) - -$(LOCAL_BUILT_MODULE) : $(common_javalib.jar) | $(ACP) - $(call copy-file-to-target) -ifneq (nostripping,$(LOCAL_DEX_PREOPT)) - $(call dexpreopt-remove-classes.dex,$@) -endif - -endif # ! boot jar - -else # LOCAL_DEX_PREOPT -$(LOCAL_BUILT_MODULE) : $(common_javalib.jar) | $(ACP) - $(call copy-file-to-target) - -endif # LOCAL_DEX_PREOPT -endif # !LOCAL_IS_STATIC_JAVA_LIBRARY diff --git a/core/package_internal.mk b/core/package_internal.mk index 101b4429699..f41644db04b 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -196,7 +196,7 @@ rs_compatibility_jni_libs := include $(BUILD_SYSTEM)/android_manifest.mk ################################# -include $(BUILD_SYSTEM)/java.mk + ################################# LOCAL_SDK_RES_VERSION:=$(strip $(LOCAL_SDK_RES_VERSION)) From 4e071a23758fe65a2c8e3c72acb200d7321990e7 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Mon, 8 Feb 2016 02:40:06 +0100 Subject: [PATCH 1060/1096] Build dtbs --- core/tasks/kernel.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 87ebf290485..a68ea3ac6de 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -248,6 +248,7 @@ $(KERNEL_OUT)/piggy : $(TARGET_PREBUILT_INT_KERNEL) TARGET_KERNEL_BINARIES: $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL) $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE) + -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) dtbs -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules_install $(mv-modules) From 1330847c7e8c03019a94d801a30626db70f7e1c8 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Fri, 18 Mar 2016 01:40:59 +0100 Subject: [PATCH 1061/1096] Not needed, this is for apk files --- core/package.mk | 75 ------------------------------------------------- 1 file changed, 75 deletions(-) diff --git a/core/package.mk b/core/package.mk index 78b65db107b..8b137891791 100644 --- a/core/package.mk +++ b/core/package.mk @@ -1,76 +1 @@ -# We don't automatically set up rules to build packages for both -# TARGET_ARCH and TARGET_2ND_ARCH. -# To build it for TARGET_2ND_ARCH in a 64bit product, use "LOCAL_MULTILIB := 32". -my_prefix := TARGET_ -include $(BUILD_SYSTEM)/multilib.mk - -ifeq ($(TARGET_SUPPORTS_32_BIT_APPS)|$(TARGET_SUPPORTS_64_BIT_APPS),true|true) - # packages default to building for either architecture, - # the preferred if its supported, otherwise the non-preferred. -else ifeq ($(TARGET_SUPPORTS_64_BIT_APPS),true) - # only 64-bit apps supported - ifeq ($(filter $(my_module_multilib),64 both first),$(my_module_multilib)) - # if my_module_multilib was 64, both, first, or unset, build for 64-bit - my_module_multilib := 64 - else - # otherwise don't build this app - my_module_multilib := none - endif -else - # only 32-bit apps supported - ifeq ($(filter $(my_module_multilib),32 both),$(my_module_multilib)) - # if my_module_multilib was 32, both, or unset, build for 32-bit - my_module_multilib := 32 - else ifeq ($(my_module_multilib),first) - ifndef TARGET_IS_64_BIT - # if my_module_multilib was first and this is a 32-bit build, build for - # 32-bit - my_module_multilib := 32 - else - # if my_module_multilib was first and this is a 64-bit build, don't build - # this app - my_module_multilib := none - endif - else - # my_module_mulitlib was 64 or none, don't build this app - my_module_multilib := none - endif -endif - -LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := true - -# if TARGET_PREFER_32_BIT_APPS is set, try to build 32-bit first -ifdef TARGET_2ND_ARCH -ifeq ($(TARGET_PREFER_32_BIT_APPS),true) -LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX) -else -LOCAL_2ND_ARCH_VAR_PREFIX := -endif -endif - -# check if preferred arch is supported -include $(BUILD_SYSTEM)/module_arch_supported.mk -ifeq ($(my_module_arch_supported),true) -# first arch is supported -include $(BUILD_SYSTEM)/package_internal.mk -else ifneq (,$(TARGET_2ND_ARCH)) -# check if the non-preferred arch is the primary or secondary -ifeq ($(TARGET_PREFER_32_BIT_APPS),true) -LOCAL_2ND_ARCH_VAR_PREFIX := -else -LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX) -endif - -# check if non-preferred arch is supported -include $(BUILD_SYSTEM)/module_arch_supported.mk -ifeq ($(my_module_arch_supported),true) -# secondary arch is supported -include $(BUILD_SYSTEM)/package_internal.mk -endif -endif # TARGET_2ND_ARCH - -LOCAL_2ND_ARCH_VAR_PREFIX := -LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := - -my_module_arch_supported := From 46ebcd11ff5105ee1cfc1ca8e44bc8bcc638cddb Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Fri, 18 Mar 2016 02:17:29 +0100 Subject: [PATCH 1062/1096] This is for apk, it's not needed --- core/package_internal.mk | 530 --------------------------------------- 1 file changed, 530 deletions(-) diff --git a/core/package_internal.mk b/core/package_internal.mk index f41644db04b..8b137891791 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -1,531 +1 @@ -# -# Copyright (C) 2008 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -########################################################### -## Standard rules for building an application package. -## -## Additional inputs from base_rules.make: -## LOCAL_PACKAGE_NAME: The name of the package; the directory -## will be called this. -## -## MODULE, MODULE_PATH, and MODULE_SUFFIX will -## be set for you. -########################################################### - -# If this makefile is being read from within an inheritance, -# use the new values. -skip_definition:= -ifdef LOCAL_PACKAGE_OVERRIDES - package_overridden := $(call set-inherited-package-variables) - ifeq ($(strip $(package_overridden)),) - skip_definition := true - endif -endif - -ifndef skip_definition - -LOCAL_PACKAGE_NAME := $(strip $(LOCAL_PACKAGE_NAME)) -ifeq ($(LOCAL_PACKAGE_NAME),) -$(error $(LOCAL_PATH): Package modules must define LOCAL_PACKAGE_NAME) -endif - -ifneq ($(strip $(LOCAL_MODULE_SUFFIX)),) -$(error $(LOCAL_PATH): Package modules may not define LOCAL_MODULE_SUFFIX) -endif -LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) - -ifneq ($(strip $(LOCAL_MODULE)),) -$(error $(LOCAL_PATH): Package modules may not define LOCAL_MODULE) -endif -LOCAL_MODULE := $(LOCAL_PACKAGE_NAME) - -ifneq ($(strip $(LOCAL_MODULE_CLASS)),) -$(error $(LOCAL_PATH): Package modules may not set LOCAL_MODULE_CLASS) -endif -LOCAL_MODULE_CLASS := APPS - -# Package LOCAL_MODULE_TAGS default to optional -LOCAL_MODULE_TAGS := $(strip $(LOCAL_MODULE_TAGS)) -ifeq ($(LOCAL_MODULE_TAGS),) -LOCAL_MODULE_TAGS := optional -endif - -ifeq ($(filter tests, $(LOCAL_MODULE_TAGS)),) -# Force localization check if it's not tagged as tests. -LOCAL_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) -z -endif - -ifdef LOCAL_PACKAGE_SPLITS -LOCAL_AAPT_FLAGS += $(addprefix --split ,$(LOCAL_PACKAGE_SPLITS)) -endif - -need_compile_asset := -ifeq (,$(LOCAL_ASSET_DIR)) -LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets -else -need_compile_asset := true -endif - -# LOCAL_RESOURCE_DIR may point to resource generated during the build -need_compile_res := -ifeq (,$(LOCAL_RESOURCE_DIR)) - LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res -else - need_compile_res := true -endif - -package_resource_overlays := $(strip \ - $(wildcard $(foreach dir, $(PRODUCT_PACKAGE_OVERLAYS), \ - $(addprefix $(dir)/, $(LOCAL_RESOURCE_DIR)))) \ - $(wildcard $(foreach dir, $(DEVICE_PACKAGE_OVERLAYS), \ - $(addprefix $(dir)/, $(LOCAL_RESOURCE_DIR))))) - -LOCAL_RESOURCE_DIR := $(package_resource_overlays) $(LOCAL_RESOURCE_DIR) - -all_assets := $(strip \ - $(foreach dir, $(LOCAL_ASSET_DIR), \ - $(addprefix $(dir)/, \ - $(patsubst assets/%,%, \ - $(call find-subdir-assets, $(dir)) \ - ) \ - ) \ - )) - -ifneq ($(all_assets),) -need_compile_asset := true -endif - -all_resources := $(strip \ - $(foreach dir, $(LOCAL_RESOURCE_DIR), \ - $(addprefix $(dir)/, \ - $(patsubst res/%,%, \ - $(call find-subdir-assets,$(dir)) \ - ) \ - ) \ - )) - -ifneq ($(all_resources),) - need_compile_res := true -endif - -all_res_assets := $(strip $(all_assets) $(all_resources)) - -intermediates.COMMON := $(call local-intermediates-dir,COMMON) - -# If no assets or resources were found, clear the directory variables so -# we don't try to build them. -ifneq (true,$(need_compile_asset)) -LOCAL_ASSET_DIR:= -endif -ifneq (true,$(need_compile_res)) -LOCAL_RESOURCE_DIR:= -R_file_stamp := -else -# Make sure that R_file_stamp inherits the proper PRIVATE vars. -# If R.stamp moves, be sure to update the framework makefile, -# which has intimate knowledge of its location. -R_file_stamp := $(intermediates.COMMON)/src/R.stamp -LOCAL_INTERMEDIATE_TARGETS += $(R_file_stamp) -endif - -LOCAL_BUILT_MODULE_STEM := package.apk -LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE).apk - -LOCAL_PROGUARD_ENABLED:=$(strip $(LOCAL_PROGUARD_ENABLED)) -ifndef LOCAL_PROGUARD_ENABLED -ifneq ($(DISABLE_PROGUARD),true) - LOCAL_PROGUARD_ENABLED :=full -endif -endif -ifeq ($(LOCAL_PROGUARD_ENABLED),disabled) - # the package explicitly request to disable proguard. - LOCAL_PROGUARD_ENABLED := -endif -proguard_options_file := -ifneq ($(LOCAL_PROGUARD_ENABLED),custom) -ifeq ($(need_compile_res),true) - proguard_options_file := $(intermediates.COMMON)/proguard_options -endif # need_compile_res -endif # !custom -LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS) - -ifeq (true,$(EMMA_INSTRUMENT)) -ifndef LOCAL_EMMA_INSTRUMENT -# No emma for test apks. -ifeq (,$(filer tests,$(LOCAL_MODULE_TAGS))$(LOCAL_INSTRUMENTATION_FOR)) -LOCAL_EMMA_INSTRUMENT := true -endif # No test apk -endif # LOCAL_EMMA_INSTRUMENT is not set -else -LOCAL_EMMA_INSTRUMENT := false -endif # EMMA_INSTRUMENT is true - -ifeq (true,$(LOCAL_EMMA_INSTRUMENT)) -ifeq (true,$(EMMA_INSTRUMENT_STATIC)) -LOCAL_STATIC_JAVA_LIBRARIES += emma -else -ifdef LOCAL_SDK_VERSION -ifdef TARGET_BUILD_APPS -# In unbundled build merge the emma library into the apk. -LOCAL_STATIC_JAVA_LIBRARIES += emma -else -# If build against the SDK in full build, core.jar is not used, -# we have to use prebiult emma.jar to make Proguard happy; -# Otherwise emma classes are included in core.jar. -LOCAL_PROGUARD_FLAGS += -libraryjars $(EMMA_JAR) -endif # full build -endif # LOCAL_SDK_VERSION -endif # EMMA_INSTRUMENT_STATIC -endif # LOCAL_EMMA_INSTRUMENT - -rs_compatibility_jni_libs := - -include $(BUILD_SYSTEM)/android_manifest.mk - -################################# - -################################# - -LOCAL_SDK_RES_VERSION:=$(strip $(LOCAL_SDK_RES_VERSION)) -ifeq ($(LOCAL_SDK_RES_VERSION),) - LOCAL_SDK_RES_VERSION:=$(LOCAL_SDK_VERSION) -endif - -$(LOCAL_INTERMEDIATE_TARGETS): \ - PRIVATE_ANDROID_MANIFEST := $(full_android_manifest) -ifneq (,$(filter-out current system_current, $(LOCAL_SDK_VERSION))) -$(LOCAL_INTERMEDIATE_TARGETS): \ - PRIVATE_DEFAULT_APP_TARGET_SDK := $(LOCAL_SDK_VERSION) -else -$(LOCAL_INTERMEDIATE_TARGETS): \ - PRIVATE_DEFAULT_APP_TARGET_SDK := $(DEFAULT_APP_TARGET_SDK) -endif - -ifeq ($(need_compile_res),true) - -# Since we don't know where the real R.java file is going to end up, -# we need to use another file to stand in its place. We'll just -# copy the generated file to src/R.stamp, which means it will -# have the same contents and timestamp as the actual file. -# -# At the same time, this will copy the R.java file to a central -# 'R' directory to make it easier to add the files to an IDE. -# - -$(R_file_stamp): PRIVATE_RESOURCE_PUBLICS_OUTPUT := \ - $(intermediates.COMMON)/public_resources.xml -$(R_file_stamp): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file) -$(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) | $(ACP) - @echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)" - @rm -f $@ - $(create-resource-java-files) - $(hide) for GENERATED_MANIFEST_FILE in `find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) \ - -name Manifest.java 2> /dev/null`; do \ - dir=`awk '/package/{gsub(/\./,"/",$$2);gsub(/;/,"",$$2);print $$2;exit}' $$GENERATED_MANIFEST_FILE`; \ - mkdir -p $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \ - $(ACP) -fp $$GENERATED_MANIFEST_FILE $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \ - done; - $(hide) for GENERATED_R_FILE in `find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) \ - -name R.java 2> /dev/null`; do \ - dir=`awk '/package/{gsub(/\./,"/",$$2);gsub(/;/,"",$$2);print $$2;exit}' $$GENERATED_R_FILE`; \ - mkdir -p $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \ - $(ACP) -fp $$GENERATED_R_FILE $(TARGET_COMMON_OUT_ROOT)/R/$$dir \ - || exit 31; \ - $(ACP) -fp $$GENERATED_R_FILE $@ || exit 32; \ - done; \ - -$(proguard_options_file): $(R_file_stamp) - -resource_export_package := -ifdef LOCAL_EXPORT_PACKAGE_RESOURCES -# Put this module's resources into a PRODUCT-agnositc package that -# other packages can use to build their own PRODUCT-agnostic R.java (etc.) -# files. -resource_export_package := $(intermediates.COMMON)/package-export.apk -$(R_file_stamp): $(resource_export_package) - -# add-assets-to-package looks at PRODUCT_AAPT_CONFIG, but this target -# can't know anything about PRODUCT. Clear it out just for this target. -$(resource_export_package): PRIVATE_PRODUCT_AAPT_CONFIG := -$(resource_export_package): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := -$(resource_export_package): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) - @echo "target Export Resources: $(PRIVATE_MODULE) ($@)" - $(create-empty-package) - $(add-assets-to-package) -endif - -# Other modules should depend on the BUILT module if -# they want to use this module's R.java file. -$(LOCAL_BUILT_MODULE): $(R_file_stamp) - -ifneq ($(full_classes_jar),) -# If full_classes_jar is non-empty, we're building sources. -# If we're building sources, the initial javac step (which -# produces full_classes_compiled_jar) needs to ensure the -# R.java and Manifest.java files have been generated first. -$(full_classes_compiled_jar): $(R_file_stamp) -endif - -endif # need_compile_res - -ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true) -# We need to explicitly clear this var so that we don't -# inherit the value from whomever caused us to be built. -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_INCLUDES := -else -# Most packages should link against the resources defined by framework-res. -# Even if they don't have their own resources, they may use framework -# resources. -ifneq ($(filter-out current system_current,$(LOCAL_SDK_RES_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current system_current,$(LOCAL_SDK_RES_VERSION))),) -# for released sdk versions, the platform resources were built into android.jar. -framework_res_package_export := \ - $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_RES_VERSION)/android.jar -framework_res_package_export_deps := $(framework_res_package_export) -else # LOCAL_SDK_RES_VERSION -framework_res_package_export := \ - $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk - -# Avoid possible circular dependency with our platform-res -ifneq ($(LOCAL_IGNORE_SUBDIR), true) -cm_plat_res_package_export := \ - $(call intermediates-dir-for,APPS,org.cyanogenmod.platform-res,,COMMON)/package-export.apk -endif # LOCAL_IGNORE_SUBDIR - -# We can't depend directly on the export.apk file; it won't get its -# PRIVATE_ vars set up correctly if we do. Instead, depend on the -# corresponding R.stamp file, which lists the export.apk as a dependency. -framework_res_package_export_deps := \ - $(dir $(framework_res_package_export))src/R.stamp - -ifneq ($(LOCAL_IGNORE_SUBDIR), true) -cm_plat_res_package_export_deps := \ - $(dir $(cm_plat_res_package_export))src/R.stamp -endif # LOCAL_IGNORE_SUBDIR - -endif # LOCAL_SDK_RES_VERSION -all_library_res_package_exports := \ - $(framework_res_package_export) \ - $(foreach lib,$(LOCAL_RES_LIBRARIES),\ - $(call intermediates-dir-for,APPS,$(lib),,COMMON)/package-export.apk) - -all_library_res_package_export_deps := \ - $(framework_res_package_export_deps) \ - $(foreach lib,$(LOCAL_RES_LIBRARIES),\ - $(call intermediates-dir-for,APPS,$(lib),,COMMON)/src/R.stamp) - -ifneq ($(LOCAL_IGNORE_SUBDIR), true) -all_library_res_package_exports += \ - $(cm_plat_res_package_export) -all_library_res_package_export_deps += \ - $(cm_plat_res_package_export_deps) -endif # LOCAL_IGNORE_SUBDIR - -$(resource_export_package) $(R_file_stamp) $(LOCAL_BUILT_MODULE): $(all_library_res_package_export_deps) -$(LOCAL_INTERMEDIATE_TARGETS): \ - PRIVATE_AAPT_INCLUDES := $(all_library_res_package_exports) -endif # LOCAL_NO_STANDARD_LIBRARIES - -ifneq ($(full_classes_jar),) -$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex) -$(LOCAL_BUILT_MODULE): $(built_dex) -endif # full_classes_jar - -include $(BUILD_SYSTEM)/install_jni_libs.mk - -# Pick a key to sign the package with. If this package hasn't specified -# an explicit certificate, use the default. -# Secure release builds will have their packages signed after the fact, -# so it's ok for these private keys to be in the clear. -ifeq ($(LOCAL_CERTIFICATE),) - LOCAL_CERTIFICATE := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) -endif - -ifeq ($(LOCAL_CERTIFICATE),EXTERNAL) - # The special value "EXTERNAL" means that we will sign it with the - # default devkey, apply predexopt, but then expect the final .apk - # (after dexopting) to be signed by an outside tool. - LOCAL_CERTIFICATE := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) - PACKAGES.$(LOCAL_PACKAGE_NAME).EXTERNAL_KEY := 1 -endif - -# If this is not an absolute certificate, assign it to a generic one. -ifeq ($(dir $(strip $(LOCAL_CERTIFICATE))),./) - LOCAL_CERTIFICATE := $(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))$(LOCAL_CERTIFICATE) -endif -private_key := $(LOCAL_CERTIFICATE).pk8 -certificate := $(LOCAL_CERTIFICATE).x509.pem - -$(LOCAL_BUILT_MODULE): $(private_key) $(certificate) $(SIGNAPK_JAR) -$(LOCAL_BUILT_MODULE): PRIVATE_PRIVATE_KEY := $(private_key) -$(LOCAL_BUILT_MODULE): PRIVATE_CERTIFICATE := $(certificate) - -PACKAGES.$(LOCAL_PACKAGE_NAME).PRIVATE_KEY := $(private_key) -PACKAGES.$(LOCAL_PACKAGE_NAME).CERTIFICATE := $(certificate) - -$(LOCAL_BUILT_MODULE): PRIVATE_ADDITIONAL_CERTIFICATES := $(foreach c,\ - $(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) - -# Define the rule to build the actual package. -$(LOCAL_BUILT_MODULE): $(AAPT) | $(ZIPALIGN) -# PRIVATE_JNI_SHARED_LIBRARIES is a list of :. -$(LOCAL_BUILT_MODULE): PRIVATE_JNI_SHARED_LIBRARIES := $(jni_shared_libraries_with_abis) -# PRIVATE_JNI_SHARED_LIBRARIES_ABI is a list of ABI names. -$(LOCAL_BUILT_MODULE): PRIVATE_JNI_SHARED_LIBRARIES_ABI := $(jni_shared_libraries_abis) -ifneq ($(TARGET_BUILD_APPS),) - # Include all resources for unbundled apps. - LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true -endif -ifeq ($(LOCAL_AAPT_INCLUDE_ALL_RESOURCES),true) - $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_CONFIG := - $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := -else - $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_CONFIG := $(PRODUCT_AAPT_CONFIG) -ifdef LOCAL_PACKAGE_SPLITS - $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := -else - $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := $(PRODUCT_AAPT_PREF_CONFIG) -endif -endif -$(LOCAL_BUILT_MODULE): $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest) - @echo "target Package: $(PRIVATE_MODULE) ($@)" - $(create-empty-package) - $(add-assets-to-package) -ifneq ($(jni_shared_libraries),) - $(add-jni-shared-libs-to-package) -endif -ifneq ($(full_classes_jar),) - $(add-dex-to-package) -endif - $(add-carried-java-resources) -ifneq ($(extra_jar_args),) - $(add-java-resources-to-package) -endif - $(sign-package) -ifdef LOCAL_DEX_PREOPT -ifneq (nostripping,$(LOCAL_DEX_PREOPT)) - $(call dexpreopt-remove-classes.dex,$@) -endif -endif - @# Alignment must happen after all other zip operations. - $(align-package) - -############################### -## Build dpi-specific apks, if it's apps_only build. -ifdef TARGET_BUILD_APPS -ifdef LOCAL_DPI_VARIANTS -$(foreach d, $(LOCAL_DPI_VARIANTS), \ - $(eval my_dpi := $(d)) \ - $(eval include $(BUILD_SYSTEM)/dpi_specific_apk.mk)) -endif -endif - -############################### -## Rule to build the odex file -ifdef LOCAL_DEX_PREOPT -$(built_odex): PRIVATE_DEX_FILE := $(built_dex) -# Use pattern rule - we may have multiple built odex files. -$(built_odex) : $(dir $(LOCAL_BUILT_MODULE))% : $(built_dex) - $(hide) mkdir -p $(dir $@) && rm -f $@ - $(add-dex-to-package) - $(hide) mv $@ $@.input - $(call dexpreopt-one-file,$@.input,$@) - $(hide) rm $@.input -endif - -############################### -## APK splits -ifdef LOCAL_PACKAGE_SPLITS -# LOCAL_PACKAGE_SPLITS is a list of resource labels. -# aapt will convert comma inside resource lable to underscore in the file names. -my_split_suffixes := $(subst $(comma),_,$(LOCAL_PACKAGE_SPLITS)) -built_apk_splits := $(foreach s,$(my_split_suffixes),$(built_module_path)/package_$(s).apk) -installed_apk_splits := $(foreach s,$(my_split_suffixes),$(my_module_path)/$(LOCAL_MODULE)_$(s).apk) - -# The splits should have been built in the same command building the base apk. -# This rule just runs signing and zipalign etc. -# Note that we explicily check the existence of the split apk and remove the -# built base apk if the split apk isn't there. -# That way the build system will rerun the aapt after the user changes the splitting parameters. -$(built_apk_splits): PRIVATE_PRIVATE_KEY := $(private_key) -$(built_apk_splits): PRIVATE_CERTIFICATE := $(certificate) -$(built_apk_splits) : $(built_module_path)/%.apk : $(LOCAL_BUILT_MODULE) - $(hide) if [ ! -f $@ ]; then \ - echo 'No $@ generated, check your apk splitting parameters.' 1>&2; \ - rm $<; exit 1; \ - fi - $(sign-package) - $(align-package) - -# Rules to install the splits -$(installed_apk_splits) : $(my_module_path)/$(LOCAL_MODULE)_%.apk : $(built_module_path)/package_%.apk | $(ACP) - @echo "Install: $@" - $(copy-file-to-new-target) - -# Register the additional built and installed files. -ALL_MODULES.$(my_register_name).INSTALLED += $(installed_apk_splits) -ALL_MODULES.$(my_register_name).BUILT_INSTALLED += \ - $(foreach s,$(my_split_suffixes),$(built_module_path)/package_$(s).apk:$(my_module_path)/$(LOCAL_MODULE)_$(s).apk) - -# Make sure to install the splits when you run "make ". -$(my_register_name): $(installed_apk_splits) -endif # LOCAL_PACKAGE_SPLITS - -# Save information about this package -PACKAGES.$(LOCAL_PACKAGE_NAME).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES)) -PACKAGES.$(LOCAL_PACKAGE_NAME).RESOURCE_FILES := $(all_resources) -ifdef package_resource_overlays -PACKAGES.$(LOCAL_PACKAGE_NAME).RESOURCE_OVERLAYS := $(package_resource_overlays) -endif - -PACKAGES := $(PACKAGES) $(LOCAL_PACKAGE_NAME) - -# Dist the files that can be bundled in system.img. -# They include the jni shared libraries and the apk with jni libraries stripped. -ifeq ($(LOCAL_DIST_BUNDLED_BINARIES),true) -ifneq ($(filter $(LOCAL_PACKAGE_NAME),$(TARGET_BUILD_APPS)),) -ifneq ($(strip $(jni_shared_libraries)),) -dist_subdir := bundled_$(LOCAL_PACKAGE_NAME) -$(foreach f, $(jni_shared_libraries), \ - $(call dist-for-goals, apps_only, $(f):$(dist_subdir)/$(notdir $(f)))) - -apk_jni_stripped := $(intermediates)/jni_stripped/package.apk -$(apk_jni_stripped): PRIVATE_JNI_SHARED_LIBRARIES := $(notdir $(jni_shared_libraries)) -$(apk_jni_stripped) : $(LOCAL_BUILT_MODULE) | $(ZIPALIGN) - @rm -rf $(dir $@) && mkdir -p $(dir $@) - $(hide) cp $< $@ - $(hide) zip -d $@ $(foreach f,$(PRIVATE_JNI_SHARED_LIBRARIES),\*/$(f)) - $(call align-package) - -$(call dist-for-goals, apps_only, $(apk_jni_stripped):$(dist_subdir)/$(LOCAL_PACKAGE_NAME).apk) - -endif # jni_shared_libraries -endif # apps_only build -endif # LOCAL_DIST_BUNDLED_BINARIES - -# Lint phony targets -.PHONY: lint-$(LOCAL_PACKAGE_NAME) -lint-$(LOCAL_PACKAGE_NAME): PRIVATE_PATH := $(LOCAL_PATH) -lint-$(LOCAL_PACKAGE_NAME): PRIVATE_LINT_FLAGS := $(LOCAL_LINT_FLAGS) -lint-$(LOCAL_PACKAGE_NAME) : - @echo lint $(PRIVATE_PATH) - $(LINT) $(PRIVATE_LINT_FLAGS) $(PRIVATE_PATH) - -lintall : lint-$(LOCAL_PACKAGE_NAME) - -endif # skip_definition - -# Reset internal variables. -all_res_assets := From 9e72011d47a287cda042d5c5c51468d5fe8d040e Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Fri, 18 Mar 2016 02:41:12 +0100 Subject: [PATCH 1063/1096] Remove apk --- core/prebuilt_internal.mk | 124 -------------------------------------- 1 file changed, 124 deletions(-) diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index b9adb62742a..d4cdaca21d6 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -112,131 +112,7 @@ endif endif # LOCAL_STRIP_MODULE not true ifeq ($(LOCAL_MODULE_CLASS),APPS) -PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES)) -# Select dpi-specific source -ifdef LOCAL_DPI_VARIANTS -my_dpi := $(firstword $(filter $(LOCAL_DPI_VARIANTS),$(PRODUCT_AAPT_PREF_CONFIG) $(PRODUCT_AAPT_PREBUILT_DPI))) -ifdef my_dpi -ifdef LOCAL_DPI_FILE_STEM -my_prebuilt_dpi_file_stem := $(LOCAL_DPI_FILE_STEM) -else -my_prebuilt_dpi_file_stem := $(LOCAL_MODULE)_%.apk -endif -my_prebuilt_src_file := $(dir $(my_prebuilt_src_file))$(subst %,$(my_dpi),$(my_prebuilt_dpi_file_stem)) -endif # my_dpi -endif # LOCAL_DPI_VARIANTS - -rs_compatibility_jni_libs := -include $(BUILD_SYSTEM)/install_jni_libs.mk - -ifeq ($(LOCAL_CERTIFICATE),EXTERNAL) - # The magic string "EXTERNAL" means this package will be signed with - # the default dev key throughout the build process, but we expect - # the final package to be signed with a different key. - # - # This can be used for packages where we don't have access to the - # keys, but want the package to be predexopt'ed. - LOCAL_CERTIFICATE := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) - PACKAGES.$(LOCAL_MODULE).EXTERNAL_KEY := 1 - - $(built_module) : PRIVATE_PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8 - $(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem -endif -ifeq ($(LOCAL_CERTIFICATE),) - # It is now a build error to add a prebuilt .apk without - # specifying a key for it. - $(error No LOCAL_CERTIFICATE specified for prebuilt "$(my_prebuilt_src_file)") -else ifeq ($(LOCAL_CERTIFICATE),PRESIGNED) - # The magic string "PRESIGNED" means this package is already checked - # signed with its release key. - # - # By setting .CERTIFICATE but not .PRIVATE_KEY, this package will be - # mentioned in apkcerts.txt (with certificate set to "PRESIGNED") - # but the dexpreopt process will not try to re-sign the app. - PACKAGES.$(LOCAL_MODULE).CERTIFICATE := PRESIGNED - PACKAGES := $(PACKAGES) $(LOCAL_MODULE) -else - # If this is not an absolute certificate, assign it to a generic one. - ifeq ($(dir $(strip $(LOCAL_CERTIFICATE))),./) - LOCAL_CERTIFICATE := $(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))$(LOCAL_CERTIFICATE) - endif - - PACKAGES.$(LOCAL_MODULE).PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8 - PACKAGES.$(LOCAL_MODULE).CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem - PACKAGES := $(PACKAGES) $(LOCAL_MODULE) - - $(built_module) : PRIVATE_PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8 - $(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem -endif - -# Disable dex-preopt of prebuilts to save space, if requested. -ifeq ($(DONT_DEXPREOPT_PREBUILTS),true) -LOCAL_DEX_PREOPT := false -endif - -####################################### -# defines built_odex along with rule to install odex -include $(BUILD_SYSTEM)/dex_preopt_odex_install.mk -####################################### -# Sign and align non-presigned .apks. -$(built_module) : $(my_prebuilt_src_file) | $(ACP) $(ZIPALIGN) $(SIGNAPK_JAR) - $(transform-prebuilt-to-target) -ifdef extracted_jni_libs - $(hide) zip -d $@ 'lib/*.so' # strip embedded JNI libraries. -endif -ifneq ($(LOCAL_CERTIFICATE),PRESIGNED) - $(sign-package) -endif -ifdef LOCAL_DEX_PREOPT -ifneq (nostripping,$(LOCAL_DEX_PREOPT)) - $(call dexpreopt-remove-classes.dex,$@) -endif -endif - $(align-package) - -############################### -## Rule to build the odex file -ifdef LOCAL_DEX_PREOPT -$(built_odex) : $(my_prebuilt_src_file) - $(call dexpreopt-one-file,$<,$@) -endif - -############################### -## Install split apks. -ifdef LOCAL_PACKAGE_SPLITS -# LOCAL_PACKAGE_SPLITS is a list of apks to be installed. -built_apk_splits := $(addprefix $(built_module_path)/,$(notdir $(LOCAL_PACKAGE_SPLITS))) -installed_apk_splits := $(addprefix $(my_module_path)/,$(notdir $(LOCAL_PACKAGE_SPLITS))) - -# Rules to sign and zipalign the split apks. -my_src_dir := $(sort $(dir $(LOCAL_PACKAGE_SPLITS))) -ifneq (1,$(words $(my_src_dir))) -$(error You must put all the split source apks in the same folder: $(LOCAL_PACKAGE_SPLITS)) -endif -my_src_dir := $(LOCAL_PATH)/$(my_src_dir) - -$(built_apk_splits) : PRIVATE_PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8 -$(built_apk_splits) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem -$(built_apk_splits) : $(built_module_path)/%.apk : $(my_src_dir)/%.apk | $(ACP) - $(copy-file-to-new-target) - $(sign-package) - $(align-package) - -# Rules to install the split apks. -$(installed_apk_splits) : $(my_module_path)/%.apk : $(built_module_path)/%.apk | $(ACP) - @echo -e ${CL_CYN}"Install: $@"${CL_RST} - $(copy-file-to-new-target) - -# Register the additional built and installed files. -ALL_MODULES.$(my_register_name).INSTALLED += $(installed_apk_splits) -ALL_MODULES.$(my_register_name).BUILT_INSTALLED += \ - $(foreach s,$(LOCAL_PACKAGE_SPLITS),$(built_module_path)/$(notdir $(s)):$(my_module_path)/$(notdir $(s))) - -# Make sure to install the splits when you run "make ". -$(my_register_name): $(installed_apk_splits) - -endif # LOCAL_PACKAGE_SPLITS else # LOCAL_MODULE_CLASS != APPS ifneq ($(LOCAL_PREBUILT_STRIP_COMMENTS),) From 7acc932e7239a1382267fb4eddb0721593b922b2 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Fri, 18 Mar 2016 02:52:51 +0100 Subject: [PATCH 1064/1096] Update prebuilt_internal.mk --- core/prebuilt_internal.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index d4cdaca21d6..93cdae7cbe6 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -111,7 +111,7 @@ endif endif # LOCAL_STRIP_MODULE not true -ifeq ($(LOCAL_MODULE_CLASS),APPS) +ifeq ($(LOCAL_MODULE_CLASS),APPS_) else # LOCAL_MODULE_CLASS != APPS From 95fb5c1120a3bb1a69022c588b5b2f37df2fc66f Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 22 Mar 2016 09:50:09 +0100 Subject: [PATCH 1065/1096] Skip build from source for now --- core/host_shared_library_internal.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/host_shared_library_internal.mk b/core/host_shared_library_internal.mk index d9769d38460..3177fa4162d 100644 --- a/core/host_shared_library_internal.mk +++ b/core/host_shared_library_internal.mk @@ -24,7 +24,7 @@ endif $(call host-shared-library-hook) -skip_build_from_source := +skip_build_from_source := true ifdef LOCAL_PREBUILT_MODULE_FILE ifeq (,$(call if-build-from-source,$(LOCAL_MODULE),$(LOCAL_PATH))) include $(BUILD_SYSTEM)/prebuilt_internal.mk From a913982cc3e371f5c15d038822cb7f294d14cf15 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 22 Mar 2016 10:36:31 +0100 Subject: [PATCH 1066/1096] Add exfat --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index 66f6133d1cf..e3a63c8ee58 100644 --- a/core/main.mk +++ b/core/main.mk @@ -497,6 +497,7 @@ subdirs := \ external/compiler-rt \ external/e2fsprogs \ external/expat \ + external/exfat \ external/flac \ external/freetype \ external/fsck_msdos \ From 5f965b537af9ed3255a4ad27c2cc709ee0cf6774 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 22 Mar 2016 11:07:46 +0100 Subject: [PATCH 1067/1096] Add fuse needed for exfat --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index e3a63c8ee58..db9ebb9afb4 100644 --- a/core/main.mk +++ b/core/main.mk @@ -501,6 +501,7 @@ subdirs := \ external/flac \ external/freetype \ external/fsck_msdos \ + external/fuse \ external/gcc-demangle \ external/genext2fs \ external/giflib \ From 6a3b9ec1b63ddbb7d4fbf4c9796663c1e841a93d Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 22 Mar 2016 12:47:22 +0100 Subject: [PATCH 1068/1096] Add libtar needed for recovery --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index db9ebb9afb4..00d16517e9e 100644 --- a/core/main.mk +++ b/core/main.mk @@ -540,6 +540,7 @@ subdirs := \ external/speex \ external/sqlite \ external/stlport \ + external/libtar \ external/tinycompress \ external/tinyalsa \ external/tremolo \ From 1ec4807d16cbbc2cdee5ac0325f54f501f5aef44 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 22 Mar 2016 14:05:30 +0100 Subject: [PATCH 1069/1096] Add lzma needed for recovery --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index 00d16517e9e..a4ed1a67f58 100644 --- a/core/main.mk +++ b/core/main.mk @@ -525,6 +525,7 @@ subdirs := \ external/libsepol \ external/libunwind \ external/lz4 \ + external/lzma \ external/mdnsresponder \ external/mksh \ external/openssl \ From 410d3ccb3d46b24ba664fc1724f4d3c4ead61940 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 22 Mar 2016 15:54:27 +0100 Subject: [PATCH 1070/1096] Update host_shared_library_internal.mk --- core/host_shared_library_internal.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/host_shared_library_internal.mk b/core/host_shared_library_internal.mk index 3177fa4162d..d9769d38460 100644 --- a/core/host_shared_library_internal.mk +++ b/core/host_shared_library_internal.mk @@ -24,7 +24,7 @@ endif $(call host-shared-library-hook) -skip_build_from_source := true +skip_build_from_source := ifdef LOCAL_PREBUILT_MODULE_FILE ifeq (,$(call if-build-from-source,$(LOCAL_MODULE),$(LOCAL_PATH))) include $(BUILD_SYSTEM)/prebuilt_internal.mk From deec2e51f69ac436dd79cd22a32212130844d0e0 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Wed, 27 Apr 2016 01:42:04 +0200 Subject: [PATCH 1071/1096] Build boot.img --- core/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 43d71702331..f2682c3ffed 100644 --- a/core/Makefile +++ b/core/Makefile @@ -451,7 +451,6 @@ event-log-tags: $(event_log_tags_file) ALL_DEFAULT_INSTALLED_MODULES += $(event_log_tags_file) - # ################################################################# # Targets for boot/OS images # ################################################################# @@ -584,6 +583,8 @@ endif INSTALLED_BOOTIMAGE_TARGET_ANDROID := $(PRODUCT_OUT)/android-boot.img +INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img + ifeq ($(TARGET_BOOTIMAGE_USE_EXT2),true) tmp_dir_for_image := $(call intermediates-dir-for,EXECUTABLES,boot_img)/bootimg INTERNAL_BOOTIMAGE_ARGS_COMMON += --tmpdir $(tmp_dir_for_image) @@ -667,6 +668,7 @@ INSTALLED_BOOTIMAGE_TARGET := $(INSTALLED_RAMDISK_TARGET) INSTALLED_BOOTIMAGE_TARGET_ANDROID := $(INSTALLED_RAMDISK_TARGET_ANDROID) endif + # ----------------------------------------------------------------- # NOTICE files # From 5019594ab304a14676c108a6e27d76121f861dc4 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 6 Sep 2016 16:53:47 +0200 Subject: [PATCH 1072/1096] Disable -DQCOM_BSP --- core/qcom_target.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/qcom_target.mk b/core/qcom_target.mk index 83c14904d2e..8af5c099743 100644 --- a/core/qcom_target.mk +++ b/core/qcom_target.mk @@ -14,9 +14,7 @@ endef ifeq ($(BOARD_USES_QCOM_HARDWARE),true) qcom_flags := -DQCOM_HARDWARE - qcom_flags += -DQCOM_BSP - TARGET_USES_QCOM_BSP := true TARGET_ENABLE_QC_AV_ENHANCEMENTS := true # Enable DirectTrack for legacy targets From 368e78577735ec977b06a15374696ae3468c449d Mon Sep 17 00:00:00 2001 From: Ratchanan Srirattanamet Date: Sun, 13 Nov 2016 15:00:01 +0700 Subject: [PATCH 1073/1096] main.mk: Add Fairphone directory for FP2 --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index a4ed1a67f58..7db6c6ac552 100644 --- a/core/main.mk +++ b/core/main.mk @@ -607,6 +607,7 @@ endif # device and vendor subdirs += \ device/asus \ + device/fairphone \ device/generic \ device/lge \ device/samsung \ From 49c870557ed2607f979fb50b0f5d3f43000ba8d0 Mon Sep 17 00:00:00 2001 From: Varun Chitre Date: Sun, 13 Nov 2016 14:09:58 +0000 Subject: [PATCH 1074/1096] build: add external/connectivity --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index 7db6c6ac552..864913db59f 100644 --- a/core/main.mk +++ b/core/main.mk @@ -495,6 +495,7 @@ subdirs := \ external/bzip2 \ external/checkpolicy \ external/compiler-rt \ + external/connectivity \ external/e2fsprogs \ external/expat \ external/exfat \ From 8c7bb21420aa12d7c8fb139a8368840e6b47b367 Mon Sep 17 00:00:00 2001 From: smoose-nils Date: Thu, 17 Nov 2016 19:45:52 +0100 Subject: [PATCH 1075/1096] build: added external/libxml2 --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index 864913db59f..848047975bb 100644 --- a/core/main.mk +++ b/core/main.mk @@ -525,6 +525,7 @@ subdirs := \ external/libselinux \ external/libsepol \ external/libunwind \ + external/libxml2 \ external/lz4 \ external/lzma \ external/mdnsresponder \ From 3959e7a51f510859318366d4aed06a47504dd0b9 Mon Sep 17 00:00:00 2001 From: smoose-nils Date: Fri, 25 Nov 2016 10:30:56 +0100 Subject: [PATCH 1076/1096] build: added external/bson, external/curl, external/libxml2 to main.mk --- core/main.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/main.mk b/core/main.mk index 848047975bb..027dec91f50 100644 --- a/core/main.mk +++ b/core/main.mk @@ -492,10 +492,12 @@ subdirs := \ development/tools/emulator/opengl \ external/aac \ external/busybox \ + external/bson \ external/bzip2 \ external/checkpolicy \ external/compiler-rt \ external/connectivity \ + external/curl \ external/e2fsprogs \ external/expat \ external/exfat \ @@ -525,7 +527,7 @@ subdirs := \ external/libselinux \ external/libsepol \ external/libunwind \ - external/libxml2 \ + external/libxml2 \ external/lz4 \ external/lzma \ external/mdnsresponder \ From 53b7d5694f587368ef23d8df593df95214bcd4d2 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Wed, 28 Dec 2016 01:02:23 +0100 Subject: [PATCH 1077/1096] Disable build of zipalign due to 16.04 build errors --- tools/zipalign/{Android.mk => Android-.mk} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tools/zipalign/{Android.mk => Android-.mk} (100%) diff --git a/tools/zipalign/Android.mk b/tools/zipalign/Android-.mk similarity index 100% rename from tools/zipalign/Android.mk rename to tools/zipalign/Android-.mk From e2ad5a59daea4bd4ef65b34676c4201a9a901040 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Thu, 29 Dec 2016 11:40:44 +0100 Subject: [PATCH 1078/1096] build: Add audioflingerglue --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index 027dec91f50..d967c4aa39b 100644 --- a/core/main.mk +++ b/core/main.mk @@ -491,6 +491,7 @@ subdirs := \ build/tools/zipalign \ development/tools/emulator/opengl \ external/aac \ + external/audioflingerglue \ external/busybox \ external/bson \ external/bzip2 \ From 2ed33b05934dfc41f5b8be1ef721c92347e1c810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alfonso=20S=C3=A1nchez-Beato?= Date: Tue, 10 Jan 2017 12:25:51 +0100 Subject: [PATCH 1079/1096] Add subdirs for external/{iproute2,iptables} These projects are needed by qcomm's netmgrd. --- core/main.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/main.mk b/core/main.mk index d967c4aa39b..ca3cd2a82eb 100644 --- a/core/main.mk +++ b/core/main.mk @@ -511,6 +511,8 @@ subdirs := \ external/giflib \ external/gtest \ external/icu/icu4c \ + external/iproute2 \ + external/iptables \ external/jemalloc \ external/jhead \ external/jpeg \ From d1fabbbda48e5b75d9071c38010b65caf6f63997 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Sat, 28 Jan 2017 03:39:06 +0100 Subject: [PATCH 1080/1096] [kernel] build arm64 kernels Change-Id: I84884929a93dbca1d7a4f22c0e0f2181c7c7385a --- core/tasks/kernel.mk | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index a68ea3ac6de..c4676b1f347 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -204,7 +204,7 @@ define clean-module-folder fi endef -ifeq ($(TARGET_ARCH),arm) +ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm arm64)) ifneq ($(USE_CCACHE),) # search executable ccache = @@ -218,14 +218,31 @@ ifeq ($(TARGET_ARCH),arm) endif ifneq ($(TARGET_KERNEL_CUSTOM_TOOLCHAIN),) ifeq ($(HOST_OS),darwin) - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-" + ifeq ($(TARGET_ARCH),arm64) + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/aarch64-linux-android-" + else + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-" + endif else - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-" + ifeq ($(TARGET_ARCH),arm64) + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/aarch64-linux-android-" + else + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-" + endif endif else - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ARM_EABI_TOOLCHAIN)/arm-eabi-" + ifeq ($(TARGET_ARCH),arm64) + ifneq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),) + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_TOOLCHAIN)/$(TARGET_KERNEL_CROSS_COMPILE_PREFIX)" + else + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_TOOLCHAIN)/aarch64-linux-android-" + endif + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilts/gcc/$(HOST_OS)-x86/aarch64/aarch64-linux-android-4.8/bin/aarch64-linux-android-" + else + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ARM_EABI_TOOLCHAIN)/arm-eabi-" + endif endif - ccache = + ccache = endif ifeq ($(HOST_OS),darwin) From 5a23118615a6e25786cbedc7ef8c2678c9a04de1 Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Sat, 31 Oct 2015 04:50:20 -0700 Subject: [PATCH 1081/1096] build: create dt.img task * Remove dt.img creation from generate_extra_images Change-Id: I676b588cd9acb671771acda638abefee036f0519 --- core/generate_extra_images.mk | 37 ----------------------------------- core/tasks/dt_image.mk | 34 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 37 deletions(-) create mode 100644 core/tasks/dt_image.mk diff --git a/core/generate_extra_images.mk b/core/generate_extra_images.mk index 041253ce451..319fb1fc4ca 100644 --- a/core/generate_extra_images.mk +++ b/core/generate_extra_images.mk @@ -80,43 +80,6 @@ $(INSTALLED_PERSISTIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INTERNAL_PERS ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_PERSISTIMAGE_TARGET) ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_PERSISTIMAGE_TARGET) - -#---------------------------------------------------------------------- -# Generate device tree image (dt.img) -#---------------------------------------------------------------------- -ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) -ifeq ($(strip $(BUILD_TINY_ANDROID)),true) -include device/qcom/common/dtbtool/Android.mk -endif - -ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),) -DTBTOOL_NAME := dtbToolCM -else -DTBTOOL_NAME := $(TARGET_CUSTOM_DTBTOOL) -endif - -DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX) - -INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img - -possible_dtb_dirs = $(KERNEL_OUT)/arch/$(TARGET_KERNEL_ARCH)/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/ -dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs))) - -define build-dtimage-target - $(call pretty,"Target dt image: $(INSTALLED_DTIMAGE_TARGET)") - $(hide) $(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir) - $(hide) chmod a+r $@ -endef - -$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET) - $(build-dtimage-target) - @echo -e ${CL_CYN}"Made DT image: $@"${CL_RST} - -ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET) -ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET) -endif - - #---------------------------------------------------------------------- # Generate 1GB userdata image for 8930 #---------------------------------------------------------------------- diff --git a/core/tasks/dt_image.mk b/core/tasks/dt_image.mk new file mode 100644 index 00000000000..b1030467c98 --- /dev/null +++ b/core/tasks/dt_image.mk @@ -0,0 +1,34 @@ +#---------------------------------------------------------------------- +# Generate device tree image (dt.img) +#---------------------------------------------------------------------- +ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) +ifeq ($(strip $(BUILD_TINY_ANDROID)),true) +include device/qcom/common/dtbtool/Android.mk +endif + +ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),) +DTBTOOL_NAME := dtbToolCM +else +DTBTOOL_NAME := $(TARGET_CUSTOM_DTBTOOL) +endif + +DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX) + +INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img + +possible_dtb_dirs = $(KERNEL_OUT)/arch/$(TARGET_KERNEL_ARCH)/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/ +dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs))) + +define build-dtimage-target + $(call pretty,"Target dt image: $@") + $(hide) $(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir) + $(hide) chmod a+r $@ +endef + +$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET) + $(build-dtimage-target) + @echo -e ${CL_CYN}"Made DT image: $@"${CL_RST} + +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET) +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET) +endif From a53f6e42c0fabca03be5be8ce1ec9ce2504f030a Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 31 Jan 2017 22:48:22 +0100 Subject: [PATCH 1082/1096] [kernel] (fix commit message) Change-Id: I264b7f1f5ad8d5b119354716bd73cc0393b50c42 --- core/tasks/kernel.mk | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index c4676b1f347..5afc5126ea2 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -135,14 +135,21 @@ else $(warning **********************************************************) # $(error "NO KERNEL CONFIG") else - #$(info Kernel source found, building it) FULL_KERNEL_BUILD := true - ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true) - $(info Using uncompressed kernel) - KERNEL_BIN := $(KERNEL_OUT)/piggy + ifneq ($(BOARD_KERNEL_IMAGE_NAME),) + TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME) else - KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL) + ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true) + TARGET_PREBUILT_INT_KERNEL_TYPE := Image + else + ifeq ($(KERNEL_ARCH),arm64) + TARGET_PREBUILT_INT_KERNEL_TYPE := Image.gz + else + TARGET_PREBUILT_INT_KERNEL_TYPE := zImage + endif + endif endif + KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL) endif endif From 6fff1209f9e631a1d57ffa176c69f28ad34683b4 Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Sat, 31 Oct 2015 04:50:20 -0700 Subject: [PATCH 1083/1096] build: create dt.img task * Remove dt.img creation from generate_extra_images Change-Id: I676b588cd9acb671771acda638abefee036f0519 --- core/generate_extra_images.mk | 37 ----------------------------------- core/tasks/dt_image.mk | 34 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 37 deletions(-) create mode 100644 core/tasks/dt_image.mk diff --git a/core/generate_extra_images.mk b/core/generate_extra_images.mk index 041253ce451..319fb1fc4ca 100644 --- a/core/generate_extra_images.mk +++ b/core/generate_extra_images.mk @@ -80,43 +80,6 @@ $(INSTALLED_PERSISTIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INTERNAL_PERS ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_PERSISTIMAGE_TARGET) ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_PERSISTIMAGE_TARGET) - -#---------------------------------------------------------------------- -# Generate device tree image (dt.img) -#---------------------------------------------------------------------- -ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) -ifeq ($(strip $(BUILD_TINY_ANDROID)),true) -include device/qcom/common/dtbtool/Android.mk -endif - -ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),) -DTBTOOL_NAME := dtbToolCM -else -DTBTOOL_NAME := $(TARGET_CUSTOM_DTBTOOL) -endif - -DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX) - -INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img - -possible_dtb_dirs = $(KERNEL_OUT)/arch/$(TARGET_KERNEL_ARCH)/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/ -dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs))) - -define build-dtimage-target - $(call pretty,"Target dt image: $(INSTALLED_DTIMAGE_TARGET)") - $(hide) $(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir) - $(hide) chmod a+r $@ -endef - -$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET) - $(build-dtimage-target) - @echo -e ${CL_CYN}"Made DT image: $@"${CL_RST} - -ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET) -ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET) -endif - - #---------------------------------------------------------------------- # Generate 1GB userdata image for 8930 #---------------------------------------------------------------------- diff --git a/core/tasks/dt_image.mk b/core/tasks/dt_image.mk new file mode 100644 index 00000000000..b1030467c98 --- /dev/null +++ b/core/tasks/dt_image.mk @@ -0,0 +1,34 @@ +#---------------------------------------------------------------------- +# Generate device tree image (dt.img) +#---------------------------------------------------------------------- +ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) +ifeq ($(strip $(BUILD_TINY_ANDROID)),true) +include device/qcom/common/dtbtool/Android.mk +endif + +ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),) +DTBTOOL_NAME := dtbToolCM +else +DTBTOOL_NAME := $(TARGET_CUSTOM_DTBTOOL) +endif + +DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX) + +INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img + +possible_dtb_dirs = $(KERNEL_OUT)/arch/$(TARGET_KERNEL_ARCH)/boot/dts/ $(KERNEL_OUT)/arch/arm/boot/ +dtb_dir = $(firstword $(wildcard $(possible_dtb_dirs))) + +define build-dtimage-target + $(call pretty,"Target dt image: $@") + $(hide) $(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(dtb_dir) + $(hide) chmod a+r $@ +endef + +$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET) + $(build-dtimage-target) + @echo -e ${CL_CYN}"Made DT image: $@"${CL_RST} + +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET) +ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET) +endif From f725359fa8e9328b2db44787eb8fe5f421409d7b Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 31 Jan 2017 23:25:43 +0100 Subject: [PATCH 1084/1096] [dt] Do not use dt_image if BOARD_MKBOOTIMG_ARGS is defined Change-Id: I6d13310dc367bcef7a33680fb8076f157e64b821 --- core/tasks/dt_image.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/tasks/dt_image.mk b/core/tasks/dt_image.mk index b1030467c98..dbf6dbf6a70 100644 --- a/core/tasks/dt_image.mk +++ b/core/tasks/dt_image.mk @@ -1,6 +1,7 @@ #---------------------------------------------------------------------- # Generate device tree image (dt.img) #---------------------------------------------------------------------- +ifndef BOARD_CUSTOM_BOOTIMG_MK ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) ifeq ($(strip $(BUILD_TINY_ANDROID)),true) include device/qcom/common/dtbtool/Android.mk @@ -32,3 +33,4 @@ $(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET) ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET) ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET) endif +endif From c39c5ff1248c11a09a5213372e6dd34b09171460 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Tue, 31 Jan 2017 23:25:43 +0100 Subject: [PATCH 1085/1096] [dt] Do not use dt_image if BOARD_MKBOOTIMG_ARGS is defined Change-Id: I6d13310dc367bcef7a33680fb8076f157e64b821 --- core/tasks/dt_image.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/tasks/dt_image.mk b/core/tasks/dt_image.mk index b1030467c98..dbf6dbf6a70 100644 --- a/core/tasks/dt_image.mk +++ b/core/tasks/dt_image.mk @@ -1,6 +1,7 @@ #---------------------------------------------------------------------- # Generate device tree image (dt.img) #---------------------------------------------------------------------- +ifndef BOARD_CUSTOM_BOOTIMG_MK ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) ifeq ($(strip $(BUILD_TINY_ANDROID)),true) include device/qcom/common/dtbtool/Android.mk @@ -32,3 +33,4 @@ $(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET) ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET) ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET) endif +endif From 91f16c7a88a85515e9c5660240971862b9159e73 Mon Sep 17 00:00:00 2001 From: Ratchanan Srirattanamet Date: Thu, 6 Apr 2017 01:53:50 +0700 Subject: [PATCH 1086/1096] (2/3) Make TimeKeep available to keep time offset TimeKeep is utility to keep/restore RTC offset for Qualcomm device, where RTC is not setable. It works by keeping the offset between the RTC time and system time in a property (or a file) and restore it at boot. This commit add Sony's vendor subdirectory to the subdirs list. As TimeKeep is originaly from Sony's AOSP, it's kept in Sony's vendor directory. Change-Id: I6673e7447f2715aabb8926bb39f491d42f848145 --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index ca3cd2a82eb..6391df5f9ff 100644 --- a/core/main.mk +++ b/core/main.mk @@ -632,6 +632,7 @@ subdirs += \ vendor/nxp \ vendor/qcom \ vendor/samsung \ + vendor/sony \ vendor/widevine # Specific projects for Ubuntu Touch From d88c474cb1f33b6f41107c686f06fbfc65ad8bee Mon Sep 17 00:00:00 2001 From: You-Sheng Yang Date: Fri, 25 Nov 2016 12:28:36 +0800 Subject: [PATCH 1087/1096] ubuntu: allow overriding initrd variables Change-Id: I2a88130cb9a2abd5a6ca1d67038e556267ca272a --- core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index f2682c3ffed..cb597a76df0 100644 --- a/core/Makefile +++ b/core/Makefile @@ -499,8 +499,8 @@ $(BOOT_ANDROID_RAMDISK_IMG): $(INSTALLED_RAMDISK_TARGET_ANDROID) $(hide) $(ACP) $(INSTALLED_RAMDISK_TARGET_ANDROID) $@ # Download the Ubuntu Touch ramdisk from the archive -TARGET_UBUNTU_INITRD_PKG := ubuntu-touch-generic-initrd -TARGET_UBUNTU_INITRD_SERIES := vivid +TARGET_UBUNTU_INITRD_PKG ?= ubuntu-touch-generic-initrd +TARGET_UBUNTU_INITRD_SERIES ?= vivid TARGET_OUT_UBUNTU_INITRD_PKG := $(TARGET_OUT_UBUNTU)/$(TARGET_UBUNTU_INITRD_PKG) TARGET_UBUNTU_INITRD_LP_IMG := $(TARGET_OUT_UBUNTU_INITRD_PKG)/usr/lib/ubuntu-touch-generic-initrd/initrd.img-touch TARGET_UBUNTU_INITRD_REPO := $(PWD)/ubuntu/ubuntu_prebuilt_initrd/initrd.img-touch From 6b3024f57bafe08bee720aa6249aa960172c94d0 Mon Sep 17 00:00:00 2001 From: You-Sheng Yang Date: Fri, 25 Nov 2016 13:17:39 +0800 Subject: [PATCH 1088/1096] ubuntu: add more params for initrd fetching - TARGET_UBUNTU_INITRD_PPA: ex. ci-train-ppa-service - TARGET_UBUNTU_INITRD_TEAM: ex. stable-phone-overlay Change-Id: Ib5def5d07ef537ffa02751d7844207f44f677b7b --- core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index cb597a76df0..08b4e40d384 100644 --- a/core/Makefile +++ b/core/Makefile @@ -520,10 +520,10 @@ ifdef BOARD_USE_LOCAL_INITRD $(call pretty,"Using local initrd repo:$(TARGET_UBUNTU_INITRD_REPO)") $(hide) $(ACP) $(TARGET_UBUNTU_INITRD_REPO) $@ else - $(call pretty,"Downloading upstream initrd: $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD_PKG) -a $(TARGET_UBUNTU_ARCH) $(TARGET_UBUNTU_INITRD_SERIES)") + $(call pretty,"Downloading upstream initrd: $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD_PKG) -a $(TARGET_UBUNTU_ARCH)$(if $(TARGET_UBUNTU_INITRD_TEAM), -t $(TARGET_UBUNTU_INITRD_TEAM))$(if $(TARGET_UBUNTU_INITRD_PPA), -p $(TARGET_UBUNTU_INITRD_PPA)) $(TARGET_UBUNTU_INITRD_SERIES)") $(hide) rm -rf $(TARGET_OUT_UBUNTU_INITRD_PKG) $(hide) mkdir -p $(TARGET_OUT_UBUNTU_INITRD_PKG) - $(hide) $(PULL_LP_BIN) $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD_PKG) -a $(TARGET_UBUNTU_ARCH) $(TARGET_UBUNTU_INITRD_SERIES) + $(hide) $(PULL_LP_BIN) $(TARGET_UBUNTU_INITRD_PKG) -o $(TARGET_OUT_UBUNTU_INITRD_PKG) -a $(TARGET_UBUNTU_ARCH)$(if $(TARGET_UBUNTU_INITRD_TEAM), -t $(TARGET_UBUNTU_INITRD_TEAM))$(if $(TARGET_UBUNTU_INITRD_PPA), -p $(TARGET_UBUNTU_INITRD_PPA)) $(TARGET_UBUNTU_INITRD_SERIES) $(hide) dpkg-deb -x $(TARGET_OUT_UBUNTU_INITRD_PKG)/$(TARGET_UBUNTU_INITRD_PKG)*.deb $(TARGET_OUT_UBUNTU_INITRD_PKG) $(hide) $(ACP) $(TARGET_UBUNTU_INITRD_LP_IMG) $@ endif From 7baaf5028b0076d53d39c00d5f8e3d6ab0309fad Mon Sep 17 00:00:00 2001 From: Ratchanan Srirattanamet Date: Tue, 6 Jun 2017 17:03:24 +0700 Subject: [PATCH 1089/1096] ubuntu: download prebuilt initrd from UBPorts' PPA. Change-Id: I53248d9bdd4dcee7edecf4299f497157c3a83121 --- core/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/Makefile b/core/Makefile index 08b4e40d384..1925f71037e 100644 --- a/core/Makefile +++ b/core/Makefile @@ -501,6 +501,9 @@ $(BOOT_ANDROID_RAMDISK_IMG): $(INSTALLED_RAMDISK_TARGET_ANDROID) # Download the Ubuntu Touch ramdisk from the archive TARGET_UBUNTU_INITRD_PKG ?= ubuntu-touch-generic-initrd TARGET_UBUNTU_INITRD_SERIES ?= vivid +TARGET_UBUNTU_INITRD_TEAM ?= ubports-developers +TARGET_UBUNTU_INITRD_PPA ?= overlay + TARGET_OUT_UBUNTU_INITRD_PKG := $(TARGET_OUT_UBUNTU)/$(TARGET_UBUNTU_INITRD_PKG) TARGET_UBUNTU_INITRD_LP_IMG := $(TARGET_OUT_UBUNTU_INITRD_PKG)/usr/lib/ubuntu-touch-generic-initrd/initrd.img-touch TARGET_UBUNTU_INITRD_REPO := $(PWD)/ubuntu/ubuntu_prebuilt_initrd/initrd.img-touch From e6f8fc2bc1decce1e10b337336bde03bf7dc7d25 Mon Sep 17 00:00:00 2001 From: Marius Gripsgard Date: Thu, 8 Jun 2017 00:18:53 +0200 Subject: [PATCH 1090/1096] Add oneplus device folder Needed to build gps and liblights Change-Id: I29418e12e09e95d18d4ff94a499b362b7cebe091 --- core/main.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/core/main.mk b/core/main.mk index ca3cd2a82eb..cc36ab0bece 100644 --- a/core/main.mk +++ b/core/main.mk @@ -618,6 +618,7 @@ subdirs += \ device/generic \ device/lge \ device/samsung \ + device/oneplus \ device/qcom/common \ vendor/oneplus/bacon \ vendor/oppo/msm8974-common \ From 4254eecd50230f34035d31878f7cf78c34e29630 Mon Sep 17 00:00:00 2001 From: Ratchanan Srirattanamet Date: Mon, 12 Jun 2017 19:48:46 +0700 Subject: [PATCH 1091/1096] Makefile: correcting the use of INTERNAL_BOOTIMAGE_ARGS_COMMON Even if BOARD_CUSTOM_BOOTIMG_MK is defined, it still need to include INTERNAL_BOOTIMAGE_ARGS_COMMON in INTERNAL_BOOTIMAGE_ARGS, as it'll be used in BOARD_CUSTOM_BOOTIMG_MK makefile. Change-Id: Ib7fee90e54a21311f3b19355f6b6bc8aa6f3cd06 --- core/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/Makefile b/core/Makefile index 1925f71037e..2119c94abf8 100644 --- a/core/Makefile +++ b/core/Makefile @@ -659,6 +659,9 @@ bootimage-nodeps: $(MKBOOTIMG) @echo -e ${CL_INS}"Made boot image: $@"${CL_RST} endif # PRODUCT_SUPPORTS_VERITY +else + INTERNAL_BOOTIMAGE_ARGS += $(INTERNAL_BOOTIMAGE_ARGS_COMMON) + INTERNAL_BOOTIMAGE_ARGS_ANDROID += $(INTERNAL_BOOTIMAGE_ARGS_COMMON) endif # TARGET_BOOTIMAGE_USE_EXT2 / BOARD_CUSTOM_BOOTIMG_MK else # TARGET_NO_KERNEL From 5cef274186ca928eb5fcd52ef4ddababda08692c Mon Sep 17 00:00:00 2001 From: Andreas Pokorny Date: Sat, 17 Jun 2017 21:23:28 +0200 Subject: [PATCH 1092/1096] arm64 kernel Makefile fix Make sure that strip from the actual toolchain is used Change-Id: I66c6f484a4925d46bfacf55148ad83b800f072e6 Signed-off-by: Andreas Pokorny --- core/tasks/kernel.mk | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 5afc5126ea2..6b19935d651 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -194,16 +194,6 @@ $(TARGET_OUT_UBUNTU_KERNEL)/vmlinuz: $(TARGET_OUT_UBUNTU_KERNEL) $(KERNEL_HEADER else ifeq ($(FULL_KERNEL_BUILD),true) -define mv-modules - mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.order`;\ - if [ "$$mdpath" != "" ];then\ - mpath=`dirname $$mdpath`;\ - ko=`find $$mpath/kernel -type f -name *.ko`;\ - for i in $$ko; do $(ARM_EABI_TOOLCHAIN)/arm-eabi-strip --strip-unneeded $$i;\ - mv $$i $(KERNEL_MODULES_OUT)/; done;\ - fi -endef - define clean-module-folder mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.order`;\ if [ "$$mdpath" != "" ];then\ @@ -226,32 +216,45 @@ ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm arm64)) ifneq ($(TARGET_KERNEL_CUSTOM_TOOLCHAIN),) ifeq ($(HOST_OS),darwin) ifeq ($(TARGET_ARCH),arm64) - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/aarch64-linux-android-" + TARGET_KERNEL_CROSS_COMPILE_PREFIX:=aarch64-linux-android- + ANDROID_TOOLCHAIN:=$(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ else - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-" + TARGET_KERNEL_CROSS_COMPILE_PREFIX:=arm-eabi- + ANDROID_TOOLCHAIN:=$(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ endif else ifeq ($(TARGET_ARCH),arm64) - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/aarch64-linux-android-" + TARGET_KERNEL_CROSS_COMPILE_PREFIX:=aarch64-linux-android- + ANDROID_TOOLCHAIN:=$(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ else - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-" + TARGET_KERNEL_CROSS_COMPILE_PREFIX:=arm-eabi- + ANDROID_TOOLCHAIN:=$(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ endif endif else ifeq ($(TARGET_ARCH),arm64) - ifneq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),) - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_TOOLCHAIN)/$(TARGET_KERNEL_CROSS_COMPILE_PREFIX)" - else - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_TOOLCHAIN)/aarch64-linux-android-" + ifeq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),) + TARGET_KERNEL_CROSS_COMPILE_PREFIX:=aarch64-linux-android- endif - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilts/gcc/$(HOST_OS)-x86/aarch64/aarch64-linux-android-4.8/bin/aarch64-linux-android-" else - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ARM_EABI_TOOLCHAIN)/arm-eabi-" + TARGET_KERNEL_CROSS_COMPILE_PREFIX=arm-eabi + ANDROID_TOOLCHAN:=$(ARM_EABI_TOOLCHAIN) endif endif + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_TOOLCHAIN)/$(TARGET_KERNEL_CROSS_COMPILE_PREFIX)" ccache = endif +define mv-modules + mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.order`;\ + if [ "$$mdpath" != "" ];then\ + mpath=`dirname $$mdpath`;\ + ko=`find $$mpath/kernel -type f -name *.ko`;\ + for i in $$ko; do $(ANDROID_TOOLCHAIN)/$(TARGET_KERNEL_CROSS_COMPILE_PREFIX)strip --strip-unneeded $$i;\ + mv $$i $(KERNEL_MODULES_OUT)/; done;\ + fi +endef + ifeq ($(HOST_OS),darwin) MAKE_FLAGS := C_INCLUDE_PATH=$(ANDROID_BUILD_TOP)/external/elfutils/libelf endif From 3832c79d298b9982be8cfc933ea2a455f0394d65 Mon Sep 17 00:00:00 2001 From: Ratchanan Srirattanamet Date: Wed, 21 Jun 2017 00:57:31 +0700 Subject: [PATCH 1093/1096] kernel.mk: fix incorrect prefix name and variable setting. Change-Id: Iacfc933da842f52cdb1b021c8bd74f848c73759c --- core/tasks/kernel.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 6b19935d651..67efa42e9c2 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -237,7 +237,7 @@ ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm arm64)) TARGET_KERNEL_CROSS_COMPILE_PREFIX:=aarch64-linux-android- endif else - TARGET_KERNEL_CROSS_COMPILE_PREFIX=arm-eabi + TARGET_KERNEL_CROSS_COMPILE_PREFIX:=arm-eabi- ANDROID_TOOLCHAN:=$(ARM_EABI_TOOLCHAIN) endif endif From 1046aa54c2361f89d9b5e5556ad98e60a2b1fccc Mon Sep 17 00:00:00 2001 From: Ratchanan Srirattanamet Date: Wed, 21 Jun 2017 01:04:08 +0700 Subject: [PATCH 1094/1096] kernel.mk: change the variable for kernel toolchain path. ANDROID_TOOLCHAIN is a variable used in envsetup.sh. Change the variable name so that it reads more related to kernel things. This also fix a typo by replacing it to another variable. Change-Id: Ic73fc21496aa29e436b446a9e6faa536c0b5a30c --- core/tasks/kernel.mk | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk index 67efa42e9c2..6e4652e6588 100644 --- a/core/tasks/kernel.mk +++ b/core/tasks/kernel.mk @@ -217,18 +217,18 @@ ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm arm64)) ifeq ($(HOST_OS),darwin) ifeq ($(TARGET_ARCH),arm64) TARGET_KERNEL_CROSS_COMPILE_PREFIX:=aarch64-linux-android- - ANDROID_TOOLCHAIN:=$(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ + TARGET_KERNEL_CROSS_COMPILE_TOOLCHAIN_PATH:=$(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ else TARGET_KERNEL_CROSS_COMPILE_PREFIX:=arm-eabi- - ANDROID_TOOLCHAIN:=$(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ + TARGET_KERNEL_CROSS_COMPILE_TOOLCHAIN_PATH:=$(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ endif else ifeq ($(TARGET_ARCH),arm64) TARGET_KERNEL_CROSS_COMPILE_PREFIX:=aarch64-linux-android- - ANDROID_TOOLCHAIN:=$(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ + TARGET_KERNEL_CROSS_COMPILE_TOOLCHAIN_PATH:=$(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ else TARGET_KERNEL_CROSS_COMPILE_PREFIX:=arm-eabi- - ANDROID_TOOLCHAIN:=$(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ + TARGET_KERNEL_CROSS_COMPILE_TOOLCHAIN_PATH:=$(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/ endif endif else @@ -238,10 +238,10 @@ ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm arm64)) endif else TARGET_KERNEL_CROSS_COMPILE_PREFIX:=arm-eabi- - ANDROID_TOOLCHAN:=$(ARM_EABI_TOOLCHAIN) + TARGET_KERNEL_CROSS_COMPILE_TOOLCHAIN_PATH:=$(ARM_EABI_TOOLCHAIN) endif endif - ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_TOOLCHAIN)/$(TARGET_KERNEL_CROSS_COMPILE_PREFIX)" + ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(TARGET_KERNEL_CROSS_COMPILE_TOOLCHAIN_PATH)/$(TARGET_KERNEL_CROSS_COMPILE_PREFIX)" ccache = endif @@ -250,7 +250,7 @@ define mv-modules if [ "$$mdpath" != "" ];then\ mpath=`dirname $$mdpath`;\ ko=`find $$mpath/kernel -type f -name *.ko`;\ - for i in $$ko; do $(ANDROID_TOOLCHAIN)/$(TARGET_KERNEL_CROSS_COMPILE_PREFIX)strip --strip-unneeded $$i;\ + for i in $$ko; do $(TARGET_KERNEL_CROSS_COMPILE_TOOLCHAIN_PATH)/$(TARGET_KERNEL_CROSS_COMPILE_PREFIX)strip --strip-unneeded $$i;\ mv $$i $(KERNEL_MODULES_OUT)/; done;\ fi endef From 0913791bdbcafd6048af078a3534c287e4d39f23 Mon Sep 17 00:00:00 2001 From: Ratchanan Srirattanamet Date: Wed, 19 Aug 2020 22:54:10 +0700 Subject: [PATCH 1095/1096] core_base.mk: add CAMERA_SERVICE_WANT_UBUNTU_HEADERS Fixes video recording for AAL backend after upgrading libhybris. Change-Id: Ibe578d59d470ea87bb62274ff3373fa6e2f82be3 --- target/product/core_base.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/product/core_base.mk b/target/product/core_base.mk index 5e7cbeb019a..1fcde853230 100644 --- a/target/product/core_base.mk +++ b/target/product/core_base.mk @@ -90,4 +90,9 @@ PRODUCT_PACKAGES += \ direct_ubuntu_application_sensors_for_hybris_test \ direct_ubuntu_application_gps_c_api_for_hybris_test +# Our Android tree has Ubuntu's camera service headers. Set this so that +# video recording with compat layer works. +# Not sure if this is the best place to do it. +CAMERA_SERVICE_WANT_UBUNTU_HEADERS := 1 + $(call inherit-product, $(SRC_TARGET_DIR)/product/core_minimal.mk) From cc0220978a443e1c21e24e2695f8bd652ff334d5 Mon Sep 17 00:00:00 2001 From: Dalton Durst Date: Thu, 10 Dec 2020 17:49:03 -0600 Subject: [PATCH 1096/1096] Update pull-lp-bin.py for python3 launchpadlib is only available as a python3 package starting in ubuntu 20.04. Change-Id: I1a9d96e7529ece9488cb902b4676cbed9e694826 --- tools/pull-lp-bin.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/pull-lp-bin.py b/tools/pull-lp-bin.py index 044a6d9cf55..2a0d8ca41d7 100755 --- a/tools/pull-lp-bin.py +++ b/tools/pull-lp-bin.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # pull-lp-bin -- pull a binary package from Launchpad # @@ -24,7 +24,7 @@ import os import sys -import urllib2 +import urllib.request, urllib.error, urllib.parse from optparse import OptionParser from launchpadlib.launchpad import Launchpad @@ -53,7 +53,7 @@ def main(): distro = lp.distributions['ubuntu'] if options.ppa and not options.team: - print "To use a PPA you also need to provide a team (from Launchpad)" + print("To use a PPA you also need to provide a team (from Launchpad)") return if options.ppa: @@ -82,8 +82,8 @@ def main(): bin_url = bpph[0].binaryFileUrls()[0] if bin_url: - print 'Downloading %s version %s' % (package, version) - url = urllib2.urlopen(bin_url) + print('Downloading %s version %s' % (package, version)) + url = urllib.request.urlopen(bin_url) data = url.read() package_name = "%s_%s_%s.deb" % (package, version, options.ubuntu_arch) if options.output: @@ -93,8 +93,8 @@ def main(): with open(target, "wb") as package: package.write(data) else: - print "Unable to find a published version of package %s (%s) at %s" % ( - package, options.ubuntu_arch, release) + print("Unable to find a published version of package %s (%s) at %s" % ( + package, options.ubuntu_arch, release)) if __name__ == '__main__': main()