diff --git a/CHANGELOG.md b/CHANGELOG.md index e495f51e7b7ba93e4fff7508fca001630d0b6d1a..48e92ed4ba840f13b8e2521ba4b95f5c99eacf87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,42 @@ # CHANGELOG of 'AIMSICD' ---------------------- +#### 09.02.2015 - WIP-Internal v0.1.25-alpha-build-28 + +* Changed: Save EventLog action now takes place in aa more convenient location +* Added: New EventLog table with working DB View of EL-Table and Export of .csv +* Added: New file `EventLogItemData.java` and some editing to the table styling +* Added: Debugging code to dump full SMS in PDU format and easier string parsing + +--- + +#### 04.02.2015 - WIP-Internal v0.1.25-alpha-build-27 + +* Changed: Logcat entry of CID alert moved from `AIMSICDDbAdapter` to `CellTracker` +* Added: Some pseudo code to start the detection of checking the BTS for the NC List +* Added: Code comments mentioning possible bug on CDMA SID/MNC Info +* Added: Missing SMS/MMS/WAP etc. Android permissions have now been added +* Added: Non-public (3rd party) Android permissions have been added as well +* Added: OEM / Samsung related permissions and comments on `SmsReceiver` permissions +* Added: Some minor code cosmetics making everything more understandable +* Added: Skipping the re-import of same CIDs into `DBe_import` +* Fixed: Missing bonuspack_bubble Error in logcat has been resolved + +--- + +#### 29.01.2015 - WIP-Internal v0.1.25-alpha-build-26 + +* Updated: Completed `amisicd.db` backup to `aimsicd_dump.db` on the SD card +* Updated: `CONTRIBUTING.md` is now forcing to use our `development` branch +* Removed: Unused import statements have been purged to clean up the code +* Added: `checkDBe()` added for removing bad cells from OCID import table +* Added: Several DBe LAC/CID consistency checks via the new `checkDBe()` +* Added: Boolean (true/false) system property to show status of OCID download +* Added: New columns in `DBe_import` table: `avg_range`, `isGPSexact` and `Type` +* Added: German public notice to be displayed on all black boards in town + +--- + #### 28.01.2015 - WIP-Internal v0.1.25-alpha-build-25 * News-Alert: **We are improving things - please work on branch `Development`!** diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a38dc9d96105bca600b89268c5e47ea68e0b6cd1..6cc5a321b0552ef41383f7870117a45e38d67516 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ To avoid confusion and neglected development commits, please ALWAYS read this gu #### DEVELOPERS WELCOME! -* Development takes place on our new branch [development](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/tree/development), keeping `master` clean! +:warning: PULL REQUESTS shall go to branch [development](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/tree/development), please keep our `master` clean! * Can't code? No problem! Test our [latest Release](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/releases) (even better: compile from `master`)! * Before testing our App, you should read our [WIKI](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/wiki) and **must agree** to our [Disclaimer](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/blob/master/DISCLAIMER). * Security matters. But **don't be scared** to contribute, check out our note on [Privacy](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/wiki/Privacy)! diff --git a/DOCUMENTATION/IMSI-Catchers/CellularMonitoringVehicle.jpeg b/DOCUMENTATION/IMSI-Catchers/CellularMonitoringVehicle.jpg similarity index 100% rename from DOCUMENTATION/IMSI-Catchers/CellularMonitoringVehicle.jpeg rename to DOCUMENTATION/IMSI-Catchers/CellularMonitoringVehicle.jpg diff --git a/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_Antennas.jpg b/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_Antennas.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f13d8c9d7d474c69355a08404a8052d90e99c565 Binary files /dev/null and b/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_Antennas.jpg differ diff --git a/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_Blue.jpg b/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_Blue.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f3f2c1b06fb526718b8d1cf9496d3b638f400f0a Binary files /dev/null and b/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_Blue.jpg differ diff --git a/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_White.jpg b/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_White.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a510954adb555f133b72e5d962940ced7500ea9d Binary files /dev/null and b/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_White.jpg differ diff --git a/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_Yellow.jpg b/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_Yellow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3daa81e4d794b96ac790aab48093d26013560066 Binary files /dev/null and b/DOCUMENTATION/IMSI-Catchers/IMSI-Catcher_Yellow.jpg differ diff --git a/MISC/external/gunio.png b/MISC/external/gunio.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0ee287c77cadf18adbf07e1908097680fb916d Binary files /dev/null and b/MISC/external/gunio.png differ diff --git a/README.md b/README.md index 04197dc1a4450a968e9e4705d76297754865fb1c..a02e97f246b725bf1fdbbb8aa86a5acb2ce2b524 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Android-based project to detect and avoid fake base stations ([IMSI-Catchers](ht [](http://aimsicd.store.aptoide.com/ "NOTE: Installs Aptoide-App first!") [](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/releases "GitHub Releases") [](https://f-droid.org/repository/browse/?fdid=com.SecUpwN.AIMSICD "F-Droid Store") --- [](http://www.xda-developers.com/android/detect-avoid-imsi-catcher-attacks-with-imsi-catcher-detector/ "Portal Post on XDA-Developers") [](https://hackaday.io/project/3824-android-imsi-catcher-detector "Project Post on Hackaday") -[](https://twitter.com/AIMSICD "Official Twitter-Account") +[](https://twitter.com/AIMSICD "Official Twitter-Account") [](https://gun.io/blog/android-imsi-catcher-detector/ "Blog Post on Gun.io") # Index * [Introduction](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector#introduction) @@ -65,7 +65,7 @@ They come in uncountable shapes and sizes: [](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector) -* Todays IMSI-Catchers can be [body-worn](http://arstechnica.com/security/2013/09/the-body-worn-imsi-catcher-for-all-your-covert-phone-snooping-needs/) or are hidden in GSM Interceptor vehicles: +* Todays IMSI-Catchers can be [body-worn](http://arstechnica.com/security/2013/09/the-body-worn-imsi-catcher-for-all-your-covert-phone-snooping-needs/) or are hidden in [GSM Interceptor vehicles](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/wiki/Unmasked-Spies): [](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector) @@ -107,6 +107,8 @@ They come in uncountable shapes and sizes: # Development Roadmap +* Please follow our [CONTRIBUTING GUIDELINES](https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/edit/master/CONTRIBUTING.md)! + In order to accomplish the goals set above, we'll need to overcome some of the deeply worrying and unfounded AOS limitations, as imposed by Googles API, in regard to relevant network variables and data. These include highly relevant and important things such as displaying the SIM/phone Ciphering Indicator, which tells you if your calls are being encrypted or not. This has been a required 3GPP feature for the last 15 years, but which Google and most Mobile Network providers have choosen to mostly ignore, although it has been [requested by users since 2009](https://code.google.com/p/android/issues/detail?id=5353). Another is finding the *Timing Advance* (TA) and various Network Timers, like those used in *Radio Resource Control* ([RRC](http://en.wikipedia.org/wiki/Radio_Resource_Control)), that can give very useful information regarding the status of the connections your phone is making. All this can be fairly easily accomplished, given that we can have access to some of the lower level radio related information coming from the *Baseband Processor* (BP). But that is exactly our challenge. All the software and information about the interfaces providing this, is hidden from the user and developers by a huge amount of proprietary OEM *Non Disclosure Agreements* (NDA). But in the last years, there has been great progress in reverse enginering these protocols and interfaces. The use of these open source tools are the basis of our successful development of this App. diff --git a/app/src/main/assets/CREDITS b/app/src/main/assets/CREDITS index 6d24ac6c71cf0f4a17509497d49ff2ba171d222f..e5c721da3f810140f0d91fbfe92614d5f3f6daeb 100644 --- a/app/src/main/assets/CREDITS +++ b/app/src/main/assets/CREDITS @@ -154,3 +154,7 @@ Dave Mariano\n https://github.com/d-mariano\n for adding great code and lovely contributions\n \n +Paul Kinsella\n +https://github.com/banjaxbanjo\n +for adding the debugging code to dump SMS as PDU\n +\n diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/utils/ChildProcess.java b/app/src/main/java/com/SecUpwN/AIMSICD/utils/ChildProcess.java index d86906646c6198d854cf7e9bc5be38610c99b8c4..a0270b722c2d08c21a8c1d65a12ea1c4477f55b8 100644 --- a/app/src/main/java/com/SecUpwN/AIMSICD/utils/ChildProcess.java +++ b/app/src/main/java/com/SecUpwN/AIMSICD/utils/ChildProcess.java @@ -99,23 +99,23 @@ public class ChildProcess { private ChildWriter mChildStdinWriter; private ChildReader mChildStdoutReader; private ChildReader mChildStderrReader; - private StringBuffer mChildStdout; - private StringBuffer mChildStderr; + final private StringBuffer mChildStdout; + final private StringBuffer mChildStderr; private int mExitValue; private long mEndTime; public ChildProcess(String[] cmdarray, String childStdin) { mStartTime = nanoTime(); + mChildStdout = new StringBuffer(); + mChildStderr = new StringBuffer(); try { mChildProc = Runtime.getRuntime().exec(cmdarray); if (childStdin != null) { mChildStdinWriter = new ChildWriter(mChildProc.getOutputStream(), childStdin); mChildStdinWriter.start(); } - mChildStdout = new StringBuffer(); mChildStdoutReader = new ChildReader(mChildProc.getInputStream(), mChildStdout); mChildStdoutReader.start(); - mChildStderr = new StringBuffer(); mChildStderrReader = new ChildReader(mChildProc.getErrorStream(), mChildStderr); mChildStderrReader.start(); } catch (IOException e) {