Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b57c8e0 authored by Jake Hamby's avatar Jake Hamby Committed by Android Git Automerger
Browse files

am 321ec19e: Merge "DO NOT MERGE: Remove SMS shortcode warning feature." into jb-dev

* commit '321ec19e':
  DO NOT MERGE: Remove SMS shortcode warning feature.
parents 3795105f 321ec19e
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -1141,7 +1141,6 @@
  <java-symbol type="xml" name="password_kbd_symbols_shift" />
  <java-symbol type="xml" name="power_profile" />
  <java-symbol type="xml" name="time_zones_by_country" />
  <java-symbol type="xml" name="sms_short_codes" />

  <java-symbol type="raw" name="accessibility_gestures" />
  <java-symbol type="raw" name="incognito_mode_start_page" />
+0 −16
Original line number Diff line number Diff line
@@ -2925,22 +2925,6 @@
    <!-- See SMS_DIALOG.  This is a button choice to disallow sending the SMSes. [CHAR LIMIT=30] -->
    <string name="sms_control_no">Deny</string>

    <!-- SMS short code verification dialog. --> <skip />
    <!-- The dialog title for the SMS short code confirmation dialog. [CHAR LIMIT=30] -->
    <string name="sms_short_code_confirm_title">Send SMS to short code?</string>
    <!-- The dialog title for the SMS premium short code confirmation dialog. [CHAR LIMIT=30] -->
    <string name="sms_premium_short_code_confirm_title">Send premium SMS?</string>
    <!-- The message text for the SMS short code confirmation dialog. [CHAR LIMIT=NONE] -->
    <string name="sms_short_code_confirm_message">&lt;b><xliff:g id="app_name">%1$s</xliff:g>&lt;/b> would like to send a text message to &lt;b><xliff:g id="dest_address">%2$s</xliff:g>&lt;/b>, which appears to be an SMS short code.&lt;p>Sending text messages to some short codes may cause your mobile account to be billed for premium services.&lt;p>Do you want to allow this app to send the message?</string>
    <!-- The message text for the SMS short code confirmation dialog. [CHAR LIMIT=NONE] -->
    <string name="sms_premium_short_code_confirm_message">&lt;b><xliff:g id="app_name">%1$s</xliff:g>&lt;/b> would like to send a text message to &lt;b><xliff:g id="dest_address">%2$s</xliff:g>&lt;/b>, which is a premium SMS short code.&lt;p>&lt;b>Sending a message to this destination will cause your mobile account to be billed for premium services.&lt;/b>&lt;p>Do you want to allow this app to send the message?</string>
    <!-- Text of the approval button for the SMS short code confirmation dialog. [CHAR LIMIT=50] -->
    <string name="sms_short_code_confirm_allow">Send message</string>
    <!-- Text of the cancel button for the SMS short code confirmation dialog. [CHAR LIMIT=30] -->
    <string name="sms_short_code_confirm_deny">Don\'t send</string>
    <!-- Text of the button for the SMS short code confirmation dialog to report a malicious app. [CHAR LIMIT=30] -->
    <string name="sms_short_code_confirm_report">Report malicious app</string>

    <!-- SIM swap and device reboot Dialog --> <skip />
    <!-- See SIM_REMOVED_DIALOG.  This is the title of that dialog. -->
    <string name="sim_removed_title">SIM card removed</string>
+0 −189
Original line number Diff line number Diff line
<?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/ -->

    <!-- Albania: 5 digits, known short codes listed -->
    <shortcode country="al" pattern="\\d{5}" premium="15191|55[56]00" />

    <!-- 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" />

    <!-- 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}" />

    <!-- 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" />

    <!-- 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" />

    <!-- 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.*" />

    <!-- 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}" />

    <!-- Czech Republic: 7-8 digits, starting with 9, plus EU:
         http://www.o2.cz/osobni/en/services-by-alphabet/91670-premium_sms.html -->
    <shortcode country="cz" premium="9\\d{6,7}" 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}" />

    <!-- 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}" />

    <!-- 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}" />

    <!-- 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}" />

    <!-- 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}" />

    <!-- France: 5 digits, free: 3xxxx, premium [4-8]xxxx, plus EU:
         http://clients.txtnation.com/entries/161972-france-premium-sms-short-code-requirements -->
    <shortcode country="fr" premium="[4-8]\\d{4}" free="3\\d{4}|116\\d{3}" />

    <!-- United Kingdom (Great Britain): 4-6 digits, common codes [5-8]xxxx, plus EU:
         http://www.short-codes.com/media/Co-regulatoryCodeofPracticeforcommonshortcodes170206.pdf -->
    <shortcode country="gb" pattern="\\d{4,6}" premium="[5-8]\\d{4}" free="116\\d{3}" />

    <!-- Georgia: 4 digits, known premium codes listed -->
    <shortcode country="ge" pattern="\\d{4}" premium="801[234]|888[239]" />

    <!-- 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}" />

    <!-- 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}" />

    <!-- 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=4xxxx), plus EU:
         http://clients.txtnation.com/attachments/token/di5kfblvubttvlw/?name=Italy_CASP_EN.pdf -->
    <shortcode country="it" pattern="\\d{5}" premium="4\\d{4}" free="116\\d{3}" />

    <!-- Kyrgyzstan: 4 digits, known premium codes listed -->
    <shortcode country="kg" pattern="\\d{4}" premium="415[2367]|444[69]" />

    <!-- 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]" />

    <!-- 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}" />

    <!-- 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}" />

    <!-- 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}" />

    <!-- Mexico: 4-5 digits (not confirmed), known premium codes listed -->
    <shortcode country="mx" pattern="\\d{4,5}" premium="53035|7766" />

    <!-- 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" />

    <!-- The Netherlands, 4 digits, known premium codes listed, plus EU -->
    <shortcode country="nl" pattern="\\d{4}" premium="4466|5040" free="116\\d{3}" />

    <!-- Norway: 4-5 digits (not confirmed), known premium codes listed -->
    <shortcode country="no" pattern="\\d{4,5}" premium="2201|222[67]" />

    <!-- New Zealand: 3-4 digits, known premium codes listed -->
    <shortcode country="nz" pattern="\\d{3,4}" premium="3903|8995" />

    <!-- 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}" />

    <!-- 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}" />

    <!-- 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}" />

    <!-- 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)" />

    <!-- 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" />

    <!-- 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}" />

    <!-- Slovakia: 4 digits (premium), plus EU: http://www.cmtelecom.com/premium-sms/slovakia -->
    <shortcode country="sk" premium="\\d{4}" free="116\\d{3}" />

    <!-- Tajikistan: 4 digits, known premium codes listed -->
    <shortcode country="tj" pattern="\\d{4}" premium="11[3-7]1|4161|4333|444[689]" />

    <!-- 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) -->
    <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)" />

</shortcodes>
+9 −52
Original line number Diff line number Diff line
@@ -920,10 +920,6 @@ public abstract class SMSDispatcher extends Handler {
        SmsTracker tracker = new SmsTracker(map, sentIntent, deliveryIntent, appPackage,
                PhoneNumberUtils.extractNetworkPortion(destAddr));

        // checkDestination() returns true if the destination is not a premium short code or the
        // sending app is approved to send to short codes. Otherwise, a message is sent to our
        // handler with the SmsTracker to request user confirmation before sending.
        if (checkDestination(tracker)) {
        // check for excessive outgoing SMS usage by this app
        if (!mUsageMonitor.check(appPackage, SINGLE_PART_SMS)) {
            sendMessage(obtainMessage(EVENT_SEND_LIMIT_REACHED_CONFIRMATION, tracker));
@@ -938,45 +934,6 @@ public abstract class SMSDispatcher extends Handler {
            sendSms(tracker);
        }
    }
    }

    /**
     * Check if destination is a potential premium short code and sender is not pre-approved to
     * send to short codes.
     *
     * @param tracker the tracker for the SMS to send
     * @return true if the destination is approved; false if user confirmation event was sent
     */
    boolean checkDestination(SmsTracker tracker) {
        if (mContext.checkCallingOrSelfPermission(SEND_SMS_NO_CONFIRMATION_PERMISSION)
                == PackageManager.PERMISSION_GRANTED) {
            return true;            // app is pre-approved to send to short codes
        } else {
            String countryIso = mTelephonyManager.getSimCountryIso();
            if (countryIso == null || countryIso.length() != 2) {
                Log.e(TAG, "Can't get SIM country code: trying network country code");
                countryIso = mTelephonyManager.getNetworkCountryIso();
            }

            switch (mUsageMonitor.checkDestination(tracker.mDestAddress, countryIso)) {
                case SmsUsageMonitor.CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE:
                    sendMessage(obtainMessage(EVENT_CONFIRM_SEND_TO_POSSIBLE_PREMIUM_SHORT_CODE,
                            tracker));
                    return false;   // wait for user confirmation before sending

                case SmsUsageMonitor.CATEGORY_PREMIUM_SHORT_CODE:
                    sendMessage(obtainMessage(EVENT_CONFIRM_SEND_TO_PREMIUM_SHORT_CODE,
                            tracker));
                    return false;   // wait for user confirmation before sending

                case SmsUsageMonitor.CATEGORY_NOT_SHORT_CODE:
                case SmsUsageMonitor.CATEGORY_FREE_SHORT_CODE:
                case SmsUsageMonitor.CATEGORY_STANDARD_SHORT_CODE:
                default:
                    return true;    // destination is not a premium short code
            }
        }
    }

    /**
     * Deny sending an SMS if the outgoing queue limit is reached. Used when the message
+0 −321

File changed.

Preview size limit exceeded, changes collapsed.

Loading