From: Tobias Brunner Date: Mon, 24 Jun 2013 13:50:48 +0000 (+0200) Subject: android: Add measurement collector for ITA Device ID X-Git-Tag: 5.1.0dr2~2^2~32 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=583fe0ccb62bbba9798fece8b0d077e589a77276;p=thirdparty%2Fstrongswan.git android: Add measurement collector for ITA Device ID --- diff --git a/src/frontends/android/src/org/strongswan/android/logic/imc/AndroidImc.java b/src/frontends/android/src/org/strongswan/android/logic/imc/AndroidImc.java index 1c298bef3d..351fab801b 100644 --- a/src/frontends/android/src/org/strongswan/android/logic/imc/AndroidImc.java +++ b/src/frontends/android/src/org/strongswan/android/logic/imc/AndroidImc.java @@ -18,6 +18,7 @@ package org.strongswan.android.logic.imc; import org.strongswan.android.logic.imc.attributes.Attribute; import org.strongswan.android.logic.imc.attributes.AttributeType; import org.strongswan.android.logic.imc.collectors.Collector; +import org.strongswan.android.logic.imc.collectors.DeviceIdCollector; import org.strongswan.android.logic.imc.collectors.InstalledPackagesCollector; import org.strongswan.android.logic.imc.collectors.PortFilterCollector; import org.strongswan.android.logic.imc.collectors.ProductInformationCollector; @@ -79,6 +80,9 @@ public class AndroidImc case ITA_SETTINGS: collector = new SettingsCollector(mContext, args); break; + case ITA_DEVICE_ID: + collector = new DeviceIdCollector(mContext); + break; default: break; } diff --git a/src/frontends/android/src/org/strongswan/android/logic/imc/attributes/AttributeType.java b/src/frontends/android/src/org/strongswan/android/logic/imc/attributes/AttributeType.java index 52eef97f89..11f1c61daa 100644 --- a/src/frontends/android/src/org/strongswan/android/logic/imc/attributes/AttributeType.java +++ b/src/frontends/android/src/org/strongswan/android/logic/imc/attributes/AttributeType.java @@ -35,7 +35,8 @@ public enum AttributeType IETF_FACTORY_DEFAULT_PWD_ENABLED(PrivateEnterpriseNumber.IETF, 12), IETF_RESERVED(PrivateEnterpriseNumber.IETF, 0xffffffff), /* ITA attributes */ - ITA_SETTINGS(PrivateEnterpriseNumber.ITA, 4); + ITA_SETTINGS(PrivateEnterpriseNumber.ITA, 4), + ITA_DEVICE_ID(PrivateEnterpriseNumber.ITA, 8); private PrivateEnterpriseNumber mVendor; private int mType; diff --git a/src/frontends/android/src/org/strongswan/android/logic/imc/attributes/DeviceIdAttribute.java b/src/frontends/android/src/org/strongswan/android/logic/imc/attributes/DeviceIdAttribute.java new file mode 100644 index 0000000000..ecab7db24f --- /dev/null +++ b/src/frontends/android/src/org/strongswan/android/logic/imc/attributes/DeviceIdAttribute.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2013 Tobias Brunner + * Hochschule fuer Technik Rapperswil + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. See . + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +package org.strongswan.android.logic.imc.attributes; + +/** + * ITA Device ID attribute + * + * 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Device ID (Variable Length) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + */ +public class DeviceIdAttribute implements Attribute +{ + private String mDeviceId; + + /** + * Set the device ID + * @param version version number + */ + public void setDeviceId(String deviceId) + { + this.mDeviceId = deviceId; + } + + @Override + public byte[] getEncoding() + { + return mDeviceId.getBytes(); + } +} diff --git a/src/frontends/android/src/org/strongswan/android/logic/imc/collectors/DeviceIdCollector.java b/src/frontends/android/src/org/strongswan/android/logic/imc/collectors/DeviceIdCollector.java new file mode 100644 index 0000000000..ebe9e10b03 --- /dev/null +++ b/src/frontends/android/src/org/strongswan/android/logic/imc/collectors/DeviceIdCollector.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2013 Tobias Brunner + * Hochschule fuer Technik Rapperswil + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. See . + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +package org.strongswan.android.logic.imc.collectors; + +import org.strongswan.android.logic.imc.attributes.Attribute; +import org.strongswan.android.logic.imc.attributes.DeviceIdAttribute; + +import android.content.ContentResolver; +import android.content.Context; + +public class DeviceIdCollector implements Collector +{ + private final ContentResolver mContentResolver; + + public DeviceIdCollector(Context context) + { + mContentResolver = context.getContentResolver(); + } + + @Override + public Attribute getMeasurement() + { + String id = android.provider.Settings.Secure.getString(mContentResolver, "android_id"); + if (id != null) + { + DeviceIdAttribute attribute = new DeviceIdAttribute(); + attribute.setDeviceId(id); + return attribute; + } + return null; + } +}