diff options
author | Jake Hamby <jhamby@google.com> | 2010-10-01 18:13:58 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-10-01 18:13:58 -0700 |
commit | 3543a40b24c4256413ef6bbc3017792ca3e4a2e6 (patch) | |
tree | 36d1b01cb6b4b45acd8782660e0956d7710cbcaf /telephony | |
parent | 2bf74b8f0ad59b1379534e760a356adeb3673fd2 (diff) | |
parent | 7888486d1c930301535069bd90bb0bf3525b2bb5 (diff) | |
download | frameworks_base-3543a40b24c4256413ef6bbc3017792ca3e4a2e6.zip frameworks_base-3543a40b24c4256413ef6bbc3017792ca3e4a2e6.tar.gz frameworks_base-3543a40b24c4256413ef6bbc3017792ca3e4a2e6.tar.bz2 |
am 7888486d: Merge "Add subaddress to SMS fingerprint calculation."
Merge commit '7888486d1c930301535069bd90bb0bf3525b2bb5' into gingerbread-plus-aosp
* commit '7888486d1c930301535069bd90bb0bf3525b2bb5':
Add subaddress to SMS fingerprint calculation.
Diffstat (limited to 'telephony')
3 files changed, 58 insertions, 9 deletions
diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java index 6f024ed..d563dc8 100755..100644 --- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java @@ -29,6 +29,7 @@ import com.android.internal.telephony.SmsMessageBase; import com.android.internal.telephony.TelephonyProperties; import com.android.internal.telephony.cdma.sms.BearerData; import com.android.internal.telephony.cdma.sms.CdmaSmsAddress; +import com.android.internal.telephony.cdma.sms.CdmaSmsSubaddress; import com.android.internal.telephony.cdma.sms.SmsEnvelope; import com.android.internal.telephony.cdma.sms.UserData; import com.android.internal.util.HexDump; @@ -138,6 +139,7 @@ public class SmsMessage extends SmsMessageBase { SmsMessage msg = new SmsMessage(); SmsEnvelope env = new SmsEnvelope(); CdmaSmsAddress addr = new CdmaSmsAddress(); + CdmaSmsSubaddress subaddr = new CdmaSmsSubaddress(); byte[] data; byte count; int countInt; @@ -180,15 +182,24 @@ public class SmsMessage extends SmsMessageBase { addr.origBytes = data; - // ignore subaddress - p.readInt(); //p_cur->sSubAddress.subaddressType - p.readInt(); //p_cur->sSubAddress.odd - count = p.readByte(); //p_cur->sSubAddress.number_of_digits - //p_cur->sSubAddress.digits[digitCount] : - for (int index=0; index < count; index++) { - p.readByte(); + subaddr.type = p.readInt(); // p_cur->sSubAddress.subaddressType + subaddr.odd = p.readByte(); // p_cur->sSubAddress.odd + count = p.readByte(); // p_cur->sSubAddress.number_of_digits + + if (count < 0) { + count = 0; } + // p_cur->sSubAddress.digits[digitCount] : + + data = new byte[count]; + + for (int index = 0; index < count; ++index) { + data[index] = p.readByte(); + } + + subaddr.origBytes = data; + /* currently not supported by the modem-lib: env.bearerReply env.replySeqNo @@ -210,6 +221,7 @@ public class SmsMessage extends SmsMessageBase { // link the the filled objects to the SMS env.origAddress = addr; + env.origSubaddress = subaddr; msg.originatingAddress = addr; msg.mEnvelope = env; @@ -818,6 +830,8 @@ public class SmsMessage extends SmsMessageBase { output.write(mEnvelope.teleService); output.write(mEnvelope.origAddress.origBytes, 0, mEnvelope.origAddress.origBytes.length); output.write(mEnvelope.bearerData, 0, mEnvelope.bearerData.length); + output.write(mEnvelope.origSubaddress.origBytes, 0, + mEnvelope.origSubaddress.origBytes.length); return output.toByteArray(); } diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsSubaddress.java b/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsSubaddress.java new file mode 100644 index 0000000..f9cebf5 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsSubaddress.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2010 The Android Open Source Project. All rights reserved. + * Copyright (C) 2010 Code Aurora Forum. All rights reserved. + * + * 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. + */ + +package com.android.internal.telephony.cdma.sms; + +public class CdmaSmsSubaddress { + public int type; + + public byte odd; + + public byte[] origBytes; +} + diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java b/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java index 0dcacc1..4f00163 100644 --- a/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java +++ b/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java @@ -17,6 +17,8 @@ package com.android.internal.telephony.cdma.sms; +import com.android.internal.telephony.cdma.sms.CdmaSmsSubaddress; + public final class SmsEnvelope{ /** * Message Types @@ -74,17 +76,23 @@ public final class SmsEnvelope{ /** * The origination address identifies the originator of the SMS message. - * (See 3GPP2 C.S0015-B, v2, 3.4.3.4) + * (See 3GPP2 C.S0015-B, v2, 3.4.3.3) */ public CdmaSmsAddress origAddress; /** * The destination address identifies the target of the SMS message. - * (See 3GPP2 C.S0015-B, v2, 3.4.3.4) + * (See 3GPP2 C.S0015-B, v2, 3.4.3.3) */ public CdmaSmsAddress destAddress; /** + * The origination subaddress identifies the originator of the SMS message. + * (See 3GPP2 C.S0015-B, v2, 3.4.3.4) + */ + public CdmaSmsSubaddress origSubaddress; + + /** * The 6-bit bearer reply parameter is used to request the return of a * SMS Acknowledge Message. * (See 3GPP2 C.S0015-B, v2, 3.4.3.5) |