Implement sysprop_library API stability check

sysprop_library now checks the API stability itself, cutting dependency
on java_sdk_library. Under the directory {module_dir}/api,
{module_name}-current.txt and {module_name}-latest.txt hold API
signatures.

When sysprop_library is built, or a user run "m {module_name}-check-api"
command, API check is performed. First, current.txt must have exactly
same signature with built sysprop_library module. Second, current.txt
must be compatible with latest.txt.

Build system emits a handy error message to generate/update those API
files, in case of missing or mismatching. Also, a script file for
freezing API files is introduced.

Bug: 131637873
Test: 1) m && boot blueline
Test: 2) m {sysprop_library} performs API check
Test: 3) manual test for check-api, freezing api
Change-Id: I6b95eebafaf88ad326be5d7c890e000cbdb79cb5
Merged-In: I6b95eebafaf88ad326be5d7c890e000cbdb79cb5
(cherry picked from commit f711999132)
This commit is contained in:
Inseob Kim 2019-07-30 19:17:58 +09:00
parent 4a2b31f210
commit 34114e3df3
8 changed files with 58 additions and 6 deletions

View file

@ -0,0 +1,29 @@
props {
module: "android.sysprop.ChargerProperties"
prop {
api_name: "disable_init_blank"
scope: Internal
prop_name: "ro.charger.disable_init_blank"
}
prop {
api_name: "draw_split_offset"
type: Long
scope: Internal
prop_name: "ro.charger.draw_split_offset"
}
prop {
api_name: "draw_split_screen"
scope: Internal
prop_name: "ro.charger.draw_split_screen"
}
prop {
api_name: "enable_suspend"
scope: Internal
prop_name: "ro.charger.enable_suspend"
}
prop {
api_name: "no_ui"
scope: Internal
prop_name: "ro.charger.no_ui"
}
}

View file

@ -0,0 +1,29 @@
props {
module: "android.sysprop.ChargerProperties"
prop {
api_name: "disable_init_blank"
scope: Internal
prop_name: "ro.charger.disable_init_blank"
}
prop {
api_name: "draw_split_offset"
type: Long
scope: Internal
prop_name: "ro.charger.draw_split_offset"
}
prop {
api_name: "draw_split_screen"
scope: Internal
prop_name: "ro.charger.draw_split_screen"
}
prop {
api_name: "enable_suspend"
scope: Internal
prop_name: "ro.charger.enable_suspend"
}
prop {
api_name: "no_ui"
scope: Internal
prop_name: "ro.charger.no_ui"
}
}

View file

@ -1 +0,0 @@
// Signature format: 2.0

View file

@ -1 +0,0 @@
// Signature format: 2.0

View file

@ -1 +0,0 @@
// Signature format: 2.0

View file

@ -1 +0,0 @@
// Signature format: 2.0

View file

@ -1 +0,0 @@
// Signature format: 2.0

View file

@ -1 +0,0 @@
// Signature format: 2.0