diff --git a/.travis.yml b/.travis.yml index 61bbf4086..f72e78738 100644 --- a/.travis.yml +++ b/.travis.yml @@ -77,3 +77,4 @@ addons: build_command_prepend: "./gradlew clean" build_command: "./gradlew build" branch_pattern: development + build_script_url: https://spideroak.com/share/IFEU2U2JINCA/GitHub/home/SecUpwN/SpiderOak/MISC/external/travisci_build_coverity_scan.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index ce884f4d4..95b7e4915 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,116 @@ # CHANGELOG of 'AIMSICD' ---------------------- +#### [05.07.2015 - WIP-Release v0.1.31-alpha-build-00](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/releases/tag/v0.1.31-alpha-b00) + +* Removed: Commented out unused imports and re-ordered variable declarations +* Updated: Shortened badge of `Development Status` in `README` for better display +* Added: More clarifying code co´mments in `CellTracker.java` + +#### 05.07.2015 - WIP-Internal v0.1.30-alpha-build-16 + +* Fixed: Cleanup of timestamp code in `MiscUtils.java` +* Fixed: AIMSICD Status-Icons are now shown correctly in colored style on Android 5+ + + +--- + +#### 04.07.2015 - WIP-Internal v0.1.30-alpha-build-14 + +* Added: New Log items for MCC and MNC parameters when downloading OCID for debugging +* Fixed: Reformatted 23 char limitation of Log TAG with our standard TAG, mTAG + "text" +* Fixed: Corrected MiscUtils TAGs and nulls in CellTracker and improved some formatting +* Fixed: Silenced even more XPrivacy logcat spam in DebugLogs + +--- + +#### 03.07.2015 - WIP-Internal v0.1.30-alpha-build-13 + +* Fixed: Comments in `RequestTask.java` have been fixed to reflect code changes +* Fixed: Silenced some spammy XPrivacy items using: `XPrivacy/XRuntime:S Xposed:S` + +--- + +#### 03.07.2015 - WIP-Internal v0.1.30-alpha-build-12 + +* Added: Weblate translations badge added to our `README` for people to see progress +* Fixed: AIMSICD should now start again properly on previously complaining devices + +--- + +#### 03.07.2015 - WIP-Internal v0.1.30-alpha-build-11 + +* Updated: `CREDITS` now reflect the latest awesome additions by our new developers +* Fixed: Small string fixes and translation improvements to move our new [Weblate](https://hosted.weblate.org/projects/aimsicd/strings/). + +--- + +#### 03.07.2015 - WIP-Internal v0.1.30-alpha-build-10 + +* Fixed: Now truncating measured and used Lat/Lon GPS coordinates in `LocationTracker` + +--- + +#### 27.06.2015 - WIP-Internal v0.1.30-alpha-build-09 + +* Changed: Timeout value in `RequestTask.java` has been increased to 80 seconds +* Fixed: Repaired OCIDCSV parsing which obviously temporarily broke during development + +--- + +#### 27.06.2015 - WIP-Internal v0.1.30-alpha-build-08 + +* Added: Buildozer Buildnumber to has been added to About View for development builds + +--- + +#### 26.06.2015 - WIP-Internal v0.1.30-alpha-build-07 + +* Changed: mTAG has been changed as requested to `SamsungMulticlientRilExecutor` +* Added: Small warning within code to not remove commented out stuff without prior asking + +--- + +#### 25.06.2015 - WIP-Internal v0.1.30-alpha-build-06 + +* Updated: Log calls updated to common TAGs, added doublepoints and removed whitespaces + +--- + +#### 25.06.2015 - WIP-Internal v0.1.30-alpha-build-05 + +* Changed: Customized build script in `.travis.yml` to override CoverityScan limits +* Changed: Made toast property static and non-final, splitting toast creation for `msgShort` +* Removed: Commented out `LeakCanary` until this libray has reived some code improvemens +* Fixed: Toasts are now displayed in the ccorrect position and duration to really read them + +--- + +#### 24.06.2015 - WIP-Internal v0.1.30-alpha-build-04 + +* Added: Toasts are now being cancelled on new toast to prevent overapping of toasts + +--- + +#### 24.06.2015 - WIP-Internal v0.1.30-alpha-build-03 + +* Fixed: Info box toasts are now shown longer by adding a new singleton toaster + +--- + +#### 23.06.2015 - WIP-Internal v0.1.30-alpha-build-02 + +* Changed: Context property changed to `appContext` in `DrawerMenuAdapter.java` +* Removed: Purged `this` prefix of `appContext` as it is not needed anymore + +--- + +#### 23.06.2015 - WIP-Internal v0.1.30-alpha-build-01 + +* Changed: Help toast has been changed to long toast in `DrawerMenuAdapter.java` + +--- + #### [21.06.2015 - WIP-Release v0.1.30-alpha-build-00](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/releases/tag/v0.1.30-alpha-b00) * Updated: Refactored OpenCellId activity for better code quality and error handling diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0c1270fe6..f9d898264 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,11 +23,9 @@ Feel invited to develop with us using these steps: Let our app start up in your native language! -* Copy file [translatable_strings.xml](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/raw/development/app/src/main/res/values/translatable_strings.xml) into your values-[code](https://en.wikipedia.org/wiki/ISO_639-1) folder. -* Example: `app/src/main/res/values-de/translatable_strings.xml` -* Translate the xml-file with an Editor, Android Studio or IntelliJ IDEA. -6. Increase the build number `*-alpha-bXX` in `android:versionName`. -7. Test your changes and submit a [pull request](https://help.github.com/articles/using-pull-requests/) when we shall add it. +* See [our translations](https://hosted.weblate.org/projects/aimsicd/strings/) and login via [GitHub](https://hosted.weblate.org/accounts/login/github/?next=/projects/aimsicd/strings/) or [others](https://hosted.weblate.org/accounts/login/?next=/projects/aimsicd/strings/) to add yours. +* When translating, keep small device screens in mind. Shorten it. +* Translations will be pulled into our GitHub automatically. Enjoy! --- diff --git a/README.md b/README.md index e0cc78a8b..ae1930cef 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ### Android IMSI-Catcher Detector -[![BuildStatus](https://travis-ci.org/SecUpwN/Android-IMSI-Catcher-Detector.svg)](https://travis-ci.org/SecUpwN/Android-IMSI-Catcher-Detector) [![DevelopmentStatus](http://img.shields.io/badge/Development_Status-ALPHA-brightgreen.svg)](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/wiki/Development-Status) [![CoverityScan](https://scan.coverity.com/projects/3346/badge.svg)](https://scan.coverity.com/projects/3346) +[![BuildStatus](https://travis-ci.org/SecUpwN/Android-IMSI-Catcher-Detector.svg)](https://travis-ci.org/SecUpwN/Android-IMSI-Catcher-Detector) [![DevelopmentStatus](http://img.shields.io/badge/Development-ALPHA-brightgreen.svg)](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/wiki/Development-Status) [![CoverityScan](https://scan.coverity.com/projects/3346/badge.svg)](https://scan.coverity.com/projects/3346) [![Translations](https://hosted.weblate.org/widgets/aimsicd/-/shields-badge.svg)](https://hosted.weblate.org/projects/aimsicd/strings/) [![Bountysource](https://www.bountysource.com/badge/team?team_id=40338&style=bounties_received)](https://www.bountysource.com/teams/android-imsi-catcher-detector/issues?utm_source=Android%20IMSI-Catcher%20Detector&utm_medium=shield&utm_campaign=bounties_received) -- diff --git a/app/build.gradle b/app/build.gradle index 7fdda084c..7e6708566 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,9 +56,15 @@ android { } catch (MissingPropertyException e) { buildConfigField 'String', 'OPEN_CELLID_API_KEY', '"NA"' } + try { + buildConfigField 'String', 'BUILDOZER_BUILDNUMBER', '\"' + System.getenv("BUILDOZER_BUILDNUMBER") + '\"' + } catch (MissingPropertyException e) { + buildConfigField 'String', 'BUILDOZER_BUILDNUMBER', '"NA"' + } } release { buildConfigField 'String', 'OPEN_CELLID_API_KEY', '"NA"' + buildConfigField 'String', 'BUILDOZER_BUILDNUMBER', '"NA"' minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } @@ -125,6 +131,7 @@ android { } dependencies { + // DO NOT REMOVE BELOW COMMENTED-OUT CODE BEFORE ASKING! //compile 'com.github.amlcurran.showcaseview:library:5.0.0' //compile 'com.android.support:appcompat-v7:22.1.1' //https://github.com/lp0/slf4j-android @@ -140,6 +147,6 @@ dependencies { compile 'com.nineoldandroids:library:2.4.0' compile 'org.apache.commons:commons-lang3:3.3.2' compile 'com.google.code.gson:gson:2.2.4' - debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1' - releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' -} + //debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1' + //releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4f5a1f007..65dfea919 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="31" + android:versionName="0.1.31-alpha-b00"> DBi_measure:nc_list for (NeighboringCellInfo neighbourCell : neighboringCellInfo) { - Log.i(TAG, - mTAG + ": neighbouringCellInfo -" + + Log.i(TAG, mTAG + ": neighbouringCellInfo -" + " LAC:" + neighbourCell.getLac() + " CID:" + neighbourCell.getCid() + " PSC:" + neighbourCell.getPsc() + @@ -488,7 +490,7 @@ I moved this code out of updateNeighbouringCells() so now this will */ public void checkForNeighbourCount(CellLocation location){ - Log.i(mTAG,"in checkForNeighbourCount"); + Log.i(TAG, mTAG + ": checkForNeighbourCount()"); /** * Description: This snippet sets a global variable (SharedPreference) to indicate @@ -549,7 +551,7 @@ public void checkForNeighbourCount(CellLocation location){ } - /** Update: from banjaxbanjo + /** * I removed the timer that activated this code and now the code will be run when * the cell changes so it will detect faster rather than using a timer that might * miss an imsi catcher, also says cpu rather than refreshing every x seconds. @@ -597,7 +599,8 @@ public void checkForNeighbourCount(CellLocation location){ * Are there any reasons why not using a listener? * * ChangeLog: - * 2015-03-03 E:V:A Changed getProp() to use TinyDB (SharedPreferences) + * 2015-03-03 E:V:A Changed getProp() to use TinyDB (SharedPreferences) + * 2015-0x-xx banjaxbanjo Update: ??? (hey dude what did you do?) * */ public void compareLac(CellLocation location){ @@ -622,7 +625,7 @@ public void compareLac(CellLocation location){ // Check if CellID (CID) is in DBe_import (OpenCell) database (issue #91) if ( tinydb.getBoolean("ocid_downloaded") ) { if (!dbHelper.openCellExists(mMonitorCell.getCID())) { - Log.i(mTAG, "ALERT: Connected to unknown CID not in DBe_import: " + mMonitorCell.getCID()); + Log.i(TAG, "ALERT: Connected to unknown CID not in DBe_import: " + mMonitorCell.getCID()); // Code Place-holder: TODO: Add to EventLog table!! @@ -684,16 +687,16 @@ public void refreshDevice() { * */ private void loadPreferences() { - boolean trackFemtoPref = prefs.getBoolean( context.getString(R.string.pref_femto_detection_key), false); - boolean trackCellPref = prefs.getBoolean( context.getString(R.string.pref_enable_cell_key), true); - boolean monitorCellPref = prefs.getBoolean( context.getString(R.string.pref_enable_cell_monitoring_key), true); + boolean trackFemtoPref = prefs.getBoolean(context.getString(R.string.pref_femto_detection_key), false); + boolean trackCellPref = prefs.getBoolean(context.getString(R.string.pref_enable_cell_key), true); + boolean monitorCellPref = prefs.getBoolean(context.getString(R.string.pref_enable_cell_monitoring_key), true); - LAST_DB_BACKUP_VERSION = prefs.getInt( context.getString(R.string.pref_last_database_backup_version), 1); - CELL_TABLE_CLEANSED = prefs.getBoolean( context.getString(R.string.pref_cell_table_cleansed), false); + LAST_DB_BACKUP_VERSION = prefs.getInt(context.getString(R.string.pref_last_database_backup_version), 1); + CELL_TABLE_CLEANSED = prefs.getBoolean(context.getString(R.string.pref_cell_table_cleansed), false); - String refreshRate = prefs.getString( context.getString(R.string.pref_refresh_key), "1"); + String refreshRate = prefs.getString(context.getString(R.string.pref_refresh_key), "1"); // Default to Automatic ("1") - if (refreshRate.isEmpty()) { refreshRate = "1"; } + if (refreshRate.isEmpty()) { refreshRate = "1"; } // Set default to: 1 second int rate = Integer.parseInt(refreshRate); long t; @@ -702,7 +705,7 @@ private void loadPreferences() { t = 15L; // Automatic refresh rate is 15 seconds break; default: - t = (rate * 1L); + t = ((long) rate); // Default is 1 sec (from above) break; } @@ -749,22 +752,22 @@ private void loadPreferences() { public void onCellLocationChanged(CellLocation location) { checkForNeighbourCount(location); compareLac(location); - refreshDevice();//refresh data on cell change + refreshDevice(); //refresh data on cell change mDevice.setNetID(tm); // ?? mDevice.getNetworkTypeName(); // RAT?? switch (mDevice.getPhoneID()) { - case TelephonyManager.PHONE_TYPE_NONE: // Maybe bad! - case TelephonyManager.PHONE_TYPE_SIP: // Maybe bad! + case TelephonyManager.PHONE_TYPE_NONE: + case TelephonyManager.PHONE_TYPE_SIP: case TelephonyManager.PHONE_TYPE_GSM: GsmCellLocation gsmCellLocation = (GsmCellLocation) location; if (gsmCellLocation != null) { mDevice.setCellInfo( - gsmCellLocation.toString() + // ?? + gsmCellLocation.toString() + // ?? mDevice.getDataActivityTypeShort() + "|" + // No,In,Ou,IO,Do mDevice.getDataStateShort() + "|" + // Di,Ct,Cd,Su - mDevice.getNetworkTypeName() + "|" // TODO: Is "|" a typo? + mDevice.getNetworkTypeName() + "|" // HSPA,LTE etc ); mDevice.mCell.setLAC(gsmCellLocation.getLac()); // LAC mDevice.mCell.setCID(gsmCellLocation.getCid()); // CID @@ -778,7 +781,7 @@ public void onCellLocationChanged(CellLocation location) { CdmaCellLocation cdmaCellLocation = (CdmaCellLocation) location; if (cdmaCellLocation != null) { mDevice.setCellInfo( - cdmaCellLocation.toString() + // ?? + cdmaCellLocation.toString() + // ?? mDevice.getDataActivityTypeShort() + "|" + // No,In,Ou,IO,Do mDevice.getDataStateShort() + "|" + // Di,Ct,Cd,Su mDevice.getNetworkTypeName() + "|" // TODO: Is "|" a typo? @@ -930,8 +933,8 @@ public void onLocationChanged(Location loc) { if (cellLocation != null) { switch (mDevice.getPhoneID()) { - case TelephonyManager.PHONE_TYPE_NONE: // Maybe bad! - case TelephonyManager.PHONE_TYPE_SIP: // Maybe bad! + case TelephonyManager.PHONE_TYPE_NONE: + case TelephonyManager.PHONE_TYPE_SIP: case TelephonyManager.PHONE_TYPE_GSM: GsmCellLocation gsmCellLocation = (GsmCellLocation) cellLocation; mDevice.mCell.setCID(gsmCellLocation.getCid()); // CID @@ -944,7 +947,7 @@ public void onLocationChanged(Location loc) { mDevice.mCell.setCID(cdmaCellLocation.getBaseStationId()); // BSID ?? mDevice.mCell.setLAC(cdmaCellLocation.getNetworkId()); // NID mDevice.mCell.setSID(cdmaCellLocation.getSystemId()); // SID - mDevice.mCell.setMNC(cdmaCellLocation.getSystemId()); // <== BUG!?? // MNC + mDevice.mCell.setMNC(cdmaCellLocation.getSystemId()); // MNC <== BUG!?? } } } @@ -1109,7 +1112,7 @@ void setNotification() { case ALARM: // ORANGE, RED or BLACK ? tickerText = context.getResources().getString(R.string.app_name_short) + " - " + context.getString(R.string.alert_threat_detected); // Hmm, this is vague! if (mFemtoDetected) { - contentText = context.getString(R.string.aletr_femtocell_connection_detected); + contentText = context.getString(R.string.alert_femtocell_connection_detected); } else if (mTypeZeroSmsDetected) { contentText = context.getString(R.string.alert_silent_sms_detected); } @@ -1127,9 +1130,13 @@ void setNotification() { PendingIntent contentIntent = PendingIntent.getActivity( context, NOTIFICATION_ID, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT); String iconType = prefs.getString(context.getString(R.string.pref_ui_icons_key), "SENSE").toUpperCase(); + int iconResId = Icon.getIcon(Icon.Type.valueOf(iconType)); + Bitmap largeIcon = BitmapFactory.decodeResource(context.getResources(), iconResId); Notification mBuilder = new NotificationCompat.Builder(context) - .setSmallIcon(Icon.getIcon(Icon.Type.valueOf(iconType))) + //.setSmallIcon(Icon.getIcon(Icon.Type.valueOf(iconType))) + .setSmallIcon(iconResId) + .setLargeIcon(largeIcon) .setTicker(tickerText) .setContentTitle(context.getResources().getString(R.string.main_app_name)) .setContentText(contentText) @@ -1309,13 +1316,13 @@ public void onSignalStrengthsChanged(SignalStrength signalStrength) { @Override public void onCellInfoChanged(List cellInfo) { handle(); - Log.i(mTAG,"Cell info change"); + Log.i(TAG, mTAG + ": Cell info change"); } @Override public void onCellLocationChanged(CellLocation location) { handle(); - Log.i(mTAG,"Cell info change"); + Log.i(TAG, mTAG +": Cell info change"); } }; diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/service/LocationTracker.java b/app/src/main/java/com/SecUpwN/AIMSICD/service/LocationTracker.java index 0783c9636..1ef1a2437 100644 --- a/app/src/main/java/com/SecUpwN/AIMSICD/service/LocationTracker.java +++ b/app/src/main/java/com/SecUpwN/AIMSICD/service/LocationTracker.java @@ -19,6 +19,7 @@ import com.SecUpwN.AIMSICD.adapters.AIMSICDDbAdapter; import com.SecUpwN.AIMSICD.utils.Cell; import com.SecUpwN.AIMSICD.utils.GeoLocation; +import com.SecUpwN.AIMSICD.utils.TruncatedLocation; /** * Class to handle GPS location tracking @@ -100,12 +101,14 @@ public GeoLocation lastKnownLocation() { GeoLocation loc = null; Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); if (location != null && (location.getLatitude() != 0.0 && location.getLongitude() != 0.0)) { - loc = GeoLocation.fromDegrees(location.getLatitude(), location.getLongitude()); + TruncatedLocation TruncatedLocation = new TruncatedLocation(location); + loc = GeoLocation.fromDegrees(TruncatedLocation.getLatitude(), TruncatedLocation.getLongitude()); } else { location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); if (location != null && (location.getLatitude() != 0.0 && location.getLongitude() != 0.0)) { - loc = GeoLocation.fromDegrees(location.getLatitude(), location.getLongitude()); + TruncatedLocation TruncatedLocation = new TruncatedLocation(location); + loc = GeoLocation.fromDegrees(TruncatedLocation.getLatitude(), TruncatedLocation.getLongitude()); } else { String coords = prefs.getString(context.getString(R.string.data_last_lat_lon), null); if (coords != null) { diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/service/SignalStrengthTracker.java b/app/src/main/java/com/SecUpwN/AIMSICD/service/SignalStrengthTracker.java index eac6c2d28..bde85ef15 100644 --- a/app/src/main/java/com/SecUpwN/AIMSICD/service/SignalStrengthTracker.java +++ b/app/src/main/java/com/SecUpwN/AIMSICD/service/SignalStrengthTracker.java @@ -26,16 +26,26 @@ * * https://cloud.githubusercontent.com/assets/2507905/4428863/c85c8366-45d4-11e4-89da-c650cdb56caf.jpg * + * Issues: + * + * [ ] + * + * ChangeLog + * + * 20150703 E:V:A Changed log TAG to use only TAG for Log.i() and mTAG for Log.d/e/v() + * * @author Tor Henning Ueland */ public class SignalStrengthTracker { - //FIXME The logging tag can be at most 23 characters, was 29 (AIMSICD_SignalStrengthTracker) - public static final String TAG = "AIMSICD_SignalStrength"; + + private static final String TAG = "AIMSICD"; + private static final String mTAG = "SignalStrengthTracker"; + private static int sleepTimeBetweenSignalRegistration = 60; // [seconds] - private static int minimumIdleTime = 30; // [seconds] - private static int maximumNumberOfDaysSaved = 60; // [days] = 2 months - private static int mysteriousSignalDifference = 10; // [dBm] or [ASU]? - private static int sleepTimeBetweenCleanup = 3600; // Once per hour + private static int minimumIdleTime = 30; // [seconds] + private static int maximumNumberOfDaysSaved = 60; // [days] = 2 months + private static int mysteriousSignalDifference = 10; // [dBm] or [ASU]? + private static int sleepTimeBetweenCleanup = 3600; // Once per hour private Long lastRegistrationTime; //Timestamp for last registration to DB private Long lastCleanupTime; //Timestamp for last cleanup of DB private HashMap averageSignalCache = new HashMap<>(); @@ -62,8 +72,8 @@ public void registerSignalStrength(int cellID, int signalStrength) { long now = System.currentTimeMillis(); if(deviceIsMoving()) { - Log.i(TAG, "Ignored signal strength sample for CID: " + cellID + - " as the device is currently moving around, will not accept anything for another " + + Log.i(TAG, "Ignoring signal strength for CID: " + cellID + + " since device is moving around, waiting for " + ((minimumIdleTime*1000) - (now - lastMovementDetected)) + " ms."); return; } @@ -113,7 +123,7 @@ public boolean isMysterious(int cellID, int signalStrength) { //If moving, return false if(deviceIsMoving()) { Log.i(TAG, "Cannot check signal strength for CID: " + cellID + - " as the device is currently moving around."); + " since device is moving around."); return false; } @@ -122,13 +132,13 @@ public boolean isMysterious(int cellID, int signalStrength) { //Cached? if(averageSignalCache.get(cellID) != null) { storedAvg = averageSignalCache.get(cellID); - Log.d(TAG, "Cached average SS for CID: " + cellID + " is: " + storedAvg); + Log.d(TAG, mTAG + ": Cached average SS for CID: " + cellID + " is: " + storedAvg); } else { //Not cached, check DB mDbHelper.open(); storedAvg = mDbHelper.getAverageSignalStrength(cellID); averageSignalCache.put(cellID, storedAvg); - Log.d(TAG, "Average SS in DB for CID: " + cellID + " is: " + storedAvg); + Log.d(TAG, mTAG + ": Average SS in DB for CID: " + cellID + " is: " + storedAvg); mDbHelper.close(); } diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/utils/Helpers.java b/app/src/main/java/com/SecUpwN/AIMSICD/utils/Helpers.java index 1c0f2fbe3..b090173a2 100644 --- a/app/src/main/java/com/SecUpwN/AIMSICD/utils/Helpers.java +++ b/app/src/main/java/com/SecUpwN/AIMSICD/utils/Helpers.java @@ -33,6 +33,7 @@ import com.SecUpwN.AIMSICD.R; import com.SecUpwN.AIMSICD.activities.MapViewerOsmDroid; import com.SecUpwN.AIMSICD.service.CellTracker; +import com.SecUpwN.AIMSICD.utils.Toaster; import java.io.BufferedReader; import java.io.File; @@ -83,63 +84,53 @@ public class Helpers { private static final String mTAG = "Helpers"; private static final int CHARS_PER_LINE = 34; - private static final int SHORT_TOAST_DURATION = 2000; - private static final long TOAST_DURATION_MILLS = 6000;//change if need longer - /** - * Long toast message - * TOAST_DURATION_MILLS controls the duration - * currently set to 6 seconds - * @param context Application Context - * @param msg Message to send - */ - public static void msgLong(final Context context, final String msg) { - if (context != null && msg != null) { - final Toast t = Toast.makeText(context, msg, Toast.LENGTH_SHORT); - t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0); - - new CountDownTimer(Math.max(TOAST_DURATION_MILLS - SHORT_TOAST_DURATION, 1000), 1000) { - @Override - public void onFinish() { - t.show(); - } - - @Override - public void onTick(long millisUntilFinished) { - t.show(); - } - }.start(); - } - + /** + * Description: Long toast message + * + * Notes: + * + * This is only a proxy method to the Toaster class. + * It also takes care of using the Toaster's Singleton. + * + * @param context Application Context + * @param msg Message to send + */ + public static void msgLong(Context context, String msg) { + if (context != null && msg != null) { + Toaster.getInstance().msgLong(context, msg); + } } - - /** - * Short toast message - * (Predefined in AOS to 2000 ms = 2 sec) - * - * @param context Application Context - * @param msg Message to send - */ - public static void msgShort(final Context context, final String msg) { + /** + * Description: Short toast message + * + * Notes: + * + * This is only a proxy method to the Toaster class. + * It also takes care of using the Toaster's Singleton. + * + * @param context Application Context + * @param msg Message to send + */ + public static void msgShort(Context context, String msg) { if (context != null && msg != null) { - new Handler(context.getMainLooper()).post(new Runnable() { - @Override - public void run() { - Toast.makeText(context, msg.trim(), Toast.LENGTH_SHORT).show(); - } - }); + Toaster.getInstance().msgShort(context, msg); } } - - /** - * Long toast message - * - * @param context Application Context - * @param msg Message to send - */ + /** + * Description: Long toast message + * + * Notes: + * + * This is only a proxy method to the Toaster class. + * It also takes care of using the Toaster's Singleton. + * + * @param context Application Context + * @param msg Message to send + */ public static void sendMsg(Context context, String msg) { if (context != null && msg != null) { - msgLong(context, msg); + Toaster.getInstance().msgLong(context, msg); } } @@ -276,12 +267,15 @@ public static void getOpenCellData(Context context, Cell cell, char type) { .append(CellTracker.OCID_API_KEY).append("&BBOX=") .append(boundParameter); + Log.i(TAG, mTAG + ":OCID MCC is set to: " + cell.getMCC()); if (cell.getMCC() != Integer.MAX_VALUE) { sb.append("&mcc=").append(cell.getMCC()); } + Log.i(TAG, mTAG + ":OCID MNC is set to: " + cell.getMNC()); if (cell.getMNC() != Integer.MAX_VALUE) { sb.append("&mnc=").append(cell.getMNC()); } + //Log.i(TAG, mTAG + ":OCID LAC is set to: " + cell.getLAC()); // We need DBe_import filtering, if we wanna keep these lines commented out... //if (cell.getLAC() != Integer.MAX_VALUE) { // sb.append("&lac=").append(cell.getLAC()); @@ -614,5 +608,4 @@ public void onClick(DialogInterface dialog, int which) { .setIcon(R.drawable.ic_action_delete_database).create(); lAlertDialog.show(); } -} - +} \ No newline at end of file diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/utils/MiscUtils.java b/app/src/main/java/com/SecUpwN/AIMSICD/utils/MiscUtils.java index 6cb1ce304..d450f9507 100644 --- a/app/src/main/java/com/SecUpwN/AIMSICD/utils/MiscUtils.java +++ b/app/src/main/java/com/SecUpwN/AIMSICD/utils/MiscUtils.java @@ -11,6 +11,8 @@ import android.content.ContentValues; import android.content.Context; import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.support.v4.app.NotificationCompat; import android.util.Log; import com.SecUpwN.AIMSICD.AIMSICD; @@ -31,12 +33,21 @@ import java.util.Locale; /** - * Created by Paul Kinsella on 04/03/15. + * Description: TODO + * + * + * ChangeLog: + * + * banjaxbanjo 20150304 First PR + * E:V:A 20150704 Changed TAGs and fixed some formatting * */ public class MiscUtils { + private static final String TAG = "AIMSICD"; + private static final String mTAG = "MiscUtils"; + public static String setAssetsString(Context context){ BufferedReader reader = null; StringBuilder buildassets = new StringBuilder(); @@ -73,8 +84,7 @@ public static void startPopUpInfo(Context context,int mode){ public static String getCurrentTimeStamp(){ Date now = new Date(); - String timestamp = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault()).format(now); - return timestamp; + return new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault()).format(now); } /* @@ -93,9 +103,11 @@ public static void showNotification(Context context ,String tickertext,String co PendingIntent contentIntent = PendingIntent.getActivity( context, NOTIFICATION_ID, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT); + Bitmap largeIcon = BitmapFactory.decodeResource(context.getResources(), drawable_id); Notification mBuilder = new NotificationCompat.Builder(context) .setSmallIcon(drawable_id) + .setLargeIcon(largeIcon) .setTicker(tickertext) .setContentTitle(context.getResources().getString(R.string.main_app_name)) .setContentText(contentText) @@ -111,13 +123,13 @@ public static void showNotification(Context context ,String tickertext,String co /* Coder:banjaxbanjo + All new database detection strings will be added here so we don't need to keep updating db every time we find a new string. to add a new string in det_strings.json see example below: - {"detection_string":"incoming msg. Mti 0 ProtocolID 0 DCS 0x04 class -1", - "detection_type":"WAPPUSH"} + {"detection_string":"incoming msg. Mti 0 ProtocolID 0 DCS 0x04 class -1", "detection_type":"WAPPUSH"} */ public static void refreshDetectionDbStrings(Context con){ @@ -132,7 +144,8 @@ public static void refreshDetectionDbStrings(Context con){ json_file.append(rline); rline = reader.readLine(); } - Log.i("refreshDetectionDbStrings", json_file.toString()); + // Hmm I hope this doesn't affect the detection + Log.i(TAG, mTAG + ": refreshDetectionDbStrings: " + json_file.toString()); } catch (Exception ee){ ee.printStackTrace(); }finally { @@ -160,11 +173,11 @@ public static void refreshDetectionDbStrings(Context con){ JSONObject current_json_object = json_array_node.getJSONObject(i); ContentValues store_new_det_string = new ContentValues(); store_new_det_string.put(SmsDetectionDbHelper.SILENT_SMS_STRING_COLUMN, - current_json_object.optString("detection_string").toString()); + current_json_object.optString("detection_string")); // removed .toString() store_new_det_string.put(SmsDetectionDbHelper.SILENT_SMS_TYPE_COLUMN, - current_json_object.optString("detection_type").toString()); + current_json_object.optString("detection_type")); if(dbaccess.insertNewDetectionString(store_new_det_string)){ - Log.i("refreshDetectionDbStrings",">>>String added success"); + Log.i(TAG, mTAG + ": refreshDetectionDbStrings: New string added!"); } @@ -172,28 +185,27 @@ public static void refreshDetectionDbStrings(Context con){ dbaccess.close(); } catch (JSONException e) { dbaccess.close(); - Log.e("refreshDetectionDbStrings",">>> Error parsing JsonFile "+e.toString()); + Log.e(TAG, mTAG + ": refreshDetectionDbStrings: "+ "Error parsing JsonFile " + e.toString()); e.printStackTrace(); } } /* - Returns a timestamp in this format 20150617223311 - this is used to detect if the sms was already picked up + * Description: Converts logcat timstamp to SQL friendly timstamps + * We use this to determine if an sms has already been found + * + * Converts a timstamp in this format: 06-17 22:06:05.988 D/dalvikvm(24747): + * Returns a timestamp in this format: 20150617223311 */ public static String logcatTimeStampParser(String line){ - //06-17 22:06:05.988 D/dalvikvm(24747): <-- example of timestamp String[] buffer = line.split(" "); line = String.valueOf(Calendar.getInstance().get(Calendar.YEAR))+buffer[0]+buffer[1]; - // -->we dont need the last 4 digits in timestamp .988 - // | way to accurate but easily change if needed - String timestamp = line.substring(0,line.length()-4)// <-| - .replace(":","") - .replace(".","") - .replace("-",""); - - return timestamp; + // We don't need the last 4 digits in timestamp ".988" or it is too accurate. + return line.substring(0,line.length()-4) // <-| + .replace(":", "") + .replace(".", "") + .replace("-", ""); } } diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/utils/OCIDCSV.java b/app/src/main/java/com/SecUpwN/AIMSICD/utils/OCIDCSV.java index a41fa04cb..d5ad07af0 100644 --- a/app/src/main/java/com/SecUpwN/AIMSICD/utils/OCIDCSV.java +++ b/app/src/main/java/com/SecUpwN/AIMSICD/utils/OCIDCSV.java @@ -1,7 +1,6 @@ package com.SecUpwN.AIMSICD.utils; import java.util.ArrayList; -import java.util.List; /** * Created by Marvin Arnold on 9/06/15. @@ -24,11 +23,11 @@ public OCIDCSVLine(String[] ocidCell) { } public double getGPSLat() { - return truncateDouble(this.ocidCell[0], 5); + return TruncatedLocation.truncateDouble(this.ocidCell[0], 5); } public double getGPSLon() { - return truncateDouble(this.ocidCell[1], 5); + return TruncatedLocation.truncateDouble(this.ocidCell[1], 5); } public int getMCC() { @@ -75,13 +74,5 @@ public String getRAT() { return String.valueOf(this.ocidCell[10]); } - public double truncateDouble(String d, int numDecimal) { - return truncateDouble(Double.parseDouble(d), numDecimal); - } - - public double truncateDouble(double d, int numDecimal) { - String s = String.format("%." + Integer.toString(numDecimal) +"f", d); - return Double.parseDouble(s); - } } } diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/utils/RequestTask.java b/app/src/main/java/com/SecUpwN/AIMSICD/utils/RequestTask.java index 5d7c3b7f0..388a90a74 100644 --- a/app/src/main/java/com/SecUpwN/AIMSICD/utils/RequestTask.java +++ b/app/src/main/java/com/SecUpwN/AIMSICD/utils/RequestTask.java @@ -96,8 +96,8 @@ public class RequestTask extends BaseAsyncTask { //Calling from the menu more extensive(more difficult for sever), // we have to give more time for the server response - public static final int REQUEST_TIMEOUT_MAPS = 40000; // [ms] 40 s Calling from map - public static final int REQUEST_TIMEOUT_MENU = 40000; // [ms] 40 s Calling from menu + public static final int REQUEST_TIMEOUT_MAPS = 80000; // [ms] 80 s Calling from map + public static final int REQUEST_TIMEOUT_MENU = 80000; // [ms] 80 s Calling from menu public static final char DBE_DOWNLOAD_REQUEST = 1; // OCID download request from "APPLICATION" drawer title public static final char DBE_DOWNLOAD_REQUEST_FROM_MAP = 2; // OCID download request from "Antenna Map Viewer" @@ -436,4 +436,4 @@ public static String getOCDBDownloadDirectoryPath(Context context) { public static String getOCDBDownloadFilePath(Context context) { return getOCDBDownloadDirectoryPath(context) + OCDB_File_Name; } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/utils/Toaster.java b/app/src/main/java/com/SecUpwN/AIMSICD/utils/Toaster.java new file mode 100644 index 000000000..b09488a58 --- /dev/null +++ b/app/src/main/java/com/SecUpwN/AIMSICD/utils/Toaster.java @@ -0,0 +1,87 @@ +/* Android IMSI-Catcher Detector | (c) AIMSICD Privacy Project + * ----------------------------------------------------------- + * LICENSE: http://git.io/vki47 | TERMS: http://git.io/vki4o + * ----------------------------------------------------------- + */ +package com.SecUpwN.AIMSICD.utils; + +import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; + +import android.view.Gravity; +import android.widget.Toast; + +public class Toaster { + + private static final int SHORT_TOAST_DURATION = 2000; + private static final long TOAST_DURATION_MILLS = 6000; //change if need longer + private static Toast toast; + + // Private constructor. Prevents instantiation from other classes. + private Toaster() { } + + /** + * Initializes singleton. + * + * ToasterHolder is loaded on the first execution of Toaster.getInstance() + * or the first access to ToasterHolder.INSTANCE, not before. + */ + private static class ToasterHolder { + private static final Toaster INSTANCE = new Toaster(); + } + + public static Toaster getInstance() { + return ToasterHolder.INSTANCE; + } + + /** + * Long toast message + * TOAST_DURATION_MILLS controls the duration + * currently set to 6 seconds + * @param context Application Context + * @param msg Message to send + */ + public static void msgLong(final Context context, final String msg) { + if (context != null && msg != null) { + if (toast!=null){ + toast.cancel(); + } + + toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT); + + new CountDownTimer(Math.max(TOAST_DURATION_MILLS - SHORT_TOAST_DURATION, 1000), 1000) { + @Override + public void onFinish() { + toast.show(); + } + + @Override + public void onTick(long millisUntilFinished) { + toast.show(); + } + }.start(); + } + } + /** + * Short toast message + * (Predefined in AOS to 2000 ms = 2 sec) + * + * @param context Application Context + * @param msg Message to send + */ + public static void msgShort(final Context context, final String msg) { + if (context != null && msg != null) { + if (toast!=null){ + toast.cancel(); + } + new Handler(context.getMainLooper()).post(new Runnable() { + @Override + public void run() { + toast = Toast.makeText(context, msg.trim(), Toast.LENGTH_SHORT); + toast.show(); + } + }); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/utils/TruncatedLocation.java b/app/src/main/java/com/SecUpwN/AIMSICD/utils/TruncatedLocation.java new file mode 100644 index 000000000..46545fc81 --- /dev/null +++ b/app/src/main/java/com/SecUpwN/AIMSICD/utils/TruncatedLocation.java @@ -0,0 +1,43 @@ +package com.SecUpwN.AIMSICD.utils; + +import android.location.Location; +import java.text.NumberFormat; +import java.text.ParseException; + +/** + * Created by Marvin Arnold on 1/07/15. + */ +public class TruncatedLocation extends Location { + + public TruncatedLocation(Location l) { + super(l); + } + + @Override + public double getLatitude() { + return truncateDouble(super.getLatitude(), 5); + } + + @Override + public double getLongitude() { + return truncateDouble(super.getLongitude(), 5); + } + + public static double truncateDouble(String d, int numDecimal) { + return truncateDouble(Double.parseDouble(d), numDecimal); + } + + public static double truncateDouble(double d, int numDecimal) { + double td = 0; + NumberFormat format = NumberFormat.getInstance(); + + String s = String.format("%." + Integer.toString(numDecimal) +"f", d); + try { + Number number = format.parse(s); + td = number.doubleValue(); + } catch (ParseException e) { + e.printStackTrace(); + } + return td; + } +} diff --git a/app/src/main/res/layout/about_fragment.xml b/app/src/main/res/layout/about_fragment.xml index 90d8b7cf0..7f9c432ff 100644 --- a/app/src/main/res/layout/about_fragment.xml +++ b/app/src/main/res/layout/about_fragment.xml @@ -32,6 +32,16 @@ android:textColor="@color/red_text" android:textSize="16sp"/> + + - + \ No newline at end of file diff --git a/app/src/main/res/values-de/translatable_strings.xml b/app/src/main/res/values-de/translatable_strings.xml index 55b09c95d..d90662962 100644 --- a/app/src/main/res/values-de/translatable_strings.xml +++ b/app/src/main/res/values-de/translatable_strings.xml @@ -228,7 +228,7 @@ Beobachtung der Funkzelldaten angehalten. Funkzelldaten werden aufzeichnet. Aufzeichnung der Funkzelldaten angehalten. - Anfrage für neuen API-Schlüssel nur einmal aller 24 Stunden möglich!\nBitte später erneut versuchen. + Anfrage für neuen API-Schlüssel nur einmal aller 24 Stunden möglich!\nBitte später erneut versuchen. Zell-ID nicht existent in OCID-Datenbank! Feindliche Betriebsaktion: LAC-Änderung erkannt! Femtozellenerkennung aktiv. @@ -238,7 +238,7 @@ Status: Ruhend. Status: Gut. Keine Gefahren erkannt. ALARM: Eine Gefahr wurde erkannt! - ALARM: Verbinding mit Femtozelle erkannt! + ALARM: Verbinding mit Femtozelle erkannt! ALARM: Stille SMS (Type-0) erkannt! AIMSICD kann Verbindungen mit Femtozellen derzeit nur auf CDMA-Geräten erkennen. Betriebsstatus verändert! diff --git a/app/src/main/res/values-fr/translatable_strings.xml b/app/src/main/res/values-fr/translatable_strings.xml index 888121dc2..4385b4f5f 100755 --- a/app/src/main/res/values-fr/translatable_strings.xml +++ b/app/src/main/res/values-fr/translatable_strings.xml @@ -3,7 +3,6 @@ Tracking - Détails Téléphone/Carte SIM Carte des Antennes Relai Visionneuse de la Base de Donnée @@ -28,20 +27,16 @@ Démarrer/arrêter la détection des attaques Commencer à localiser les cellules - Sauvegarder la Base de Donnée Effacer/Réinitialiser la Base De Donnée Toutes les données seront effacés.\nÊtes vous sur? - Restaurer la Base de Données Préférences Appuyez une seconde fois pour quitter. Détails sur la/les cellule(s) actuelles Debugging - Aucune Connexion Internet - Impossible de télécharger les données OpenCellID sans une - connexion internet ! + Impossible de télécharger les données OpenCellID sans une connexion internet! Télécharger les BTS depuis OpenCellID @@ -202,7 +197,6 @@ Actions Hostiles de la part d\'un service détecté: Un IMSI-Catcher ou une fausse BTS est actuellement en train de traquer ses utilisateurs. Le scan à lieu ici et maintenant. Vous devriez quitter cette place, particulièrement s’il y a des troubles politiques. Enlevez votre batterie ou détruisez votre téléphone! Tracking Détecté : une fausse BTS ou IMSI-Catcher est actuellement en train de VOUS tracer et empêche votre téléphone de se connecter à votre opérateur avec un chiffrement normal. Si vous êtes en danger, détruisez votre téléphone(ou vendez le)+votre carte SIM et déclarez cette dernière volée. Manipulation: Quelqu\'un essaye de contrôler à distance votre téléphone. Détruisez votre téléphone(ou vendez le) et obtenez en un nouveau depuis un autre emplacement géographique! - Annuler OK @@ -234,7 +228,7 @@ Arrêt du monitoring des Cellules. Tracking des Cellules. Arrêt du tracking des Cellules. - Une seule demande de clé d\'API est possible par 24h!\nEssayez plus tard. + Une seule demande de clé d\'API est possible par 24h!\nEssayez plus tard. L\'ID de la cellule n\'existe pas dans la base de donnée! Zone Hostile : Changement de LAC Détecté! Détection des FemtoCellules Activé. @@ -244,11 +238,10 @@ Statut: Inactif. Statut: Bon. Aucune Menace Détectée. ALERTE : menace Détectée! - ALERTE: FemtoCellule Détectée! + ALERTE: FemtoCellule Détectée! ALERTE: SMS Silencieux (Type-0) Détecté! ALERTE: SMS Wap Push Détecté! - ALERTE: SMS de contrôle de messagerie vocale (MWI) Détecté! -+ + ALERTE: SMS de contrôle de messagerie vocale (MWI) Détecté! AIMSICD ne peut détecter les connexions FemtoCellules que sur les appareils CDMA. État du service changé ! : Arrêt du tracking des FemtoCellules. @@ -274,7 +267,7 @@ Rafraîchissement de l\'écran Impossible d\'obtenir l\'accès ROOT.\nL\'injection de commandes AT à besoin d\'un accès terminal en tant que ROOT.\nVéréfiez que votre téléphone est rooté et réessayez. Busybox non trouvé.\nL\'injection de commandes AT a besoin de Busybox pour fonctionner correctement.\nVéréfiez que votre appareil possède Busybox et ressayez. - Une erreur inconnue est survenu lors de l\'accès au périphérique Série.\nVéréfiez les logs et postez les erreurs sur Github ou sur\nXDA (les liens vers ces 2 sites web se trouvent dans la section\n"À propos" de cette application. + Une erreur inconnue est survenu lors de l\'accès au périphérique Série.\nVéréfiez les logs et postez les erreurs sur Github. Obtention d\'une clé de l\'API d\'OpenCellID… Impossible de créer la carte! ATTENTION! Veuillez décrire le problème que vous avez (en anglais !), avant de nous envoyer ces logs. PAS D\'AIDE SANS DESCRIPTION PRÉCISE!\n @@ -308,9 +301,9 @@ ATTENTION! SMS Type-0 Détecté SMS silencieux (Type-0) Détecté!\n\nDétails: Voir la Base de Données.\n\nSi vous voulez que ce SMS soit analysé par nos développeurs, envoyez les logs à travers le menu de Débugging. - ATTENTION! - SMS MWI Détecté - SMS de contrôle de la messagerie vocale (MWI) Détecté!\n\nDétails: Voir la Base de Données.\n\nSi vous voulez que ce SMS soit analysé par nos développeurs, envoyez les logs à travers le menu de Débugging. + ATTENTION! + SMS MWI Détecté + SMS de contrôle de la messagerie vocale (MWI) Détecté!\n\nDétails: Voir la Base de Données.\n\nSi vous voulez que ce SMS soit analysé par nos développeurs, envoyez les logs à travers le menu de Débugging. SMS Wap Push Détecté Message SMS Wap Push Détecté!\n\nDétails: Voir la Base de Données.\n\nSi vous voulez que ce SMS soit analysé par nos développeurs, envoyez les logs à travers le menu de Débugging. @@ -319,7 +312,7 @@ Niveau de menace AIMSICD, cellules aux alentours, méthode de chiffrement utilisé. Détail du fournisseur de la carte SIM, IMEI, TMSI. Affiche une comparaison détaillée des cellules connectées, avec les données (si il y en a)trouvées par OpenCellID, et surligne les différences. - Voir les différentes Tables de la Base de Données. + Voir les différentes Tables de la Base de Données. Carte des antennes à proximité. Interface permettant d\'envoyer des commandes AT au Baseband (nécessite le ROOT). @@ -393,4 +386,4 @@ @string/timeout_spinner_10_min - + \ No newline at end of file diff --git a/app/src/main/res/values-pl/translatable_strings.xml b/app/src/main/res/values-pl/translatable_strings.xml index bf2e5d425..a3bd56af8 100644 --- a/app/src/main/res/values-pl/translatable_strings.xml +++ b/app/src/main/res/values-pl/translatable_strings.xml @@ -1,263 +1,362 @@ - - O aplikacji - Lista zmian - Twórcy - Ostrzeżenie - AIMSICD na Githubie - CONTRIBUTE - Licencja - Wersja:  - Wyczyść - Kopiuj - Interface komend AT + + + Śledzenie + Szczegóły telefonu/SIM + Widok mapy + Podgląd bazy danych + Wyjście + OK + Anuluj + Zgadzam się + Nie zgadzam się + + + DISCLAIMER + By using AIMSICD you have understood and agree that AIMSICD is an experimental + and informative Android application that can fail to detect surveillance and + tracking for many reasons. You also understand that it can be circumvented or + defeated by other means, not yet understood to the developers. Thus you also + agree and understand that the developers and companies related to this free + product, can in no way be held responsible for any results or outcome, + depending on the use of this application. + + + + + Wykrywanie przełącz Atak + Przełącz Śledzenie komórki Kopia zapasowa bazy danych - Wydania - Dokumentacja (WIKI) - Projekt na Android pozwalający wykrywać fałszywe stacje bazowe (IMSI-catchery) - Rozpocznij - Zakończ - Odśwież - CID: - Informacje o komórce - Wszystkie informacje o obecnej komórce - Wskaźnik szyfrowania Wyczyść bazę danych - - All data will be deleted.\nAre you sure? - Wpisz komendę AT tutaj - Aktywność bazy danych - Status danych - Eksport powiódł się - Podgląd bazy danych - IMEI: - Szczegóły telefonu/SIM - Informacje o urządzeniu - Rodzaj telefonu - Wersja RIL: - Rozumiem, że AIMSICD jest aplikacją eksperymentalną - Wykonaj - Pobierz dane lokalnej stacji - MCC: - MNC: - Razem: - Sąsiednie komórki - CID: - LAC: - ID systemu: - Typ: - PC: - Uruchamiaj automatycznie - Uruchamiaj po włączeniu systemu - Automatycznie - Ikony stanu + Odzyskaj bazę danych Ustawienia - Wyjście - Odpowiedź: - Próbki: + Wciśnij ponownie by wyjść. + Wszystkie informacje o obecnej komórce Debugging - Zgadzam się - Anuluj - Nie zgadzam się - OK - 10 min - 10 sec - 20 sec - 2 sec - 30 sec - 5 sec - Time out: - Wybierz czas oczekiwania na odpowiedź - Płaskie - Logi - Klucz API OpenCellID - Roaming: - PCS: - ID sieci: - Nazwa dostawcy: - TA (LTE): - Informacje o sieci - Kod dostawcy: - ID stacji bazowej: - Skopiowano logi do schowka - Widok mapy Brak połączenia z Internetem - Błąd pobierania klucza: - Zapisano nowy klucz - Dane OpenCellID + Nie da się pobrać danych z OpenCellID bez połączenia Internetowego. Proszę włączyć połączenie danych! + + + Pobierz dane lokalnej stacji + + + Informacje o urządzeniu + Informacje o SIM + Informacje o sieci + Informacje o komórce + Sąsiednie komórki + Wskaźnik szyfrowania + Razem: Kraj: ID operatora: - Informacje o SIM - IMSI: Nazwa operatora: + IMSI: Numer seryjny: - Wybierz OK by pobrać klucz API z OpenCellID.org. Pozwoli Ci to na pobranie danych i wyświetlanie ich na mapie, oraz na wysyłanie zebranych danych. Jeśli nie wyślesz żadanych danych w ciągu 20dni, Twój klucz może zostać zdezaktywowany. + Rodzaj telefonu: + IMEI: + Wersja RIL: + Nazwa dostawcy: + Kod dostawcy: + Typ: + LAC: + CID: + Aktywność bazy danych: + Status danych: + Roaming: + TA (LTE): + Odśwież + Otwórz menu + Zamknij menu + PSC: + + + Wyślij dane o lokalnych komórkach + + + O AIMSICD + Wersja:  + Projekt na Android pozwalający wykrywać fałszywe stacje bazowe (IMSI-catchery) w sieci GSM/UMTS. + AIMSICD na Githubie + Dokumentacja (WIKI) + PRZYCZYNIAJĄ + ZASTRZEŻENIE + WYDANIA + LISTA ZMIAN + LICENCJA + TWÓRCY + Idle / Loading. + Active tracking close to you! + Wszystko OK. + Jesteś śledzony! + Insecure Service Area. Leave it! + RUN! Handset manipulated! + Kliknij na ikonę by uzyskać więcej informacji: + + + + ID sieci: + ID systemu: + ID stacji bazowej: + + Serwis lokalizacji wyłączony - Wys.: - Szer.: - LAC: Nie można śledzić komórek bez włączonego GPSu. Włączyć teraz? - Nie da się pobrać danych z OpenCellID bez połączenia Internetowego. Proszę włączyć połączenie danych. - Monitorowanie komórek + + + Ustawienia systemu + Uruchamiaj automatycznie + Uruchamiaj po włączeniu systemu + Działaj w tyle + Serwis będzie uruchomiony w tle po wyjściu z aplikacji + Ustawienia ochrony Śledzenie komórek Włącz automatyczne śledzenie komórek - Włącz automatyczne monitorowanie komórek - Ochrona Femtocell Wykrywanie Femtocell - Ustawienia widoku mapy - Wyświetl mapę w różnych stylach - Rodzaj mapy + (obecnie TYLKO dla telefonów z CDMA) + Ochrona Femtocell + Włacz tryb samolotowy po wykryciu Femtocell + Ustawienia interfacu + Ikony stanu + Wybór ikony + Częstotliwość odświeżania + Kontroluj częstotliwość odświeżania danych\nBieżący wybór: %s + Ustawienia OpenCellID + Klucz API OpenCellID Wpisz swój klucz API do OpenCellID + Monitorowanie komórek + Włącz automatyczne monitorowanie komórek + Request OCID API Key Pobierz nowy klucz API dla danych OpenCellID - Klucz API OpenCellID - Ustawienia ochrony - Częstotliwość odświeżania - Pobierz nowy klucz - Ustawienia systemu - Wybór ikony - Ustawienia interfacu - Wciśnij ponownie by wyjść - Odzyskaj bazę danych. - Wybierz numer seryjny urządzenia - Przechwycono SilentSMS - Przechwycono SilentSMS!\n\nWięcej infromacji w widoku bazy danych! + + + Ustawienia widoku mapy + Rodzaj mapy + Wyświetl mapę w różnych stylach + + + CID: + LAC: + MCC: + MNC: + PC: + Próbki: + Dane OpenCellID + Szer.: + Wys.: + + Wybierz tabelę - Brak danych do wyświetlenia - Wyślij dane o lokalnych komórkach + + @string/unique_bts_data + @string/bts_measurements + @string/imported_ocid_data + @string/default_mmc_locations + @string/silent_sms + @string/measured_signal_strengths + @string/eventlog + + Eksport powiódł się + + + Interface komend AT + Odpowiedź: + Wykonaj Obecny numer seryjny urządznia: - Kontroluj częstotliwość odświeżania danych\nBieżący wybór: %s - Śledzenie - Uwagi - Główne - Ustawienia OpenCellID - Serwis będzie uruchomiony w tle po wyjściu z aplikacji - Działaj w tyle + Wybierz numer seryjny urządzenia Wykryte urządzenia: - Ustawienia - (obecnie TYLKO dla telefonów z CDMA) - Włacz tryb samolotowy po wykryciu Femtocell - Szczegółowe wyjaśnienie - Zamknij menu - Otwórz menu + Timeout: + Wybierz czas oczekiwania na odpowiedź + Wpisz komendę AT tutaj. + + + Przechwycono SilentSMS + Przechwycono SilentSMS!\n\nWięcej infromacji w widoku bazy danych. + Brak danych do wyświetlenia. + + + Klucz API OpenCellID + Wybierz OK by pobrać klucz API z OpenCellID.org. Pozwoli Ci to na pobranie danych i wyświetlanie ich na mapie, oraz na wysyłanie zebranych danych. Jeśli nie wyślesz żadanych danych w ciągu 20dni, Twój klucz może zostać zdezaktywowany. + Błąd pobierania klucza: + Zapisano nowy klucz + + + Logi + Wyczyść + Kopiuj + Skopiowano logi do schowka + Zakończ + Rozpocznij + + + SZCZEGÓŁOWY OPIS Aplikacja jest bezczynna. Włącz śledzenie w menu. Nie wykryto żadnych zagrożeń. - Wykryto manipulację: ktoś próbuje zdalnie manipulować Twoim telefonem. Zniszcz lub sprzedaj telefon! Ta okolica nie jest bezpieczna: wykryto co najmniej jedną nieznaną stację bazową lub używane jest szyfrowanie słabsze niż A5/3. Wszystkie wiadomości i rozmowy w tym rejonie mogą być przechwycone. - Wykryto śledzenie: W pobliżu jest aktywny FBTS lub IMSIC, uniemożliwiając bezpieczne, szyfrowane połączenie z dostawcą sieci. Pozbądź się swojego telefou, zniszcz kartę SIM i zgłoś ją jako zagubioną! Wykryto wrogą aktywność: IMIC lub FBTS aktywnie śledzi użytkowników! Wyjmij baterię z telefoni i unikaj tego miejsca! - Monitorowanie informacji komórek - Wstrzymano monitorowanie komórek - Śledzenie informacji komórek - Wstrzymano śledzenie komórek - Możesz pobrać tylko jeden klucz OCID na dobę.\nSpróbuj później - Monitoring komórek aktywny + Wykryto śledzenie: W pobliżu jest aktywny FBTS lub IMSIC, uniemożliwiając bezpieczne, szyfrowane połączenie z dostawcą sieci. Pozbądź się swojego telefou, zniszcz kartę SIM i zgłoś ją jako zagubioną! + Wykryto manipulację: ktoś próbuje zdalnie manipulować Twoim telefonem. Zniszcz lub sprzedaj telefon! + Anuluj + OK + + + Płaskie + Sense + Białe + Teren + Zwyczajna + Ręcznie + Automatycznie + 2 sek + 5 sek + 10 sek + 25 sek + 45 sek + 1 min + 5 min + 2 sek + 5 sek + 10 sek + 20 sek + 30 sek + 10 min + Główne + Ustawienia + Aplikacja + Monitorowanie informacji komórek. + Wstrzymano monitorowanie komórek. + Śledzenie informacji komórek. + Wstrzymano śledzenie komórek. + Możesz pobrać tylko jeden klucz OCID na dobę.\nSpróbuj później. + ID komórki nie istnieje w bazie danych OCID! + Niezabezpieczona okolica: LAC został zmieniony! + Wykrywanie FemtoCell aktywne. + Śledzenie komórek aktywne. + Monitoring komórek aktywny. Rodzaj telefonu Oczekuję… Brak zagrożeń. Wszystko OK. UWAGA: Wykryto zagrożenie! - UWAGA: Wykryto połączenie FemtoCell! + UWAGA: Wykryto połączenie FemtoCell! UWAGA: Wykryto SilentSMS (Type-0)! - Aplikacja potrafi wykrywać FemtoCell tylko przez połączenie CDMA - Zmieniony został stan usługi - Wstrzymano śledzenie połączeń FemtoCell + ALERT: Silent Voice SMS detected! + ALERT: Wap Push SMS detected! + Aplikacja potrafi wykrywać FemtoCell tylko przez połączenie CDMA. + Zmieniony został stan usługi! + : Wstrzymano śledzenie połączeń FemtoCell. UWAGA! Wykryto śledzenie FemtoCell! - Wykrywanie FemtoCell aktywne - Śledzenie komórek aktywne - ID komórki nie istnieje w bazie danych OCID - Aplikacja - Niezabezpieczona okolica: LAC został zmieniony Odświeżanie co - Odświeżam - sekund + Odświeżam… + sekund. + Łączenie z OpenCellID by uzyskać potrzebne dane…\nMoże to potrwać nawet minutę. Nie udalo się określić Twojej ostatniej lokalizacji. Włącz lokalizację w ustawieniach telefonu. - Brak zapisanych lokalizacji do pokazania - Łączenie z OpenCellID by uzyskać potrzebne dane.\nTo może zająć chwilę… - - Wykrywanie przełącz Atak - Przełącz Śledzenie komórki + Brak zapisanych lokalizacji do pokazania. + Brak nowych danych do wysłania. Błąd pobierania: - Błąd tworzenia kopii zapasowej. - Błąd przywracania bazy danych. - Status: - UCIEKAJ! + Poprawnie odebrano dane. + Błąd uzyskiwania danych z OpenCellID.\nSprawdź swoje połączenie internetowe! + Poprawnie odebrano dane. Punkty na mapie zostały zaktualizowane. + Dane do OpenCellID zostały przesłane. + Błąd wysyłania danych do OpenCellID! Odzyskano bazę danych. + Błąd przywracania bazy danych. + Kopia zapasowa zapisana do: + Błąd tworzenia kopii zapasowej. + Brak klucza API OpenCellID. Musisz najpierw wpisać lub pobrać swój klucz. Odświeżanie ekranu + Nie udało się usyskać praw ROOTa. Interface komend AT wymaga praw ROOTa. Sprawdź swoje urządzenie i spróbuj ponownie. + Nie udało się odnaleźć BusyBox na Twoim urządzeniu. Interface komend AT wymaga BusyBoxa! Sprawdź swoje urządzenie i spróbuj ponownie. + Wystąpił nieznany bład przy próbie uzyskania Serial Device. Prosimy o sprawdzenie logów i przesłanie ich do nas na Github. Link do Githuba znajedziesz w sekcji \'O aplikacji\'. + AWystąpił nieznany błąd przy uruchamianiu inteface komend AT. Prosimy o sprawdzenie logów i przesłanie ich do nas na Github. Link do Githuba znajedziesz w sekcji \'O aplikacji\'. + Pobieranie klucza OpenCellID… + Nie powiodło się tworzenie mapy! + W celu uzyskania pomocy opisz swój problem. Problemy bez opisu są automatycznie ignorowane!\n + Status: + OCZEKUJE ZWYCZAJNY - Brak klucza API OpenCellID. Musisz najpierw wpisać lub pobrać swój klucz. - Brak nowych danych do wysłania. - Oczekuje - Wysoki - Wczytaj bazę danych z karty - Wyczyść wszystkie tabele bazy danych - Pobieranie klucza OpenCellID - O nas i kogo wspieramy - Uzyskaj klucz API do OpenCellID by pobierać i wysyłać dane. - Pokaż szczegółowe porównanie obecnie połączonych komórek używając danych z OpenCellID. Podświetla różnice. - Mapa pokazująca pobliskie nadajniki. - Interface komend AT pozwalający wysyłać komendy AT do BS. + ŚREDNIE + WYSOKI + ZAGROŻENIE + UCIEKAJ! + + + This menu is for advanced users only!\n\nPlease do not insert random strings because it will cause detection to go out of control.\n\nTo add a string choose the SMS type from the dropdown menu, type your detection string and press insert.\n\nTo delete from database long press on list view. + + + This menu is for advanced users only!\nTo delete a detected SMS long press it in listview. + Delete Detected SMS + + Advanced User Settings + Detection Strings + Delete SMS + Insert and delete detection strings + Delete Detected SMS + + + Enable SMS Detection + Root is required to enable SMS detection + + + Detection Strings + ATTENTION! + Type0 SMS Detected + Silent SMS Message detected!\n\nDetails: See Database Viewer.\n\nIf you want this data to be analysed by our developers, send the logfiles through the Debugging menu. + ATTENTION! + Silent Voice Detected + Silent Voice SMS Message detected!\n\nDetails: See Database Viewer.\n\nIf you want this data to be analysed by our developers, send the logfiles through the Debugging menu. + Wap Push Detected + Wap Push SMS Message has been detected!\n\nDetails are available through the Database Viewer.\n\nIf you want this data to be analysed by our devs, enter the Debugging menu and send the logfiles via E-Mail. + + + Statystyki AIMSICD, pobliskich komórek i metod szyfrowania. - Pokaż tablele baz danych. Szczegóły SIM, IMEI, TMSI. + Pokaż szczegółowe porównanie obecnie połączonych komórek używając danych z OpenCellID. Podświetla różnice. + Pokaż tablele baz danych. + Mapa pokazująca pobliskie nadajniki. + Interface komend AT pozwalający wysyłać komendy AT do BS (wymaga ROOT). + + + Rozpoczyna/zatrzymuje wykrywanie ataku i zbieranie danych do lokalnej bazy danych. + Zacznij śledzić komórki do wyświetlania na antenie Map Viewer i ewentualnie później przesłać do OCID. + + + Ustawienia AIMSICD, czas odświeżania i zachowanie serwisów. Utwórz kopię zapasową bazy danych na karcie SD. + Wczytaj bazę danych z karty. + Wyczyść wszystkie tabele bazy danych. Eksport z bazy danych do plików CSV. Importuj do bazy danych z plików CSV. - Ustawienia AIMSICD, czas odświeżania i zachowanie serwisów. - Zacznij śledzić komórki do wyświetlania na antenie Map Viewer i ewentualnie później przesłać do OCID. - Rozpoczyna/zatrzymuje wykrywanie ataku i zbieranie danych do lokalnej bazy danych. - ZAGROŻENIE - Kopia zapasowa zapisana do: - W celu uzyskania pomocy opisz swój problem. Problemy bez opisu są automatycznie ignorowane. - Błąd uzyskiwania danych z OpenCellID.\nSprawdź swoje połączenie internetowe. - Błąd wysyłania danych do OpenCellID. - ŚREDNIE - Poprawnie odebrano dane. - Poprawnie odebrano dane. Punkty na mapie zostały zaktualizowane. - Nie powiodło się tworzenie mapy. - Nie udało się usyskać praw ROOTa. Interface komend AT wymaga praw ROOTa. Sprawdź swoje urządzenie i spróbuj ponownie. - Nie udało się odnaleźć BusyBox na Twoim urządzeniu. Interface komend AT wymaga BusyBoxa! Sprawdź swoje urządzenie i spróbuj ponownie. - Wystąpił nieznany błąd przy uruchamianiu inteface komend AT. Prosimy o sprawdzenie logów i przesłanie ich do nas na Github. Link do Githuba znajedziesz w sekcji \'O aplikacji\'. - Wystąpił nieznany bład przy próbie uzyskania Serial Device. Prosimy o sprawdzenie logów i przesłanie ich do nas na Github. Link do Githuba znajedziesz w sekcji \'O aplikacji\'. - Dane do OpenCellID zostały przesłane. - Nie udało się odzyskać kopii z poprzedniej wersji bazy danych. - Oczekiwanie na lokalizację… - Domyślne lokalizacje MMC - Pomiary BTS - Logi zdarzeń - Importowane dane OpenCellID - Pomiary siły sygnałów - Unikalne dane BTS - Białe - Sense - Silent SMS - Ręcznie - 45 sek - 2 sek - 25 sek - 1 min - 10 sek - 5 min - 5 sek - Zwyczajna - Teren - Anuluj - OK - Działanie aplikacji zostało wstrzymane. - Wykryto śledzenie: w pobliżu aktywny jest FBTS lub IMSIC! - Wszystko OK. - Jesteś śledzony! - Ta okolica nie jest bezpieczna. Powinieneś się oddalić! - Wykryto manipulację: ktoś próbuje zdalnie manipulować Twoim telefonem. - Kliknij na ikonę by uzyskać więcej informacji. + + Uzyskaj klucz API do OpenCellID by pobierać i wysyłać dane… + O nas i kogo wspieramy. Pobierz bazę danych OCID. Wyślij dane o lokalnych BTS do OCID. Wczytaj i wyślij logi. Zakończ działanie aplikacji. + Oczekiwanie na lokalizację… + Nie udało się odzyskać kopii z poprzedniej wersji bazy danych! + Unikalne dane BTS + Pomiary BTS + Importowane dane OpenCellID + Domyślne lokalizacje MMC + Silent SMS + Logi zdarzeń + Pomiary siły sygnałów + *** Wykrywanie urządzeń AT…\n - Wykryto: "" - *** Konfiguracja zakończona ***\n"" + Wykryto: + *** Konfiguracja zakończona ***\n + + Currently connected BTS + Well known encrypted BTS + Unknown or insecure BTS + New or recently added BTS + + Invalid OpenCellId key, try again later. + Getting OpenCellId API Key... @string/ui_icon_flat diff --git a/app/src/main/res/values-ru/translatable_strings.xml b/app/src/main/res/values-ru/translatable_strings.xml index fab0fa1ed..7b05aadf6 100644 --- a/app/src/main/res/values-ru/translatable_strings.xml +++ b/app/src/main/res/values-ru/translatable_strings.xml @@ -238,7 +238,7 @@ Мониторинг сотовой информации остановлен. Отслеживания данных сотового. Отслеживания данных сотового остановлена. - Только один запрос нового ключа API за 24 часа!\nПожалуйста, повторите попытку позже. + Только один запрос нового ключа API за 24 часа!\nПожалуйста, повторите попытку позже. ID соты не существует в базе данных OCID! Враждебная зона обслуживания: Изменение LAC обнаружено! Обнаружение фемтосот активно. @@ -248,7 +248,7 @@ Статус: Неработающий. Статус: Хорошо. Угроз не обнаружено. ТРЕВОГА: Обнаружены некоторые угрозы! - ТРЕВОГА: Обнаружено соединение с фемтосотой! + ТРЕВОГА: Обнаружено соединение с фемтосотой! ТРЕВОГА: обнаруженный бесшумная SMS (Type-0)! AIMSICD может определять соединение с фемтосотой только на CDMA устройствах. Статус сервиса изменен! @@ -276,7 +276,7 @@ Невозможно получить ROOT доступ на вашем устройстве.\nДля инъекций AT-команд в терминал требуется ROOT доступ.\nПожалуйста, проверьте наличие ROOT прав на вашем устройстве и попробуйте еще раз Невозможно обнаружить Busybox на вашем устройстве.\nДля инъекций AT-команд в терминал требуются компоненты Busybox для правильного функционирования.\nПожалуйста, проверьте, что Busybox установлен на ваше устройство и попробуйте снова Произошла неизвестная ошибка при попытке достижения Serial Device.\nПожалуйста, проверьте LogCat на возможные ошибки и отправьте их на Github. - An unknown error has occurred trying to initialise the AT Command Injector.\nPlease check your logcat for any errors and post them to Github or\nXDA, links to both of these locations can be found within the\nAbout section of the application. + An unknown error has occurred trying to initialise the AT Command Injector.\nPlease check your logcat for any errors and post them on our Github. Получение ключа API OpenCellID… Невозможно создать карту! ВНИМАНИЕ! Пожалуйста, опишите проблему, которая у вас была, прежде, чем отправить нам эти журналы. НЕТ ПОМОЩИ БЕЗ ОПИСАНИЯ!\n diff --git a/app/src/main/res/values/translatable_strings.xml b/app/src/main/res/values/translatable_strings.xml index 76769a25f..c98b0cebf 100644 --- a/app/src/main/res/values/translatable_strings.xml +++ b/app/src/main/res/values/translatable_strings.xml @@ -3,7 +3,6 @@ Tracking - Phone/SIM Details Antenna Map Viewer Database Viewer @@ -28,20 +27,16 @@ Toggle Attack Detection Toggle Cell Tracking - Backup Database Clear/Reset Database All data will be deleted.\nAre you sure? - Restore Database Preferences Press again to exit. All Current Cell Details Debugging - No Internet Connection - Unable to download OpenCellID data without Internet - connectivity, please enable data connection! + Unable to download OpenCellID data without Internet connectivity, please enable data connection! Download BTS Data @@ -202,7 +197,6 @@ Hostile Service Actions Detected: An IMSI-Catcher (IMSIC) or fake BTS (FBTS) is actively tracking users. Active scanning takes place in this area. You should avoid this place, especially if there are political unrest. Take out your battery or kill your phone! Hostile Tracking Detected: An FBTS or IMSIC is actively tracking YOU and preventing your phone from connecting through your normal encrypted mobile provider. If you\'re in danger or repercussions, destroy your phone + SIM and report it as recently stolen. Hostile Manipulation: Someone is trying to remotely manipulate your handset. Destroy (or sell) your phone and get a new one somewhere far away (don\'t carry your old phone to the changing place)! Use a new (anonymous) SIM card, change calling behavior and warn your friends by talking to them in real life, NOT by calling them! - Cancel OK @@ -234,7 +228,7 @@ Stopped monitoring Cell Information. Tracking Cell Information. Stopped tracking Cell Information. - Only one new API key request per 24 hours!\nPlease try again later. + Only one new API key request per 24 hours!\nPlease try again later. Cell ID does not exist in OCID Database! Hostile Service Area: Changing LAC Detected! FemtoCell Detection Active. @@ -244,7 +238,7 @@ Status: Idle. Status: Good. No Threats Detected. ALERT: Some Threat Detected! - ALERT: FemtoCell Connection Detected! + ALERT: FemtoCell Connection Detected! ALERT: Silent SMS (Type-0) detected! ALERT: Silent Voice SMS detected! ALERT: Wap Push SMS detected! @@ -273,8 +267,8 @@ Refreshing display Unable to acquire ROOT access on your device.\nAT Command Injection requires ROOT Terminal access.\nPlease check your device is ROOTED and try again. Unable to detect Busybox on your device.\nAT Command Injection requires Busybox components to function correctly.\nPlease check your device has Busybox installed and try again. - An unknown error has occurred trying to acquire the Serial Device.\nPlease check your logcat for any errors and post them to Github\nor XDA, links to both of these locations can be found within the\nAbout section of the application. - An unknown error has occurred trying to initialise the AT Command Injector.\nPlease check your logcat for any errors and post them to Github or\nXDA, links to both of these locations can be found within the\nAbout section of the application. + An unknown error has occurred trying to acquire the Serial Device.\nPlease check your logcat for any errors and post them on our Github. + An unknown error has occurred trying to initialise the AT Command Injector.\nPlease check your logcat for any errors and post them on our Github. Getting OpenCellID API key… Unable to create map! ATTENTION! Please describe the problem you had, before sending us these logs. NO HELP WITHOUT DESCRIPTIONS!\n @@ -311,7 +305,6 @@ ATTENTION! Silent Voice Detected Silent Voice SMS Message detected!\n\nDetails: See Database Viewer.\n\nIf you want this data to be analysed by our developers, send the logfiles through the Debugging menu. - Wap Push Detected Wap Push SMS Message has been detected!\n\nDetails are available through the Database Viewer.\n\nIf you want this data to be analysed by our devs, enter the Debugging menu and send the logfiles via E-Mail. diff --git a/app/src/main/res/values/untranslatable_strings.xml b/app/src/main/res/values/untranslatable_strings.xml index 7a9642b6e..77dfcc539 100644 --- a/app/src/main/res/values/untranslatable_strings.xml +++ b/app/src/main/res/values/untranslatable_strings.xml @@ -8,6 +8,7 @@ Android IMSI-Catcher Detector (AIMSICD) + Buildozer Build:  https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/wiki https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/blob/HEAD/CONTRIBUTING.md https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/blob/HEAD/DISCLAIMER @@ -72,4 +73,4 @@ @string/FLASH @string/WAPPUSH - + \ No newline at end of file