ITelephony.aidl revision 2b2469b07d6ea9410bdb8d1234aa2320b02bdaa9
1/* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.internal.telephony; 18 19import android.content.Intent; 20import android.os.Bundle; 21import android.telephony.CellInfo; 22import android.telephony.IccOpenLogicalChannelResponse; 23import android.telephony.NeighboringCellInfo; 24import java.util.List; 25 26 27/** 28 * Interface used to interact with the phone. Mostly this is used by the 29 * TelephonyManager class. A few places are still using this directly. 30 * Please clean them up if possible and use TelephonyManager insteadl. 31 * 32 * {@hide} 33 */ 34interface ITelephony { 35 36 /** 37 * Dial a number. This doesn't place the call. It displays 38 * the Dialer screen. 39 * @param number the number to be dialed. If null, this 40 * would display the Dialer screen with no number pre-filled. 41 */ 42 void dial(String number); 43 44 /** 45 * Place a call to the specified number. 46 * @param number the number to be called. 47 */ 48 void call(String callingPackage, String number); 49 50 /** 51 * End call if there is a call in progress, otherwise does nothing. 52 * 53 * @return whether it hung up 54 */ 55 boolean endCall(); 56 57 /** 58 * End call on particular subId or go to the Home screen 59 * @param subId user preferred subId. 60 * @return whether it hung up 61 */ 62 boolean endCallUsingSubId(long subId); 63 64 /** 65 * Answer the currently-ringing call. 66 * 67 * If there's already a current active call, that call will be 68 * automatically put on hold. If both lines are currently in use, the 69 * current active call will be ended. 70 * 71 * TODO: provide a flag to let the caller specify what policy to use 72 * if both lines are in use. (The current behavior is hardwired to 73 * "answer incoming, end ongoing", which is how the CALL button 74 * is specced to behave.) 75 * 76 * TODO: this should be a oneway call (especially since it's called 77 * directly from the key queue thread). 78 */ 79 void answerRingingCall(); 80 81 /** 82 * Silence the ringer if an incoming call is currently ringing. 83 * (If vibrating, stop the vibrator also.) 84 * 85 * It's safe to call this if the ringer has already been silenced, or 86 * even if there's no incoming call. (If so, this method will do nothing.) 87 * 88 * TODO: this should be a oneway call too (see above). 89 * (Actually *all* the methods here that return void can 90 * probably be oneway.) 91 */ 92 void silenceRinger(); 93 94 /** 95 * Check if we are in either an active or holding call 96 * @return true if the phone state is OFFHOOK. 97 */ 98 boolean isOffhook(); 99 100 /** 101 * Check if a particular subId has an active or holding call 102 * 103 * @param subId user preferred subId. 104 * @return true if the phone state is OFFHOOK. 105 */ 106 boolean isOffhookUsingSubId(long subId); 107 108 /** 109 * Check if an incoming phone call is ringing or call waiting 110 * on a particular subId. 111 * 112 * @param subId user preferred subId. 113 * @return true if the phone state is RINGING. 114 */ 115 boolean isRingingUsingSubId(long subId); 116 117 /** 118 * Check if an incoming phone call is ringing or call waiting. 119 * @return true if the phone state is RINGING. 120 */ 121 boolean isRinging(); 122 123 /** 124 * Check if the phone is idle. 125 * @return true if the phone state is IDLE. 126 */ 127 boolean isIdle(); 128 129 /** 130 * Check if the phone is idle on a particular subId. 131 * 132 * @param subId user preferred subId. 133 * @return true if the phone state is IDLE. 134 */ 135 boolean isIdleUsingSubId(long subId); 136 137 /** 138 * Check to see if the radio is on or not. 139 * @return returns true if the radio is on. 140 */ 141 boolean isRadioOn(); 142 143 /** 144 * Check to see if the radio is on or not on particular subId. 145 * @param subId user preferred subId. 146 * @return returns true if the radio is on. 147 */ 148 boolean isRadioOnUsingSubId(long subId); 149 150 /** 151 * Check if the SIM pin lock is enabled. 152 * @return true if the SIM pin lock is enabled. 153 */ 154 boolean isSimPinEnabled(); 155 156 /** 157 * Supply a pin to unlock the SIM. Blocks until a result is determined. 158 * @param pin The pin to check. 159 * @return whether the operation was a success. 160 */ 161 boolean supplyPin(String pin); 162 163 /** 164 * Supply a pin to unlock the SIM for particular subId. 165 * Blocks until a result is determined. 166 * @param pin The pin to check. 167 * @param subId user preferred subId. 168 * @return whether the operation was a success. 169 */ 170 boolean supplyPinUsingSubId(long subId, String pin); 171 172 /** 173 * Supply puk to unlock the SIM and set SIM pin to new pin. 174 * Blocks until a result is determined. 175 * @param puk The puk to check. 176 * pin The new pin to be set in SIM 177 * @return whether the operation was a success. 178 */ 179 boolean supplyPuk(String puk, String pin); 180 181 /** 182 * Supply puk to unlock the SIM and set SIM pin to new pin. 183 * Blocks until a result is determined. 184 * @param puk The puk to check. 185 * pin The new pin to be set in SIM 186 * @param subId user preferred subId. 187 * @return whether the operation was a success. 188 */ 189 boolean supplyPukUsingSubId(long subId, String puk, String pin); 190 191 /** 192 * Supply a pin to unlock the SIM. Blocks until a result is determined. 193 * Returns a specific success/error code. 194 * @param pin The pin to check. 195 * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 196 * retValue[1] = number of attempts remaining if known otherwise -1 197 */ 198 int[] supplyPinReportResult(String pin); 199 200 /** 201 * Supply a pin to unlock the SIM. Blocks until a result is determined. 202 * Returns a specific success/error code. 203 * @param pin The pin to check. 204 * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 205 * retValue[1] = number of attempts remaining if known otherwise -1 206 */ 207 int[] supplyPinReportResultUsingSubId(long subId, String pin); 208 209 /** 210 * Supply puk to unlock the SIM and set SIM pin to new pin. 211 * Blocks until a result is determined. 212 * Returns a specific success/error code 213 * @param puk The puk to check 214 * pin The pin to check. 215 * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 216 * retValue[1] = number of attempts remaining if known otherwise -1 217 */ 218 int[] supplyPukReportResult(String puk, String pin); 219 220 /** 221 * Supply puk to unlock the SIM and set SIM pin to new pin. 222 * Blocks until a result is determined. 223 * Returns a specific success/error code 224 * @param puk The puk to check 225 * pin The pin to check. 226 * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 227 * retValue[1] = number of attempts remaining if known otherwise -1 228 */ 229 int[] supplyPukReportResultUsingSubId(long subId, String puk, String pin); 230 231 /** 232 * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated 233 * without SEND (so <code>dial</code> is not appropriate). 234 * 235 * @param dialString the MMI command to be executed. 236 * @return true if MMI command is executed. 237 */ 238 boolean handlePinMmi(String dialString); 239 240 /** 241 * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated 242 * without SEND (so <code>dial</code> is not appropriate) for 243 * a particular subId. 244 * @param dialString the MMI command to be executed. 245 * @param subId user preferred subId. 246 * @return true if MMI command is executed. 247 */ 248 boolean handlePinMmiUsingSubId(long subId, String dialString); 249 250 /** 251 * Toggles the radio on or off. 252 */ 253 void toggleRadioOnOff(); 254 255 /** 256 * Toggles the radio on or off on particular subId. 257 * @param subId user preferred subId. 258 */ 259 void toggleRadioOnOffUsingSubId(long subId); 260 261 /** 262 * Set the radio to on or off 263 */ 264 boolean setRadio(boolean turnOn); 265 266 /** 267 * Set the radio to on or off on particular subId. 268 * @param subId user preferred subId. 269 */ 270 boolean setRadioUsingSubId(long subId, boolean turnOn); 271 272 /** 273 * Set the radio to on or off unconditionally 274 */ 275 boolean setRadioPower(boolean turnOn); 276 277 /** 278 * Request to update location information in service state 279 */ 280 void updateServiceLocation(); 281 282 /** 283 * Request to update location information for a subscrition in service state 284 * @param subId user preferred subId. 285 */ 286 void updateServiceLocationUsingSubId(long subId); 287 288 /** 289 * Enable location update notifications. 290 */ 291 void enableLocationUpdates(); 292 293 /** 294 * Enable location update notifications. 295 * @param subId user preferred subId. 296 */ 297 void enableLocationUpdatesUsingSubId(long subId); 298 299 /** 300 * Disable location update notifications. 301 */ 302 void disableLocationUpdates(); 303 304 /** 305 * Disable location update notifications. 306 * @param subId user preferred subId. 307 */ 308 void disableLocationUpdatesUsingSubId(long subId); 309 310 /** 311 * Allow mobile data connections. 312 */ 313 boolean enableDataConnectivity(); 314 315 /** 316 * Disallow mobile data connections. 317 */ 318 boolean disableDataConnectivity(); 319 320 /** 321 * Report whether data connectivity is possible. 322 */ 323 boolean isDataConnectivityPossible(); 324 325 Bundle getCellLocation(); 326 327 /** 328 * Returns the neighboring cell information of the device. 329 */ 330 List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg); 331 332 int getCallState(); 333 334 /** 335 * Returns the call state for a subId. 336 */ 337 int getCallStateUsingSubId(long subId); 338 339 int getDataActivity(); 340 int getDataState(); 341 342 /** 343 * Returns the current active phone type as integer. 344 * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE 345 * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE 346 */ 347 int getActivePhoneType(); 348 349 /** 350 * Returns the current active phone type as integer for particular subId. 351 * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE 352 * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE 353 * @param subId user preferred subId. 354 */ 355 int getActivePhoneTypeUsingSubId(long subId); 356 357 /** 358 * Returns the CDMA ERI icon index to display 359 */ 360 int getCdmaEriIconIndex(); 361 362 /** 363 * Returns the CDMA ERI icon index to display on particular subId. 364 * @param subId user preferred subId. 365 */ 366 int getCdmaEriIconIndexUsingSubId(long subId); 367 368 /** 369 * Returns the CDMA ERI icon mode, 370 * 0 - ON 371 * 1 - FLASHING 372 */ 373 int getCdmaEriIconMode(); 374 375 /** 376 * Returns the CDMA ERI icon mode on particular subId, 377 * 0 - ON 378 * 1 - FLASHING 379 * @param subId user preferred subId. 380 */ 381 int getCdmaEriIconModeUsingSubId(long subId); 382 383 /** 384 * Returns the CDMA ERI text, 385 */ 386 String getCdmaEriText(); 387 388 /** 389 * Returns the CDMA ERI text for particular subId, 390 * @param subId user preferred subId. 391 */ 392 String getCdmaEriTextUsingSubId(long subId); 393 394 /** 395 * Returns true if OTA service provisioning needs to run. 396 * Only relevant on some technologies, others will always 397 * return false. 398 */ 399 boolean needsOtaServiceProvisioning(); 400 401 /** 402 * Returns the unread count of voicemails 403 */ 404 int getVoiceMessageCount(); 405 406 /** 407 * Returns the unread count of voicemails for a subId. 408 * @param subId user preferred subId. 409 * Returns the unread count of voicemails 410 */ 411 int getVoiceMessageCountUsingSubId(long subId); 412 413 /** 414 * Returns the network type for data transmission 415 */ 416 int getNetworkType(); 417 418 /** 419 * Returns the network type of a subId. 420 * @param subId user preferred subId. 421 * Returns the network type 422 */ 423 int getNetworkTypeUsingSubId(long subId); 424 425 /** 426 * Returns the network type for data transmission 427 */ 428 int getDataNetworkType(); 429 430 /** 431 * Returns the data network type of a subId 432 * @param subId user preferred subId. 433 * Returns the network type 434 */ 435 int getDataNetworkTypeUsingSubId(long subId); 436 437 /** 438 * Returns the network type for voice 439 */ 440 int getVoiceNetworkType(); 441 442 /** 443 * Returns the voice network type of a subId 444 * @param subId user preferred subId. 445 * Returns the network type 446 */ 447 int getVoiceNetworkTypeUsingSubId(long subId); 448 449 /** 450 * Return true if an ICC card is present 451 */ 452 boolean hasIccCard(); 453 454 /** 455 * Return true if an ICC card is present for a subId. 456 * @param slotId user preferred slotId. 457 * Return true if an ICC card is present 458 */ 459 boolean hasIccCardUsingSlotId(long slotId); 460 461 /** 462 * Return if the current radio is LTE on CDMA. This 463 * is a tri-state return value as for a period of time 464 * the mode may be unknown. 465 * 466 * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE} 467 * or {@link PHone#LTE_ON_CDMA_TRUE} 468 */ 469 int getLteOnCdmaMode(); 470 471 /** 472 * Return if the current radio is LTE on CDMA. This 473 * is a tri-state return value as for a period of time 474 * the mode may be unknown. 475 * 476 * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE} 477 * or {@link PHone#LTE_ON_CDMA_TRUE} 478 */ 479 int getLteOnCdmaModeUsingSubId(long subId); 480 481 /** 482 * Returns the all observed cell information of the device. 483 */ 484 List<CellInfo> getAllCellInfo(); 485 486 /** 487 * Sets minimum time in milli-seconds between onCellInfoChanged 488 */ 489 void setCellInfoListRate(int rateInMillis); 490 491 /** 492 * get default sim 493 * @return sim id 494 */ 495 int getDefaultSim(); 496 497 /** 498 * Opens a logical channel to the ICC card. 499 * 500 * Input parameters equivalent to TS 27.007 AT+CCHO command. 501 * 502 * @param AID Application id. See ETSI 102.221 and 101.220. 503 * @return an IccOpenLogicalChannelResponse object. 504 */ 505 IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID); 506 507 /** 508 * Closes a previously opened logical channel to the ICC card. 509 * 510 * Input parameters equivalent to TS 27.007 AT+CCHC command. 511 * 512 * @param channel is the channel id to be closed as retruned by a 513 * successful iccOpenLogicalChannel. 514 * @return true if the channel was closed successfully. 515 */ 516 boolean iccCloseLogicalChannel(int channel); 517 518 /** 519 * Transmit an APDU to the ICC card over a logical channel. 520 * 521 * Input parameters equivalent to TS 27.007 AT+CGLA command. 522 * 523 * @param channel is the channel id to be closed as retruned by a 524 * successful iccOpenLogicalChannel. 525 * @param cla Class of the APDU command. 526 * @param instruction Instruction of the APDU command. 527 * @param p1 P1 value of the APDU command. 528 * @param p2 P2 value of the APDU command. 529 * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU 530 * is sent to the SIM. 531 * @param data Data to be sent with the APDU. 532 * @return The APDU response from the ICC card with the status appended at 533 * the end. 534 */ 535 String iccTransmitApduLogicalChannel(int channel, int cla, int instruction, 536 int p1, int p2, int p3, String data); 537 538 /** 539 * Transmit an APDU to the ICC card over the basic channel. 540 * 541 * Input parameters equivalent to TS 27.007 AT+CSIM command. 542 * 543 * @param cla Class of the APDU command. 544 * @param instruction Instruction of the APDU command. 545 * @param p1 P1 value of the APDU command. 546 * @param p2 P2 value of the APDU command. 547 * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU 548 * is sent to the SIM. 549 * @param data Data to be sent with the APDU. 550 * @return The APDU response from the ICC card with the status appended at 551 * the end. 552 */ 553 String iccTransmitApduBasicChannel(int cla, int instruction, 554 int p1, int p2, int p3, String data); 555 556 /** 557 * Returns the response APDU for a command APDU sent through SIM_IO. 558 * 559 * @param fileID 560 * @param command 561 * @param p1 P1 value of the APDU command. 562 * @param p2 P2 value of the APDU command. 563 * @param p3 P3 value of the APDU command. 564 * @param filePath 565 * @return The APDU response. 566 */ 567 byte[] iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3, 568 String filePath); 569 570 /** 571 * Send ENVELOPE to the SIM and returns the response. 572 * 573 * @param contents String containing SAT/USAT response in hexadecimal 574 * format starting with command tag. See TS 102 223 for 575 * details. 576 * @return The APDU response from the ICC card, with the last 4 bytes 577 * being the status word. If the command fails, returns an empty 578 * string. 579 */ 580 String sendEnvelopeWithStatus(String content); 581 582 /** 583 * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}. 584 * Used for device configuration by some CDMA operators. 585 * 586 * @param itemID the ID of the item to read. 587 * @return the NV item as a String, or null on any failure. 588 */ 589 String nvReadItem(int itemID); 590 591 /** 592 * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}. 593 * Used for device configuration by some CDMA operators. 594 * 595 * @param itemID the ID of the item to read. 596 * @param itemValue the value to write, as a String. 597 * @return true on success; false on any failure. 598 */ 599 boolean nvWriteItem(int itemID, String itemValue); 600 601 /** 602 * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage. 603 * Used for device configuration by some CDMA operators. 604 * 605 * @param preferredRoamingList byte array containing the new PRL. 606 * @return true on success; false on any failure. 607 */ 608 boolean nvWriteCdmaPrl(in byte[] preferredRoamingList); 609 610 /** 611 * Perform the specified type of NV config reset. The radio will be taken offline 612 * and the device must be rebooted after the operation. Used for device 613 * configuration by some CDMA operators. 614 * 615 * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset). 616 * @return true on success; false on any failure. 617 */ 618 boolean nvResetConfig(int resetType); 619 620 /* 621 * Get the calculated preferred network type. 622 * Used for device configuration by some CDMA operators. 623 * 624 * @return the calculated preferred network type, defined in RILConstants.java. 625 */ 626 int getCalculatedPreferredNetworkType(); 627 628 /* 629 * Get the preferred network type. 630 * Used for device configuration by some CDMA operators. 631 * 632 * @return the preferred network type, defined in RILConstants.java. 633 */ 634 int getPreferredNetworkType(); 635 636 /** 637 * Set the preferred network type. 638 * Used for device configuration by some CDMA operators. 639 * 640 * @param networkType the preferred network type, defined in RILConstants.java. 641 * @return true on success; false on any failure. 642 */ 643 boolean setPreferredNetworkType(int networkType); 644 645 /** 646 * Set the CDMA subscription source. 647 * Used for device supporting both NV and RUIM for CDMA. 648 * 649 * @param subscriptionType the subscription type, 0 for RUIM, 1 for NV. 650 * @return true on success; false on any failure. 651 */ 652 boolean setCdmaSubscription(int subscriptionType); 653 654 /** 655 * User enable/disable Mobile Data. 656 * 657 * @param enable true to turn on, else false 658 */ 659 void setDataEnabled(boolean enable); 660 661 /** 662 * Get the user enabled state of Mobile Data. 663 * 664 * @return true on enabled 665 */ 666 boolean getDataEnabled(); 667 668 /** 669 * Get P-CSCF address from PCO after data connection is established or modified. 670 * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN 671 */ 672 String[] getPcscfAddress(String apnType); 673 674 /** 675 * Set IMS registration state 676 */ 677 void setImsRegistrationState(boolean registered); 678 679 /** 680 * Return MDN string for CDMA phone. 681 * @param subId user preferred subId. 682 */ 683 String getCdmaMdn(long subId); 684 685 /** 686 * Return MIN string for CDMA phone. 687 * @param subId user preferred subId. 688 */ 689 String getCdmaMin(long subId); 690 691 /** 692 * Has the calling application been granted special privileges by the carrier. 693 * 694 * If any of the packages in the calling UID has carrier privileges, the 695 * call will return true. This access is granted by the owner of the UICC 696 * card and does not depend on the registered carrier. 697 * 698 * TODO: Add a link to documentation. 699 * 700 * @return carrier privilege status defined in TelephonyManager. 701 */ 702 int hasCarrierPrivileges(); 703 704 /** 705 * Similar to above, but check for pkg whose name is pkgname. 706 */ 707 int checkCarrierPrivilegesForPackage(String pkgname); 708 709 /** 710 * Returns the package name of the carrier apps that should handle the input intent. 711 * 712 * @param packageManager PackageManager for getting receivers. 713 * @param intent Intent that will be broadcast. 714 * @return list of carrier app package names that can handle the intent. 715 * Returns null if there is an error and an empty list if there 716 * are no matching packages. 717 */ 718 List<String> getCarrierPackageNamesForBroadcastIntent(in Intent intent); 719 720 /** 721 * Set whether Android should display a simplified Mobile Network Settings UI. 722 * The setting won't be persisted during power cycle. 723 * 724 * @param subId for which the simplified UI should be enabled or disabled. 725 * @param enable true means enabling the simplified UI. 726 */ 727 void enableSimplifiedNetworkSettings(long subId, boolean enable); 728 729 /** 730 * Get whether a simplified Mobile Network Settings UI is enabled. 731 * 732 * @param subId for which the simplified UI should be enabled or disabled. 733 * @return true if the simplified UI is enabled. 734 */ 735 boolean getSimplifiedNetworkSettingsEnabled(long subId); 736 737 /** 738 * Set the phone number string and its alphatag for line 1 for display 739 * purpose only, for example, displayed in Phone Status. It won't change 740 * the actual MSISDN/MDN. This setting won't be persisted during power cycle 741 * and it should be set again after reboot. 742 * 743 * @param subId the subscriber that the alphatag and dialing number belongs to. 744 * @param alphaTag alpha-tagging of the dailing nubmer 745 * @param number The dialing number 746 */ 747 void setLine1NumberForDisplay(long subId, String alphaTag, String number); 748 749 /** 750 * Returns the displayed dialing number string if it was set previously via 751 * {@link #setLine1NumberForDisplay}. Otherwise returns null. 752 * 753 * @param subId whose dialing number for line 1 is returned. 754 * @return the displayed dialing number if set, or null if not set. 755 */ 756 String getLine1NumberForDisplay(long subId); 757 758 /** 759 * Returns the displayed alphatag of the dialing number if it was set 760 * previously via {@link #setLine1NumberForDisplay}. Otherwise returns null. 761 * 762 * @param subId whose alphatag associated with line 1 is returned. 763 * @return the displayed alphatag of the dialing number if set, or null if 764 * not set. 765 */ 766 String getLine1AlphaTagForDisplay(long subId); 767 768 /** 769 * Override the operator branding for the input ICCID. 770 * 771 * Once set, whenever the ICCID is inserted into the device, the service 772 * provider name (SPN) and the operator name will both be replaced by the 773 * brand value input. To unset the value, the same function should be 774 * called with a null brand value. 775 * 776 * <p>Requires Permission: 777 * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} 778 * or has to be carrier app - see #hasCarrierPrivileges. 779 * 780 * @param iccid The ICCID of that the branding applies to. 781 * @param brand The brand name to display/set. 782 * @return true if the operation was executed correctly. 783 */ 784 boolean setOperatorBrandOverride(String iccId, String brand); 785 786 /** 787 * Returns the result and response from RIL for oem request 788 * 789 * @param oemReq the data is sent to ril. 790 * @param oemResp the respose data from RIL. 791 * @return negative value request was not handled or get error 792 * 0 request was handled succesfully, but no response data 793 * positive value success, data length of response 794 */ 795 int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp); 796} 797 798