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