fix: Add build script and fix manifest

- Add build-apk.sh for easy compilation
- Simplify AndroidManifest.xml
- Fix themes.xml to use basic Android themes
- Enable BuildConfig
- Add okhttp-dnsoverhttps dependency
This commit is contained in:
Renato
2026-01-28 22:36:38 +00:00
parent d3ce7872e7
commit 2ccdf3a78c
11853 changed files with 741631 additions and 543 deletions

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2006, 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.
*/
-->
<!-- If you edit this version, also edit the version in the partner-supplied
apns-conf.xml configuration file -->
<apns version="8">
</apns>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2012, 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.
*/
-->
<!-- Mapping of UI sound effects to audio assets under /system/media/audio/ui.
Modify this file to override default sound assets.
-->
<audio_assets version="1.0">
<asset id="FX_KEY_CLICK" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_UP" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_DOWN" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_LEFT" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_RIGHT" file="Effect_Tick.ogg"/>
<asset id="FX_KEYPRESS_STANDARD" file="KeypressStandard.ogg"/>
<asset id="FX_KEYPRESS_SPACEBAR" file="KeypressSpacebar.ogg"/>
<asset id="FX_KEYPRESS_DELETE" file="KeypressDelete.ogg"/>
<asset id="FX_KEYPRESS_RETURN" file="KeypressReturn.ogg"/>
<asset id="FX_KEYPRESS_INVALID" file="KeypressInvalid.ogg"/>
<asset id="FX_BACK" file="Effect_Tick.ogg"/>
</audio_assets>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2018 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
-->
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFeedbackType="feedbackGeneric"
android:accessibilityFlags="flagReportViewIds" />

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 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.
*/
-->
<words>
</words>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 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.
-->
<!--
Default system bookmarks for AOSP.
Bookmarks for vendor apps should be added to a bookmarks resource overlay; not here.
Typical shortcuts (not necessarily defined here):
'b': Browser
'c': Contacts
'e': Email
'g': GMail
'k': Calendar
'm': Maps
'p': Music
's': SMS
't': Talk
'u': Calculator
'y': YouTube
-->
<bookmarks>
<bookmark
category="android.intent.category.APP_BROWSER"
shortcut="b" />
<bookmark
category="android.intent.category.APP_CONTACTS"
shortcut="c" />
<bookmark
category="android.intent.category.APP_EMAIL"
shortcut="e" />
<bookmark
category="android.intent.category.APP_CALENDAR"
shortcut="k" />
<bookmark
category="android.intent.category.APP_MAPS"
shortcut="m" />
<bookmark
category="android.intent.category.APP_MUSIC"
shortcut="p" />
<bookmark
category="android.intent.category.APP_MESSAGING"
shortcut="s" />
<bookmark
category="android.intent.category.APP_CALCULATOR"
shortcut="u" />
</bookmarks>

View File

@@ -0,0 +1,249 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2017 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
-->
<colorextraction>
<!-- List of material color palettes in HSL -->
<palettes>
<!-- Grey scale -->
<palette h="0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f"
s="0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f"
l="0.08f, 0.11f, 0.14901960784313725f, 0.2f, 0.2980392156862745f, 0.4f,
0.4980392156862745f, 0.6196078431372549f, 0.7176470588235294f,
0.8196078431372549f, 0.9176470588235294f, 0.9490196078431372f"/>
<!-- All colors -->
<palette h="1,1,0.991,0.991,0.9833333333333333,0,0,0,
0.01134380453752181,0.015625000000000003,0.024193548387096798,
0.027397260273972573,0.017543859649122865"
s="1,1,1,1,1,1,1,0.8434782608695652,1,1,1,1,1"
l="0.04,0.09,0.14,0.2,0.27450980392156865,
0.34901960784313724,0.4235294117647059,0.5490196078431373,
0.6254901960784314,0.6862745098039216,0.7568627450980392,
0.8568627450980393,0.9254901960784314"/>
<palette h="0.638,0.638,0.6385767790262171,0.6301169590643275,
0.6223958333333334,0.6151079136690647,0.6065400843881856,
0.5986964618249534,0.5910746812386157,0.5833333333333334,
0.5748031496062993,0.5582010582010583"
s="1,1,1,1,0.9014084507042253,0.8128654970760234,
0.7979797979797981,0.7816593886462883,0.778723404255319,1,1,1"
l="0.05,0.12,0.17450980392156862,0.2235294117647059,
0.2784313725490196,0.3352941176470588,0.388235294117647,
0.44901960784313727,0.5392156862745098,0.6509803921568628,
0.7509803921568627,0.8764705882352941"/>
<palette h="0.563,0.569,0.5666,0.5669934640522876,0.5748031496062993,
0.5595238095238095,0.5473118279569893,0.5393258426966292,
0.5315955766192734,0.524031007751938,0.5154711673699016,
0.508080808080808,0.5"
s="1,1,1,1,1,1,1,1,1,0.8847736625514403,1,1,1"
l="0.07,0.12,0.16,0.2,0.24901960784313726,
0.27450980392156865,0.30392156862745096,0.34901960784313724,
0.4137254901960784,0.47647058823529415,0.5352941176470588,
0.6764705882352942,0.8"/>
<palette h="0.508,0.511,0.508,0.508,0.5082304526748972,
0.5069444444444444,0.5,0.5,0.5,0.48724954462659376,
0.4800347222222222,0.4755134281200632,0.4724409448818897,
0.4671052631578947"
s="1,1,1,1,1,0.8888888888888887,0.9242424242424242,1,
1,0.8133333333333332,0.7868852459016393,1,1,1"
l="0.04,0.06,0.08,0.12,0.1588235294117647,
0.21176470588235297,0.25882352941176473,0.3,0.34901960784313724,
0.44117647058823534,0.5215686274509804,0.5862745098039216,
0.7509803921568627,0.8509803921568627"/>
<palette h="0.333,0.333,0.333,0.3333333333333333,0.3333333333333333,
0.34006734006734,0.34006734006734,0.34006734006734,
0.34259259259259256,0.3475783475783476,0.34767025089605735,
0.3467741935483871,0.3703703703703704"
s="0.70,0.72,0.69,0.6703296703296703,0.728813559322034,
0.5657142857142856,0.5076923076923077,0.3944223107569721,
0.6206896551724138,0.8931297709923666,1,1,1"
l="0.05,0.08,0.14,0.1784313725490196,0.23137254901960785,
0.3431372549019608,0.38235294117647056,0.49215686274509807,
0.6588235294117647,0.7431372549019608,0.8176470588235294,
0.8784313725490196,0.9294117647058824"/>
<palette h="0.161,0.163,0.163,0.162280701754386,0.15032679738562088,
0.15879265091863518,0.16236559139784948,0.17443868739205526,
0.17824074074074076,0.18674698795180725,0.18692449355432778,
0.1946778711484594,0.18604651162790695"
s="1,1,1,1,1,1,1,1,1,1,1,1,1"
l="0.05,0.08,0.11,0.14901960784313725,0.2,
0.24901960784313726,0.30392156862745096,0.3784313725490196,
0.4235294117647059,0.48823529411764705,0.6450980392156863,
0.7666666666666666,0.8313725490196078"/>
<palette h="0.108,0.105,0.105,0.105,0.10619469026548674,
0.11924686192468618,0.13046448087431692,0.14248366013071895,
0.1506024096385542,0.16220238095238093,0.16666666666666666,
0.16666666666666666,0.162280701754386,0.15686274509803924"
s="1,1,1,1,1,1,1,1,1,1,1,1,1,1"
l="0.17,0.22,0.28,0.35,0.44313725490196076,
0.46862745098039216,0.47843137254901963,0.5,0.5117647058823529,
0.5607843137254902,0.6509803921568628,0.7509803921568627,
0.8509803921568627,0.9"/>
<palette h="0.036,0.036,0.036,0.036,0.03561253561253561,
0.05098039215686275,0.07516339869281045,0.09477124183006536,
0.1150326797385621,0.134640522875817,0.14640522875816991,
0.1582397003745319,0.15773809523809523,0.15359477124183002"
s="1,1,1,1,1,1,1,1,1,1,1,1,1,1"
l="0.19,0.26,0.34,0.39,0.4588235294117647,0.5,0.5,0.5,
0.5,0.5,0.5,0.6509803921568628,0.7803921568627451,0.9"/>
<palette h="0.955,0.961,0.958,0.9596491228070175,0.9593837535014005,
0.9514767932489452,0.943859649122807,0.9396825396825397,
0.9395424836601307,0.9393939393939394,0.9362745098039216,
0.9754098360655739,0.9824561403508771"
s="0.87,0.85,0.85,0.84070796460177,0.8206896551724138,
0.7979797979797981,0.7661290322580644,0.9051724137931036,
1,1,1,1,1"
l="0.06,0.11,0.16,0.22156862745098038,0.2843137254901961,
0.388235294117647,0.48627450980392156,0.5450980392156863,
0.6,0.6764705882352942,0.8,0.8803921568627451,
0.9254901960784314"/>
<palette h="0.866,0.855,0.841025641025641,0.8333333333333334,
0.8285256410256411,0.821522309711286,0.8083333333333333,
0.8046594982078853,0.8005822416302766,0.7842377260981912,
0.7771084337349398,0.7747747747747749"
s="1,1,1,1,1,1,1,1,1,
0.737142857142857,0.6434108527131781,0.46835443037974644"
l="0.05,0.08,0.12745098039215685,0.15490196078431373,
0.20392156862745098,0.24901960784313726,0.3137254901960784,
0.36470588235294116,0.44901960784313727,0.6568627450980392,
0.7470588235294118,0.8450980392156863"/>
<palette h="0.925,0.93,0.938,0.947,0.955952380952381,
0.9681069958847737,0.9760479041916167,0.9873563218390804,0,0,
0.009057971014492771,0.026748971193415648,
0.041666666666666616,0.05303030303030304"
s="1,1,1,1,1,0.8350515463917526,0.6929460580912863,
0.6387665198237885,0.6914893617021276,0.7583892617449666,
0.8070175438596495,0.9310344827586209,1,1"
l="0.10,0.13,0.17,0.2,0.27450980392156865,
0.3803921568627451,0.4725490196078432,0.5549019607843138,
0.6313725490196078,0.707843137254902,0.7764705882352941,
0.8294117647058823,0.9058823529411765,0.9568627450980391"/>
<palette h="0.733,0.736,0.744,0.7514619883040936,0.7679738562091503,
0.7802083333333333,0.7844311377245509,0.796875,
0.8165618448637316,0.8487179487179487,0.8582375478927203,
0.8562091503267975,0.8666666666666667"
s="1,1,1,1,1,0.8163265306122449,0.6653386454183268,
0.7547169811320753,0.929824561403509,0.9558823529411766,
0.9560439560439562,1,1"
l="0.07,0.12,0.17,0.2235294117647059,0.3,
0.38431372549019605,0.492156862745098,0.5843137254901961,
0.6647058823529411,0.7333333333333334,0.8215686274509804,0.9,
0.9411764705882353"/>
<palette h="0.6666666666666666,0.6666666666666666,0.6666666666666666,
0.6666666666666666,0.6666666666666666,0.6666666666666666,
0.6666666666666666,0.6666666666666666,0.6666666666666666,
0.6666666666666666,0.6666666666666666"
s="0.25,0.24590163934426232,0.17880794701986752,
0.14606741573033713,0.13761467889908252,0.14893617021276592,
0.16756756756756758,0.20312500000000017,0.26086956521739135,
0.29999999999999966,0.5000000000000004"
l="0.18,0.2392156862745098,0.296078431372549,
0.34901960784313724,0.4274509803921569,0.5392156862745098,
0.6372549019607843,0.7490196078431373,0.8196078431372549,
0.8823529411764706,0.9372549019607843"/>
<palette h="0.938,0.944,0.952,0.961,0.9678571428571429,
0.9944812362030905,0,0,
0.0047348484848484815,0.00316455696202532,0,
0.9980392156862745,0.9814814814814816,0.9722222222222221"
s="1,1,1,1,1,0.7023255813953488,0.6638655462184874,
0.6521739130434782,0.7719298245614035,0.8315789473684211,
0.6867469879518071,0.7264957264957265,0.8181818181818182,
0.8181818181818189"
l="0.08,0.13,0.18,0.23,0.27450980392156865,
0.4215686274509804,
0.4666666666666667,0.503921568627451,0.5529411764705883,
0.6274509803921569,0.6745098039215687,0.7705882352941176,
0.892156862745098,0.9568627450980391"/>
<palette h="0.88,0.888,0.897,0.9052287581699346,0.9112021857923498,
0.9270152505446624,0.9343137254901961,0.9391534391534391,
0.9437984496124031,0.943661971830986,0.9438943894389439,
0.9426229508196722,0.9444444444444444"
s="1,1,1,1,0.8133333333333332,0.7927461139896375,
0.7798165137614679,0.7777777777777779,0.8190476190476191,
0.8255813953488372,0.8211382113821142,0.8133333333333336,
0.8000000000000006"
l="0.08,0.12,0.16,0.2,0.29411764705882354,
0.3784313725490196,0.42745098039215684,0.4764705882352941,
0.5882352941176471,0.6627450980392157,0.7588235294117647,
0.8529411764705882,0.9411764705882353"/>
<palette h="0.669,0.680,0.6884057971014492,0.6974789915966387,
0.7079889807162534,0.7154471544715447,0.7217741935483872,
0.7274143302180687,0.7272727272727273,0.7258064516129031,
0.7252252252252251,0.7333333333333333"
s="0.81,0.81,0.8214285714285715,0.6878612716763006,
0.6080402010050251,0.5774647887323943,0.5391304347826086,
0.46724890829694316,0.4680851063829788,0.462686567164179,
0.45679012345678977,0.4545454545454551"
l="0.12,0.16,0.2196078431372549,0.33921568627450976,
0.39019607843137255,0.4176470588235294,0.45098039215686275,
0.5509803921568628,0.6313725490196078,0.7372549019607844,
0.8411764705882353,0.9352941176470588"/>
<palette h="0.6470588235294118,0.6516666666666667,0.6464174454828661,
0.6441441441441442,0.6432748538011696,0.6416666666666667,
0.6402439024390243,0.6412429378531074,0.6435185185185186,
0.6428571428571429"
s="0.8095238095238095,0.6578947368421053,0.5721925133689839,
0.5362318840579711,0.5,0.4424778761061947,0.44086021505376327,
0.44360902255639095,0.4499999999999997,0.4375000000000006"
l="0.16470588235294117,0.2980392156862745,0.36666666666666664,
0.40588235294117647,0.44705882352941173,
0.5568627450980392,0.6352941176470588,0.7392156862745098,
0.8431372549019608,0.9372549019607843"/>
<palette h="0.469,0.46732026143790845,0.4718614718614719,
0.4793650793650794,0.48071625344352614,0.4829683698296837,
0.484375,0.4841269841269842,0.48444444444444457,
0.48518518518518516,0.4907407407407408"
s="1,1,1,1,1,1,0.6274509803921569,0.41832669322709176,
0.41899441340782106,0.4128440366972478,0.4090909090909088"
l="0.07,0.1,0.15098039215686274,0.20588235294117646,
0.2372549019607843,0.26862745098039215,0.4,0.5078431372549019,
0.6490196078431372,0.7862745098039216,0.9137254901960784"/>
<palette h="0.542,0.5444444444444444,0.5555555555555556,
0.5555555555555556,0.553763440860215,0.5526315789473684,
0.5555555555555556,0.5555555555555555,0.5555555555555556,
0.5512820512820514,0.5666666666666667"
s="0.25,0.24590163934426232,0.19148936170212766,
0.1791044776119403,0.18343195266272191,0.18446601941747576,
0.1538461538461539,0.15625000000000003,0.15328467153284678,
0.15662650602409653,0.151515151515151"
l="0.05,0.1196078431372549,0.1843137254901961,
0.2627450980392157,
0.33137254901960783,0.403921568627451,0.5411764705882354,
0.6235294117647059,0.7313725490196079,0.8372549019607843,
0.9352941176470588"/>
<palette h="0.022222222222222223,0.02469135802469136,0.031249999999999997,
0.03947368421052631,0.04166666666666668,
0.043650793650793655,0.04411764705882352,0.04166666666666652,
0.04444444444444459,0.05555555555555529"
s="0.33333333333333337,0.2783505154639175,0.2580645161290323,
0.25675675675675674,0.2528735632183908,0.17500000000000002,
0.15315315315315312,0.15189873417721522,
0.15789473684210534,0.15789473684210542"
l="0.08823529411764705,0.19019607843137254,0.2431372549019608,
0.2901960784313725,0.3411764705882353,0.47058823529411764,
0.5647058823529412,0.6901960784313725,0.8137254901960784,
0.9254901960784314"/>
<palette h="0.027,0.03,0.038,0.044,0.050884955752212385,
0.07254901960784313,0.0934640522875817,
0.10457516339869281,0.11699346405228758,
0.1255813953488372,0.1268939393939394,0.12533333333333332,
0.12500000000000003,0.12777777777777777"
s="1,1,1,1,1,1,1,1,1,1,1,1,1,1"
l="0.25,0.3,0.35,0.4,0.44313725490196076,0.5,0.5,0.5,
0.5,0.5784313725490196,
0.6549019607843137,0.7549019607843137,0.8509803921568627,
0.9411764705882353"/>
</palettes>
</colorextraction>

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2019 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.
-->
<!--
This xml file allows customization of Android multiuser user types.
It is parsed by frameworks/base/services/core/java/com/android/server/pm/UserTypeFactory.java.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++ IMPORTANT NOTE ++++++++++++++++++++++++++++++++++++++++
Although device customization is possible here, it is largely untested.
In particular, although this file allows new profile types to be created, and allows modifying the
number of managed profiles allowed on the device, the consequences of doing so is untested.
OEMs are advised to test very carefully any significant customization.
Further support is planned for later releases.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Pre-defined (AOSP) user types can be customized and new types can be defined. The syntax is the
same in both cases.
Currently, only profiles (not full or system users) can be freely customized/defined.
Full users (i.e. non-system, non-profile) users cannot be defined, and the only property of them
that can be customized are the default-restrictions.
System users cannot be customized here; their default-restrictions must be set using
com.android.internal.R.array.config_defaultFirstUserRestrictions.
The following example modifies two AOSP user types (the FULL user android.os.usertype.full.SECONDARY
and the PROFILE user android.os.usertype.profile.MANAGED) and creates a new PROFILE user type
(com.example.profilename):
<user-types version="0">
<full-type name="android.os.usertype.full.SECONDARY" >
<default-restrictions no_sms="true" />
</full-type>
<profile-type
name='android.os.usertype.profile.MANAGED'
max-allowed-per-parent='2'
icon-badge='@android:drawable/ic_corp_icon_badge_case'
badge-plain='@android:drawable/ic_corp_badge_case'
badge-no-background='@android:drawable/ic_corp_badge_no_background' >
<badge-labels>
<item res='@android:string/managed_profile_label_badge' />
<item res='@android:string/managed_profile_label_badge_2' />
</badge-labels>
<badge-colors>
<item res='@android:color/profile_badge_1' />
<item res='@android:color/profile_badge_2' />
</badge-colors>
<default-restrictions no_sms="true" no_outgoing_calls="true" />
</profile-type>
<full-type
name="android.os.usertype.full.RESTRICTED"
enabled='0' />
<profile-type
name="com.example.profilename"
max-allowed-per-parent="2" />
<change-user-type
from="android.os.usertype.profile.MANAGED"
to="com.example.profilename"
whenVersionLeq="1" />
</user-types>
Mandatory attributes:
name
Supported optional properties (to be used as shown in the example above) are as follows.
For profile and full users:
default-restrictions (with values defined in UserRestrictionUtils.USER_RESTRICTIONS)
enabled
user-properties
max-allowed
For profile users only:
max-allowed-per-parent
icon-badge
badge-plain
badge-no-background
badge-labels
badge-colors
See UserTypeFactory.java and UserTypeDetails.java for the meaning (and default values) of these
fields.
Any property that is specified overwrites the AOSP default. For example, if there is no
default-restrictions element, then the AOSP defaults for that user type will be used; however, if
there is a default-restrictions element, then the AOSP default restrictions will be completely
ignored and will instead obey this configuration.
If this file is updated, the properties of any pre-existing user types will be updated too.
Note, however, that default-restrictions refers to the restrictions applied at the time of user
creation; therefore, the active restrictions of any pre-existing users will not be updated.
If a user type is disabled, by setting enabled='0', then no further users of that type may be
created; however, any pre-existing users of that type will remain.
The 'change-user-type' tag should be used in conjunction with the 'version' property of
'user-types'. It defines a type change for all pre-existing users of 'from' type to the new 'to'
type, if the former 'user-type's version of device is less than or equal to 'whenVersionLeq'.
-->
<user-types>
</user-types>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2015 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.
-->
<webviewproviders>
<!-- The default WebView implementation -->
<webviewprovider description="Android WebView" packageName="com.android.webview" availableByDefault="true">
</webviewprovider>
</webviewproviders>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 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.
*/
-->
<!-- Default configuration for zen mode. See android.service.notification.ZenModeConfig. -->
<zen version="10">
<allow alarms="true" media="true" system="false" calls="true" callsFrom="2" messages="true"
messagesFrom="2" reminders="false" events="false" repeatCallers="true" convos="true"
convosFrom="2"/>
<automatic ruleId="EVENTS_DEFAULT_RULE" enabled="false" snoozing="false" name="Event" zen="1"
component="android/com.android.server.notification.EventConditionProvider"
conditionId="condition://android/event?userId=-10000&amp;calendar=&amp;reply=1"/>
<automatic ruleId="EVERY_NIGHT_DEFAULT_RULE" enabled="false" snoozing="false" name="Sleeping"
zen="1" component="android/com.android.server.notification.ScheduleConditionProvider"
conditionId="condition://android/schedule?days=1.2.3.4.5.6.7&amp;start=22.0&amp;end=7.0&amp;exitAtAlarm=true"/>
<!-- everything when screen off (for old target sdks); fullscreen; lights; peek; ambient -->
<disallow visualEffects="157" />
<!-- whether there are notification channels that can bypass dnd -->
<state areChannelsBypassingDnd="false" />
</zen>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2013, 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.
*/
-->
<!-- Mapping of keycodes to components which will be handled globally.
Modify this file to add global keys.
A global key will NOT go to the foreground application and instead only ever be sent via targeted
broadcast to the specified component. The action of the intent will be
android.intent.action.GLOBAL_BUTTON and the KeyEvent will be included in the intent as
android.intent.extra.KEY_EVENT.
-->
<global_keys version="1">
<!-- Example format: keyCode = keycode to handle globally. component = component which will handle this key. -->
<!-- <key keyCode="KEYCODE_VOLUME_UP" component="com.android.example.keys/.VolumeKeyHandler" /> -->
</global_keys>

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2022, 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.
*/
-->
<irq-device-map>
<!-- This file maps devices (chips) that can send interrupts to the main processor (and bring it
out of sleep) to logical subsystems in userspace code. Since each Android device can have
a differently designed chipset, this mapping is expected to be empty by default and should
be overridden by device-specific configs.
This mapping helps the system to meaningfully attribute CPU wakeups to logical work that
happened on the device and the app activity that caused it. The devices are referred to by
their names as defined in the kernel. Currently, defined subsystems are:
- Alarm: Use this to denote wakeup alarms requested by apps via the AlarmManager API.
- Wifi: Use this to denote network traffic that uses the wifi transport.
- Sound_trigger: Use this to denote sound phrase detection, like the ones supported by
SoundTriggerManager.
- Sensor: Use this to denote wakeups due to sensor events.
- Cellular_data: Use this to denote network traffic on the cellular transport.
The overlay should use tags <device> and <subsystem> to describe this mapping in the
following way:
<irq-device-map>
<device name="device_name_1">
<subsystem>Subsystem1</subsystem>
<subsystem>Subsystem2</subsystem>
:
:
</device>
<device name="device_name_2">
:
</device>
:
</irq-device-map>
The tag <device> should have a "name" attribute specifying the kernel name of the device.
Each <device> tag can then enclose multiple <subsystem> tags. Each <subsystem> tag should
enclose the name of the logical subsystems (one of the ones defined above) as text.
Undefined subsystem names will be ignored by the framework.
-->
</irq-device-map>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 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.
*/
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="33.33%p"
android:horizontalGap="@dimen/kg_key_horizontal_gap"
android:verticalGap="@dimen/kg_key_vertical_gap"
android:keyHeight="@dimen/kg_pin_key_height">
<Row android:rowEdgeFlags="top">
<Key android:codes="49" android:keyIcon="@*android:drawable/sym_keyboard_num1"
android:keyEdgeFlags="left"/>
<Key android:codes="50" android:keyIcon="@*android:drawable/sym_keyboard_num2"/>
<Key android:codes="51" android:keyIcon="@*android:drawable/sym_keyboard_num3"
android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="52" android:keyIcon="@*android:drawable/sym_keyboard_num4"
android:keyEdgeFlags="left"/>
<Key android:codes="53" android:keyIcon="@*android:drawable/sym_keyboard_num5"/>
<Key android:codes="54" android:keyIcon="@*android:drawable/sym_keyboard_num6"
android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="55" android:keyIcon="@*android:drawable/sym_keyboard_num7"
android:keyEdgeFlags="left"/>
<Key android:codes="56" android:keyIcon="@*android:drawable/sym_keyboard_num8"/>
<Key android:codes="57" android:keyIcon="@*android:drawable/sym_keyboard_num9"
android:keyEdgeFlags="right"/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="48" android:keyIcon="@*android:drawable/sym_keyboard_num0_no_plus"
android:keyWidth="33.33%p"
android:keyEdgeFlags="left"/>
<Key android:codes="10" android:keyIcon="@*android:drawable/sym_keyboard_enter"
android:keyWidth="66.67%p"
android:keyEdgeFlags="right"/>
</Row>
</Keyboard>

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 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.
*/
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="@dimen/password_keyboard_horizontalGap"
android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
<Row android:rowEdgeFlags="top">
<Key android:keyLabel="!" android:keyEdgeFlags="left"/>
<Key android:keyLabel="\@"/>
<Key android:keyLabel="\#"/>
<Key android:keyLabel="&amp;"/>
<Key android:keyLabel="-"/>
<Key android:keyLabel="\'"/>
<Key android:keyLabel=":"/>
<Key android:keyLabel="&quot;"/>
<Key android:keyLabel="/"/>
<Key android:keyLabel="\?" android:keyEdgeFlags="right"
/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:keyLabel="1" android:keyEdgeFlags="left"/>
<Key android:keyLabel="2"/>
<Key android:keyLabel="3"/>
<Key android:keyLabel="4"/>
<Key android:keyLabel="5"/>
<Key android:keyLabel="6"/>
<Key android:keyLabel="7"/>
<Key android:keyLabel="8"/>
<Key android:keyLabel="9"/>
<Key android:keyLabel="0" android:keyEdgeFlags="right"/>
</Row>
</Keyboard>

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 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.
*/
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="33.33%p"
android:horizontalGap="@dimen/password_keyboard_horizontalGap"
android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_numeric"
>
<Row android:rowEdgeFlags="top">
<Key android:codes="49" android:keyIcon="@drawable/sym_keyboard_num1"
android:keyEdgeFlags="left"/>
<Key android:codes="50" android:keyIcon="@drawable/sym_keyboard_num2"/>
<Key android:codes="51" android:keyIcon="@drawable/sym_keyboard_num3"
android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="52" android:keyIcon="@drawable/sym_keyboard_num4"
android:keyEdgeFlags="left"/>
<Key android:codes="53" android:keyIcon="@drawable/sym_keyboard_num5"/>
<Key android:codes="54" android:keyIcon="@drawable/sym_keyboard_num6"
android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="55" android:keyIcon="@drawable/sym_keyboard_num7"
android:keyEdgeFlags="left"/>
<Key android:codes="56" android:keyIcon="@drawable/sym_keyboard_num8"/>
<Key android:codes="57" android:keyIcon="@drawable/sym_keyboard_num9"
android:keyEdgeFlags="right"/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="48" android:keyIcon="@drawable/sym_keyboard_num0_no_plus"
android:keyWidth="66.66%p" android:keyEdgeFlags="left"/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_enter"
android:keyEdgeFlags="right"/>
</Row>
</Keyboard>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 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.
*/
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="@dimen/password_keyboard_horizontalGap"
android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
</Keyboard>

View File

@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 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.
*/
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="@dimen/password_keyboard_horizontalGap"
android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
<Row android:rowEdgeFlags="top">
<Key android:keyLabel="1" android:keyEdgeFlags="left"/>
<Key android:keyLabel="2"/>
<Key android:keyLabel="3"/>
<Key android:keyLabel="4"/>
<Key android:keyLabel="5"/>
<Key android:keyLabel="6"/>
<Key android:keyLabel="7"/>
<Key android:keyLabel="8"/>
<Key android:keyLabel="9"/>
<Key android:keyLabel="0" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:keyLabel="q" android:keyEdgeFlags="left"/>
<Key android:keyLabel="w"/>
<Key android:keyLabel="e"/>
<Key android:keyLabel="r"/>
<Key android:keyLabel="t"/>
<Key android:keyLabel="y"/>
<Key android:keyLabel="u"/>
<Key android:keyLabel="i"/>
<Key android:keyLabel="o"/>
<Key android:keyLabel="p" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:keyLabel="a" android:horizontalGap="5%p"
android:keyEdgeFlags="left"/>
<Key android:keyLabel="s"/>
<Key android:keyLabel="d"/>
<Key android:keyLabel="f"/>
<Key android:keyLabel="g"/>
<Key android:keyLabel="h"/>
<Key android:keyLabel="j"/>
<Key android:keyLabel="k"/>
<Key android:keyLabel="l" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
android:keyWidth="15%p" android:isModifier="true"
android:iconPreview="@drawable/sym_keyboard_feedback_shift"
android:isSticky="true" android:keyEdgeFlags="left"/>
<Key android:keyLabel="z"/>
<Key android:keyLabel="x"/>
<Key android:keyLabel="c"/>
<Key android:keyLabel="v"/>
<Key android:keyLabel="b"/>
<Key android:keyLabel="n"/>
<Key android:keyLabel="m"/>
<Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
android:keyWidth="15%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
android:isRepeatable="true"/>
</Row>
<Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/password_keyboard_label_symbol_key"
android:keyWidth="20%p" android:keyEdgeFlags="left"/>
<Key android:keyLabel="," />
<Key android:keyLabel="-" />
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:iconPreview="@drawable/sym_keyboard_feedback_space"
android:keyWidth="20%p"/>
<Key android:keyLabel="=" />
<Key android:keyLabel="."
android:keyWidth="10%p"/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_ok"
android:iconPreview="@drawable/sym_keyboard_feedback_ok"
android:keyWidth="20%p" android:keyEdgeFlags="right"/>
</Row>
</Keyboard>

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 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.
*/
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="@dimen/password_keyboard_horizontalGap"
android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
<Row android:rowEdgeFlags="top">
<Key android:keyLabel="\@" android:keyEdgeFlags="left"/>
<Key android:keyLabel="\#"/>
<Key android:keyLabel="$"/>
<Key android:keyLabel="%"/>
<Key android:keyLabel="&amp;"/>
<Key android:keyLabel="*"/>
<Key android:keyLabel="-"/>
<Key android:keyLabel="+"/>
<Key android:keyLabel="("/>
<Key android:keyLabel=")" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:keyLabel="q" android:keyEdgeFlags="left"/>
<Key android:keyLabel="w"/>
<Key android:keyLabel="e"/>
<Key android:keyLabel="r"/>
<Key android:keyLabel="t"/>
<Key android:keyLabel="y"/>
<Key android:keyLabel="u"/>
<Key android:keyLabel="i"/>
<Key android:keyLabel="o"/>
<Key android:keyLabel="p" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:keyLabel="a" android:horizontalGap="5%p"
android:keyEdgeFlags="left"/>
<Key android:keyLabel="s"/>
<Key android:keyLabel="d"/>
<Key android:keyLabel="f"/>
<Key android:keyLabel="g"/>
<Key android:keyLabel="h"/>
<Key android:keyLabel="j"/>
<Key android:keyLabel="k"/>
<Key android:keyLabel="l" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
android:keyWidth="15%p" android:isModifier="true"
android:iconPreview="@drawable/sym_keyboard_feedback_shift"
android:isSticky="true" android:keyEdgeFlags="left"/>
<Key android:keyLabel="z"/>
<Key android:keyLabel="x"/>
<Key android:keyLabel="c"/>
<Key android:keyLabel="v"/>
<Key android:keyLabel="b"/>
<Key android:keyLabel="n"/>
<Key android:keyLabel="m"/>
<Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
android:keyWidth="15%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
android:isRepeatable="true"/>
</Row>
<Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/password_keyboard_label_symbol_key"
android:keyWidth="20%p" android:keyEdgeFlags="left"/>
<Key android:keyLabel="," />
<Key android:keyLabel="_" />
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:iconPreview="@drawable/sym_keyboard_feedback_space"
android:keyWidth="20%p"/>
<Key android:keyLabel="+" />
<Key android:keyLabel="."/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_ok"
android:iconPreview="@drawable/sym_keyboard_feedback_ok"
android:keyWidth="20%p" android:keyEdgeFlags="right"/>
</Row>
</Keyboard>

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 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.
*/
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="@dimen/password_keyboard_horizontalGap"
android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
<Row android:rowEdgeFlags="top">
<Key android:keyLabel="1" android:keyEdgeFlags="left"/>
<Key android:keyLabel="2"/>
<Key android:keyLabel="3"/>
<Key android:keyLabel="4"/>
<Key android:keyLabel="5"/>
<Key android:keyLabel="6"/>
<Key android:keyLabel="7"/>
<Key android:keyLabel="8"/>
<Key android:keyLabel="9"/>
<Key android:keyLabel="0" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:keyLabel="\@" android:keyEdgeFlags="left"/>
<Key android:keyLabel="\#"/>
<Key android:keyLabel="$"/>
<Key android:keyLabel="%"/>
<Key android:keyLabel="&amp;"/>
<Key android:keyLabel="*"/>
<Key android:keyLabel="-"/>
<Key android:keyLabel="+"/>
<Key android:keyLabel="("
android:popupKeyboard="@xml/password_kbd_popup_template"
android:popupCharacters="[{&lt;"
/>
<Key android:keyLabel=")" android:keyEdgeFlags="right"
android:popupKeyboard="@xml/password_kbd_popup_template"
android:popupCharacters="]}&gt;"
/>
</Row>
<Row>
<Key android:codes="-1" android:keyLabel="@string/password_keyboard_label_alt_key"
android:keyWidth="15%p" android:isModifier="true"
android:isSticky="true" android:keyEdgeFlags="left"/>
<Key android:keyLabel="!"/>
<Key android:keyLabel="&quot;"/>
<Key android:keyLabel="\'"/>
<Key android:keyLabel=":"/>
<Key android:keyLabel=";"/>
<Key android:keyLabel="/" />
<Key android:keyLabel="\?"/>
<Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
android:keyWidth="15%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
android:isRepeatable="true"/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/password_keyboard_label_alpha_key"
android:keyWidth="20%p" android:keyEdgeFlags="left"/>
<Key android:keyLabel="," android:keyWidth="10%p"/>
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:keyWidth="40%p"
android:iconPreview="@drawable/sym_keyboard_feedback_space"/>
<Key android:keyLabel="." android:keyWidth="10%p" />
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_ok"
android:keyWidth="20%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_ok"
/>
</Row>
</Keyboard>

View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 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.
*/
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="@dimen/password_keyboard_horizontalGap"
android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
<Row android:rowEdgeFlags="top">
<Key android:keyLabel="~" android:keyEdgeFlags="left"/>
<Key android:keyLabel="`"/>
<Key android:keyLabel="|"/>
<Key android:keyLabel="•"/>
<Key android:keyLabel="√"/>
<Key android:keyLabel="π"/>
<Key android:keyLabel="÷"/>
<Key android:keyLabel="×"/>
<Key android:keyLabel="{"/>
<Key android:keyLabel="}" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:keyLabel="¥" android:keyEdgeFlags="left"/>
<Key android:keyLabel="£"/>
<Key android:keyLabel="¢"/>
<Key android:keyLabel="€"/>
<Key android:keyLabel="°"/>
<Key android:keyLabel="^"/>
<Key android:keyLabel="_"/>
<Key android:keyLabel="="/>
<Key android:keyLabel="["/>
<Key android:keyLabel="]" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="-1" android:keyLabel="@string/password_keyboard_label_alt_key"
android:keyWidth="15%p" android:isModifier="true"
android:isSticky="true" android:keyEdgeFlags="left"/>
<Key android:keyLabel="™"/>
<Key android:keyLabel="®"/>
<Key android:keyLabel="©"/>
<Key android:keyLabel="¶"/>
<Key android:keyLabel="\\"/>
<Key android:keyLabel="&lt;"/>
<Key android:keyLabel="&gt;"/>
<Key android:codes="-5"
android:keyIcon="@drawable/sym_keyboard_delete"
android:keyWidth="15%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
android:isRepeatable="true"
/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/password_keyboard_label_alpha_key"
android:keyWidth="20%p" android:keyEdgeFlags="left"/>
<Key android:keyLabel="„" android:keyWidth="10%p" />
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:keyWidth="40%p"
android:iconPreview="@drawable/sym_keyboard_feedback_space"/>
<Key android:keyLabel="…" android:keyWidth="10%p" />
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_ok"
android:keyWidth="20%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_ok"
/>
</Row>
</Keyboard>

View File

@@ -0,0 +1,198 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2009, 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.
*/
-->
<device name="Android">
<!-- Most values are the incremental current used by a feature,
in mA (measured at nominal voltage).
The default values are deliberately incorrect values.
OEM's must measure and provide actual values before
shipping a device.
Example real-world values are given in comments, but they
are totally dependent on the platform and can vary
significantly, so should be measured on the shipping platform
with a power meter. -->
<!-- Display related values. -->
<!-- Average battery current draw of display0 while in ambient mode, including backlight.
There must be one of these for each display, labeled:
ambient.on.display0, ambient.on.display1, etc...
Each display suffix number should match it's ordinal in its display device config.
-->
<item name="ambient.on.display0">0.1</item> <!-- ~100mA -->
<!-- Average battery current draw of display0 while on without backlight.
There must be one of these for each display, labeled:
screen.on.display0, screen.on.display1, etc...
Each display suffix number should match it's ordinal in its display device config.
-->
<item name="screen.on.display0">0.1</item> <!-- ~100mA -->
<!-- Average battery current draw of the backlight at full brightness.
The full current draw of display N at full brightness should be the sum of screen.on.displayN
and screen.full.displayN
There must be one of these for each display, labeled:
screen.full.display0, screen.full.display1, etc...
Each display suffix number should match it's ordinal in its display device config.
-->
<item name="screen.full.display0">0.1</item> <!-- ~100mA -->
<item name="bluetooth.active">0.1</item> <!-- Bluetooth data transfer, ~10mA -->
<item name="bluetooth.on">0.1</item> <!-- Bluetooth on & connectable, but not connected, ~0.1mA -->
<item name="wifi.on">0.1</item> <!-- ~3mA -->
<item name="wifi.active">0.1</item> <!-- WIFI data transfer, ~200mA -->
<item name="wifi.scan">0.1</item> <!-- WIFI network scanning, ~100mA -->
<item name="audio">0.1</item> <!-- ~10mA -->
<item name="video">0.1</item> <!-- ~50mA -->
<item name="camera.flashlight">0.1</item> <!-- Avg. power for camera flash, ~160mA -->
<item name="camera.avg">0.1</item> <!-- Avg. power use of camera in standard usecases, ~550mA -->
<item name="gps.on">0.1</item> <!-- ~50mA -->
<!-- Radio related values. For modems without energy reporting support in firmware, use
radio.active, radio.scanning, and radio.on. -->
<item name="radio.active">0.1</item> <!-- ~200mA -->
<item name="radio.scanning">0.1</item> <!-- cellular radio scanning for signal, ~10mA -->
<!-- Current consumed by the radio at different signal strengths, when paging -->
<array name="radio.on"> <!-- Strength 0 to BINS-1 -->
<value>0.2</value> <!-- ~2mA -->
<value>0.1</value> <!-- ~1mA -->
</array>
<!-- Additional power consumption by CPU excluding cluster and core when
running -->
<array name="cpu.active">
<value>0.1</value>
</array>
<!-- A list of heterogeneous CPU clusters, where the value for each cluster represents the
number of CPU cores for that cluster.
Ex:
<array name="cpu.clusters.cores">
<value>4</value> // cluster 0 has cpu0, cpu1, cpu2, cpu3
<value>2</value> // cluster 1 has cpu4, cpu5
</array> -->
<array name="cpu.clusters.cores">
<value>1</value> <!-- cluster 0 has cpu0 -->
</array>
<!-- Different CPU speeds for cluster 0 as reported in
/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state.
There must be one of these for each cluster, labeled:
cpu.speeds.cluster0, cpu.speeds.cluster1, etc... -->
<array name="cpu.speeds.cluster0">
<value>400000</value> <!-- 400 MHz CPU speed -->
</array>
<!-- Current at each CPU speed for cluster 0, as per 'cpu.speeds.cluster0'.
Like cpu.speeds.cluster0, there must be one of these present for
each heterogeneous CPU cluster. -->
<array name="cpu.active.cluster0">
<value>0.1</value> <!-- ~100mA -->
</array>
<!-- Current when CPU is idle -->
<item name="cpu.idle">0.1</item>
<!-- Memory bandwidth power values in mA at the rail. There must be one value
for each bucket defined in the device tree. -->
<array name="memory.bandwidths">
<value>22.7</value> <!-- mA for bucket: 100mb/s-1.5 GB/s memory bandwidth -->
</array>
<!-- This is the battery capacity in mAh (measured at nominal voltage) -->
<item name="battery.capacity">1000</item>
<!-- Wifi related values. -->
<!-- Idle Receive current for wifi radio in mA. 0 by default-->
<item name="wifi.controller.idle">0</item>
<!-- Rx current for wifi radio in mA. 0 by default-->
<item name="wifi.controller.rx">0</item>
<!-- Tx current for wifi radio in mA. 0 by default-->
<item name="wifi.controller.tx">0</item>
<!-- Current at each of the wifi Tx levels in mA. The number of tx levels varies per device
and is available only of wifi chipsets which support the tx level reporting. Use
wifi.tx for other chipsets. none by default -->
<array name="wifi.controller.tx_levels"> <!-- mA -->
</array>
<!-- Operating volatage for wifi radio in mV. 0 by default-->
<item name="wifi.controller.voltage">0</item>
<array name="wifi.batchedscan"> <!-- mA -->
<value>.0002</value> <!-- 1-8/hr -->
<value>.002</value> <!-- 9-64/hr -->
<value>.02</value> <!-- 65-512/hr -->
<value>.2</value> <!-- 513-4,096/hr -->
<value>2</value> <!-- 4097-/hr -->
</array>
<!-- Cellular modem related values.-->
<modem>
<!-- Modem sleep drain current value in mA. -->
<sleep>0</sleep>
<!-- Modem idle drain current value in mA. -->
<idle>0</idle>
<!-- Modem active drain current values.
Multiple <active /> can be defined to specify current drain for different modes of
operation.
Available attributes:
rat - Specify the current drain for a Radio Access Technology.
Available options are "LTE", "NR" and "DEFAULT".
<active rat="default" /> will be used for any usage that does not match any other
defined <active /> rat.
nrFrequency - Specify the current drain for a frequency level while NR is active.
Available options are "LOW", "MID", "HIGH", "MMWAVE", and "DEFAULT",
where,
"LOW" indicated <1GHz frequencies,
"MID" indicates 1GHz to 3GHz frequencies,
"HIGH" indicates 3GHz to 6GHz frequencies,
"MMWAVE"indicates >6GHz frequencies.
<active rat="NR" nrFrequency="default"/> will be used for any usage that
does not match any other defined <active rat="NR" /> nrFrequency.
-->
<active rat="DEFAULT">
<!-- Transmit current drain in mA. -->
<receive>0</receive>
<!-- Transmit current drains in mA. Must be defined for all levels (0 to 4) -->
<transmit level="0">0</transmit>
<transmit level="1">0</transmit>
<transmit level="2">0</transmit>
<transmit level="3">0</transmit>
<transmit level="4">0</transmit>
</active>
<!-- Additional <active /> may be defined.
Example:
<active rat="LTE"> ... </active>
<active rat="NR" nrFrequency="MMWAVE"> ... </active>
<active rat="NR" nrFrequency="DEFAULT"> ... </active>
-->
</modem>
<item name="modem.controller.voltage">0</item>
<!-- GPS related values. Default is 0.-->
<array name="gps.signalqualitybased"> <!-- Strength 0 to 1 -->
<value>0</value>
<value>0</value>
</array>
<item name="gps.voltage">0</item>
</device>

View File

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2017, 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.
*/
-->
<device name="Android">
<!-- All values are in mAh except as noted.
This file is for PowerProfileTest.java. Changes must be synced between these two. Since
power_profile.xml may be overridden by actual device's power_profile.xml at compile time,
this test config ensures we have something constant to test against. Values below are
sample values, not meant to reflect any real device.
-->
<!-- This is the battery capacity in mAh -->
<item name="battery.capacity">3000</item>
<!-- Number of cores each CPU cluster contains -->
<array name="cpu.clusters.cores">
<value>4</value> <!-- Cluster 0 has 4 cores (cpu0, cpu1, cpu2, cpu3) -->
<value>4</value> <!-- Cluster 1 has 4 cores (cpu4, cpu5, cpu5, cpu7) -->
</array>
<!-- Power consumption when CPU is suspended -->
<item name="cpu.suspend">5</item>
<!-- Additional power consumption when CPU is in a kernel idle loop -->
<item name="cpu.idle">1.11</item>
<!-- Additional power consumption by CPU excluding cluster and core when running -->
<item name="cpu.active">2.55</item>
<!-- Additional power consumption by CPU cluster0 itself when running excluding cores in it -->
<item name="cpu.cluster_power.cluster0">2.11</item>
<!-- Additional power consumption by CPU cluster1 itself when running excluding cores in it -->
<item name="cpu.cluster_power.cluster1">2.22</item>
<!-- Different CPU speeds as reported in
/sys/devices/system/cpu/cpu0/cpufreq/stats/scaling_available_frequencies -->
<array name="cpu.core_speeds.cluster0">
<value>300000</value> <!-- 300 MHz CPU speed -->
<value>1000000</value> <!-- 1000 MHz CPU speed -->
<value>2000000</value> <!-- 2000 MHz CPU speed -->
</array>
<!-- Different CPU speeds as reported in
/sys/devices/system/cpu/cpu4/cpufreq/stats/scaling_available_frequencies -->
<array name="cpu.core_speeds.cluster1">
<value>300000</value> <!-- 300 MHz CPU speed -->
<value>1000000</value> <!-- 1000 MHz CPU speed -->
<value>2500000</value> <!-- 2500 MHz CPU speed -->
<value>3000000</value> <!-- 3000 MHz CPU speed -->
</array>
<!-- Additional power used by a CPU from cluster 0 when running at different
speeds. Currently this measurement also includes cluster cost. -->
<array name="cpu.core_power.cluster0">
<value>10</value> <!-- 300 MHz CPU speed -->
<value>20</value> <!-- 1000 MHz CPU speed -->
<value>30</value> <!-- 1900 MHz CPU speed -->
</array>
<!-- Additional power used by a CPU from cluster 1 when running at different
speeds. Currently this measurement also includes cluster cost. -->
<array name="cpu.core_power.cluster1">
<value>25</value> <!-- 300 MHz CPU speed -->
<value>35</value> <!-- 1000 MHz CPU speed -->
<value>50</value> <!-- 2500 MHz CPU speed -->
<value>60</value> <!-- 3000 MHz CPU speed -->
</array>
<!-- Power used by display unit in ambient display mode, including back lighting-->
<item name="ambient.on">0.5</item>
<!-- Additional power used when screen is turned on at minimum brightness -->
<item name="screen.on">100</item>
<!-- Additional power used when screen is at maximum brightness, compared to
screen at minimum brightness -->
<item name="screen.full">800</item>
<!-- Average power used by the camera flash module when on -->
<item name="camera.flashlight">500</item>
<!-- Average power use by the camera subsystem for a typical camera
application. Intended as a rough estimate for an application running a
preview and capturing approximately 10 full-resolution pictures per
minute. -->
<item name="camera.avg">600</item>
<!-- Additional power used by the audio hardware, probably due to DSP -->
<item name="audio">100.0</item>
<!-- Additional power used by the video hardware, probably due to DSP -->
<item name="video">150.0</item> <!-- ~50mA -->
<!-- Additional power used when GPS is acquiring a signal -->
<item name="gps.on">10</item>
<!-- Additional power used when cellular radio is transmitting/receiving -->
<item name="radio.active">60</item>
<!-- Additional power used when cellular radio is paging the tower -->
<item name="radio.scanning">3</item>
<!-- Additional power used when the cellular radio is on. Multi-value entry,
one per signal strength (no signal, weak, moderate, strong) -->
<array name="radio.on"> <!-- Strength 0 to BINS-1 -->
<value>6</value> <!-- none -->
<value>5</value> <!-- poor -->
<value>4</value> <!-- moderate -->
<value>3</value> <!-- good -->
<value>3</value> <!-- great -->
</array>
</device>

View File

@@ -0,0 +1,271 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** 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.
*/
-->
<SmsEnforce7BitTranslationTable>
<TranslationType Type="common">
<Character from="0x00C1" to="0x0041"/>
<Character from="0x00C2" to="0x0041"/>
<Character from="0x00C3" to="0x0041"/>
<Character from="0x00CA" to="0x0045"/>
<Character from="0x00CB" to="0x0045"/>
<Character from="0x00CD" to="0x0049"/>
<Character from="0x00CE" to="0x0049"/>
<Character from="0x00CF" to="0x0049"/>
<Character from="0x00D3" to="0x004F"/>
<Character from="0x00D4" to="0x004F"/>
<Character from="0x00D5" to="0x004F"/>
<Character from="0x00D7" to="0x0078"/>
<Character from="0x00DA" to="0x0055"/>
<Character from="0x00DB" to="0x0055"/>
<Character from="0x00E1" to="0x0061"/>
<Character from="0x00E2" to="0x0061"/>
<Character from="0x00E3" to="0x0061"/>
<Character from="0x00EA" to="0x0065"/>
<Character from="0x00EB" to="0x0065"/>
<Character from="0x00ED" to="0x0069"/>
<Character from="0x00EE" to="0x0069"/>
<Character from="0x00EF" to="0x0069"/>
<Character from="0x00F3" to="0x006F"/>
<Character from="0x00F4" to="0x006F"/>
<Character from="0x00F5" to="0x006F"/>
<Character from="0x00FA" to="0x0075"/>
<Character from="0x00FB" to="0x0075"/>
<Character from="0x0104" to="0x0041"/>
<Character from="0x0105" to="0x0061"/>
<Character from="0x0106" to="0x0043"/>
<Character from="0x0107" to="0x0063"/>
<Character from="0x0110" to="0x0044"/>
<Character from="0x0118" to="0x0045"/>
<Character from="0x0119" to="0x0065"/>
<Character from="0x011E" to="0x0047"/>
<Character from="0x011F" to="0x0067"/>
<Character from="0x0131" to="0x0069"/>
<Character from="0x0139" to="0x004C"/>
<Character from="0x013A" to="0x006C"/>
<Character from="0x0141" to="0x004C"/>
<Character from="0x0142" to="0x006C"/>
<Character from="0x0143" to="0x004E"/>
<Character from="0x0144" to="0x006E"/>
<Character from="0x0150" to="0x004F"/>
<Character from="0x0151" to="0x006F"/>
<Character from="0x015A" to="0x0053"/>
<Character from="0x015B" to="0x0073"/>
<Character from="0x015E" to="0x0053"/>
<Character from="0x015F" to="0x0073"/>
<Character from="0x0170" to="0x0055"/>
<Character from="0x0171" to="0x0075"/>
<Character from="0x0179" to="0x005A"/>
<Character from="0x017A" to="0x007A"/>
<Character from="0x017B" to="0x005A"/>
<Character from="0x017C" to="0x007A"/>
<Character from="0x0386" to="0x0041"/>
<Character from="0x0388" to="0x0045"/>
<Character from="0x0389" to="0x0048"/>
<Character from="0x038A" to="0x0049"/>
<Character from="0x038C" to="0x004F"/>
<Character from="0x038E" to="0x0059"/>
<Character from="0x038F" to="0x03A9"/>
<Character from="0x0390" to="0x0049"/>
<Character from="0x0391" to="0x0041"/>
<Character from="0x0392" to="0x0042"/>
<Character from="0x0395" to="0x0045"/>
<Character from="0x0396" to="0x005A"/>
<Character from="0x0397" to="0x0048"/>
<Character from="0x0399" to="0x0049"/>
<Character from="0x039A" to="0x004B"/>
<Character from="0x039C" to="0x004D"/>
<Character from="0x039D" to="0x004E"/>
<Character from="0x039F" to="0x004F"/>
<Character from="0x03A1" to="0x0050"/>
<Character from="0x03A4" to="0x0054"/>
<Character from="0x03A5" to="0x0059"/>
<Character from="0x03A7" to="0x0058"/>
<Character from="0x03AA" to="0x0049"/>
<Character from="0x03AB" to="0x0059"/>
<Character from="0x03AC" to="0x0041"/>
<Character from="0x03AD" to="0x0045"/>
<Character from="0x03AE" to="0x0048"/>
<Character from="0x03AF" to="0x0049"/>
<Character from="0x03B0" to="0x0059"/>
<Character from="0x03B1" to="0x0041"/>
<Character from="0x03B2" to="0x0042"/>
<Character from="0x03B3" to="0x0393"/>
<Character from="0x03B4" to="0x0394"/>
<Character from="0x03B5" to="0x0045"/>
<Character from="0x03B6" to="0x005A"/>
<Character from="0x03B7" to="0x0048"/>
<Character from="0x03B8" to="0x0398"/>
<Character from="0x03B9" to="0x0049"/>
<Character from="0x03BA" to="0x004B"/>
<Character from="0x03BB" to="0x039B"/>
<Character from="0x03BC" to="0x004D"/>
<Character from="0x03BD" to="0x004E"/>
<Character from="0x03BE" to="0x039E"/>
<Character from="0x03BF" to="0x004F"/>
<Character from="0x03C0" to="0x03A0"/>
<Character from="0x03C1" to="0x0050"/>
<Character from="0x03C2" to="0x03A3"/>
<Character from="0x03C3" to="0x03A3"/>
<Character from="0x03C4" to="0x0054"/>
<Character from="0x03C5" to="0x0059"/>
<Character from="0x03C6" to="0x03A6"/>
<Character from="0x03C7" to="0x0058"/>
<Character from="0x03C8" to="0x03A8"/>
<Character from="0x03C9" to="0x03A9"/>
<Character from="0x03CA" to="0x0049"/>
<Character from="0x03CB" to="0x0059"/>
<Character from="0x03CC" to="0x004F"/>
<Character from="0x03CD" to="0x0059"/>
<Character from="0x03CE" to="0x03A9"/>
<Character from="0x2010" to="0x002D"/>
<Character from="0x00D0" to="0x0044"/>
<Character from="0x00DD" to="0x0059"/>
<Character from="0x00FD" to="0x0079"/>
<Character from="0x00FF" to="0x0079"/>
<Character from="0x0100" to="0x0041"/>
<Character from="0x0101" to="0x0061"/>
<Character from="0x010C" to="0x0043"/>
<Character from="0x010D" to="0x0063"/>
<Character from="0x010E" to="0x0044"/>
<Character from="0x010F" to="0x0064"/>
<Character from="0x0111" to="0x0064"/>
<Character from="0x0112" to="0x0045"/>
<Character from="0x0113" to="0x0065"/>
<Character from="0x011A" to="0x0045"/>
<Character from="0x011B" to="0x0065"/>
<Character from="0x012A" to="0x0049"/>
<Character from="0x012B" to="0x0069"/>
<Character from="0x0132" to="0x004A"/>
<Character from="0x0133" to="0x006A"/>
<Character from="0x013D" to="0x004C"/>
<Character from="0x013E" to="0x006C"/>
<Character from="0x0147" to="0x004E"/>
<Character from="0x0148" to="0x006E"/>
<Character from="0x014C" to="0x004F"/>
<Character from="0x014D" to="0x006F"/>
<Character from="0x0152" to="0x004F"/>
<Character from="0x0153" to="0x006F"/>
<Character from="0x0154" to="0x0052"/>
<Character from="0x0155" to="0x0072"/>
<Character from="0x0158" to="0x0052"/>
<Character from="0x0159" to="0x0072"/>
<Character from="0x0160" to="0x0053"/>
<Character from="0x0161" to="0x0073"/>
<Character from="0x0164" to="0x0054"/>
<Character from="0x0165" to="0x0074"/>
<Character from="0x016A" to="0x0055"/>
<Character from="0x016B" to="0x0075"/>
<Character from="0x016E" to="0x0055"/>
<Character from="0x016F" to="0x0075"/>
<Character from="0x0178" to="0x0079"/>
<Character from="0x017D" to="0x005A"/>
<Character from="0x017E" to="0x007A"/>
<Character from="0x0060" to="0x0027"/>
<Character from="0x00A9" to="0x0063"/>
<Character from="0x00AB" to="0x003C"/>
<Character from="0x00AE" to="0x0052"/>
<Character from="0x00AF" to="0x002D"/>
<Character from="0x00B0" to="0x006F"/>
<Character from="0x00BB" to="0x003E"/>
<Character from="0x02DD" to="0x0022"/>
<Character from="0x2013" to="0x002D"/>
<Character from="0x2014" to="0x002D"/>
<Character from="0x201A" to="0x0027"/>
<Character from="0x201C" to="0x0022"/>
<Character from="0x201D" to="0x0022"/>
<Character from="0x201E" to="0x0022"/>
<Character from="0x2020" to="0x002B"/>
<Character from="0x2021" to="0x002B"/>
<Character from="0x2022" to="0x002E"/>
<Character from="0x2026" to="0x002E"/>
<Character from="0x2030" to="0x0025"/>
<Character from="0x2039" to="0x003C"/>
<Character from="0x203A" to="0x003E"/>
<Character from="0x20A3" to="0x0023"/>
<Character from="0x20A4" to="0x0023"/>
<Character from="0x20B1" to="0x0023"/>
<Character from="0x2264" to="0x003C"/>
<Character from="0x2265" to="0x003E"/>
<Character from="0x0102" to="0x0041"/>
<Character from="0x0103" to="0x0061"/>
<Character from="0x0162" to="0x0054"/>
<Character from="0x0163" to="0x0074"/>
</TranslationType>
<TranslationType Type="gsm">
<Character from="0x00C0" to="0x00E0"/>
<Character from="0x00C8" to="0x00E8"/>
<Character from="0x00CC" to="0x00EC"/>
<Character from="0x00D2" to="0x00F2"/>
<Character from="0x00D9" to="0x00F9"/>
<Character from="0x00E7" to="0x00C7"/>
<Character from="0x00A2" to="0x003F"/>
<Character from="0x00A6" to="0x003F"/>
<Character from="0x00B1" to="0x003F"/>
<Character from="0x00B6" to="0x003F"/>
<Character from="0x00F7" to="0x003F"/>
<Character from="0x0192" to="0x003F"/>
<Character from="0x2122" to="0x003F"/>
<Character from="0x221A" to="0x003F"/>
<Character from="0x221E" to="0x003F"/>
<Character from="0x2248" to="0x003F"/>
<Character from="0x2260" to="0x003F"/>
</TranslationType>
<TranslationType Type="cdma">
<Character from="0x00A1" to="0x0021"/>
<Character from="0x00BF" to="0x0020"/>
<Character from="0x00C0" to="0x0041"/>
<Character from="0x00C4" to="0x0041"/>
<Character from="0x00C5" to="0x0041"/>
<Character from="0x00C6" to="0x0020"/>
<Character from="0x00C7" to="0x0043"/>
<Character from="0x00C8" to="0x0045"/>
<Character from="0x00C9" to="0x0045"/>
<Character from="0x00CC" to="0x0049"/>
<Character from="0x00D1" to="0x004E"/>
<Character from="0x00D2" to="0x004F"/>
<Character from="0x00D6" to="0x004F"/>
<Character from="0x00D8" to="0x0020"/>
<Character from="0x00D9" to="0x0055"/>
<Character from="0x00DC" to="0x0055"/>
<Character from="0x00DD" to="0x0059"/>
<Character from="0x00DF" to="0x0020"/>
<Character from="0x00E0" to="0x0061"/>
<Character from="0x00E4" to="0x0061"/>
<Character from="0x00E5" to="0x0061"/>
<Character from="0x00E6" to="0x0020"/>
<Character from="0x00E7" to="0x0063"/>
<Character from="0x00E8" to="0x0065"/>
<Character from="0x00E9" to="0x0065"/>
<Character from="0x00EC" to="0x0069"/>
<Character from="0x00F1" to="0x006F"/>
<Character from="0x00F2" to="0x006F"/>
<Character from="0x00F6" to="0x006F"/>
<Character from="0x00F8" to="0x0020"/>
<Character from="0x00F9" to="0x0075"/>
<Character from="0x00FC" to="0x0075"/>
<Character from="0x00A2" to="0x0023"/>
<Character from="0x00A6" to="0x0020"/>
<Character from="0x00B1" to="0x0020"/>
<Character from="0x00B6" to="0x0020"/>
<Character from="0x00F7" to="0x0020"/>
<Character from="0x0192" to="0x0020"/>
<Character from="0x2122" to="0x0020"/>
<Character from="0x221A" to="0x0020"/>
<Character from="0x221E" to="0x0020"/>
<Character from="0x2248" to="0x0020"/>
<Character from="0x2260" to="0x0020"/>
</TranslationType>
</SmsEnforce7BitTranslationTable>

View File

@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2012, 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.
*/
-->
<!-- Regex patterns for SMS short codes by country. -->
<shortcodes>
<!-- The country attribute is the ISO country code of the user's account (from SIM card or NV).
The pattern attribute is a regex that matches all SMS short codes for the country.
The premium attribute is a regex that matches premium rate SMS short codes.
The free attribute matches short codes that we know will not cost the user, such as
emergency numbers. The standard attribute matches short codes that are billed at the
standard SMS rate. The user is warned when the destination phone number matches the
"pattern" or "premium" regexes, and does not match the "free" or "standard" regexes. -->
<!-- Harmonised European Short Codes are 6 digit numbers starting with 116 (free helplines).
Premium patterns include short codes from: http://aonebill.com/coverage&tariffs
and http://mobilcent.com/info-worldwide.asp and extracted from:
http://smscoin.net/software/engine/WordPress/Paid+SMS-registration/ -->
<!-- Arab Emirates -->
<shortcode country="ae" pattern="\\d{1,5}" free="1017|1355|3214" />
<!-- Albania: 5 digits, known short codes listed -->
<shortcode country="al" pattern="\\d{5}" premium="15191|55[56]00" />
<!-- Argentina: 5 digits, known short codes listed -->
<shortcode country="ar" pattern="\\d{5}" free="11711|28291|44077" />
<!-- Armenia: 3-4 digits, emergency numbers 10[123] -->
<shortcode country="am" pattern="\\d{3,4}" premium="11[2456]1|3024" free="10[123]" />
<!-- Austria: 10 digits, premium prefix 09xx, plus EU -->
<shortcode country="at" pattern="11\\d{4}" premium="09.*" free="116\\d{3}" />
<!-- Australia: 6 or 8 digits starting with "19" -->
<shortcode country="au" pattern="19(?:\\d{4}|\\d{6})" premium="19998882|19944444" />
<!-- Azerbaijan: 4-5 digits, known premium codes listed -->
<shortcode country="az" pattern="\\d{4,5}" premium="330[12]|87744|901[234]|93(?:94|101)|9426|9525" />
<!-- Belgium: 4 digits, plus EU: http://www.mobileweb.be/en/mobileweb/sms-numberplan.asp -->
<shortcode country="be" premium="\\d{4}" free="8\\d{3}|116\\d{3}" />
<!-- Bulgaria: 4-5 digits, plus EU -->
<shortcode country="bg" pattern="\\d{4,5}" premium="18(?:16|423)|19(?:1[56]|35)" free="116\\d{3}|1988|1490" />
<!-- Bahrain: 1-5 digits (standard system default, not country specific) -->
<shortcode country="bh" pattern="\\d{1,5}" free="81181|85999" />
<!-- Brazil: 1-5 digits (standard system default, not country specific) -->
<shortcode country="br" pattern="\\d{1,5}" free="6000[012]\\d|876|5500|9963|4141|8000" />
<!-- Belarus: 4 digits -->
<shortcode country="by" pattern="\\d{4}" premium="3336|4161|444[4689]|501[34]|7781" />
<!-- Canada: 5-6 digits -->
<shortcode country="ca" pattern="\\d{5,6}" premium="60999|88188|43030" standard="244444" free="455677" />
<!-- Switzerland: 3-5 digits: http://www.swisscom.ch/fxres/kmu/thirdpartybusiness_code_of_conduct_en.pdf -->
<shortcode country="ch" pattern="[2-9]\\d{2,4}" premium="543|83111|30118" free="98765|30075|30047" />
<!-- Chile: 4-5 digits (not confirmed), known premium codes listed -->
<shortcode country="cl" pattern="\\d{4,5}" free="9963|9240|1038" />
<!-- China: premium shortcodes start with "1066", free shortcodes start with "1065":
http://clients.txtnation.com/entries/197192-china-premium-sms-short-code-requirements -->
<shortcode country="cn" premium="1066.*" free="1065.*" />
<!-- Colombia: 1-6 digits (not confirmed) -->
<shortcode country="co" pattern="\\d{1,6}" free="890350|908160|892255|898002|898880|899960|899948|87739|85517" />
<!-- Cyprus: 4-6 digits (not confirmed), known premium codes listed, plus EU -->
<shortcode country="cy" pattern="\\d{4,6}" premium="7510" free="116\\d{3}" />
<!-- Czechia: Premium numbers start with 90, and are either 5 or 7 digits (5 digits is a
subscription request, you will be charged for the messages received, but it's necessary
to warn on the _request_ as that's the last chance to stop), plus EU:
https://www.t-mobile.cz/platebni-a-premium-sms
https://www.vodafone.cz/pece/vyuctovani-platby-kredit/platby-mobilem/cena-premium-sms/ -->
<shortcode country="cz" premium="90\\d{5}|90\\d{3}" free="116\\d{3}" />
<!-- Germany: 4-5 digits plus 1232xxx (premium codes from http://www.vodafone.de/infofaxe/537.pdf and http://premiumdienste.eplus.de/pdf/kodex.pdf), plus EU. To keep the premium regex from being too large, it only includes payment processors that have been used by SMS malware, with the regular pattern matching the other premium short codes. -->
<shortcode country="de" pattern="\\d{4,5}|1232\\d{3}" premium="11(?:111|833)|1232(?:013|021|060|075|286|358)|118(?:44|80|86)|20[25]00|220(?:21|22|88|99)|221(?:14|21)|223(?:44|53|77)|224[13]0|225(?:20|59|90)|226(?:06|10|20|26|30|40|56|70)|227(?:07|33|39|66|76|78|79|88|99)|228(?:08|11|66|77)|23300|30030|3[12347]000|330(?:33|55|66)|33(?:233|331|366|533)|34(?:34|567)|37000|40(?:040|123|444|[3568]00)|41(?:010|414)|44(?:000|044|344|44[24]|544)|50005|50100|50123|50555|51000|52(?:255|783)|54(?:100|2542)|55(?:077|[24]00|222|333|55|[12369]55)|56(?:789|886)|60800|6[13]000|66(?:[12348]66|566|766|777|88|999)|68888|70(?:07|123|777)|76766|77(?:007|070|222|444|[567]77)|80(?:008|123|888)|82(?:002|[378]00|323|444|472|474|488|727)|83(?:005|[169]00|333|830)|84(?:141|300|32[34]|343|488|499|777|888)|85888|86(?:188|566|640|644|650|677|868|888)|870[24]9|871(?:23|[49]9)|872(?:1[0-8]|49|99)|87499|875(?:49|55|99)|876(?:0[1367]|1[1245678]|54|99)|877(?:00|99)|878(?:15|25|3[567]|8[12])|87999|880(?:08|44|55|77|99)|88688|888(?:03|10|8|89)|8899|90(?:009|999)|99999" free="116\\d{3}|81214|81215|47529|70296|83782|3011|73240|72438" />
<!-- Denmark: see http://iprs.webspacecommerce.com/Denmark-Premium-Rate-Numbers -->
<shortcode country="dk" pattern="\\d{4,5}" premium="1\\d{3}" free="116\\d{3}|4665" />
<!-- Estonia: short codes 3-5 digits starting with 1, plus premium 7 digit numbers starting with 90, plus EU.
http://www.tja.ee/public/documents/Elektrooniline_side/Oigusaktid/ENG/Estonian_Numbering_Plan_annex_06_09_2010.mht -->
<shortcode country="ee" pattern="1\\d{2,4}" premium="90\\d{5}|15330|1701[0-3]" free="116\\d{3}|95034" />
<!-- Egypt: 4 digits, known codes listed -->
<shortcode country="eg" pattern="\\d{4}" free="1499" />
<!-- Spain: 5-6 digits: 25xxx, 27xxx, 280xx, 35xxx, 37xxx, 795xxx, 797xxx, 995xxx, 997xxx, plus EU.
http://www.legallink.es/?q=en/content/which-current-regulatory-status-premium-rate-services-spain -->
<shortcode country="es" premium="[23][57]\\d{3}|280\\d{2}|[79]9[57]\\d{3}" free="116\\d{3}|22791|222145|22189" />
<!-- Finland: 5-6 digits, premium 0600, 0700: http://en.wikipedia.org/wiki/Telephone_numbers_in_Finland -->
<shortcode country="fi" pattern="\\d{5,6}" premium="0600.*|0700.*|171(?:59|63)" free="116\\d{3}|14789|17110" />
<!-- France: 5 digits, free: 3xxxx, premium [4-8]xxxx, plus EU:
http://clients.txtnation.com/entries/161972-france-premium-sms-short-code-requirements,
visual voicemail code for Orange: 21101 -->
<shortcode country="fr" premium="[4-8]\\d{4}" free="3\\d{4}|116\\d{3}|21101|20366|555|2051" />
<!-- United Kingdom (Great Britain): 4-6 digits, common codes [5-8]xxxx, plus EU:
http://www.short-codes.com/media/Co-regulatoryCodeofPracticeforcommonshortcodes170206.pdf,
visual voicemail code for EE: 887 -->
<shortcode country="gb" pattern="\\d{4,6}" premium="[5-8]\\d{4}" free="116\\d{3}|2020|35890|61002|61202|887|83669|34664|40406|60174|7726|37726|88555|9017|9018" />
<!-- Georgia: 4 digits, known premium codes listed -->
<shortcode country="ge" pattern="\\d{4}" premium="801[234]|888[239]" />
<!-- Ghana: 4 digits, known premium codes listed -->
<shortcode country="gh" pattern="\\d{4}" free="5041" />
<!-- Greece: 5 digits (54xxx, 19yxx, x=0-9, y=0-5): http://www.cmtelecom.com/premium-sms/greece -->
<shortcode country="gr" pattern="\\d{5}" premium="54\\d{3}|19[0-5]\\d{2}" free="116\\d{3}|12115" />
<!-- Croatia -->
<shortcode country="hr" pattern="\\d{1,5}" free="13062" />
<!-- Hungary: 4 or 10 digits starting with 1 or 0, plus EU:
http://clients.txtnation.com/entries/209633-hungary-premium-sms-short-code-regulations -->
<shortcode country="hu" pattern="[01](?:\\d{3}|\\d{9})" premium="0691227910|1784" free="116\\d{3}" />
<!-- India: 1-5 digits (standard system default, not country specific) -->
<shortcode country="in" pattern="\\d{1,5}" free="59336|53969" />
<!-- Indonesia: 1-5 digits (standard system default, not country specific) -->
<shortcode country="id" pattern="\\d{1,5}" free="99477|6006|46645|363" />
<!-- Ireland: 5 digits, 5xxxx (50xxx=free, 5[12]xxx=standard), plus EU:
http://www.comreg.ie/_fileupload/publications/ComReg1117.pdf -->
<shortcode country="ie" pattern="\\d{5}" premium="5[3-9]\\d{3}" free="50\\d{3}|116\\d{3}" standard="5[12]\\d{3}" />
<!-- Israel: 4 digits, known premium codes listed -->
<shortcode country="il" pattern="\\d{4}" premium="4422|4545" />
<!-- Italy: 5 digits (premium=41xxx,42xxx), plus EU:
https://www.itu.int/dms_pub/itu-t/oth/02/02/T020200006B0001PDFE.pdf -->
<shortcode country="it" pattern="\\d{5}" premium="44[0-4]\\d{2}|47[0-4]\\d{2}|48[0-4]\\d{2}|44[5-9]\\d{4}|47[5-9]\\d{4}|48[5-9]\\d{4}|455\\d{2}|499\\d{2}" free="116\\d{3}|4112503|40\\d{0,12}" standard="430\\d{2}|431\\d{2}|434\\d{4}|435\\d{4}|439\\d{7}" />
<!-- Japan: 8083 used by SOFTBANK_DCB_2 -->
<shortcode country="jp" pattern="\\d{1,5}" free="8083" />
<!-- Kenya: 5 digits, known premium codes listed -->
<shortcode country="ke" pattern="\\d{5}" free="21725|21562|40520" />
<!-- Kyrgyzstan: 4 digits, known premium codes listed -->
<shortcode country="kg" pattern="\\d{4}" premium="415[2367]|444[69]" />
<!-- Korea: http://www.smsideatechnosolutions.com/chhattisgarh/korea/sms-short-code.html -->
<shortcode country="kr" pattern="\\d{4,7}" free="\\*9712|\\*9090|##900" />
<!-- Kazakhstan: 4 digits, known premium codes listed: http://smscoin.net/info/pricing-kazakhstan/ -->
<shortcode country="kz" pattern="\\d{4}" premium="335[02]|4161|444[469]|77[2359]0|8444|919[3-5]|968[2-5]" />
<!-- Kuwait: 1-5 digits (standard system default, not country specific) -->
<shortcode country="kw" pattern="\\d{1,5}" free="1378|50420|94006|55991" />
<!-- Lithuania: 3-5 digits, known premium codes listed, plus EU -->
<shortcode country="lt" pattern="\\d{3,5}" premium="13[89]1|1394|16[34]5" free="116\\d{3}|1399|1324" />
<!-- Luxembourg: 5 digits, 6xxxx, plus EU:
http://www.luxgsm.lu/assets/files/filepage/file_1253803400.pdf -->
<shortcode country="lu" premium="6\\d{4}" free="116\\d{3}|60231|64085" />
<!-- Latvia: 4 digits, known premium codes listed, plus EU -->
<shortcode country="lv" pattern="\\d{4}" premium="18(?:19|63|7[1-4])" free="116\\d{3}|1399" />
<!-- Macedonia: 1-6 digits (not confirmed), known premium codes listed -->
<shortcode country="mk" pattern="\\d{1,6}" free="129005|122" />
<!-- Mexico: 4-5 digits (not confirmed), known premium codes listed -->
<shortcode country="mx" pattern="\\d{4,5}" premium="53035|7766" free="26259|46645|50025|50052|5050|76551|88778|9963|91101" />
<!-- Malaysia: 5 digits: http://www.skmm.gov.my/attachment/Consumer_Regulation/Mobile_Content_Services_FAQs.pdf -->
<shortcode country="my" pattern="\\d{5}" premium="32298|33776" free="22099|28288|66668" />
<!-- The Netherlands, 4 digits, known premium codes listed, plus EU -->
<shortcode country="nl" pattern="\\d{4}" premium="4466|5040" free="116\\d{3}|2223|6225|2223|1662" />
<!-- Nigeria -->
<shortcode country="ng" pattern="\\d{1,5}" free="2441|55020" />
<!-- Norway: 4-5 digits (not confirmed), known premium codes listed -->
<shortcode country="no" pattern="\\d{4,5}" premium="2201|222[67]" free="2171" />
<!-- New Zealand: 3-4 digits, known premium codes listed -->
<shortcode country="nz" pattern="\\d{3,4}" premium="3903|8995|4679" free="1737|176|2141|3067|3068|3110|4006|4053|4061|4062|4202|4300|4334|4412|4575|5626|8006|8681" />
<!-- Peru: 4-5 digits (not confirmed), known premium codes listed -->
<shortcode country="pe" pattern="\\d{4,5}" free="9963|40777" />
<!-- Philippines -->
<shortcode country="ph" pattern="\\d{1,5}" free="2147|5495|5496" />
<!-- Pakistan -->
<shortcode country="pk" pattern="\\d{1,5}" free="2057" />
<!-- Poland: 4-5 digits (not confirmed), known premium codes listed, plus EU -->
<shortcode country="pl" pattern="\\d{4,5}" premium="74240|79(?:10|866)|92525" free="116\\d{3}|8012|80921" />
<!-- Portugal: 5 digits, plus EU:
http://clients.txtnation.com/entries/158326-portugal-premium-sms-short-code-regulations -->
<shortcode country="pt" premium="6[1289]\\d{3}" free="116\\d{3}|1262|12666" />
<!-- Qatar: 1-5 digits (standard system default, not country specific) -->
<shortcode country="qa" pattern="\\d{1,5}" free="92451" />
<!-- Reunion (French Territory): 1-5 digits (not confirmed) -->
<shortcode country="re" pattern="\\d{1,5}" free="38600,36300,36303,959" />
<!-- Romania: 4 digits, plus EU: http://www.simplus.ro/en/resources/glossary-of-terms/ -->
<shortcode country="ro" pattern="\\d{4}" premium="12(?:63|66|88)|13(?:14|80)" free="116\\d{3}|3654|8360|3838" />
<!-- Russia: 4 digits, known premium codes listed: http://smscoin.net/info/pricing-russia/ -->
<shortcode country="ru" pattern="\\d{4}" premium="1(?:1[56]1|899)|2(?:09[57]|322|47[46]|880|990)|3[589]33|4161|44(?:4[3-9]|81)|77(?:33|81)|8424" free="6954|8501" standard="2037|2044"/>
<!-- Saudi Arabia -->
<shortcode country="sa" pattern="\\d{1,5}" free="8145" />
<!-- Sweden: 5 digits (72xxx), plus EU: http://www.viatel.se/en/premium-sms/ -->
<shortcode country="se" premium="72\\d{3}" free="116\\d{3}" />
<!-- Singapore: 5 digits: http://clients.txtnation.com/entries/306442-singapore-premium-sms-short-code-requirements
Free government directory info at 74688: http://app.sgdi.gov.sg/sms_help.asp -->
<shortcode country="sg" pattern="7\\d{4}" premium="73800" standard="74688|70134" />
<!-- Slovenia: 4 digits (premium=3xxx, 6xxx, 8xxx), plus EU: http://www.cmtelecom.com/premium-sms/slovenia -->
<shortcode country="si" pattern="\\d{4}" premium="[368]\\d{3}" free="116\\d{3}|3133" />
<!-- Slovakia: 4 digits (premium), plus EU: http://www.cmtelecom.com/premium-sms/slovakia -->
<shortcode country="sk" premium="\\d{4}" free="116\\d{3}|8000" />
<!-- Taiwan -->
<shortcode country="tw" pattern="\\d{4}" free="1922" />
<!-- Thailand: 4186001 used by AIS_TH_DCB -->
<shortcode country="th" pattern="\\d{1,5}" premium="4\\d{6}" free="4186001" />
<!-- Tajikistan: 4 digits, known premium codes listed -->
<shortcode country="tj" pattern="\\d{4}" premium="11[3-7]1|4161|4333|444[689]" />
<!-- Turkey -->
<shortcode country="tr" pattern="\\d{1,5}" free="7529|5528|6493|3193" />
<!-- Ukraine: 4 digits, known premium codes listed -->
<shortcode country="ua" pattern="\\d{4}" premium="444[3-9]|70[579]4|7540" />
<!-- USA: 5-6 digits (premium codes from https://www.premiumsmsrefunds.com/ShortCodes.htm),
visual voicemail code for T-Mobile: 122 -->
<shortcode country="us" pattern="\\d{5,6}" premium="20433|21(?:344|472)|22715|23(?:333|847)|24(?:15|28)0|25209|27(?:449|606|663)|28498|305(?:00|83)|32(?:340|941)|33(?:166|786|849)|34746|35(?:182|564)|37975|38(?:135|146|254)|41(?:366|463)|42335|43(?:355|500)|44(?:578|711|811)|45814|46(?:157|173|327)|46666|47553|48(?:221|277|669)|50(?:844|920)|51(?:062|368)|52944|54(?:723|892)|55928|56483|57370|59(?:182|187|252|342)|60339|61(?:266|982)|62478|64(?:219|898)|65(?:108|500)|69(?:208|388)|70877|71851|72(?:078|087|465)|73(?:288|588|882|909|997)|74(?:034|332|815)|76426|79213|81946|83177|84(?:103|685)|85797|86(?:234|236|666)|89616|90(?:715|842|938)|91(?:362|958)|94719|95297|96(?:040|666|835|969)|97(?:142|294|688)|99(?:689|796|807)" standard="44567|244444" free="122|87902|21696|24614|28003|30356|33669|40196|41064|41270|43753|44034|46645|52413|56139|57969|61785|66975|75136|76227|81398|83952|85140|86566|86799|95737|96684|99245|611611" />
<!-- Vietnam: 1-5 digits (standard system default, not country specific) -->
<shortcode country="vn" pattern="\\d{1,5}" free="5001|9055" />
<!-- Mayotte (French Territory): 1-5 digits (not confirmed) -->
<shortcode country="yt" pattern="\\d{1,5}" free="38600,36300,36303,959" />
<!-- South Africa -->
<shortcode country="za" pattern="\\d{1,5}" free="44136|30791|36056" />
</shortcodes>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2011, 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.
*/
-->
<!-- See storage config details at http://source.android.com/tech/storage/ -->
<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
<!-- removable is not set in nosdcard product -->
<storage
android:mountPoint="/storage/sdcard"
android:storageDescription="@string/storage_usb"
android:primary="true" />
</StorageList>