blob: 8870a348d04c42f0da613aeb683a33b99671814e [file] [log] [blame]
Pierre-Hugues Husson9212e182018-10-30 23:40:10 +01001#!/bin/bash
2
3base="$(dirname "$(readlink -f -- $0)")/.."
4cd $base
5
6#Keep knownKeys
7rm -f tests/priorities
8touch tests/priorities tests/knownKeys
9result=0
10find -name AndroidManifest.xml |while read manifest;do
11 folder="$(dirname "$manifest")"
12 #Ensure this overlay doesn't override blacklist-ed properties
13 for b in $(cat tests/blacklist);do
14 if grep -qRF "$b" $folder;then
15 echo "Overlay $folder is defining $b which is forbidden"
16 result=1
17 fi
18 done
19
20 #Everything after that is specifically for static overlays, targetting framework-res
21 isStatic="$(xmlstarlet sel -t -m '//overlay' -v @android:isStatic -n $manifest)"
22 [ "$isStatic" != "true" ] && continue
23
24 #Ensure priorities unique-ness
25 priority="$(xmlstarlet sel -t -m '//overlay' -v @android:priority -n $manifest)"
26 if grep -qE '^'$priority'$' tests/priorities;then
27 echo $manifest priority $priority conflicts with another manifest
28 result=1
29 fi
30 echo $priority >> tests/priorities
31
32 systemPropertyName="$(xmlstarlet sel -t -m '//overlay' -v @android:requiredSystemPropertyName -n $manifest)"
33 if [ "$systemPropertyName" == "ro.vendor.product.name" ];then
34 echo "$manifest: ro.vendor.product.name is deprecated. Please use ro.vendor.build.fingerprint"
35 fi
36
37 #Ensure the overloaded properties exist in AOSP
38 find "$folder" -name \*.xml |while read xml;do
39 keys="$(xmlstarlet sel -t -m '//resources/*' -v @name -n $xml)"
Pierre-Hugues Husson9212e182018-10-30 23:40:10 +010040 for key in $keys;do
Pierre-Hugues Husson03811922018-10-31 00:08:08 +010041 grep -qE '^'$key'$' tests/knownKeys && continue
Pierre-Hugues Husson3de1d742018-10-30 23:52:01 +010042 #Run the ag only on phh's machine. Assume that knownKeys is full enough.
43 #If it's enough, ask phh to update it
44 if [ -d /build/AOSP-9.0 ] && ag '"'$key'"' /build/AOSP-9.0/frameworks/base/core/res/res > /dev/null;then
Pierre-Hugues Husson9212e182018-10-30 23:40:10 +010045 echo $key >> tests/knownKeys
46 else
47 echo $xml defines a non-existing attribute $key
48 fi
49 done
50 done
51done
52rm -f tests/priorities
53
Pierre-Hugues Hussonf6418262018-11-03 20:38:36 +010054if find -name \*.xml |xargs dos2unix -ic |grep -qE .;then
55 echo "The following files have dos end of lines"
56 find -name \*.xml |xargs dos2unix -ic
57 result=1
58fi
59
Pierre-Hugues Husson9212e182018-10-30 23:40:10 +010060exit $result