ANDROID: update the kernel release format for GKI
The new kernel release format is: w.x.y-zz-k where, w.x.y are the current values zzz is the Android Release value k is the KMI Generation number This allows one to identify the kernel module interface version using `uname -r`. The KMI Generation number is used to identify any KMI changes that occur after the KMI freeze. This should only occur in an unlikely event that a security patch requires a KMI update. Here is a local example: 5.4.51-android12-0-00153-ga972f59040e4-dirty Signed-off-by: Will McVicker <willmcvicker@google.com> Bug: 159842160 Change-Id: I33f40e424ca967b85d810cdb12c6a2c58e4197b7 [willmcvicker: squash with commit 0c0d417747d8e289b2808c3fca32c845f82fd5e5]
This commit is contained in:
parent
7520793df2
commit
897439b64d
3 changed files with 30 additions and 3 deletions
6
Makefile
6
Makefile
|
@ -1149,7 +1149,8 @@ $(vmlinux-dirs): prepare scripts
|
|||
$(Q)$(MAKE) $(build)=$@ need-builtin=1
|
||||
|
||||
define filechk_kernel.release
|
||||
echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
|
||||
echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion \
|
||||
$(srctree) $(BRANCH) $(KMI_GENERATION))"
|
||||
endef
|
||||
|
||||
# Store (new) KERNELRELEASE string in include/config/kernel.release
|
||||
|
@ -1741,7 +1742,8 @@ checkstack:
|
|||
$(PERL) $(src)/scripts/checkstack.pl $(CHECKSTACK_ARCH)
|
||||
|
||||
kernelrelease:
|
||||
@echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
|
||||
@echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion \
|
||||
$(srctree) $(BRANCH) $(KMI_GENERATION))"
|
||||
|
||||
kernelversion:
|
||||
@echo $(KERNELVERSION)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
BRANCH=android-4.19-stable
|
||||
KMI_GENERATION=0
|
||||
KERNEL_DIR=common
|
||||
|
||||
CC=clang
|
||||
|
|
|
@ -11,12 +11,14 @@
|
|||
#
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 [--save-scmversion] [srctree]" >&2
|
||||
echo "Usage: $0 [--save-scmversion] [srctree] [branch] [kmi-generation]" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
scm_only=false
|
||||
srctree=.
|
||||
android_release=
|
||||
kmi_generation=
|
||||
if test "$1" = "--save-scmversion"; then
|
||||
scm_only=true
|
||||
shift
|
||||
|
@ -25,6 +27,24 @@ if test $# -gt 0; then
|
|||
srctree=$1
|
||||
shift
|
||||
fi
|
||||
if test $# -gt 0; then
|
||||
# Extract the Android release version. If there is no match, then return 255
|
||||
# and clear the var $android_release
|
||||
android_release=`echo "$1" | sed -e '/android[0-9]\{2,\}/!{q255}; \
|
||||
s/^\(android[0-9]\{2,\}\)-.*/\1/'`
|
||||
if test $? -ne 0; then
|
||||
android_release=
|
||||
fi
|
||||
shift
|
||||
|
||||
if test $# -gt 0; then
|
||||
kmi_generation=$1
|
||||
[ $(expr $kmi_generation : '^[0-9]\+$') -eq 0 ] && usage
|
||||
shift
|
||||
else
|
||||
usage
|
||||
fi
|
||||
fi
|
||||
if test $# -gt 0 -o ! -d "$srctree"; then
|
||||
usage
|
||||
fi
|
||||
|
@ -47,6 +67,10 @@ scm_version()
|
|||
if test -z "$(git rev-parse --show-cdup 2>/dev/null)" &&
|
||||
head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
|
||||
|
||||
if [ -n "$android_release" ] && [ -n "$kmi_generation" ]; then
|
||||
printf '%s' "-$android_release-$kmi_generation"
|
||||
fi
|
||||
|
||||
# If we are at a tagged commit (like "v2.6.30-rc6"), we ignore
|
||||
# it, because this version is defined in the top level Makefile.
|
||||
if [ -z "`git describe --exact-match 2>/dev/null`" ]; then
|
||||
|
|
Loading…
Reference in a new issue