Paul Duffin 352956b07e Switch last c.a.i18n.phonenumbers hiddenapi entries to annotations
Previous changes could not remove these entries as they are implicit
methods, i.e. are not present in the source, and so could not be
annotated. That is no longer true and so these entries can now be
removed.

This was tested by making and then manually checking that the generated
out/target/common/obj/PACKAGING/hiddenapi-light-greylist.txt was the
same (after sorting) before and after this change.

Bug: 117818301
Bug: 119861512
Test: as above
Change-Id: Ic33c693f50cac011332c5ba5a5c0e2b6562e6ef8
2018-12-10 16:05:54 +00:00

59 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
set -e
# Make sure that entries are not added for packages that are already fully handled using
# annotations.
LOCAL_DIR="$( dirname ${BASH_SOURCE} )"
# Each team should add a <team>_PACKAGES and <team>_EMAIL with the list of packages and
# the team email to use in the event of this detecting an entry in a <team> package. Also
# add <team> to the TEAMS list.
LIBCORE_PACKAGES="\
android.icu \
android.system \
com.android.bouncycastle \
com.android.conscrypt \
com.android.i18n.phonenumbers \
com.android.okhttp \
com.sun \
dalvik \
java \
javax \
libcore \
org.apache.harmony \
org.json \
org.w3c.dom \
org.xml.sax \
sun \
"
LIBCORE_EMAIL=libcore-team@android.com
# List of teams.
TEAMS=LIBCORE
# Generate the list of packages and convert to a regular expression.
PACKAGES=$(for t in $TEAMS; do echo $(eval echo \${${t}_PACKAGES}); done)
RE=$(echo ${PACKAGES} | sed "s/ /|/g")
git show --name-only --pretty=format: $1 | grep "config/hiddenapi-.*txt" | while read file; do
ENTRIES=$(grep -E "^L(${RE})/" <(git show $1:$file))
if [[ -n "${ENTRIES}" ]]; then
echo -e "\e[1m\e[31m$file $1 contains the following entries\e[0m"
echo -e "\e[1m\e[31mfor packages that are handled using UnsupportedAppUsage. Please remove\e[0m"
echo -e "\e[1m\e[31mthese entries and add annotations instead.\e[0m"
# Partition the entries by team and provide contact details to aid in fixing the issue.
for t in ${TEAMS}
do
PACKAGES=$(eval echo \${${t}_PACKAGES})
RE=$(echo ${PACKAGES} | sed "s/ /|/g")
TEAM_ENTRIES=$(grep -E "^L(${RE})/" <(echo "${ENTRIES}"))
if [[ -n "${TEAM_ENTRIES}" ]]; then
EMAIL=$(eval echo \${${t}_EMAIL})
echo -e "\e[33mContact ${EMAIL} or compat- for help with the following:\e[0m"
for i in ${ENTRIES}
do
echo -e "\e[33m ${i}\e[0m"
done
fi
done
exit 1
fi
done