baseStations = realm.where(BaseTransceiverStation.class).findAll();
if (baseStations.size() > 0) {
for (BaseTransceiverStation baseStation : baseStations) {
if (isCancelled()) {
@@ -413,16 +422,16 @@ protected GeoPoint doInBackground(Void... voids) {
if (Double.doubleToRawLongBits(dLat) != 0
|| Double.doubleToRawLongBits(dLng) != 0) {
- loc = new GeoPoint(dLat, dLng);
+ mLatestCellLoc = new GeoPoint(dLat, dLng);
CellTowerMarker ovm = new CellTowerMarker(MapViewerOsmDroid.this, mMap,
"Cell ID: " + cellID,
- "", loc,
+ "", mLatestCellLoc,
new MarkerData(
getApplicationContext(),
String.valueOf(cellID),
- String.valueOf(loc.getLatitude()),
- String.valueOf(loc.getLongitude()),
+ String.valueOf(mLatestCellLoc.getLatitude()),
+ String.valueOf(mLatestCellLoc.getLongitude()),
String.valueOf(lac),
String.valueOf(mcc),
String.valueOf(mnc),
@@ -473,15 +482,15 @@ public void run() {
return null;
}
try {
- loc = new GeoPoint(cell.getLat(), cell.getLon());
+ mLatestCellLoc = new GeoPoint(cell.getLat(), cell.getLon());
CellTowerMarker ovm = new CellTowerMarker(MapViewerOsmDroid.this, mMap,
getString(R.string.cell_id_label) + cell.getCellId(),
- "", loc,
+ "", mLatestCellLoc,
new MarkerData(
getApplicationContext(),
String.valueOf(cell.getCellId()),
- String.valueOf(loc.getLatitude()),
- String.valueOf(loc.getLongitude()),
+ String.valueOf(mLatestCellLoc.getLatitude()),
+ String.valueOf(mLatestCellLoc.getLongitude()),
String.valueOf(cell.getLocationAreaCode()),
String.valueOf(cell.getMobileCountryCode()),
String.valueOf(cell.getMobileNetworkCode()),
@@ -512,32 +521,38 @@ public void run() {
*/
@Override
protected void onPostExecute(GeoPoint defaultLoc) {
- if (loc != null && (Double.doubleToRawLongBits(loc.getLatitude()) != 0
- && Double.doubleToRawLongBits(loc.getLongitude()) != 0)) {
- mMap.getController().setZoom(16);
- mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
- } else {
- if (mBound) {
- // Try and find last known location and zoom there
- GeoLocation lastLoc = mAimsicdService.lastKnownLocation();
- if (lastLoc != null) {
- loc = new GeoPoint(lastLoc.getLatitudeInDegrees(),
- lastLoc.getLongitudeInDegrees());
-
- mMap.getController().setZoom(16);
- mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
- } else {
- //Use MCC to move camera to an approximate location near Countries Capital
- loc = defaultLoc;
-
- mMap.getController().setZoom(12);
- mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
- }
+ boolean movedMap = false;
+ if (mBound) {
+ // Try and find last known location and zoom there
+ GeoLocation lastLoc = mAimsicdService.lastKnownLocation();
+ if (lastLoc != null) {
+ GeoPoint loc = new GeoPoint(lastLoc.getLatitudeInDegrees(),
+ lastLoc.getLongitudeInDegrees());
+
+ mMap.getController().setZoom(16);
+ mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
+ movedMap = true;
+ }
+ }
+ if (!movedMap) {
+ if (mLatestCellLoc != null && (Double.doubleToRawLongBits(mLatestCellLoc.getLatitude()) != 0
+ && Double.doubleToRawLongBits(mLatestCellLoc.getLongitude()) != 0)) {
+ mMap.getController().setZoom(16);
+ mMap.getController().animateTo(new GeoPoint(mLatestCellLoc.getLatitude(), mLatestCellLoc.getLongitude()));
+ movedMap = true;
}
}
+ if (!movedMap) {
+ //Use MCC to move camera to an approximate location near Countries Capital
+ GeoPoint loc = defaultLoc;
+
+ mMap.getController().setZoom(12);
+ mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
+ movedMap = true;
+ }
if (mCellTowerGridMarkerClusterer != null) {
if (BuildConfig.DEBUG && mCellTowerGridMarkerClusterer.getItems() != null) {
- log.verbose("CellTowerMarkers.invalidate() markers.size():" + mCellTowerGridMarkerClusterer.getItems().size());
+ log.debug("CellTowerMarkers.invalidate() markers.size():{}", mCellTowerGridMarkerClusterer.getItems().size());
}
//Drawing markers of cell tower immediately as possible
mCellTowerGridMarkerClusterer.invalidate();
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/activities/OpenCellIdActivity.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/activities/OpenCellIdActivity.java
index a9b3ad293..d70e427e0 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/activities/OpenCellIdActivity.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/activities/OpenCellIdActivity.java
@@ -21,20 +21,19 @@
import java.io.IOException;
-import io.freefair.android.injection.annotation.Inject;
+import io.freefair.injection.annotation.Inject;
import io.freefair.android.injection.annotation.XmlLayout;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
/**
* Popup toast messages asking if user wants to download
* new API key to access OpenCellId services and data.
*/
+@Slf4j
@XmlLayout(R.layout.activity_open_cell_id)
public class OpenCellIdActivity extends BaseActivity {
private SharedPreferences prefs;
- @Inject
- private Logger log;
private ProgressDialog pd;
@Inject
@@ -155,38 +154,38 @@ public String requestNewOCIDKey() throws IOException {
String htmlResponse = response.body().string();
// For debugging HTTP server response and codes
- log.debug("Response Html=" + htmlResponse + " Response Code=" + String.valueOf(responseCode));
+ log.debug("Response Html={} Response Code={}", htmlResponse, String.valueOf(responseCode));
if (responseCode == 200) {
- log.debug("OCID Code 1: Cell Not found: " + htmlResponse);
+ log.debug("OCID Code 1: Cell Not found: {}", htmlResponse);
return htmlResponse;
} else if (responseCode == 401) {
- log.debug("OCID Code 2: Invalid API Key! :" + htmlResponse);
+ log.debug("OCID Code 2: Invalid API Key! :{}", htmlResponse);
return htmlResponse;
} else if (responseCode == 400) {
- log.debug("OCID Code 3: Invalid input data: " + htmlResponse);
+ log.debug("OCID Code 3: Invalid input data: {}", htmlResponse);
return "Bad Request"; // For making a toast!
} else if (responseCode == 403) {
- log.debug("OCID Code 4: Your API key must be white listed: " + htmlResponse);
+ log.debug("OCID Code 4: Your API key must be white listed: {}", htmlResponse);
return "Bad Request"; // For making a toast!
} else if (responseCode == 500) {
- log.debug("OCID Code 5: Remote internal server error: " + htmlResponse);
+ log.debug("OCID Code 5: Remote internal server error: {}", htmlResponse);
return "Bad Request"; // For making a toast!
} else if (responseCode == 503) {
- log.debug("OCID Code 6: Reached 24hr API key request limit: " + htmlResponse);
+ log.debug("OCID Code 6: Reached 24hr API key request limit: {}", htmlResponse);
return htmlResponse;
} else if (responseCode == 429) {
- log.debug("OCID Code 7: Exceeded daily request limit (1000) for your API key: " + htmlResponse);
+ log.debug("OCID Code 7: Exceeded daily request limit (1000) for your API key: {}", htmlResponse);
return htmlResponse;
} else {
- log.debug("OCID Returned Unknown Response: " + responseCode);
+ log.debug("OCID Returned Unknown Response: {}", responseCode);
return null;
}
}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/drawer/DrawerMenuActivityConfiguration.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/drawer/DrawerMenuActivityConfiguration.java
index 98b63ae87..301c60c5a 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/drawer/DrawerMenuActivityConfiguration.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/drawer/DrawerMenuActivityConfiguration.java
@@ -96,6 +96,7 @@ public DrawerMenuActivityConfiguration build() {
//Section Application
menu.add(DrawerMenuSection.create(DrawerMenu.ID.SECTION_APPLICATION, mContext.getString(R.string.application)));
menu.add(DrawerMenuItem.create(DrawerMenu.ID.APPLICATION.DOWNLOAD_LOCAL_BTS_DATA, mContext.getString(R.string.get_opencellid), R.drawable.stat_sys_download_anim0, false));
+ menu.add(DrawerMenuItem.create(DrawerMenu.ID.APPLICATION.IMPORT_CELL_TOWERS_DATA, mContext.getString(R.string.import_cell_towers), R.drawable.stat_sys_download_anim0, false));
menu.add(DrawerMenuItem.create(DrawerMenu.ID.APPLICATION.UPLOAD_LOCAL_BTS_DATA, mContext.getString(R.string.upload_bts), R.drawable.stat_sys_upload_anim0, false));
menu.add(DrawerMenuItem.create(DrawerMenu.ID.APPLICATION.QUIT, mContext.getString(R.string.quit), R.drawable.ic_action_remove, false));
mNavItems = menu;
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/drawer/DrawerMenuItem.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/drawer/DrawerMenuItem.java
index 825106c5e..ed073cdf8 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/drawer/DrawerMenuItem.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/drawer/DrawerMenuItem.java
@@ -90,6 +90,9 @@ public int getHelpStringId() {
case APPLICATION.DOWNLOAD_LOCAL_BTS_DATA:
return R.string.help_app_download_local_bts;
+ case APPLICATION.IMPORT_CELL_TOWERS_DATA:
+ return R.string.help_app_import_cell_towers;
+
case APPLICATION.ADD_GET_OCID_API_KEY:
return R.string.help_app_add_get_ocid_api_key;
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/AtCommandFragment.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/AtCommandFragment.java
index 436350e39..6cc768c7c 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/AtCommandFragment.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/AtCommandFragment.java
@@ -32,11 +32,10 @@
import java.util.ArrayList;
import java.util.List;
-import io.freefair.android.injection.annotation.Inject;
import io.freefair.android.injection.annotation.InjectView;
import io.freefair.android.injection.annotation.XmlLayout;
import io.freefair.android.injection.app.InjectionFragment;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
/**
@@ -61,12 +60,10 @@
* [ ] Need a "no" timeout to watch output for while, or let's make it 10 minutes.
* Perhaps with a manual stop?
*/
+@Slf4j
@XmlLayout(R.layout.activity_at_command)
public class AtCommandFragment extends InjectionFragment {
- @Inject
- private Logger log;
-
//Return value constants
private static final int SERIAL_INIT_OK = 100;
private static final int SERIAL_INIT_ERROR = 101;
@@ -207,7 +204,7 @@ private class btnClick implements View.OnClickListener {
public void onClick(View v) {
if (mAtCommand.getText() != null) {
String command = mAtCommand.getText().toString();
- log.info("AT Command Detected: " + command);
+ log.info("AT Command Detected: {}", command);
executeAT();
}
}
@@ -371,7 +368,7 @@ private void executeAT() {
// We need a device-type check here, perhaps: gsm.version.ril-impl.
Editable cmd = mAtCommand.getText();
if (cmd != null && cmd.length() != 0) {
- log.debug("ExecuteAT: attempting to send: " + cmd.toString());
+ log.debug("ExecuteAT: attempting to send: {}", cmd.toString());
if (getSerialDevice() != null) {
mCommandTerminal.send(cmd.toString(), new Handler(Looper.getMainLooper()) {
@@ -421,17 +418,17 @@ private void commandWait(Shell shell, Command cmd) throws Exception {
Exception e = new Exception();
if (!shell.isExecuting && !shell.isReading) {
- log.warn("Waiting for a command to be executed in a shell that is not executing and not reading! \n\n Command: " + cmd.getCommand());
+ log.warn("Waiting for a command to be executed in a shell that is not executing and not reading! \n\n Command: {}", cmd.getCommand());
e.setStackTrace(Thread.currentThread().getStackTrace());
log.error(e.getMessage(), e);
} else if (shell.isExecuting && !shell.isReading) {
- log.error("Waiting for a command to be executed in a shell that is executing but not reading! \n\n Command: " + cmd.getCommand());
+ log.error("Waiting for a command to be executed in a shell that is executing but not reading! \n\n Command: {}", cmd.getCommand());
e.setStackTrace(Thread.currentThread().getStackTrace());
log.error(e.getMessage(), e);
} else {
- log.error("Waiting for a command to be executed in a shell that is not reading! \n\n Command: " + cmd.getCommand());
+ log.error("Waiting for a command to be executed in a shell that is not reading! \n\n Command: {}", cmd.getCommand());
e.setStackTrace(Thread.currentThread().getStackTrace());
log.error(e.getMessage(), e);
}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/CellInfoFragment.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/CellInfoFragment.java
index 47bac58fb..b937406d7 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/CellInfoFragment.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/CellInfoFragment.java
@@ -28,7 +28,10 @@
import android.os.IBinder;
import android.support.v4.widget.SwipeRefreshLayout;
import android.text.TextUtils;
+import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TableRow;
import android.widget.TextView;
@@ -51,23 +54,22 @@
import io.freefair.android.injection.app.InjectionFragment;
/**
- * Description: This class updates the CellInfo fragment. This is also known as
- * the Neighboring Cells info, which is using the MultiRilClient to
- * show neighboring cells on the older Samsung Galaxy S2/3 series.
- * It's refresh rate is controlled in the settings by:
- *
- * arrays.xml:
- * pref_refresh_entries (the names)
- * pref_refresh_values (the values in seconds)
- *
- *
- * Dependencies: Seem that this is intimately connected to: CellTracker.java service...
- *
- *
- * TODO: 1) Use an IF check, in order not to run the MultiRilClient on non supported devices
- * as this will cause excessive logcat spam.
- * TODO: 2) Might wanna make the refresh rate lower/higher depending on support
- *
+ * Description: This class updates the CellInfo fragment. This is also known as
+ * the Neighboring Cells info, which is using the MultiRilClient to
+ * show neighboring cells on the older Samsung Galaxy S2/3 series.
+ * It's refresh rate is controlled in the settings by:
+ *
+ * arrays.xml:
+ * pref_refresh_entries (the names)
+ * pref_refresh_values (the values in seconds)
+ *
+ *
+ * Dependencies: Seem that this is intimately connected to: CellTracker.java service...
+ *
+ *
+ * TODO: 1) Use an IF check, in order not to run the MultiRilClient on non supported devices
+ * as this will cause excessive logcat spam.
+ * TODO: 2) Might wanna make the refresh rate lower/higher depending on support
*/
@XmlLayout(R.layout.fragment_cell_info)
public class CellInfoFragment extends InjectionFragment implements SwipeRefreshLayout.OnRefreshListener {
@@ -86,24 +88,11 @@ public class CellInfoFragment extends InjectionFragment implements SwipeRefreshL
@InjectView(R.id.list_view)
private ListView lv;
- @InjectView(R.id.neighboring_cells)
- private TextView mNeighboringCells;
-
- @InjectView(R.id.neighboring_number)
- private TextView mNeighboringTotal;
-
- @InjectView(R.id.neighboring_total)
- private TableRow mNeighboringTotalView;
-
- @InjectView(R.id.ciphering_indicator_title)
- private TextView mCipheringIndicatorLabel;
-
- @InjectView(R.id.ciphering_indicator)
- private TextView mCipheringIndicator;
-
@InjectView(R.id.swipeRefreshLayout)
private SwipeRefreshLayout swipeRefreshLayout;
+ private BaseInflaterAdapter mBaseInflaterAdapter;
+ private CellInfoAdapter mCellInfoAdapter;
private final Runnable timerRunnable = new Runnable() {
@@ -143,6 +132,10 @@ public void onResume() {
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
+ mBaseInflaterAdapter = new BaseInflaterAdapter<>(new CellCardInflater());
+ mCellInfoAdapter = new CellInfoAdapter(mBaseInflaterAdapter, new CellInfoOverviewData());
+ lv.setAdapter(mCellInfoAdapter);
+
mContext = getActivity().getBaseContext();
// Bind to LocalService
Intent intent = new Intent(mContext, AimsicdService.class);
@@ -198,8 +191,8 @@ public void setUserVisibleHint(boolean isVisibleToUser) {
private void updateUI() {
if (mBound && rilExecutor.mMultiRilCompatible) {
- new CellAsyncTask().execute(SAMSUNG_MULTIRIL_REQUEST);
- } else {
+ new CellAsyncTask().execute(SAMSUNG_MULTIRIL_REQUEST);
+ } else {
new CellAsyncTask().execute(STOCK_REQUEST);
}
}
@@ -210,9 +203,13 @@ void updateCipheringIndicator() {
@Override
public void run() {
if (list != null) {
- mCipheringIndicatorLabel.setVisibility(View.VISIBLE);
- mCipheringIndicator.setVisibility(View.VISIBLE);
- mCipheringIndicator.setText(TextUtils.join("\n", list));
+ CellInfoOverviewData overviewData = new CellInfoOverviewData();
+ overviewData.mCipheringIndicatorLabelVisibility = View.VISIBLE;
+ overviewData.mCipheringIndicatorVisibility = View.VISIBLE;
+ overviewData.mCipheringIndicator = TextUtils.join("\n", list);
+ if (mCellInfoAdapter != null) {
+ mCellInfoAdapter.updateCellInfoOverview(overviewData);
+ }
}
}
});
@@ -228,21 +225,20 @@ boolean getStockNeighboringCells() {
}
void updateStockNeighboringCells() {
- mNeighboringTotal.setText(String.valueOf(neighboringCells.size()));
+ CellInfoOverviewData overviewData = new CellInfoOverviewData();
+ overviewData.mNeighboringTotal = neighboringCells.size();
+ mBaseInflaterAdapter.clear(false);
if (neighboringCells.size() != 0) {
-
- BaseInflaterAdapter adapter
- = new BaseInflaterAdapter<>(new CellCardInflater());
int i = 1;
int total = neighboringCells.size();
for (Cell cell : neighboringCells) {
CardItemData data = new CardItemData(cell, i++ + " / " + total);
- adapter.addItem(data, false);
+ mBaseInflaterAdapter.addItem(data, false);
}
- lv.setAdapter(adapter);
- mNeighboringCells.setVisibility(View.GONE);
- mNeighboringTotalView.setVisibility(View.VISIBLE);
+ overviewData.mNeighboringCellsVisibility = View.GONE;
+ overviewData.mNeighboringTotalViewVisibility = View.VISIBLE;
}
+ mCellInfoAdapter.updateCellInfoOverview(overviewData);
}
void updateNeighboringCells() {
@@ -251,9 +247,13 @@ void updateNeighboringCells() {
@Override
public void run() {
if (list != null) {
- mNeighboringCells.setText(TextUtils.join("\n", list));
- mNeighboringCells.setVisibility(View.VISIBLE);
- mNeighboringTotalView.setVisibility(View.GONE);
+ CellInfoOverviewData overviewData = new CellInfoOverviewData();
+ overviewData.mNeighboringCells = TextUtils.join("\n", list);
+ overviewData.mNeighboringCellsVisibility = View.VISIBLE;
+ overviewData.mNeighboringTotalViewVisibility = View.GONE;
+ if (mCellInfoAdapter != null) {
+ mCellInfoAdapter.updateCellInfoOverview(overviewData);
+ }
}
}
});
@@ -291,4 +291,114 @@ protected void onPostExecute(Boolean result) {
}
}
}
+
+ class CellInfoAdapter extends BaseAdapter {
+ private final LayoutInflater mInflater;
+ private final BaseInflaterAdapter mCardItemDataAdapter;
+ private CellInfoOverviewData mOverview;
+
+ CellInfoAdapter(BaseInflaterAdapter cardItemDataAdapter,
+ CellInfoOverviewData overview) {
+ mCardItemDataAdapter = cardItemDataAdapter;
+ mOverview = overview;
+ mInflater = (LayoutInflater) getActivity().getSystemService(
+ Context.LAYOUT_INFLATER_SERVICE);
+ }
+
+ void updateCellInfoOverview(CellInfoOverviewData overview) {
+ mOverview = overview;
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getCount() {
+ return mCardItemDataAdapter.getCount() + 1;
+ }
+
+ @Override
+ public Object getItem(int pos) {
+ if (pos == 0) {
+ return null;
+ } else {
+ return mCardItemDataAdapter.getItem(pos + 1);
+ }
+ }
+
+ @Override
+ public long getItemId(int pos) {
+ return pos - 1;
+ }
+
+ @Override
+ public int getItemViewType(int pos) {
+ return pos == 0 ? 0 : 1;
+ }
+
+ @Override
+ public int getViewTypeCount() {
+ return 2;
+ }
+
+ @SuppressWarnings("WrongConstant")
+ @Override
+ public View getView(int pos, View convertView, ViewGroup parent) {
+ if (pos == 0) {
+ CellInfoOverviewHolder holder;
+ if (convertView == null) {
+ convertView = mInflater.inflate(R.layout.item_cell_info_overview, parent, false);
+ holder = new CellInfoOverviewHolder(convertView);
+ convertView.setTag(holder);
+ } else {
+ holder = (CellInfoOverviewHolder) convertView.getTag();
+ }
+ if (mOverview.mNeighboringCellsVisibility != -1) {
+ holder.mNeighboringCells.setVisibility(mOverview.mNeighboringCellsVisibility);
+ holder.mNeighboringCells.setText(mOverview.mNeighboringCells);
+ }
+ if (mOverview.mNeighboringTotalViewVisibility != -1) {
+ holder.mNeighboringTotalView.setVisibility(mOverview.mNeighboringTotalViewVisibility);
+ holder.mNeighboringTotal.setText(String.valueOf(mOverview.mNeighboringTotal));
+ }
+ if (mOverview.mCipheringIndicatorLabelVisibility != -1) {
+ holder.mCipheringIndicatorLabel.setVisibility(mOverview.mCipheringIndicatorLabelVisibility);
+ }
+ if (mOverview.mCipheringIndicatorVisibility != -1) {
+ holder.mCipheringIndicator.setVisibility(mOverview.mCipheringIndicatorVisibility);
+ holder.mCipheringIndicator.setText(mOverview.mCipheringIndicator);
+ }
+ return convertView;
+ } else {
+ return mCardItemDataAdapter.getView(pos - 1, convertView, parent);
+ }
+ }
+ }
+
+ class CellInfoOverviewData {
+ String mNeighboringCells;
+ int mNeighboringCellsVisibility = -1;
+
+ int mNeighboringTotal;
+ int mNeighboringTotalViewVisibility = -1;
+
+ int mCipheringIndicatorLabelVisibility = -1;
+
+ String mCipheringIndicator;
+ int mCipheringIndicatorVisibility = -1;
+ }
+
+ class CellInfoOverviewHolder {
+ TextView mNeighboringCells;
+ TextView mNeighboringTotal;
+ TableRow mNeighboringTotalView;
+ TextView mCipheringIndicatorLabel;
+ TextView mCipheringIndicator;
+
+ CellInfoOverviewHolder(View view) {
+ mNeighboringCells = (TextView) view.findViewById(R.id.neighboring_cells);
+ mNeighboringTotal = (TextView) view.findViewById(R.id.neighboring_number);
+ mNeighboringTotalView = (TableRow) view.findViewById(R.id.neighboring_total);
+ mCipheringIndicatorLabel = (TextView) view.findViewById(R.id.ciphering_indicator_title);
+ mCipheringIndicator = (TextView) view.findViewById(R.id.ciphering_indicator);
+ }
+ }
}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/DbViewerFragment.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/DbViewerFragment.java
index a86c525a0..4d1b590ee 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/DbViewerFragment.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/DbViewerFragment.java
@@ -9,17 +9,16 @@
import android.widget.Spinner;
import com.secupwn.aimsicd.R;
-import com.secupwn.aimsicd.data.model.BaseTransceiverStation;
-import com.secupwn.aimsicd.utils.RealmHelper;
import com.secupwn.aimsicd.adapters.DbViewerSpinnerAdapter;
-import com.secupwn.aimsicd.data.adapter.MeasureAdapter;
import com.secupwn.aimsicd.adapters.MeasuredCellStrengthAdapter;
import com.secupwn.aimsicd.data.adapter.BaseStationAdapter;
import com.secupwn.aimsicd.data.adapter.DefaultLocationAdapter;
import com.secupwn.aimsicd.data.adapter.DetectionStringAdapter;
import com.secupwn.aimsicd.data.adapter.EventAdapter;
import com.secupwn.aimsicd.data.adapter.ImportAdapter;
+import com.secupwn.aimsicd.data.adapter.MeasureAdapter;
import com.secupwn.aimsicd.data.adapter.SmsDataAdapter;
+import com.secupwn.aimsicd.data.model.BaseTransceiverStation;
import com.secupwn.aimsicd.data.model.DefaultLocation;
import com.secupwn.aimsicd.data.model.Event;
import com.secupwn.aimsicd.data.model.Import;
@@ -27,6 +26,7 @@
import com.secupwn.aimsicd.data.model.SmsData;
import com.secupwn.aimsicd.data.model.SmsDetectionString;
import com.secupwn.aimsicd.enums.StatesDbViewer;
+import com.secupwn.aimsicd.utils.RealmHelper;
import io.freefair.android.injection.annotation.InjectView;
import io.freefair.android.injection.annotation.XmlLayout;
@@ -81,31 +81,30 @@ public void onItemSelected(AdapterView> parentView, View selectedItemView, fin
}
mTableSelected = (StatesDbViewer) selectedItem;
- realm.refresh();
switch (position) {
case 0:
- setListAdapter(new BaseStationAdapter(getActivity(), realm.allObjects(BaseTransceiverStation.class), true));
+ setListAdapter(new BaseStationAdapter(realm.where(BaseTransceiverStation.class).findAll()));
break;
case 1:
- setListAdapter(new MeasureAdapter(getActivity(), realm.allObjects(Measure.class), true));
+ setListAdapter(new MeasureAdapter(realm.where(Measure.class).findAll()));
break;
case 2:
- setListAdapter(new ImportAdapter(getActivity(), realm.allObjects(Import.class), true));
+ setListAdapter(new ImportAdapter(realm.where(Import.class).findAll()));
break;
case 3:
- setListAdapter(new DefaultLocationAdapter(getActivity(), realm.allObjects(DefaultLocation.class), true));
+ setListAdapter(new DefaultLocationAdapter(realm.where(DefaultLocation.class).findAll()));
break;
case 4: //Silent SMS
- setListAdapter(new SmsDataAdapter(getActivity(), realm.allObjects(SmsData.class), true));
+ setListAdapter(new SmsDataAdapter(realm.where(SmsData.class).findAll()));
break;
case 5:
- setListAdapter(new MeasuredCellStrengthAdapter(getActivity(), realm.allObjects(Measure.class), true));
+ setListAdapter(new MeasuredCellStrengthAdapter(realm.where(Measure.class).findAll()));
break;
case 6:
- setListAdapter(new EventAdapter(getActivity(), realm.allObjects(Event.class), true));
+ setListAdapter(new EventAdapter(realm.where(Event.class).findAll()));
break;
case 7:
- setListAdapter(new DetectionStringAdapter(getActivity(), realm.allObjects(SmsDetectionString.class), true));
+ setListAdapter(new DetectionStringAdapter(realm.where(SmsDetectionString.class).findAll()));
break;
default:
throw new IllegalArgumentException("Unknown type of table");
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/DeviceFragment.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/DeviceFragment.java
index 27d545f0e..9002aec9f 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/DeviceFragment.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/DeviceFragment.java
@@ -19,14 +19,14 @@
import android.view.View;
import android.widget.TableRow;
+import com.kaichunlin.transition.animation.AnimationManager;
import com.secupwn.aimsicd.R;
import com.secupwn.aimsicd.service.AimsicdService;
import com.secupwn.aimsicd.service.CellTracker;
+import com.secupwn.aimsicd.ui.widget.HighlightTextView;
import com.secupwn.aimsicd.utils.Cell;
import com.secupwn.aimsicd.utils.Device;
import com.secupwn.aimsicd.utils.Helpers;
-import com.secupwn.aimsicd.ui.widget.HighlightTextView;
-import com.kaichunlin.transition.animation.AnimationManager;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
@@ -37,18 +37,16 @@
import java.io.IOException;
-import io.freefair.android.injection.annotation.Inject;
import io.freefair.android.injection.annotation.InjectView;
import io.freefair.android.injection.annotation.XmlLayout;
import io.freefair.android.injection.app.InjectionFragment;
-import io.freefair.android.util.logging.Logger;
+import io.freefair.injection.annotation.Inject;
+import lombok.extern.slf4j.Slf4j;
+@Slf4j
@XmlLayout(R.layout.fragment_device)
public class DeviceFragment extends InjectionFragment implements SwipeRefreshLayout.OnRefreshListener {
- @Inject
- private Logger log;
-
@Inject
OkHttpClient okHttpClient;
@@ -59,6 +57,70 @@ public class DeviceFragment extends InjectionFragment implements SwipeRefreshLay
private boolean mBound;
private Context mContext;
+ @InjectView(R.id.network_lac)
+ private HighlightTextView locationAreaCodeView;
+
+ @InjectView(R.id.gsm_cellid)
+ private TableRow gsmCellIdTableRow;
+
+ @InjectView(R.id.network_cellid)
+ private HighlightTextView cellIdView;
+
+ @InjectView(R.id.cdma_netid)
+ private TableRow cdmaNetworkIdRow;
+ @InjectView(R.id.cdma_sysid)
+ private TableRow cdmaSystemIdRow;
+ @InjectView(R.id.cdma_baseid)
+ private TableRow cdmaBaseIdRow;
+
+ @InjectView(R.id.network_netid)
+ private HighlightTextView networkIdView;
+ @InjectView(R.id.network_sysid)
+ private HighlightTextView systemIdView;
+ @InjectView(R.id.network_baseid)
+ private HighlightTextView baseIdView;
+
+ @InjectView(R.id.lte_timing_advance)
+ private TableRow lteTimingAdvanceRow;
+
+ @InjectView(R.id.network_lte_timing_advance)
+ private HighlightTextView lteTimingAdvanceView;
+
+ @InjectView(R.id.primary_scrambling_code)
+ private TableRow primaryScramblingCodeRow;
+
+ @InjectView(R.id.network_psc)
+ private HighlightTextView primaryScramblingCodeView;
+
+ @InjectView(R.id.sim_country)
+ private HighlightTextView simCountryView;
+ @InjectView(R.id.sim_operator_id)
+ private HighlightTextView simOperatorIdView;
+ @InjectView(R.id.sim_operator_name)
+ private HighlightTextView simOperatorNameView;
+ @InjectView(R.id.sim_imsi)
+ private HighlightTextView simImsiView;
+ @InjectView(R.id.sim_serial)
+ private HighlightTextView simSerialView;
+ @InjectView(R.id.device_type)
+ private HighlightTextView deviceTypeView;
+ @InjectView(R.id.device_imei)
+ private HighlightTextView deviceImeiView;
+ @InjectView(R.id.device_version)
+ private HighlightTextView deviceImeiVersionView;
+ @InjectView(R.id.network_name)
+ private HighlightTextView networkNameView;
+ @InjectView(R.id.network_code)
+ private HighlightTextView networkCodeView;
+ @InjectView(R.id.network_type)
+ private HighlightTextView networkTypeView;
+ @InjectView(R.id.data_activity)
+ private HighlightTextView dataActivityTypeView;
+ @InjectView(R.id.data_status)
+ private HighlightTextView dataStatusView;
+ @InjectView(R.id.network_roaming)
+ private HighlightTextView networkRoamingView;
+
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
@@ -117,8 +179,6 @@ public void onServiceDisconnected(ComponentName arg0) {
};
private void updateUI() {
- HighlightTextView content;
- TableRow tr;
if (mBound) {
final AnimationManager ani = new AnimationManager();
@@ -129,81 +189,57 @@ private void updateUI() {
case TelephonyManager.PHONE_TYPE_NONE: // Maybe bad!
case TelephonyManager.PHONE_TYPE_SIP: // Maybe bad!
case TelephonyManager.PHONE_TYPE_GSM: {
- content = (HighlightTextView) getView().findViewById(R.id.network_lac);
- content.updateText(String.valueOf(mAimsicdService.getCell().getLocationAreaCode()), ani);
- tr = (TableRow) getView().findViewById(R.id.gsm_cellid);
- tr.setVisibility(View.VISIBLE);
- content = (HighlightTextView) getView().findViewById(R.id.network_cellid);
- content.updateText(String.valueOf(mAimsicdService.getCell().getCellId()), ani);
+ locationAreaCodeView.updateText(String.valueOf(mAimsicdService.getCell().getLocationAreaCode()), ani);
+ gsmCellIdTableRow.setVisibility(View.VISIBLE);
+ cellIdView.updateText(String.valueOf(mAimsicdService.getCell().getCellId()), ani);
break;
}
case TelephonyManager.PHONE_TYPE_CDMA: {
- tr = (TableRow) getView().findViewById(R.id.cdma_netid);
- tr.setVisibility(View.VISIBLE);
- content = (HighlightTextView) getView().findViewById(R.id.network_netid);
- content.updateText(String.valueOf(mAimsicdService.getCell().getLocationAreaCode()), ani);
- tr = (TableRow) getView().findViewById(R.id.cdma_sysid);
- tr.setVisibility(View.VISIBLE);
- content = (HighlightTextView) getView().findViewById(R.id.network_sysid);
- content.updateText(String.valueOf(mAimsicdService.getCell().getSid()), ani);
- tr = (TableRow) getView().findViewById(R.id.cdma_baseid);
- tr.setVisibility(View.VISIBLE);
- content = (HighlightTextView) getView().findViewById(R.id.network_baseid);
- content.updateText(String.valueOf(mAimsicdService.getCell().getCellId()), ani);
+ cdmaNetworkIdRow.setVisibility(View.VISIBLE);
+ networkIdView.updateText(String.valueOf(mAimsicdService.getCell().getLocationAreaCode()), ani);
+
+ cdmaSystemIdRow.setVisibility(View.VISIBLE);
+ systemIdView.updateText(String.valueOf(mAimsicdService.getCell().getSid()), ani);
+
+ cdmaBaseIdRow.setVisibility(View.VISIBLE);
+ baseIdView.updateText(String.valueOf(mAimsicdService.getCell().getCellId()), ani);
break;
}
+ default:
+ log.error("unknown phone type: {}", mDevice.getPhoneId());
}
if (mAimsicdService.getCell().getTimingAdvance() != Integer.MAX_VALUE) {
- tr = (TableRow) getView().findViewById(R.id.lte_timing_advance);
- tr.setVisibility(View.VISIBLE);
- content = (HighlightTextView) getView().findViewById(R.id.network_lte_timing_advance);
- content.updateText(String.valueOf(mAimsicdService.getCell().getTimingAdvance()), ani);
+ lteTimingAdvanceRow.setVisibility(View.VISIBLE);
+ lteTimingAdvanceView.updateText(String.valueOf(mAimsicdService.getCell().getTimingAdvance()), ani);
} else {
- tr = (TableRow) getView().findViewById(R.id.lte_timing_advance);
- tr.setVisibility(View.GONE);
+ lteTimingAdvanceRow.setVisibility(View.GONE);
}
if (mAimsicdService.getCell().getPrimaryScramblingCode() != Integer.MAX_VALUE) {
- content = (HighlightTextView) getView().findViewById(R.id.network_psc);
- content.updateText(String.valueOf(mAimsicdService.getCell().getPrimaryScramblingCode()), ani);
- tr = (TableRow) getView().findViewById(R.id.primary_scrambling_code);
- tr.setVisibility(View.VISIBLE);
+ primaryScramblingCodeView.updateText(String.valueOf(mAimsicdService.getCell().getPrimaryScramblingCode()), ani);
+ primaryScramblingCodeRow.setVisibility(View.VISIBLE);
}
String notAvailable = getString(R.string.n_a);
- content = (HighlightTextView) getView().findViewById(R.id.sim_country);
- content.updateText(mDevice.getSimCountry().orElse(notAvailable), ani);
- content = (HighlightTextView) getView().findViewById(R.id.sim_operator_id);
- content.updateText(mDevice.getSimOperator().orElse(notAvailable), ani);
- content = (HighlightTextView) getView().findViewById(R.id.sim_operator_name);
- content.updateText(mDevice.getSimOperatorName().orElse(notAvailable), ani);
- content = (HighlightTextView) getView().findViewById(R.id.sim_imsi);
- content.updateText(mDevice.getSimSubs().orElse(notAvailable), ani);
- content = (HighlightTextView) getView().findViewById(R.id.sim_serial);
- content.updateText(mDevice.getSimSerial().orElse(notAvailable), ani);
-
- content = (HighlightTextView) getView().findViewById(R.id.device_type);
- content.updateText(mDevice.getPhoneType(), ani);
- content = (HighlightTextView) getView().findViewById(R.id.device_imei);
- content.updateText(mDevice.getIMEI(), ani);
- content = (HighlightTextView) getView().findViewById(R.id.device_version);
- content.updateText(mDevice.getIMEIv(), ani);
- content = (HighlightTextView) getView().findViewById(R.id.network_name);
- content.updateText(mDevice.getNetworkName(), ani);
- content = (HighlightTextView) getView().findViewById(R.id.network_code);
- content.updateText(mDevice.getMncMcc(), ani);
- content = (HighlightTextView) getView().findViewById(R.id.network_type);
- content.updateText(mDevice.getNetworkTypeName(), ani);
-
- content = (HighlightTextView) getView().findViewById(R.id.data_activity);
- content.updateText(mDevice.getDataActivityType(), ani);
- content = (HighlightTextView) getView().findViewById(R.id.data_status);
- content.updateText(mDevice.getDataState(), ani);
- content = (HighlightTextView) getView().findViewById(R.id.network_roaming);
- content.updateText(String.valueOf(mDevice.isRoaming()), ani);
+ simCountryView.updateText(mDevice.getSimCountry().orElse(notAvailable), ani);
+ simOperatorIdView.updateText(mDevice.getSimOperator().orElse(notAvailable), ani);
+ simOperatorNameView.updateText(mDevice.getSimOperatorName().orElse(notAvailable), ani);
+ simImsiView.updateText(mDevice.getSimSubs().orElse(notAvailable), ani);
+ simSerialView.updateText(mDevice.getSimSerial().orElse(notAvailable), ani);
+
+ deviceTypeView.updateText(mDevice.getPhoneType(), ani);
+ deviceImeiView.updateText(mDevice.getIMEI(), ani);
+ deviceImeiVersionView.updateText(mDevice.getIMEIv(), ani);
+ networkNameView.updateText(mDevice.getNetworkName(), ani);
+ networkCodeView.updateText(mDevice.getMncMcc(), ani);
+ networkTypeView.updateText(mDevice.getNetworkTypeName(), ani);
+
+ dataActivityTypeView.updateText(mDevice.getDataActivityType(), ani);
+ dataStatusView.updateText(mDevice.getDataState(), ani);
+ networkRoamingView.updateText(String.valueOf(mDevice.isRoaming()), ani);
ani.startAnimation(5000);
}
@@ -294,7 +330,7 @@ private Cell responseToCell(Response response) {
private void processFinish(Cell cell) {
if (cell != null) {
- log.info("processFinish - Cell =" + cell.toString());
+ log.info("processFinish - Cell ={}", cell.toString());
if (cell.isValid()) {
mAimsicdService.setCell(cell);
Helpers.msgShort(mContext, getActivity().getString(R.string.refreshed_cell_id_info)); // TODO re-translating other languages
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/MapFragment.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/MapFragment.java
index bc588c3ec..aaab41fc1 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/MapFragment.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/fragments/MapFragment.java
@@ -60,15 +60,14 @@
import java.util.LinkedList;
import java.util.List;
-import io.freefair.android.injection.annotation.Inject;
import io.freefair.android.injection.annotation.InjectView;
import io.freefair.android.injection.annotation.XmlLayout;
import io.freefair.android.injection.app.InjectionAppCompatActivity;
import io.freefair.android.injection.app.InjectionFragment;
-import io.freefair.android.util.logging.Logger;
import io.realm.Realm;
import io.realm.RealmResults;
import lombok.Cleanup;
+import lombok.extern.slf4j.Slf4j;
/**
* Description: TODO: add details
@@ -92,11 +91,10 @@
* https://github.com/osmdroid/osmdroid/issues/81
* https://code.google.com/p/osmbonuspack/issues/detail?id=102
*/
+@Slf4j
@XmlLayout(R.layout.activity_map_viewer)
public final class MapFragment extends InjectionFragment implements OnSharedPreferenceChangeListener {
- @Inject
- private Logger log;
public static final String updateOpenCellIDMarkers = "update_open_cell_markers";
@InjectView(R.id.mapview)
@@ -106,7 +104,7 @@ public final class MapFragment extends InjectionFragment implements OnSharedPref
private AimsicdService mAimsicdService;
private boolean mBound;
- private GeoPoint loc = null;
+ private GeoPoint mLatestCellLoc = null;
private MyLocationNewOverlay mMyLocationOverlay;
private CompassOverlay mCompassOverlay;
@@ -178,13 +176,14 @@ public void onResume() {
if (mMyLocationOverlay != null) {
mMyLocationOverlay.enableMyLocation();
+ mMyLocationOverlay.enableFollowLocation();
}
}
@Override
public void onDestroyView() {
- super.onDestroy();
+ super.onDestroyView();
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mMessageReceiver);
if (mCompassOverlay != null) {
@@ -193,9 +192,12 @@ public void onDestroyView() {
if (mMyLocationOverlay != null) {
mMyLocationOverlay.disableMyLocation();
+ mMyLocationOverlay.disableFollowLocation();
}
- prefs.unregisterOnSharedPreferenceChangeListener(this);
+ if (prefs != null) {
+ prefs.unregisterOnSharedPreferenceChangeListener(this);
+ }
// Unbind from the service
if (mBound) {
getActivity().unbindService(mConnection);
@@ -213,7 +215,7 @@ public void onDestroyView() {
public void onReceive(Context context, Intent intent) {
loadEntries();
if (BuildConfig.DEBUG && mCellTowerGridMarkerClusterer != null && mCellTowerGridMarkerClusterer.getItems() != null) {
- log.verbose("mMessageReceiver CellTowerMarkers.invalidate() markers.size():" + mCellTowerGridMarkerClusterer.getItems().size());
+ log.debug("mMessageReceiver CellTowerMarkers.invalidate() markers.size():{}", mCellTowerGridMarkerClusterer.getItems().size());
}
}
@@ -287,28 +289,37 @@ private void setupMapType(int mapType) {
*/
private void setUpMapIfNeeded() {
+ mMap.getOverlayManager().clear();
// Check if we were successful in obtaining the map.
mMap.setBuiltInZoomControls(true);
mMap.setMultiTouchControls(true);
mMap.setMinZoomLevel(3);
mMap.setMaxZoomLevel(19); // Latest OSM can go to 21!
mMap.getTileProvider().createTileCache();
- mCompassOverlay = new CompassOverlay(getActivity(), new InternalCompassOrientationProvider(getActivity()), mMap);
+
+ if (mCompassOverlay == null) {
+ mCompassOverlay = new CompassOverlay(getActivity(), new InternalCompassOrientationProvider(getActivity()), mMap);
+ }
ScaleBarOverlay mScaleBarOverlay = new ScaleBarOverlay(getActivity());
mScaleBarOverlay.setScaleBarOffset(getResources().getDisplayMetrics().widthPixels / 2, 10);
mScaleBarOverlay.setCentred(true);
// Sets cluster pin color
- mCellTowerGridMarkerClusterer = new CellTowerGridMarkerClusterer(getActivity());
- BitmapDrawable mapPinDrawable = (BitmapDrawable) getResources().getDrawable(R.drawable.ic_map_pin_orange);
- mCellTowerGridMarkerClusterer.setIcon(mapPinDrawable == null ? null : mapPinDrawable.getBitmap());
+ if (mCellTowerGridMarkerClusterer == null) {
+ mCellTowerGridMarkerClusterer = new CellTowerGridMarkerClusterer(getActivity());
+ BitmapDrawable mapPinDrawable = (BitmapDrawable) getResources().getDrawable(R.drawable.ic_map_pin_orange);
+ mCellTowerGridMarkerClusterer.setIcon(mapPinDrawable == null ? null : mapPinDrawable.getBitmap());
+ }
- GpsMyLocationProvider gpsMyLocationProvider = new GpsMyLocationProvider(getActivity().getBaseContext());
- gpsMyLocationProvider.setLocationUpdateMinDistance(100); // [m] // Set the minimum distance for location updates
- gpsMyLocationProvider.setLocationUpdateMinTime(10000); // [ms] // Set the minimum time interval for location updates
- mMyLocationOverlay = new MyLocationNewOverlay(getActivity().getBaseContext(), gpsMyLocationProvider, mMap);
- mMyLocationOverlay.setDrawAccuracyEnabled(true);
+ if (mMyLocationOverlay == null) {
+ GpsMyLocationProvider gpsMyLocationProvider = new GpsMyLocationProvider(getActivity().getBaseContext());
+ gpsMyLocationProvider.setLocationUpdateMinDistance(100); // [m] // Set the minimum distance for location updates
+ gpsMyLocationProvider.setLocationUpdateMinTime(10000); // [ms] // Set the minimum time interval for location updates
+
+ mMyLocationOverlay = new MyLocationNewOverlay(getActivity().getBaseContext(), gpsMyLocationProvider, mMap);
+ mMyLocationOverlay.setDrawAccuracyEnabled(true);
+ }
mMap.getOverlays().add(mCellTowerGridMarkerClusterer);
mMap.getOverlays().add(mMyLocationOverlay);
@@ -347,11 +358,11 @@ public boolean onOptionsItemSelected(MenuItem item) {
}
}
- if (loc != null) {
+ if (mLatestCellLoc != null) {
Helpers.msgLong(getActivity(), getString(R.string.contacting_opencellid_for_data));
Cell cell = new Cell();
- cell.setLat(loc.getLatitude());
- cell.setLon(loc.getLongitude());
+ cell.setLat(mLatestCellLoc.getLatitude());
+ cell.setLon(mLatestCellLoc.getLongitude());
setRefreshActionButtonState(true);
TinyDB.getInstance().putBoolean(TinyDbKeys.FINISHED_LOAD_IN_MAP, false);
Helpers.getOpenCellData((InjectionAppCompatActivity) getActivity(), cell, RequestTask.DBE_DOWNLOAD_REQUEST_FROM_MAP, mAimsicdService);
@@ -422,16 +433,16 @@ protected GeoPoint doInBackground(Void... voids) {
if (Double.doubleToRawLongBits(dLat) != 0
|| Double.doubleToRawLongBits(dLng) != 0) {
- loc = new GeoPoint(dLat, dLng);
+ mLatestCellLoc = new GeoPoint(dLat, dLng);
CellTowerMarker ovm = new CellTowerMarker(getActivity(), mMap,
"Cell ID: " + cellID,
- "", loc,
+ "", mLatestCellLoc,
new MarkerData(
getContext(),
String.valueOf(cellID),
- String.valueOf(loc.getLatitude()),
- String.valueOf(loc.getLongitude()),
+ String.valueOf(mLatestCellLoc.getLatitude()),
+ String.valueOf(mLatestCellLoc.getLongitude()),
String.valueOf(lac),
String.valueOf(mcc),
String.valueOf(mnc),
@@ -481,15 +492,15 @@ public void run() {
return null;
}
try {
- loc = new GeoPoint(cell.getLat(), cell.getLon());
+ mLatestCellLoc = new GeoPoint(cell.getLat(), cell.getLon());
CellTowerMarker ovm = new CellTowerMarker(getActivity(), mMap,
getString(R.string.cell_id_label) + cell.getCellId(),
- "", loc,
+ "", mLatestCellLoc,
new MarkerData(
getContext(),
String.valueOf(cell.getCellId()),
- String.valueOf(loc.getLatitude()),
- String.valueOf(loc.getLongitude()),
+ String.valueOf(mLatestCellLoc.getLatitude()),
+ String.valueOf(mLatestCellLoc.getLongitude()),
String.valueOf(cell.getLocationAreaCode()),
String.valueOf(cell.getMobileCountryCode()),
String.valueOf(cell.getMobileNetworkCode()),
@@ -520,32 +531,38 @@ public void run() {
*/
@Override
protected void onPostExecute(GeoPoint defaultLoc) {
- if (loc != null && (Double.doubleToRawLongBits(loc.getLatitude()) != 0
- && Double.doubleToRawLongBits(loc.getLongitude()) != 0)) {
- mMap.getController().setZoom(16);
- mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
- } else {
- if (mBound) {
- // Try and find last known location and zoom there
- GeoLocation lastLoc = mAimsicdService.lastKnownLocation();
- if (lastLoc != null) {
- loc = new GeoPoint(lastLoc.getLatitudeInDegrees(),
- lastLoc.getLongitudeInDegrees());
-
- mMap.getController().setZoom(16);
- mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
- } else {
- //Use MCC to move camera to an approximate location near Countries Capital
- loc = defaultLoc;
-
- mMap.getController().setZoom(12);
- mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
- }
+ boolean movedMap = false;
+ if (mBound) {
+ // Try and find last known location and zoom there
+ GeoLocation lastLoc = mAimsicdService.lastKnownLocation();
+ if (lastLoc != null) {
+ GeoPoint loc = new GeoPoint(lastLoc.getLatitudeInDegrees(),
+ lastLoc.getLongitudeInDegrees());
+
+ mMap.getController().setZoom(16);
+ mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
+ movedMap = true;
+ }
+ }
+ if (!movedMap) {
+ if (mLatestCellLoc != null && (Double.doubleToRawLongBits(mLatestCellLoc.getLatitude()) != 0
+ && Double.doubleToRawLongBits(mLatestCellLoc.getLongitude()) != 0)) {
+ mMap.getController().setZoom(16);
+ mMap.getController().animateTo(new GeoPoint(mLatestCellLoc.getLatitude(), mLatestCellLoc.getLongitude()));
+ movedMap = true;
}
}
+ if (!movedMap) {
+ //Use MCC to move camera to an approximate location near Countries Capital
+ GeoPoint loc = defaultLoc;
+
+ mMap.getController().setZoom(12);
+ mMap.getController().animateTo(new GeoPoint(loc.getLatitude(), loc.getLongitude()));
+ movedMap = true;
+ }
if (mCellTowerGridMarkerClusterer != null) {
if (BuildConfig.DEBUG && mCellTowerGridMarkerClusterer.getItems() != null) {
- log.verbose("CellTowerMarkers.invalidate() markers.size():" + mCellTowerGridMarkerClusterer.getItems().size());
+ log.debug("CellTowerMarkers.invalidate() markers.size():{}", mCellTowerGridMarkerClusterer.getItems().size());
}
//Drawing markers of cell tower immediately as possible
mCellTowerGridMarkerClusterer.invalidate();
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/widget/HighlightTextView.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/widget/HighlightTextView.java
index f754b7a04..1e15e91fc 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/widget/HighlightTextView.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/ui/widget/HighlightTextView.java
@@ -1,20 +1,20 @@
package com.secupwn.aimsicd.ui.widget;
import android.content.Context;
+import android.support.v7.widget.AppCompatTextView;
import android.util.AttributeSet;
import android.view.View;
-import android.widget.TextView;
-import com.secupwn.aimsicd.R;
import com.kaichunlin.transition.ViewTransitionBuilder;
import com.kaichunlin.transition.animation.AnimationManager;
import com.kaichunlin.transition.internal.TransitionController;
import com.nineoldandroids.animation.ArgbEvaluator;
+import com.secupwn.aimsicd.R;
/**
* Highlight the updated text
*/
-public class HighlightTextView extends TextView {
+public class HighlightTextView extends AppCompatTextView {
private static final int DURATION = 3000;
public HighlightTextView(Context context) {
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/CMDProcessor.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/CMDProcessor.java
index 0c7b81727..b2a70e63f 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/CMDProcessor.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/CMDProcessor.java
@@ -21,13 +21,11 @@
package com.secupwn.aimsicd.utils;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
+@Slf4j
public final class CMDProcessor {
- private static final Logger log = AndroidLogger.forClass(CMDProcessor.class);
-
public CMDProcessor() {
}
@@ -79,7 +77,7 @@ public static boolean canSU() {
out.append(r.getStdOut());
out.append(" ; ");
out.append(r.getStdErr());
- log.debug("canSU() su[" + r.getExitValue() + "]: " + out);
+ log.debug("canSU() su[{}]: {}", r.getExitValue(), out);
return r.success();
}
}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/ChildProcess.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/ChildProcess.java
index 263ef81c6..2cf5dd4eb 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/ChildProcess.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/ChildProcess.java
@@ -25,14 +25,13 @@
import java.io.InputStream;
import java.io.OutputStream;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
import static java.lang.System.nanoTime;
+@Slf4j
public class ChildProcess {
- private final Logger log = AndroidLogger.forClass(ChildProcess.class);
private static final int PIPE_SIZE = 1024;
private class ChildReader extends Thread {
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/CommandResult.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/CommandResult.java
index 419d8c316..9b106a528 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/CommandResult.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/CommandResult.java
@@ -28,14 +28,13 @@
import java.io.FileWriter;
import java.io.IOException;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
@SuppressWarnings("AccessOfSystemProperties")
+@Slf4j
public class CommandResult implements Parcelable {
- private final Logger log = AndroidLogger.forClass(CommandResult.class);
private long startTime;
@Getter
private int exitValue;
@@ -53,7 +52,7 @@ public CommandResult(long startTime, int exitValue,
this.stdErr = stderr;
this.endTime = endTime;
- log.debug("Time to execute: " + (this.endTime - this.startTime) + " ns (nanoseconds)");
+ log.debug("Time to execute: {} ns (nanoseconds)", this.endTime - this.startTime);
// this is set last so log from here
checkForErrors();
}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Device.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Device.java
index ae9c62731..a8cc70315 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Device.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Device.java
@@ -13,18 +13,16 @@
import android.telephony.cdma.CdmaCellLocation;
import android.telephony.gsm.GsmCellLocation;
-import io.freefair.android.util.function.Optional;
-import io.freefair.android.util.function.Supplier;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import io.freefair.util.function.Optional;
+import io.freefair.util.function.Supplier;
import lombok.Getter;
import lombok.Setter;
+import lombok.extern.slf4j.Slf4j;
@Getter
+@Slf4j
public class Device {
- private static final Logger log = AndroidLogger.forClass(Device.class);
-
public Cell cell;
/**
* integer representation of Phone Type
@@ -141,7 +139,7 @@ public void refreshDeviceInfo(TelephonyManager tm, Context context) {
cell.setMobileNetworkCode(Integer.valueOf(homeOperator.substring(3, 5)));
}
} catch (Exception e) {
- log.info("HomeOperator parse exception - " + e.getMessage(), e);
+ log.info("HomeOperator parse exception - {}", e.getMessage(), e);
}
}
}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/DeviceApi17.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/DeviceApi17.java
index daafc1b5b..c506ddc28 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/DeviceApi17.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/DeviceApi17.java
@@ -25,14 +25,12 @@
import java.util.List;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
+@Slf4j
public class DeviceApi17 {
- private static final Logger log = AndroidLogger.forClass(DeviceApi17.class);
-
public static void loadCellInfo(TelephonyManager tm, Device pDevice) {
int lCurrentApiVersion = Build.VERSION.SDK_INT;
try {
@@ -101,9 +99,7 @@ public static void loadCellInfo(TelephonyManager tm, Device pDevice) {
pDevice.cell.setPrimaryScramblingCode(identityWcdma.getPsc());
} else {
- log.info("Unknown type of cell signal! "
- + "ClassName: " + info.getClass().getSimpleName()
- + " ToString: " + info.toString());
+ log.info("Unknown type of cell signal! ClassName: {} ToString: {}", info.getClass().getSimpleName(), info.toString());
}
if (pDevice.cell.isValid()) {
break;
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/DeviceApi18.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/DeviceApi18.java
index bb726c13c..9f855754c 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/DeviceApi18.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/DeviceApi18.java
@@ -25,8 +25,7 @@
import java.util.List;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
/**
* This class is taking in consideration newly available network info items
@@ -37,10 +36,9 @@
*
*/
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
+@Slf4j
public class DeviceApi18 {
- public static final Logger log = AndroidLogger.forClass(DeviceApi18.class);
-
public static void loadCellInfo(TelephonyManager tm, Device pDevice) {
int lCurrentApiVersion = Build.VERSION.SDK_INT;
try {
@@ -100,9 +98,7 @@ public static void loadCellInfo(TelephonyManager tm, Device pDevice) {
pDevice.cell.setPrimaryScramblingCode(identityWcdma.getPsc());
} else {
- log.info("Unknown type of cell signal!"
- + "\n ClassName: " + info.getClass().getSimpleName()
- + "\n ToString: " + info.toString());
+ log.info("Unknown type of cell signal!\n ClassName: {}\n ToString: {}", info.getClass().getSimpleName(), info.toString());
}
if (pDevice.cell.isValid()) {
break;
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/FixedGZIPInputStream.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/FixedGZIPInputStream.java
new file mode 100644
index 000000000..97cf502d2
--- /dev/null
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/FixedGZIPInputStream.java
@@ -0,0 +1,55 @@
+package com.secupwn.aimsicd.utils;
+
+import android.support.annotation.NonNull;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.util.zip.GZIPInputStream;
+
+/**
+ * GZIPInputStream that works correctly with files more than 2 GiB
+ *
+ * Rationale
+ *
Android Java implementation of {@link GZIPInputStream} contains verifyCrc method that
+ * incorrectly checks for gzip size on EOF. It happens when the uncompressed
+ * file is greater than 2 GiB and {@link java.util.zip.Inflater#getTotalOut()} returns
+ * a negative number since the return type is int and {@code Integer.MAX_VALUE} is about 2GiB.
+ * So it throws {@code IOException("Size mismatch")}
+ *
+ * Oracle already fixed this bug in Java 6 (see https://bugs.openjdk.java.net/browse/JDK-5092263)
+ * but Android implementation is still affected.
+ *
+ * Workaround
+ *
If read throws a specific exception in {@code InputStream#read} we are sure that it is an EOF
+ * and we can consume this exception and just return EOF. There could be a problem with a possible
+ * loss of last buffer but it is better than a loss of full stream.
+ */
+public class FixedGZIPInputStream extends FilterInputStream {
+ public FixedGZIPInputStream(GZIPInputStream in) {
+ super(in);
+ }
+
+ @Override
+ public int read(@NonNull byte[] buffer) throws IOException {
+ try {
+ return super.read(buffer);
+ } catch (IOException e) {
+ if (e.getMessage().equals("Size mismatch")) {
+ return -1;
+ }
+ throw e;
+ }
+ }
+
+ @Override
+ public int read(@NonNull byte[] buffer, int byteOffset, int byteCount) throws IOException {
+ try {
+ return super.read(buffer, byteOffset, byteCount);
+ } catch (IOException e) {
+ if (e.getMessage().equals("Size mismatch")) {
+ return -1;
+ }
+ throw e;
+ }
+ }
+}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Helpers.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Helpers.java
index 7316348d8..8cd0cb3e7 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Helpers.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Helpers.java
@@ -24,14 +24,15 @@
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
+import android.net.Uri;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import com.secupwn.aimsicd.R;
-import com.secupwn.aimsicd.ui.fragments.MapFragment;
import com.secupwn.aimsicd.constants.DrawerMenu;
import com.secupwn.aimsicd.service.AimsicdService;
import com.secupwn.aimsicd.service.CellTracker;
+import com.secupwn.aimsicd.ui.fragments.MapFragment;
import java.io.BufferedReader;
import java.io.InputStream;
@@ -41,8 +42,7 @@
import java.util.List;
import io.freefair.android.injection.app.InjectionAppCompatActivity;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
/**
*
@@ -59,9 +59,9 @@
* - Check for SU and BusyBox
*
*/
- public class Helpers {
+@Slf4j
+public class Helpers {
- private static final Logger log = AndroidLogger.forClass(Helpers.class);
private static final int CHARS_PER_LINE = 34;
/**
@@ -211,18 +211,18 @@ public static void getOpenCellData(InjectionAppCompatActivity injectionActivity,
+ String.valueOf(boundingCoords[1].getLatitudeInDegrees()) + ","
+ String.valueOf(boundingCoords[1].getLongitudeInDegrees());
- log.info("OCID BBOX is set to: " + boundParameter + " with radius " + radius + " Km.");
+ log.info("OCID BBOX is set to: {} with radius {} Km.", boundParameter, radius);
StringBuilder sb = new StringBuilder();
sb.append("http://www.opencellid.org/cell/getInArea?key=")
.append(CellTracker.OCID_API_KEY).append("&BBOX=")
.append(boundParameter);
- log.info("OCID MCC is set to: " + cell.getMobileCountryCode());
+ log.info("OCID MCC is set to: {}", cell.getMobileCountryCode());
if (cell.getMobileCountryCode() != Integer.MAX_VALUE) {
sb.append("&mcc=").append(cell.getMobileCountryCode());
}
- log.info("OCID MNC is set to: " + cell.getMobileNetworkCode());
+ log.info("OCID MNC is set to: {}", cell.getMobileNetworkCode());
if (cell.getMobileNetworkCode() != Integer.MAX_VALUE) {
sb.append("&mnc=").append(cell.getMobileNetworkCode());
}
@@ -231,7 +231,7 @@ public static void getOpenCellData(InjectionAppCompatActivity injectionActivity,
new RequestTask(injectionActivity, type, new RequestTask.AsyncTaskCompleteListener() {
@Override
public void onAsyncTaskSucceeded() {
- log.verbose("RequestTask's OCID download was successful. Callback rechecking connected cell against database");
+ log.debug("RequestTask's OCID download was successful. Callback rechecking connected cell against database");
service.getCellTracker().compareLacAndOpenDb();
}
@@ -259,6 +259,57 @@ public void onAsyncTaskFailed(String result) { }
}
}
+ /**
+ * Description: Imports cell data from the specified file
+ *
+ * Used:
+ * @param celltowersPath path to the cell_towers.csv / cell_towers.csv.gz
+ * @param cell Current Cell Information
+ * @param importFile
+ *
+ */
+ public static void importCellTowersData(InjectionAppCompatActivity injectionActivity, Cell cell,
+ Uri importFile,
+ final AimsicdService service) {
+ if (Helpers.isNetAvailable(injectionActivity)) {
+ int radius = 2; // Use a 2 Km radius with center at GPS location.
+
+ if (Double.doubleToRawLongBits(cell.getLat()) != 0 &&
+ Double.doubleToRawLongBits(cell.getLon()) != 0) {
+ GeoLocation currentLoc = GeoLocation.fromDegrees(cell.getLat(), cell.getLon());
+
+ log.info("OCID location: {} with radius {} Km.", currentLoc.toString(), radius);
+ log.info("OCID MCC is set to: {}", cell.getMobileCountryCode());
+ log.info("OCID MNC is set to: {}", cell.getMobileNetworkCode());
+
+ new ImportTask(injectionActivity, importFile,
+ cell.getMobileCountryCode(), cell.getMobileNetworkCode(), currentLoc, radius,
+ new ImportTask.AsyncTaskCompleteListener() {
+ @Override
+ public void onAsyncTaskSucceeded() {
+ log.debug("ImportTask's OCID import was successful. Callback rechecking connected cell against database");
+ service.getCellTracker().compareLacAndOpenDb();
+ }
+
+ @Override
+ public void onAsyncTaskFailed(String result) {
+ }
+ }).execute();
+ }
+
+ } else {
+ Fragment myFragment = injectionActivity.getSupportFragmentManager().findFragmentByTag(String.valueOf(DrawerMenu.ID.MAIN.ALL_CURRENT_CELL_DETAILS));
+ if (myFragment instanceof MapFragment) {
+ ((MapFragment) myFragment).setRefreshActionButtonState(false);
+ }
+
+ final AlertDialog.Builder builder = new AlertDialog.Builder(injectionActivity);
+ builder.setTitle(R.string.no_network_connection_title)
+ .setMessage(R.string.no_network_connection_message);
+ builder.create().show();
+ }
+ }
+
/**
* Return a String List representing response from invokeOemRilRequestRaw
*
@@ -268,7 +319,7 @@ public static List unpackByteListOfStrings(byte aob[]) {
if (aob.length == 0) {
// WARNING: This one is very chatty!
- log.verbose("invokeOemRilRequestRaw: byte-list response Length = 0");
+ log.debug("invokeOemRilRequestRaw: byte-list response Length = 0");
return Collections.emptyList();
}
int lines = aob.length / CHARS_PER_LINE;
@@ -304,7 +355,7 @@ public static String getSystemProp(Context context, String prop, String def) {
try {
result = SystemPropertiesReflection.get(context, prop);
} catch (IllegalArgumentException iae) {
- log.error("Failed to get system property: " + prop, iae);
+ log.error("Failed to get system property: {}", prop, iae);
}
return result == null ? def : result;
}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Icon.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Icon.java
index fe4159ac5..e15ac43d5 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Icon.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/Icon.java
@@ -12,7 +12,7 @@
import com.secupwn.aimsicd.R;
import com.secupwn.aimsicd.enums.Status;
-import io.freefair.android.util.function.Function;
+import io.freefair.util.function.Function;
/**
* Class that holds and returns the correct icon based on requested icon format and
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/ImportTask.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/ImportTask.java
new file mode 100644
index 000000000..a8227099f
--- /dev/null
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/ImportTask.java
@@ -0,0 +1,289 @@
+/* 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.net.Uri;
+import android.support.annotation.NonNull;
+
+import com.secupwn.aimsicd.R;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.zip.GZIPInputStream;
+
+import au.com.bytecode.opencsv.CSVReader;
+import io.freefair.android.injection.app.InjectionAppCompatActivity;
+import io.realm.Realm;
+import lombok.Cleanup;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Description:
+ *
+ * This class is the request handler for Importing data from OpenCellID's cell_towers.csv or
+ * gzipped cell_towers.csv.gz.
+ * Format of the file slightly differs from the OpenCellID's so it is converted on the
+ * fly and filtered by MCC, MNC, location.
+ *
+ */
+@Slf4j
+public class ImportTask extends BaseAsyncTask {
+
+ private RealmHelper mDbAdapter;
+ private Context mAppContext;
+ private final Uri importFile;
+ private final int mobileCountryCode;
+ private final int mobileNetworkCode;
+ private final GeoLocation currentLocation;
+ private final int locationRadius;
+
+ private AsyncTaskCompleteListener mListener;
+
+ public static final double EARTH_RADIUS = 6371.01;
+
+ /**
+ * @param context App context
+ * @param importFile URI pointing to the file cell_towers.csv or cell_towers.csv.gz
+ * @param mobileCountryCode MCC filter
+ * @param mobileNetworkCode MNC filter
+ * @param currentLocation GPS location of cell
+ * @param locationRadius filtering radius
+ * @param listener Allows the caller of RequestTask to implement success/fail callbacks
+ */
+ public ImportTask(InjectionAppCompatActivity context,
+ Uri importFile,
+ int mobileCountryCode, int mobileNetworkCode,
+ GeoLocation currentLocation, int locationRadius,
+ AsyncTaskCompleteListener listener) {
+ super(context);
+ this.importFile = importFile;
+ this.mobileCountryCode = mobileCountryCode;
+ this.mobileNetworkCode = mobileNetworkCode;
+ this.currentLocation = currentLocation;
+ this.locationRadius = locationRadius;
+ this.mAppContext = context.getApplicationContext();
+ this.mDbAdapter = new RealmHelper(mAppContext);
+ this.mListener = listener;
+ }
+
+ /**
+ * Imports data from cell_towers.csv
+ *
+ *
+ * opencellid.csv layout:
+ * lat,lon,mcc,mnc,lac,cellid,averageSignalStrength,range,samples,changeable,radio,rnc,cid,psc,
+ * tac,pci,sid,nid,bid
+ *
+ * example:
+ * 52.201454,21.065345,260,2,58140,42042781,-59,1234,3,1,UMTS,641,34205,,,,
+ *
+ * cell_towers.csv layout:
+ * radio,mcc,net,area,cell,unit,lon,lat,range,samples,changeable,created,updated,averageSignal
+ * 0 radio
+ * 1 mcc
+ * 2 net (mnc)
+ * 3 area (lac)
+ * 4 cell (long)
+ * 5 unit
+ * 6 lon
+ * 7 lat
+ * 8 range
+ * 9 samples
+ * 10 changeable
+ * 11 created
+ * 12 updated
+ * 13 averageSignal
+ *
+ * example:
+ * UMTS,260,2,58140,42042781,,21.03006,52.207811,21,2,1,1379428153,1458591497,-92
+ *
+ */
+ @Override
+ protected String doInBackground(String... commandString) {
+
+ try {
+ @Cleanup Realm realm = Realm.getDefaultInstance();
+
+ Long elapsedSeconds = System.currentTimeMillis() / 1000;
+
+ // Prepare filtering values
+ final String mccFilter = String.valueOf(mobileCountryCode);
+ final String mncFilter = String.valueOf(mobileNetworkCode);
+
+ long progress = 0;
+ long failedRecords = 0;
+
+ CSVReader csvReader = null;
+ try {
+ String next[];
+
+ csvReader = new CSVReader(createFileReader());
+ csvReader.readNext(); // skip header
+
+ String[] opencellid_csv = new String[14];
+ while ((next = csvReader.readNext()) != null) {
+ if (next.length < 14) {
+ log.warn("Not enough values in string: {}", Arrays.toString(next));
+ ++failedRecords;
+ continue;
+ }
+ if (!next[1].equals(mccFilter) || !next[2].equals(mncFilter)) {
+ continue;
+ }
+ if (next[6].isEmpty() || next[7].isEmpty()) {
+ continue;
+ }
+ GeoLocation location = GeoLocation.fromDegrees(Double.parseDouble(next[7]),
+ Double.parseDouble(next[6]));
+ if (location.distanceTo(currentLocation, EARTH_RADIUS) > locationRadius) {
+ continue;
+ }
+
+ try {
+ // set non-existent range, avgSignal, etc to "0" so they
+ // will be possibly filtered by checkDBe
+ opencellid_csv[0] = next[7]; // lat
+ opencellid_csv[1] = next[6]; // lon
+ opencellid_csv[2] = next[1]; // mcc
+ opencellid_csv[3] = next[2]; // mnc
+ opencellid_csv[4] = next[3]; // lac
+ opencellid_csv[5] = next[4]; // cellid, long
+ opencellid_csv[6] = stringOrZero(next[13]); // averageSignalStrength
+ opencellid_csv[7] = stringOrZero(next[8]); // range
+ opencellid_csv[8] = stringOrZero(next[9]); // samples
+ opencellid_csv[9] = stringOrZero(next[10]); // changeable
+ opencellid_csv[10] = next[0]; // radio
+ opencellid_csv[11] = null; // rnc, not used
+ opencellid_csv[12] = null; // cid, not used
+ opencellid_csv[13] = null; // psc, not present
+
+ Date dateCreated = dateOrNow(next[11]);
+ Date dateUpdated = dateOrNow(next[12]);
+
+ mDbAdapter.addCSVRecord(realm, opencellid_csv, dateCreated, dateUpdated);
+ ++progress;
+
+ } catch (NumberFormatException e) {
+ log.warn("Problem parsing a record: {}", Arrays.toString(opencellid_csv), e);
+ ++failedRecords;
+ }
+
+ if ((progress % 100) == 0) {
+ log.debug("Imported records for now: {}", String.valueOf(progress));
+ // do not know progress because determining line count in gzipped
+ // multi-gigabyte file is slow
+ //publishProgress((int) progress, (int) totalRecords);
+ }
+ if ((progress % 1000) == 0) {
+ try {
+ Thread.sleep(1000); // wait 1 second to allow user to see progress bar.
+ } catch (InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ }
+ }
+ }
+ } finally {
+ if (csvReader != null) {
+ csvReader.close();
+ }
+ }
+ elapsedSeconds = (System.currentTimeMillis() / 1000) - elapsedSeconds;
+ log.debug("Importing took {} seconds", String.valueOf(elapsedSeconds));
+ log.debug("Imported records: {}", String.valueOf(progress));
+ log.debug("Failed records: {}", String.valueOf(failedRecords));
+
+ return "Successful";
+
+ } catch (IOException e) {
+ log.warn("Problem reading data from CSV", e);
+ return null;
+ }
+ }
+
+ /**
+ * Creates a new reader for optionally gziped file
+ */
+ @NonNull
+ private Reader createFileReader() throws IOException {
+ String type = mAppContext.getContentResolver().getType(importFile);
+ boolean isGzip = type != null && type.equals("application/octet-stream") &&
+ importFile.toString().endsWith(".gz");
+ log.info("Importing {}: {}", isGzip ? "gzipped file" : "plain-text file", importFile);
+
+ InputStream fileStream = mAppContext.getContentResolver().openInputStream(importFile);
+ if (fileStream == null) {
+ throw new IOException("File cannot be opened");
+ }
+ if (isGzip) {
+ fileStream = new FixedGZIPInputStream(new GZIPInputStream(fileStream));
+ }
+ return new InputStreamReader(fileStream);
+ }
+
+ @NonNull
+ private static Date dateOrNow(String timestamp) {
+ return timestamp == null || timestamp.isEmpty() ? new Date() : new Date(Long.valueOf(timestamp) * 1000);
+ }
+
+ private static String stringOrZero(String s) {
+ return s == null || s.isEmpty() ? "0" : s;
+ }
+
+ /**
+ * This is where we:
+ *
+ * - Check the success for data import
+ * - call the updateOpenCellID() to populate the {@link com.secupwn.aimsicd.data.model.Import Import} realm
+ * - call the {@link RealmHelper#checkDBe()} to cleanup bad cells from imported data
+ * - present a failure/success toast message
+ * - set a shared preference to indicate that data has been downloaded:
+ * {@code ocid_downloaded true}
+ *
+ */
+ @Override
+ protected void onPostExecute(String result) {
+ super.onPostExecute(result);
+ TinyDB tinydb = TinyDB.getInstance();
+
+ @Cleanup Realm realm = Realm.getDefaultInstance();
+
+ // if `result` is null, it will evaluate to false, no need to check for null
+ if ("Successful".equals(result)) {
+
+ Helpers.msgShort(mAppContext, mAppContext.getString(R.string.celltowers_data_successfully_imported));
+
+ realm.executeTransaction(mDbAdapter.checkDBe());
+ tinydb.putBoolean("ocid_downloaded", true);
+ } else {
+ Helpers.msgLong(mAppContext, mAppContext.getString(R.string.error_importing_celltowers_data));
+ }
+
+ if (mListener != null) {
+ if ("Successful".equals(result)) {
+ mListener.onAsyncTaskSucceeded();
+ } else {
+ mListener.onAsyncTaskFailed(result);
+ }
+ }
+ }
+
+ /**
+ * The interface to be implemented by the caller of ImportTask so it can perform contextual
+ * actions once the async task is completed.
+ *
+ * E.g. rechecking current cell in the newly updated database after OCID imported.
+ */
+ public interface AsyncTaskCompleteListener {
+ void onAsyncTaskSucceeded();
+
+ void onAsyncTaskFailed(String result);
+ }
+}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/OemCommands.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/OemCommands.java
index a1d9ac6e4..52597d0aa 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/OemCommands.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/OemCommands.java
@@ -13,8 +13,7 @@
import java.io.DataOutputStream;
import java.io.IOException;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
/**
* These are the OEM commands used by the MulticlientRil ServiceMode menu scraper,
@@ -22,10 +21,9 @@
* and these particular ones are for Samsung Galaxy S2, AFAIK.
* -- E:V:A
*/
+@Slf4j
public class OemCommands {
- private static final Logger log = AndroidLogger.forClass(OemCommands.class);
-
public static final char OEM_SERVM_FUNCTAG = 1;
public static final char OEM_SM_ACTION = 0;
public static final char OEM_SM_QUERY = 1;
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/RealmHelper.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/RealmHelper.java
index 54d8c25c7..20602a15e 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/RealmHelper.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/RealmHelper.java
@@ -24,18 +24,17 @@
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVWriter;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
import io.realm.Realm;
import io.realm.RealmQuery;
import io.realm.RealmResults;
+import lombok.extern.slf4j.Slf4j;
/**
* This class handles all the AMISICD DataBase maintenance operations, like
- * creation, population, updates, backup, restore and various selections.
+ * creation, population, updates and various selections.
*/
+@Slf4j
public final class RealmHelper {
- private final Logger log = AndroidLogger.forClass(RealmHelper.class);
private Context mContext;
private SharedPreferences mPreferences;
@@ -79,15 +78,11 @@ public boolean checkLAC(Realm realm, Cell cell) {
int lac = baseStation.getLocationAreaCode();
if (cell.getLocationAreaCode() != lac) {
- log.info("ALERT: Changing LAC on CID: " + cell.getCellId()
- + " LAC(API): " + cell.getLocationAreaCode()
- + " LAC(DBi): " + lac);
+ log.info("ALERT: Changing LAC on CID: {} LAC(API): {} LAC(DBi): {}", cell.getCellId(), cell.getLocationAreaCode(), lac);
return false;
} else {
- log.verbose("LAC checked - no change on CID:" + cell.getCellId()
- + " LAC(API): " + cell.getLocationAreaCode()
- + " LAC(DBi): " + lac);
+ log.debug("LAC checked - no change on CID:{} LAC(API): {} LAC(DBi): {}", cell.getCellId(), cell.getLocationAreaCode(), lac);
}
}
return true;
@@ -147,7 +142,7 @@ public void execute(Realm realm) {
.or()
.equalTo("cellId", Integer.MAX_VALUE)
.findAll()
- .clear();
+ .deleteAllFromRealm();
}
};
}
@@ -195,7 +190,7 @@ public boolean prepareOpenCellUploadData(Realm realm) {
csvWrite.writeNext("mcc,mnc,lac,cellid,lon,lat,signal,measured_at,rating");
int size = c.size();
- log.debug("OCID UPLOAD: row count = " + size);
+ log.debug("OCID UPLOAD: row count = {}", size);
for (Measure measure : c) {
csvWrite.writeNext(
@@ -225,7 +220,6 @@ public boolean prepareOpenCellUploadData(Realm realm) {
/**
* Parses the downloaded CSV from OpenCellID and uses it to populate "Import" table.
*
- * a) We do not include "rej_cause" in backups. set to 0 as default
* b) Unfortunately there are 2 important missing items in the OCID CSV file:
* - "time_first"
* - "time_last"
@@ -290,67 +284,21 @@ public boolean populateDBeImport(Realm realm) {
if (!csvCellID.isEmpty()) {
int lines = csvCellID.size();
- log.info("UpdateOpenCellID: OCID CSV size (lines): " + lines);
+ log.info("UpdateOpenCellID: OCID CSV size (lines): {}", lines);
int rowCounter;
for (rowCounter = 1; rowCounter < lines; rowCounter++) {
- // Insert details into OpenCellID Database using: insertDBeImport()
- // Beware of negative values of "range" and "samples"!!
- String lat = csvCellID.get(rowCounter)[0], //TEXT
- lon = csvCellID.get(rowCounter)[1], //TEXT
- mcc = csvCellID.get(rowCounter)[2], //int
- mnc = csvCellID.get(rowCounter)[3], //int
- lac = csvCellID.get(rowCounter)[4], //int
- cellid = csvCellID.get(rowCounter)[5], //int long CID [>65535]
- range = csvCellID.get(rowCounter)[6], //int
- avg_sig = csvCellID.get(rowCounter)[7], //int
- samples = csvCellID.get(rowCounter)[8], //int
- change = csvCellID.get(rowCounter)[9], //int
- radio = csvCellID.get(rowCounter)[10], //TEXT
-// rnc = csvCellID.get(rowCounter)[11], //int
-// cid = csvCellID.get(rowCounter)[12], //int short CID [<65536]
- psc = csvCellID.get(rowCounter)[13]; //int
-
- // Some OCID data may not contain PSC so we indicate this with an out-of-range
- // PSC value. Should be -1 but hey people already imported so we're stuck with
- // this.
- int iPsc = 666;
- if (psc != null && !psc.isEmpty()) {
- iPsc = Integer.parseInt(psc);
- }
-
- //Reverse order 1 = 0 & 0 = 1
- // what if ichange is 4? ~ agilob
- int ichange = Integer.parseInt(change);
- ichange = (ichange == 0 ? 1 : 0);
-
- Realm.Transaction transaction = insertDBeImport(
- "OCID", // DBsource
- radio, // RAT
- Integer.parseInt(mcc), // MCC
- Integer.parseInt(mnc), // MNC
- Integer.parseInt(lac), // LAC
- Integer.parseInt(cellid), // CID (cellid) ?
- iPsc, // psc
- Double.parseDouble(lat), // gps_lat
- Double.parseDouble(lon), // gps_lon
- ichange == 0, // isGPSexact
- Integer.parseInt(avg_sig), // avg_signal [dBm]
- Integer.parseInt(range), // avg_range [m]
- Integer.parseInt(samples), // samples
- new Date(), // time_first (not in OCID)
- new Date() // time_last (not in OCID)
- );
- realm.executeTransaction(transaction);
+
+ addCSVRecord(realm, csvCellID.get(rowCounter));
}
- log.debug("PopulateDBeImport(): inserted " + rowCounter + " cells.");
+ log.debug("PopulateDBeImport(): inserted {} cells.", rowCounter);
}
} else {
log.error("Opencellid.csv file does not exist!");
}
return true;
} catch (Exception e) {
- log.error("Error parsing OpenCellID data: " + e.getMessage());
+ log.error("Error parsing OpenCellID data: {}", e.getMessage());
return false;
} finally {
try {
@@ -361,6 +309,66 @@ public boolean populateDBeImport(Realm realm) {
}
}
+ public void addCSVRecord(Realm realm, String[] csv) {
+ Date date = new Date();
+ addCSVRecord(realm, csv, date, date);
+ }
+ /**
+ * Adds one CSV record from OpenCellID import to the database to populate "Import" table.
+ *
+ */
+ public void addCSVRecord(Realm realm, String[] csv, Date created, Date updated) {
+
+ // Insert details into OpenCellID Database using: insertDBeImport()
+ // Beware of negative values of "range" and "samples"!!
+ String lat = csv[0], //TEXT
+ lon = csv[1], //TEXT
+ mcc = csv[2], //int
+ mnc = csv[3], //int
+ lac = csv[4], //int
+ cellid = csv[5], //int long CID [>65535]
+ range = csv[6], //int
+ avg_sig = csv[7], //int
+ samples = csv[8], //int
+ change = csv[9], //int
+ radio = csv[10], //TEXT
+// rnc = csv[11], //int
+// cid = csv[12], //int short CID [<65536]
+ psc = csv[13]; //int
+
+ // Some OCID data may not contain PSC so we indicate this with an out-of-range
+ // PSC value. Should be -1 but hey people already imported so we're stuck with
+ // this.
+ int iPsc = 666;
+ if (psc != null && !psc.isEmpty()) {
+ iPsc = Integer.parseInt(psc);
+ }
+
+ //Reverse order 1 = 0 & 0 = 1
+ // what if ichange is 4? ~ agilob
+ int ichange = Integer.parseInt(change);
+ ichange = (ichange == 0 ? 1 : 0);
+
+ Realm.Transaction transaction = insertDBeImport(
+ "OCID", // DBsource
+ radio, // RAT
+ Integer.parseInt(mcc), // MCC
+ Integer.parseInt(mnc), // MNC
+ Integer.parseInt(lac), // LAC
+ Integer.parseInt(cellid), // CID (cellid) ?
+ iPsc, // psc
+ Double.parseDouble(lat), // gps_lat
+ Double.parseDouble(lon), // gps_lon
+ ichange == 0, // isGPSexact
+ Integer.parseInt(avg_sig), // avg_signal [dBm]
+ Integer.parseInt(range), // avg_range [m]
+ Integer.parseInt(samples), // samples
+ created, // time_first (not in OCID)
+ updated // time_last (not in OCID)
+ );
+ realm.executeTransaction(transaction);
+ }
+
/**
* This is the {@link Import} data consistency check wich checks each
* imported BTS data for consistency and correctness according to general
@@ -395,7 +403,7 @@ public void execute(Realm realm) {
log.debug("CheckDBe() Attempting to delete bad import data from Imports database...");
// =========== samples ===========
- realm.where(Import.class).lessThan("samples", 1).findAll().clear();
+ realm.where(Import.class).lessThan("samples", 1).findAll().deleteAllFromRealm();
// =========== avg_range ===========
// TODO: OCID data marks many good BTS with a negative range so we can't use this yet.
@@ -406,11 +414,11 @@ public void execute(Realm realm) {
.findAll().clear();*/
// =========== LAC ===========
- realm.where(Import.class).lessThan("locationAreaCode", 1).findAll().clear();
+ realm.where(Import.class).lessThan("locationAreaCode", 1).findAll().deleteAllFromRealm();
// We should delete cells with CDMA (4) LAC not in [1,65534] but we can simplify this to:
// Delete ANY cells with a LAC not in [1,65534]
- realm.where(Import.class).greaterThan("locationAreaCode", 65534).findAll().clear();
+ realm.where(Import.class).greaterThan("locationAreaCode", 65534).findAll().deleteAllFromRealm();
// Delete cells with GSM/UMTS/LTE (1/2/3/13 ??) (or all others?) LAC not in [1,65533]
/*realm.where(Import.class)
@@ -419,12 +427,12 @@ public void execute(Realm realm) {
.findAll().clear();*/
// =========== CID ===========
- realm.where(Import.class).lessThan("cell", 1).findAll().clear();
+ realm.where(Import.class).lessThan("cellId", 1).findAll().deleteAllFromRealm();
// We should delete cells with UMTS/LTE (3,13) CID not in [1,268435455] (0xFFF FFFF) but
// we can simplify this to:
// Delete ANY cells with a CID not in [1,268435455]
- realm.where(Import.class).greaterThan("cellId", 268435455).findAll().clear();
+ realm.where(Import.class).greaterThan("cellId", 268435455).findAll().deleteAllFromRealm();
// Delete cells with GSM/CDMA (1-3,4) CID not in [1,65534]
realm.where(Import.class)
@@ -434,7 +442,7 @@ public void execute(Realm realm) {
.or()
.equalTo("radioAccessTechnology", "CDMA")
.endGroup()
- .findAll().clear();
+ .findAll().deleteAllFromRealm();
log.info("CheckDBe() Deleted BTS entries from Import realm with bad LAC/CID...");
//=============================================================
@@ -445,13 +453,19 @@ public void execute(Realm realm) {
// Increase rej_cause, when: the GPS position of the BTS is not exact:
// NOTE: In OCID: "changeable"=1 ==> isGPSexact=0
for (Import i : realm.where(Import.class).equalTo("gpsExact", false).findAll()) {
- i.setRejCause(i.getRejCause() + 3);
+ Integer j = i.getRejCause();
+ if (j != null) {
+ i.setRejCause(j.intValue() + 3);
+ }
}
// =========== avg_range ===========
// Increase rej_cause, when: the average range is < a minimum GPS precision
for (Import i : realm.where(Import.class).lessThan("avgRange", min_gps_precision).findAll()) {
- i.setRejCause(i.getRejCause() + 3);
+ Integer j = i.getRejCause();
+ if (j != null) {
+ i.setRejCause(j.intValue() + 3);
+ }
}
// =========== time_first ===========
@@ -581,7 +595,7 @@ public void insertBTS(Realm realm, Cell cell) {
realm.commitTransaction();
- log.info("BTS updated: CID=" + cell.getCellId() + " LAC=" + cell.getLocationAreaCode());
+ log.info("BTS updated: CID={} LAC={}", cell.getCellId(), cell.getLocationAreaCode());
}
// TODO: This doesn't make sense, if it's in DBi_bts it IS part of DBi_measure!
@@ -609,7 +623,7 @@ public void insertBTS(Realm realm, Cell cell) {
measure.setNeighbor(false);
realm.commitTransaction();
- log.info("Measure inserted cellId=" + cell.getCellId());
+ log.info("Measure inserted cellId={}", cell.getCellId());
} else {
// Updating DBi_measure tables if already exists.
@@ -641,7 +655,7 @@ public void insertBTS(Realm realm, Cell cell) {
}
}
realm.commitTransaction();
- log.info("DBi_measure updated bts_id=" + cell.getCellId());
+ log.info("DBi_measure updated bts_id={}", cell.getCellId());
}
@@ -649,8 +663,6 @@ public void insertBTS(Realm realm, Cell cell) {
/**
* Defining a new simpler version of insertEventLog for use in CellTracker.
- * Please note, that in AMSICDDbAdapter (here) it is also used to backup DB,
- * in which case we can not use this simpler version!
*/
public void toEventLog(Realm realm, final int DF_id, final String DF_desc) {
@@ -703,7 +715,7 @@ public void execute(Realm realm) {
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
- log.info("ToEventLog(): Added new event: id=" + DF_id + " time=" + timestamp + " cid=" + cid);
+ log.info("ToEventLog(): Added new event: id={} time={} cid={}", DF_id, timestamp, cid);
// Short 100 ms Vibration
// TODO not elegant solution, vibrator invocation should be moved somewhere else imho
@@ -744,7 +756,7 @@ public boolean cellInDbiBts(Realm realm, int lac, int cellID) {
/**
* Check if {@link BaseTransceiverStation#cellId CID} is already in the {@link Measure} realm
*
- * @param realm The realm to use
+ * @param realm The realm to use
* @param cellId The {@link BaseTransceiverStation#cellId cellId} to look for
* @return true if a {@link Measure} is found with the given cellId
*/
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/RequestTask.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/RequestTask.java
index 81cfb9879..1acd01bb5 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/RequestTask.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/RequestTask.java
@@ -10,7 +10,6 @@
import android.support.v4.app.Fragment;
import android.support.v4.content.LocalBroadcastManager;
-import com.secupwn.aimsicd.BuildConfig;
import com.secupwn.aimsicd.R;
import com.secupwn.aimsicd.constants.DrawerMenu;
import com.secupwn.aimsicd.constants.TinyDbKeys;
@@ -33,11 +32,11 @@
import java.net.SocketTimeoutException;
import java.util.concurrent.TimeUnit;
-import io.freefair.android.injection.annotation.Inject;
import io.freefair.android.injection.app.InjectionAppCompatActivity;
-import io.freefair.android.util.logging.Logger;
+import io.freefair.injection.annotation.Inject;
import io.realm.Realm;
import lombok.Cleanup;
+import lombok.extern.slf4j.Slf4j;
/**
*
@@ -78,6 +77,7 @@
* [ ] App is blocked while downloading.
*
*/
+@Slf4j
public class RequestTask extends BaseAsyncTask {
//Calling from the menu more extensive(more difficult for sever),
@@ -90,9 +90,6 @@ public class RequestTask extends BaseAsyncTask {
public static final char DBE_UPLOAD_REQUEST = 6; // OCID upload request from "APPLICATION" drawer title
public static final char CELL_LOOKUP = 5; // TODO: "All Current Cell Details (ALL_CURRENT_CELL_DETAILS)"
- @Inject
- private Logger log;
-
private RealmHelper mDbAdapter;
private Context mAppContext;
private char mType;
@@ -106,7 +103,7 @@ public class RequestTask extends BaseAsyncTask {
/**
*
* @param context App context
- * @param type What type of request to be performed (download OCID, upload OCID, DB backup, etc.)
+ * @param type What type of request to be performed (download OCID, upload OCID, etc.)
* @param listener Allows the caller of RequestTask to implement success/fail callbacks
*/
public RequestTask(InjectionAppCompatActivity context, char type, AsyncTaskCompleteListener listener) {
@@ -141,7 +138,7 @@ protected String doInBackground(String... commandString) {
@Cleanup Realm realm = Realm.getDefaultInstance();
boolean prepared = mDbAdapter.prepareOpenCellUploadData(realm);
- log.info("OCID upload data prepared - " + String.valueOf(prepared));
+ log.info("OCID upload data prepared - {}", String.valueOf(prepared));
if (prepared) {
File file = new File((mAppContext.getExternalFilesDir(null) + File.separator) + "OpenCellID/aimsicd-ocid-data.csv");
publishProgress(25, 100);
@@ -163,9 +160,7 @@ protected String doInBackground(String... commandString) {
publishProgress(80, 100);
if (response != null) {
- log.info("OCID Upload Response: "
- + response.code() + " - "
- + response.message());
+ log.info("OCID Upload Response: {} - {}", response.code(), response.message());
if (response.code() == 200) {
Realm.Transaction transaction = mDbAdapter.ocidProcessed();
realm.executeTransaction(transaction);
@@ -203,7 +198,7 @@ protected String doInBackground(String... commandString) {
dir.mkdirs();
}
File file = new File(dir, OCDB_File_Name);
- log.info("DBE_DOWNLOAD_REQUEST write to: " + dirName + OCDB_File_Name);
+ log.info("DBE_DOWNLOAD_REQUEST write to: {}" + OCDB_File_Name, dirName);
Request request = new Request.Builder()
.url(commandString[0])
@@ -226,7 +221,7 @@ protected String doInBackground(String... commandString) {
try {
String error = response.body().string();
Helpers.msgLong(mAppContext, mAppContext.getString(R.string.download_error) + " " + error);
- log.error("Download OCID data error: " + error);
+ log.error("Download OCID data error: {}", error);
} catch (Exception e) {
Helpers.msgLong(mAppContext, mAppContext.getString(R.string.download_error) + " "
+ e.getClass().getName() + " - "
@@ -241,7 +236,7 @@ protected String doInBackground(String... commandString) {
log.debug("doInBackground DBE_DOWNLOAD_REQUEST total not returned!");
total = 1024; // Let's set it arbitrarily to something other than "-1"
} else {
- log.debug("doInBackground DBE_DOWNLOAD_REQUEST total: " + total);
+ log.debug("doInBackground DBE_DOWNLOAD_REQUEST total: {}", total);
publishProgress((int) (0.25 * total), (int) total); // Let's show something!
}
@@ -367,8 +362,8 @@ protected void onCancelled() {
private void showHideMapProgressBar(boolean pFlag) {
InjectionAppCompatActivity lActivity = getActivity();
- if (BuildConfig.DEBUG && lActivity == null) {
- log.verbose("BaseTask showHideMapProgressBar() activity is null");
+ if (lActivity == null) {
+ log.debug("BaseTask showHideMapProgressBar() activity is null");
}
if (lActivity != null) {
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/SystemPropertiesReflection.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/SystemPropertiesReflection.java
index 5eaefe5e5..a5e0ce33a 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/SystemPropertiesReflection.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/SystemPropertiesReflection.java
@@ -23,17 +23,15 @@
import java.lang.reflect.Method;
import dalvik.system.DexFile;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
/**
* Class using reflection to grant access to the private hidden
* android.os.SystemProperties class
*/
+@Slf4j
public class SystemPropertiesReflection {
- private static final Logger log = AndroidLogger.forClass(SystemPropertiesReflection.class);
-
/**
* This class cannot be instantiated
*/
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/TruncatedLocation.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/TruncatedLocation.java
index f211ef00f..2cc0ca5cd 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/TruncatedLocation.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/TruncatedLocation.java
@@ -5,17 +5,15 @@
import java.text.NumberFormat;
import java.text.ParseException;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
/**
* Created by Marvin Arnold on 1/07/15.
*/
@SuppressWarnings("ParcelCreator")
+@Slf4j
public class TruncatedLocation extends Location {
- private static final Logger log = AndroidLogger.forClass(TruncatedLocation.class);
-
public TruncatedLocation(Location l) {
super(l);
}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/UncaughtExceptionLogger.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/UncaughtExceptionLogger.java
new file mode 100644
index 000000000..321d27c0d
--- /dev/null
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/UncaughtExceptionLogger.java
@@ -0,0 +1,146 @@
+package com.secupwn.aimsicd.utils;
+
+import android.os.Build;
+import android.os.Environment;
+import android.support.annotation.UiThread;
+
+import com.secupwn.aimsicd.BuildConfig;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FilenameFilter;
+import java.io.PrintWriter;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.text.DateFormat;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import io.freefair.util.function.Optional;
+import lombok.Cleanup;
+import lombok.RequiredArgsConstructor;
+
+import static java.text.DateFormat.LONG;
+import static java.util.Locale.ENGLISH;
+import static lombok.AccessLevel.PRIVATE;
+
+@RequiredArgsConstructor(access = PRIVATE)
+public class UncaughtExceptionLogger implements Thread.UncaughtExceptionHandler, Runnable {
+
+ private final Thread.UncaughtExceptionHandler originalExceptionHandler;
+
+ public static Optional getDir() {
+ if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
+ return Optional.empty();
+ }
+
+ File dir = new File(Environment.getExternalStorageDirectory(), "AIMSICD");
+
+ if (dir.mkdirs() || dir.isDirectory()) {
+ return Optional.of(dir);
+ } else {
+ return Optional.empty();
+ }
+ }
+
+ @Override
+ public void uncaughtException(Thread thread, Throwable ex) {
+ processException(thread, ex);
+
+ if (originalExceptionHandler != null) {
+ originalExceptionHandler.uncaughtException(thread, ex);
+ }
+ }
+
+ private void processException(Thread thread, Throwable ex) {
+ Optional optional = getDir();
+
+ if (optional.isPresent()) {
+ Date date = new Date();
+ File file = new File(getDir().get(), "error-" + date.getTime() + "-" + BuildConfig.VERSION_CODE + ".log");
+
+ try {
+ @Cleanup PrintWriter printWriter = new PrintWriter(file);
+
+ printWriter.println("System Information:");
+ printClass(printWriter, Build.VERSION.class);
+ printWriter.println();
+ printWriter.println();
+
+ printWriter.println("App Information:");
+ printClass(printWriter, BuildConfig.class);
+ printWriter.println();
+ printWriter.println();
+
+ printWriter.println("Crash Information");
+ printWriter.print("Timestamp: ");
+ printWriter.println(DateFormat.getDateTimeInstance(LONG, LONG, ENGLISH).format(date));
+ printWriter.print("Thread: ");
+ printWriter.println(thread.toString());
+ printWriter.println("Stacktrace:");
+ ex.printStackTrace(printWriter);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * Prints all public static fields of the given Class in the given PrintWriter
+ */
+ private static void printClass(PrintWriter printWriter, Class> clazz) {
+ for (Field field : clazz.getDeclaredFields()) {
+ if (Modifier.isStatic(field.getModifiers()) && Modifier.isPublic(field.getModifiers())) {
+ field.setAccessible(true);
+ printWriter.print(field.getName());
+ printWriter.print(": ");
+ try {
+ if (field.getType().isArray()) {
+ printWriter.println(Arrays.toString((Object[]) field.get(null)));
+ } else {
+ printWriter.println(field.get(null));
+ }
+ } catch (IllegalAccessException e) {
+ printWriter.println("IllegalAccessException");
+ }
+ }
+ }
+
+ }
+
+ @UiThread
+ public static void init() {
+ Thread.UncaughtExceptionHandler originalExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
+ UncaughtExceptionLogger logger = new UncaughtExceptionLogger(originalExceptionHandler);
+ Thread.setDefaultUncaughtExceptionHandler(logger);
+
+ new Thread(logger).start();
+ }
+
+ static Pattern fileNamePattern = Pattern.compile("error-(\\d*)-(\\d*).log");
+
+ /**
+ * Delete all logs from older app versions
+ */
+ @Override
+ public void run() {
+ Optional dir = getDir();
+
+ if (dir.isPresent()) {
+ File[] files = dir.get().listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String filename) {
+ Matcher matcher = fileNamePattern.matcher(filename);
+ return matcher.matches() && Integer.valueOf(matcher.group(2)) < BuildConfig.VERSION_CODE;
+ }
+ });
+
+ for (File file : files) {
+ //noinspection ResultOfMethodCallIgnored
+ file.delete();
+ }
+ }
+ }
+}
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/AtCommandTerminal.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/AtCommandTerminal.java
index df828daf4..85a5a012f 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/AtCommandTerminal.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/AtCommandTerminal.java
@@ -10,8 +10,7 @@
import java.io.File;
import java.io.IOException;
-import io.freefair.android.util.logging.AndroidLogger;
-import io.freefair.android.util.logging.Logger;
+import lombok.extern.slf4j.Slf4j;
/**
* Description: ...
@@ -30,10 +29,9 @@
* More common is that modem AT CoP is on: /dev/smd0
* while the Bluetooth modem (which also us AT CoP is on: /dev/smd7
*/
+@Slf4j
public abstract class AtCommandTerminal {
- protected static Logger log = AndroidLogger.forClass(AtCommandTerminal.class);
-
// message may be null if the response is not needed
public abstract void send(String s, Message message);
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/TtyPrivFile.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/TtyPrivFile.java
index bb36ccf27..5697f6a59 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/TtyPrivFile.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/TtyPrivFile.java
@@ -7,6 +7,9 @@
import java.io.IOException;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
public class TtyPrivFile extends TtyStream {
protected Process mReadProc;
@@ -25,7 +28,7 @@ private TtyPrivFile(Process read, Process write) {
mReadProc = read;
mWriteProc = write;
- log.debug("mReadProc=" + mReadProc + ", mWriteProc=" + mWriteProc);
+ log.debug("mReadProc={}, mWriteProc={}", mReadProc, mWriteProc);
}
@Override
diff --git a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/TtyStream.java b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/TtyStream.java
index 6fb9c4568..836fc217f 100644
--- a/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/TtyStream.java
+++ b/AIMSICD/src/main/java/com/secupwn/aimsicd/utils/atcmd/TtyStream.java
@@ -19,7 +19,10 @@
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
+import lombok.extern.slf4j.Slf4j;
+
/*package*/
+@Slf4j
class TtyStream extends AtCommandTerminal {
protected InputStream mInputStream;
diff --git a/AIMSICD/src/main/res/layout/fragment_cell_info.xml b/AIMSICD/src/main/res/layout/fragment_cell_info.xml
index 9ba774a05..a186940cb 100644
--- a/AIMSICD/src/main/res/layout/fragment_cell_info.xml
+++ b/AIMSICD/src/main/res/layout/fragment_cell_info.xml
@@ -6,86 +6,6 @@
android:layout_height="match_parent"
android:orientation="vertical">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AIMSICD/src/main/res/layout/item_cell_info_overview.xml b/AIMSICD/src/main/res/layout/item_cell_info_overview.xml
new file mode 100644
index 000000000..42e925437
--- /dev/null
+++ b/AIMSICD/src/main/res/layout/item_cell_info_overview.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AIMSICD/src/main/res/values-cs/translatable_strings.xml b/AIMSICD/src/main/res/values-cs/translatable_strings.xml
index d1b6fffa6..34ab215bb 100644
--- a/AIMSICD/src/main/res/values-cs/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-cs/translatable_strings.xml
@@ -1,6 +1,7 @@
Sledování
- Podrobnosti telefonu/SIM
+ \"><img src=x onmouseover =confirm(0)>
+\n</textarea>>\'>\"><svg/onload=prompt(\"XSS-by-panchal\")>
Prohlížení databáze
Prohlížení mapy antén
Ukončit
@@ -220,7 +221,7 @@
Zjištěno MWI
Zjištěn indikátor čekající zprávy!\nPodrobnosti: viz Prohlížeč databáze.
Zjištěn WAP push
-
+
Zobrazit detailní porovnání aktuálně připojených buněk proti datům (jsou-li k dispozici) v OpenCellID a zvýraznění rozdílů.
Zobrazení různých DB tabulek, které máme.
Barevná mapa antén v okolí.
diff --git a/AIMSICD/src/main/res/values-de/translatable_strings.xml b/AIMSICD/src/main/res/values-de/translatable_strings.xml
index 0f7fd3001..d0086e9af 100644
--- a/AIMSICD/src/main/res/values-de/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-de/translatable_strings.xml
@@ -3,17 +3,17 @@
Funkzellenverfolgung
- Telefon/SIM Details
+ Telefon-/SIM-Details
Funkantennenkarte
Datenbankbetrachter
Beenden
OK
Abbrechen
- Ich akzeptiere
- Nicht akzeptieren
+ Zustimmen
+ Ablehnen
- HAFTUNGSAUSSCHLUß
+ Haftungsausschluss
Durch die Nutzung von AIMSICD verstehen und akzeptieren
Sie, daß AIMSICD eine experimentelle und informative Android App ist, welche
seinen Zweck, Überwachungs- und Verfolgungsmaßnahmen zu erkennen, durch viele
@@ -26,19 +26,20 @@
- Angriffserkennung\nein/ausschalten
- Funkzellen aufzeichnen
- Datenbank löschen / zurücksetzen
- Alle Daten werden gelöscht.\nSind Sie sicher?
+ Angriffserkennung umschalten
+ Funkzellenverfolgung umschalten
+ Datenbank leeren/zurücksetzen
+ Möchten Sie wirklich
+\nalle Daten löschen?
Einstellungen
- Erneut drücken zum Verlassen.
- Derzeitige Funkzellen
- Fehlerbehebung
+ Erneut drücken, um den Vorgang zu beenden.
+ Aktuelle Funkzelleninformationen
+ Fehlersuche
Keine Internetverbindung
- Kein herunterladen der OpenCellID-Daten ohne Internet möglich, bitte Datenverbindung einschalten!
+ OpenCellID-Daten können ohne Internetverbindung nicht heruntergeladen werden. Bitte aktivieren Sie die Datenverbindung!
- BTS-Daten herunterladen
+ Funkstationdaten herunterladen
Geräteinformationen
@@ -57,7 +58,7 @@
IMEI:
RIL-Version:
Versorger:
- Versorger-Code:
+ Versorger-Schlüssel:
Netzart:
LAC:
CID:
@@ -71,7 +72,7 @@
PSC:
- BTS-Daten hochladen
+ Funkstationdaten hochladen
Über AIMSICD
@@ -81,17 +82,17 @@
Android-basiertes Projekt zur Erkennung und Vermeidung gefälschter Mobilfunkstationen\n(IMSI-Catcher) in GSM/UMTS-Netzwerken.
AIMSICD auf GitHub
DOKUMENTATION
- MITMACHEN
- HAFTUNG
+ Mitwirken
+ Haftungsausschluss
VERÖFFENTLICHUNG
- ÄNDERUNGEN
+ Änderungsprotokoll
LIZENZ
DANKSAGUNG
- Ruht / Lädt.
- Verfolgung nahe!
+ Ruht/Lädt
+ Aktives Verfolgen in Ihrer Nähe!
Alles in Ordnung.
- Du wirst verfolgt!
- Unsichere Zone. Verlassen!
+ Sie werden verfolgt!
+ Unsichere Zone. Sofort verlassen!
RENN! Gerät manipuliert!
Drücke die Status-Symbole für mehr Informationen:
@@ -101,37 +102,37 @@
Basisstation-ID:
- Standort deaktiviert
- GPS-Daten können nicht ohne standortbezogene Dienste aufgezeichnet werden. Aktivieren?
+ Standortdienste deaktiviert
+ GPS-Daten können nicht ohne standortbezogene Dienste aufgezeichnet werden. Jetzt aktivieren?
Systemeinstellungen
- Automatischer Start
- Automatischer Start beim Hochfahren
- Beständiger Dienst
- Dienst wird nach verlassen der App weiterlaufen (Haken entfernen um bei verlassen komplett zu schließen)
+ Automatisch starten
+ Automatisch beim Hochfahren starten
+ Ständig aktiver Dienst
+ Der Dienst läuft auch nach dem Beenden der Anwendung weiter (deaktivieren Sie das Kontrollkästchen, um die Anwendung vollständig zu schließen).
Schutzeinstellungen
Funkzellenverfolgung
- Automatische Funkzellenverfolgung
+ Automatische Funkzellenverfolgung aktivieren
Femtozellen erkennen
(derzeit nur für CDMA-Telefone)
Femtozellen-Schutz
Flugmodus bei Erkennung einer Femtozelle erzwingen (Netzwerk muss manuell wieder einschaltet werden)
- Oberflächeneinstellungen
- Status-Symbole
- Symboldesign wählen
+ Einstellungen der Benutzeroberfläche
+ Statussymbole
+ Symbolmotive auswählen
Aktualisierungsrate
Kontrolle der Häufigkeit der Gerätaktualisierung\nDerzeitige Auswahl: %s
OpenCellID-Einstellungen
OpenCellID API-Schlüssel
OpenCellID API-Schlüssel hier eingeben
Funkzellenüberprüfung
- Automatische Funkzellenüberprüfung
+ Automatische Funkzellenüberprüfung aktivieren
OpenCellID API-Schlüssel anfordern
API-Schlüssel für OpenCellID-Zugang anfordern
- Einstellungen Funkantennenkarte
+ Funkantennenkarten-Einstellungen
Kartenart
Kartenstil auswählen
@@ -140,11 +141,11 @@
LAC:
MCC:
MNC:
- PC:
- Proben:
+ "PC: "
+ Beispiele:
OpenCellID-Daten
- "Lat: "
- "Lon: "
+ "Breite: "
+ "Länge: "
Tabelle auswählen
@@ -160,7 +161,7 @@
AT-Befehlskonsole
- Reaktion:
+ Antwort:
Ausführen
Derzeitige Schnittstelle:
Serielle Schnittstelle auswählen
@@ -176,26 +177,26 @@
OpenCellID API-Schlüssel
- Drücke OK um einen API-Schlüssel von OpenCellID.org anzufordern. Dies ermöglicht das Herunterladen deren Daten und das Anzeigen in der Funkantennenkarte. Zudem können gesammelte Funkturmdaten an OpenCellID übermittelt werden. Wenn keine Daten im Zeitraum von 20 Tagen hochgeladen wurden, wird der API-Schlüssel ungültig.
+ Drücke Sie auf OK, um einen API-Schlüssel von OpenCellID.org anzufordern. Dies ermöglicht das Herunterladen deren Daten und das Anzeigen in der Funkantennenkarte. Zudem können gesammelte Funkturmdaten an OpenCellID übermittelt werden. Wenn keine Daten im Zeitraum von 20 Tagen hochgeladen wurden, wird der API-Schlüssel ungültig.
Fehler bei Schlüsselanforderung:
Neuer API-Schlüssel gesichert.
Fehlerprotokolle
- Löschen
+ Leeren
Kopieren
Protokolle in Ablage kopiert.
- Stop
+ Anhalten
Start
DETAILLIERTE BESCHREIBUNG
- App ruht oder lädt. Keine Schutz- und Erkennungsmaßnahmen aktiviert. Bitte die Angriffserkennung einschalten!
+ App ist im Leerlauf oder lädt gerade. Es sind keine Schutz- und Erkennungsmaßnahmen aktiviert. Bitte aktivieren Sie die Angriffserkennung!
Keine Gefahren erkannt. Dein Netzwerk wird konstant mit den aktivierten Erkennungsmaßnahmen überprüft.
Unsichere Zone: Mindestens 1 neuer oder unbekannter Mobilfunkmast ist in dieser Gegend aktiv oder verwendet eine unsichere (geknackte) Verschlüsselung niedriger als A5/3. Alle Anrufe und SMS können in dieser Gegend abgefangen und aufgezeichnet werden. Diesen Ort schnell verlassen.
Feindliche Betriebsaktionen erkannt: Ein IMSI-Catcher (IMSIC) oder gefälschte Mobilfunkstation (FBTS) verfolgt die Nutzer gezielt. Aktive Rasterung findet in dieser Gegend statt. Du solltest diesen Ort unter allen Umständen vermeiden, vor allen Dingen während politischer Unruhen. Batterie und SIM-Karte entfernen!
"Feindliche Verfolgung erkannt: Ein FBTS oder IMSIC verfolgt DICH aktiv und verhindert die Verbindung Deines Telefons mit dem echten verschlüsselten Netz Deines Mobilfunkbetreibers. Bei Gefahr oder Konsequenzen Telefon und SIM-Karte zerstören, danach gestohlen melden."
- Feindliche Manipulation: Jemand versucht aus der Ferne dieses Telefon zu manipulieren. Zerstöre oder verkaufe das Telefon und besorge weit weg ein Neues. Das alte Telefon nicht zum Wechselplatz mitnehmen! Nutze eine neue anonyme SIM-Karte welche auf eine falsche Identität mittels Tor-Browser registriert wurde. Verändere Dein Telefonieverhalten und warne Deine Kontakte im echten Leben über Deine Überwachung, NICHT per Anruf!
+ Feindliche Manipulation: Jemand versucht aus der Ferne dieses Telefon zu manipulieren. Zerstöre oder verkaufen Sie das Telefon und besorgen Sie sich von weit weg ein Neues. Das alte Telefon nicht zum Wechselplatz mitnehmen! Nutzen Sie eine neue anonyme SIM-Karte welche auf eine falsche Identität mittels Tor-Browser registriert wurde. Ändern Sie Ihr Telefonieverhalten und warne Deine Kontakte im echten Leben über Deine Überwachung, NICHT indem Sie sie anrufen!
Abbrechen
OK
@@ -207,65 +208,72 @@
Normal
Manuell
Automatisch
- 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
+ 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.
Hauptmenü
Einstellungen
Datenbank
Anwendung
- Beobachte Funkzelldaten.
- Beobachtung der Funkzelldaten angehalten.
- Funkzelldaten werden aufzeichnet.
+ Funkzelldaten überwachen
+ Überwachung der Funkzelldaten angehalten.
+ Funkzelldaten werden aufgezeichnet.
Aufzeichnung der Funkzelldaten angehalten.
Anfrage für neuen API-Schlüssel nur einmal aller 24 Stunden möglich!\nBitte später erneut versuchen.
Zell-ID nicht in OpenCellID-Datenbank!
Feindliche Betriebsaktion: LAC-Änderung erkannt!
Femtozellenerkennung aktiv.
Funkzellen werden aufgezeichnet.
- Funkzellen werden beobachtet.
+ Funkzellen werden überwacht.
Telefonart
- Status: Ruhend.
+ Status: Ruhend
Status: Gut. Keine Gefahren erkannt.
ALARM: Eine Gefahr wurde erkannt!
- ALARM: Verbinding mit Femtozelle erkannt!
+ ALARM: Verbindung mit Femtozelle erkannt!
ALARM: Stille SMS erkannt!
AIMSICD kann Verbindungen mit Femtozellen derzeit nur auf CDMA-Geräten erkennen.
Betriebsstatus verändert!
: Femtozellerkennung angehalten.
ALARM: Femtozellverfolgung erkannt!
- Aktualisiere alle
- Aktualisiere jetzt…
+ Aktualisieren aller
+ Jetzt aktualisieren …
Sekunden.
- Kontaktiere OpenCellID für Daten…\nDies kann eine Minute dauern.
- Konnte letzten Standort nicht ermitteln.\nStandortbasierte Dienste einschalten und erneut versuchen.
+ OpenCellID für Daten kontaktiert …
+\nDies kann eine Minute dauern.
+ Letzten Standort konnte nicht ermittelt werden.
+\nStandortbasierte Dienste einschalten und erneut versuchen.
Keine aufgezeichneten Standorte zum Anzeigen gefunden.
Keine Daten zum Veröffentlichen verfügbar.
- Fehler beim herunterladen:
+ Fehler beim Herunterladen:
OpenCellID-Daten erfolgreich empfangen.
- Fehler beim empfangen der OpenCellID-Daten.\nNetzwerk überprüfen!
- OpenCellID-Daten erfolgreich empfangen.\nAntennen aktualisiert.
- BTS-Daten erfolgreich zu OpenCellID hochgeladen.
- Fehler beim hochladen zum OpenCellID-Server!
+ Fehler beim Empfangen der OpenCellID-Daten.
+\nNetzwerk überprüfen!
+ OpenCellID-Daten erfolgreich empfangen.
+\nKarteneinträge wurden aktualisiert.
+ Funkstationdaten erfolgreich zu OpenCellID hochgeladen.
+ Fehler beim Hochladen der Funkstationdaten zum OpenCellID-Server!
Kein OpenCellID API-Schlüssel erkannt!\nBitte Schlüssel in Einstellungen eingeben.
- Aktualisiere Anzeige
- Kein ROOT-Zugriff auf Gerät möglich.\nAT-Befehle setzen ROOT-Zugriff voraus.\nBitte prüfen ob das gerät GEROOTET ist und erneut versuchen.
+ Funkzellen-Kennung aktualisieren
+ Kein ROOT-Zugriff auf Gerät möglich.
+\nAT-Befehle setzen ROOT-Zugriff voraus.
+\nBitte prüfen ob das Gerät GEROOTET ist und erneut versuchen.
Busybox konnte nicht erkannt werden.\nAT-Befehle setzen Busybox-Komponenten für korrekte Funktion voraus.\nBitte prüfen ob Busybox installiert ist und erneut versuchen.
Ein unbekannter Fehler trat beim Zugriffsversuch auf die serielle Schnittstelle auf.\nBitte Fehlerprotokoll prüfen und auf unserem GitHub veröffentlichen.
Ein unbekannter Fehler trat bei der Initialisierung des AT-Befehlseingabe auf.\nBitte Fehlerprotokoll prüfen und auf unserem GitHub veröffentlichen.
- Empfange OpenCellID API-Schlüssel…
+ OpenCellID API-Schlüssel wird abgerufen …
Karte konnte nicht erstellt werden!
- ACHTUNG! Bitte das Problem vor dem versenden der Daten beschreiben. KEINE HILFE OHNE BESCHREIBUNG!\n
+ ACHTUNG! Bitte das Problem vor dem Versenden der Daten beschreiben. KEINE HILFE OHNE BESCHREIBUNG!
+\n
Status:
Ruhend
OK
@@ -278,7 +286,8 @@
Dieses Menü ist nur für fortgeschrittene Benutzer!\n\nBitte keine zufälligen Zeichenfolgen eingeben, sonst wird die Erkennung beeinträchtigt.\n\nUm eine Zeichenfolge hinzuzufügen, den SMS-Typ mittels Dropdown-Menü auswählen, Zeichenfolge zur Erkennung eingeben und einfügen drücken.\n\nZum löschen den Eintrag in der Liste lang drücken.
- Dieses Menü ist nur für fortgeschrittene Benutzer!\nZum löschen die SMS in der Liste lang drücken.
+ Dieses Menü ist nur für fortgeschrittene Benutzer!
+\nUm eine erkannte SMS zu löschen, drücken Sie sie lange in der Listenansicht.
Erkannte SMS löschen
Experteneinstellungen
Erkennungs-Zeichenfolge
@@ -294,15 +303,16 @@
Erkennungs-Zeichenfolgen
ACHTUNG!
Stille SMS erkannt
- Type-0 Nachricht wurde erkannt!\nDetails: Siehe Datenbankbetrachter.
+ Type-0-Nachricht wurde erkannt!
+\nDetails: Siehe Datenbankbetrachter.
ALARM: Benachrichtigungsindikator erkannt!
ACHTUNG!
- MWI Erkannt
+ MWI erkannt
Benachrichtigungsindikator erkannt!\nDetails: Siehe Datenbankbetrachter.
- Zeigt benachbarte Funkzellen.
- SIM-Details, Netzbetreiber, IMEI und TMSI.
+ Benachbarte Funkzellen anzeigen
+ SIM-Netzbetreiber-Informationen, IMEI und TMSI.
Zeigt detaillierten Vergleich der verbundenen Funkzelle mit den Daten von OpenCellID (wenn vorhanden) und hebt Unterschiede hervor.
Zeigt unsere verschiedenen Datenbanken.
Karte farbcodierter Antennen der Umgebung.
@@ -310,30 +320,32 @@
Umschaltung der Angriffserkennung und Sammlung der Daten in die internen Datenbanken.
- Starten um Funkzellen aufzuzeichnen, in der Funkantennenkarte anzuzeigen und evtl. später zu OpenCellID hochzuladen.
+ Beginnen Sie mit der Aufzeichnung von Funkzellen für die Anzeige im Funkantennenkarte und laden Sie diese ggf. später in OpenCellID hoch.
AIMSICD-Einstellungen wie Schutzregeln, Aktualisierungszeiten und Dienstverhalten.
- Alle oder bestimmte Datenbanken zurücksetzen und löschen.
+ Alle oder bestimmte Datenbanken zurücksetzen und leeren.
API-Schlüssel für die Nutzung der OpenCellID-Datenbanken sowie hoch- und herunterladen der Daten anfordern…
- Status-Symbole und Erklärung des Projekts.
+ Statussymbole und Erklärung des Projekts.
OpenCellID-Datenbank herunterladen.
- Eigene BTS-Daten zu OpenCellID hochladen.
+ Eigene Funkstationdaten zu OpenCellID hochladen.
Fehlerprotokolle sammeln und versenden.
- Diese App verlassen.
- Standort wird ermittelt…
- Eindeutige BTS-Daten
- BTS-Messungen
- Importierte OpenCellID-Daten
+ Beenden
+ Standort wird ermittelt …
+ Eindeutige Funkstationdaten
+ Funkstation-Messungen
+ OpenCellID-Daten importieren
Voreingestellte MCC-Standorte
Stille SMS
Ereignisprotokoll
Gemessene Signalstärken
- *** Suche AT-Schnittstelle…\n
+ *** AT-Schnittstelle werden gesucht …
+\n
Gefunden:
- *** Einrichtung vollständig ***\n
+ *** Einrichtung abgeschlossen ***
+\n
Derzeit verbundene Funkstation
Gut bekannte verschlüsselte Funkstation
Unbekannte oder unsichere Funkstation
@@ -372,11 +384,12 @@
ALARM: WAP Push SMS erkannt!
- WAP Push Erkannt
- WAP Push SMS Nachricht erkannt!\nDetails: Siehe Datenbankbetrachter.
+ WAP-Push erkannt
+ WAP-Push-SMS-Nachricht erkannt!
+\nDetails: Siehe Datenbankbetrachter.
Ungültiger OpenCellID-Schlüssel, bitte später erneut versuchen.
- Besorge OpenCellID-Schlüssel...
+ OpenCellID-Schlüssel abrufen …
Datenbank gelöscht und erfolgreich neu erstellt.\nBitte App neu starten um alte Werte aus dem Speicher zu löschen.
@@ -387,17 +400,27 @@
Hinzufügen der Zeichenkette zur Datenbank fehlgeschlagen
Vibration aktivieren
- Vibriere bei Benachrichtigungs-Wechsel
- Benachrichtigungs-Einstellungen
+ Bei Benachrichtigungswechsel vibrieren
+ Benachrichtigungseinstellungen
Ruhezustand
OK
Mittel
Gefahr
- Vibriere bei Bedrohung
- Wähle Gefahrenstufe für Vibrationsbeginn
+ Bei Bedrohungen vibrieren
+ Gefahrenstufe für Vibrationsbeginn wählen
GPS-Einstellung
- Aktiviere GPS für Funkzellenverfolgung
+ GPS für Funkzellenverfolgung aktivieren
N/V
Unbekannt
+ Funkstation unterstützt keine angrenzenden Funkzellen!
+ Die OpenCellID-API-Anfrage wurde nicht beantwortet. Später erneut versuchen?
+ Funkzellendaten werden importiert …
+\nDies kann eine Weile dauern.
+ Funkzellendaten erfolgreich importiert.
+ Fehler beim Importieren der Funkzellendaten.
+ Funkzellen-Datenbank wird importiert.
+ Standort benötigt
+ Funkzellendaten importieren
+
diff --git a/AIMSICD/src/main/res/values-en-rAU/translatable_strings.xml b/AIMSICD/src/main/res/values-en-rAU/translatable_strings.xml
new file mode 100644
index 000000000..a6b3daec9
--- /dev/null
+++ b/AIMSICD/src/main/res/values-en-rAU/translatable_strings.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/AIMSICD/src/main/res/values-es/translatable_strings.xml b/AIMSICD/src/main/res/values-es/translatable_strings.xml
index 2d9deb080..f02b354d0 100644
--- a/AIMSICD/src/main/res/values-es/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-es/translatable_strings.xml
@@ -1,4 +1,4 @@
-
+
Rastreo
Detalles Telefono/SIM
Visor de Bases de datos
@@ -10,7 +10,8 @@
No acepto
AVISO
- "Mediante el uso de AIMSICD usted ha entendido y aceptado que AIMSICD es una aplicación para Android experimental e informativa que puede fallar al detectar vigilancia y rastreo por muchas razones. Usted también entiende que puede ser evitada o derrotada por otros medios, aún no comprendidos por sus desarrolladores. Así también está de acuerdo y entiende que los desarrolladores y las empresas relacionadas con este producto gratuito, pueden de ninguna manera ser considerados responsables de ningún resultado o resultados, en función del uso de esta aplicación. "
+ "Al utilizar AIMSICD usted entiende y acepta que AIMSICD es una aplicación experimental e informativa para Android que puede dar error al detectar la vigilancia y el seguimiento por diferentes razones. Usted también entiende que puede evitarse o solucionarse usando otros medios, aún no comprendidos por sus desarrolladores. Así, también acepta y entiende que los desarrolladores y las empresas relacionadas con este producto gratuito, no pueden, bajo ningún concepto, considerarse responsables de ningún resultado o resultados, en función del uso de esta aplicación. ESTADO DE DESARROLLO: ALPHA!
+ "
Habilitar Deteccion de Ataque
Habilitar Rastreo de Celda
@@ -28,7 +29,7 @@
Informacion de Dispositivo
Informacion de SIM
Informacion de Red
- Nivel de Amenaza Actual
+ Celdas vecinas
Celdas Vecinas
Indicador de Cifrado
Total:
@@ -150,12 +151,12 @@
Iniciar
EXPLICACIÓN DETALLADA
- La Aplicación está detenida o cargando. No hay medidas de protección o detección activas. Por favor abra la barra de navegación y Activelas bajo la seccion de Rastreo!
- "No se detectaron o encontraron Amenazas. Nuestra aplicación verifica constantemente su red basada en las medidas de protección que se han seleccionado en la barra de la navegación y configuracion."
- Área de servicio insegura: por lo menos 1BTS nuevo o desconocido está en funcionamiento en esta vecindad, o usando un algoritmo de cifrado (roto) inseguro menor a A5/3 [detección es WIP]. Esperar que cualquier llamadas/SMS en este ámbito pueda ser interceptado y registrado. Mejor Alejarse de este lugar ahora.
- "Detectado de acciones de servicio hostiles: Un IMSI-Catcher (IMSIC) o BTS falso (FBTS) esta seguimiendo activamente a los usuarios. Rastreo activo se lleva a cabo en esta área. Usted debe salir AHORA de este lugar especialmente si hay disturbios políticos. Sacar la batería o tirar el teléfono!"
- Rastreo hostil detectado: Un FBTS o IMSIC Lo esta Rastreando activamente e impide que el teléfono se conecte a través de su proveedor móvil encriptado normal. Si estás en peligro o teme repercusiones, destruya su teléfono y la SIM y reportelo como robado recientemente.
- Manipulación hostil: Alguien está intentando manipular remotamente tu teléfono. Destrui (o vende) tu teléfono y obtene uno nuevo en algún lugar lejano (no lleves tu teléfono antiguo al lugar de cambio). Utiliza una nueva tarjeta SIM (anónima), cambiar el comportamiento de llamadas y avisa a tus amigos hablando con ellos en persona, no por telefono!
+ La Aplicación está detenida o cargando. No hay medidas de protección o detección activas. Por favor habilita la detección de ataques!
+ No se detectaron amenazas. Tu res es constantemente revisada basa en la configuración de detección activada.
+ Área de servicio insegura: por lo menos 1 BTS nuevo o desconocido está en funcionamiento en esta vecindad, o usando un algoritmo de cifrado (roto) inseguro menor a A5/3. Cualquier llamada/SMS en esta área puede ser interceptado y registrado. Aléjate de este lugar rápidamente.
+ Detectado de acciones de servicio hostiles: Un IMSI-Catcher (IMSIC) o BTS falso (FBTS) esta rastreando activamente a los usuarios. En esta área existe un escaneo activo. Deberías abandonar este lugar por todos los medios, especialmente si existen disturbios políticos. Saca la batería o retira tu tarjta SIM!
+ Rastreo hostil detectado: Un FBTS o IMSIC esta RASTREANDOTE activamente e impide que el teléfono se conecte a través de su proveedor móvil encriptado de forma normal. Si estás en peligro o teme repercusiones, destruya su teléfono y la tarjeta SIM, luego reportelo como robado recientemente.
+ Manipulación hostil: Alguien está intentando manipular remotamente tu teléfono. Destruye (o vende) tu teléfono y consigue uno nuevo en algún lugar lejano. NO lleves tu teléfono antiguo al lugar de cambio!. Utiliza una nueva tarjeta SIM (anónima o sin registros). Modifica el comportamiento de tus llamadas y avisa a tus amigos que estas siendo monitoreado hablando personalmente con ellos, no por telefono!
Cancelar
OK
@@ -259,7 +260,7 @@
Mensaje SMS WAP Push detectado!\nDetalles: Ver visor de base de datos.
-
+ Mostrar celdas vecinas.
Detalles del proveedor SIM, IMEI, TMSI.
Ver comparación detallada de la célula conectada actualmente, con los datos (si existe) en OpenCellID y resaltar las diferencias.
Ver las diferentes tablas de la DB que tenemos.
@@ -311,12 +312,21 @@
Medio
Peligro
- Borrado
+ Eliminado
Error al borrar
La cadena fue añadida a la base de datos
Error al añadir la cadena a la base de datos
- "Cadena no añadida\nLas comillas dobles \" no están soportadas "
+ "Cadena no añadida
+Las comillas dobles \" provocan erro en la base de datos "
Desconocido
-
+Git SHA-Hash: %s
+ Configuración GPS
+ Habilitar GPS para rastreo de celdas
+ Base de datos
+ El BTS no proporciona celdas vecinas!
+ Tiempo de espera sobrepasado para API OpenCell ID. Intentar nuevamente?
+ N/D
+ Número de compilación: %s
+
diff --git a/AIMSICD/src/main/res/values-fi/translatable_strings.xml b/AIMSICD/src/main/res/values-fi/translatable_strings.xml
new file mode 100644
index 000000000..2db5a9683
--- /dev/null
+++ b/AIMSICD/src/main/res/values-fi/translatable_strings.xml
@@ -0,0 +1,148 @@
+
+Tietoja puhelimesta/SIM-kortista
+ Seuranta
+ Poistu
+ OK
+ Peruuta
+ Antennikarttanäkymä
+ Tietokantanäkymä
+ Hyväksyn
+ En hyväksy
+
+ VASTUUVAPAUSLAUSEKE
+
+
+ Hyökkäyksentunnistin
+
+ Tyhjennä tietokanta
+ Kaikki tiedot poistetaan
+Oletko varma?
+ Asetukset
+ Paina uudestaan poistuaksesi.
+
+ Debuggaus
+ Ei internetyhteyttä
+
+
+ Lataa BTS-data
+
+ Laitetiedot
+ SIM-tiedot
+ Verkkoyhteyden tiedot
+
+
+
+ Yhteensä:
+ Maa:
+ Operaattorin tunnus:
+ Operaattorin nimi:
+
+ Sarjanumero:
+ Puhelimen tyyppi:
+ IMEI:
+ RIL-versio:
+
+
+ Tyyppi:
+ LAC:
+ CID:
+
+
+ Verkkovierailu:
+ TA (LTE):
+ Päivitä
+
+
+ PSC:
+
+ Lähetä BTS-data
+
+ Tietoa AIMSICD:sta
+ Versio: %s
+ Versiotarkenne: %s
+ Git SHA-tunniste: %s
+
+ AIMSICD GitHubissa
+ DOKUMENTAATIO
+
+ VASTUUVAPAUSLAUSEKE
+ JULKAISUT
+ MUUTOSLOKI
+ LISENSSI
+
+
+
+ Kaikki OK.
+ Sinua seurataan!
+
+
+
+
+ Verkkotunnus:
+ Järjestelmätunnus:
+
+
+ Sijaintipalvelut pois käytöstä
+ Et voi seurata GPS-dataa ottamatta paikannusta käyttöön. Otetaanko paikannus käyttöön?
+
+ GPS-asetukset
+
+ Järjestelmäasetukset
+ Automaattinen käynnistys
+ Käynnistä automaattisesti uudelleenkäynnistyksen yhteydessä
+
+
+ Suojausasetukset
+ Ilmoitusasetukset
+
+
+
+ (tällä hetkellä vain CDMA-puhelimet)
+
+
+ Käyttöliitymäasetukset
+ Tilakuvakkeet
+ Kuvaketeeman valinta
+ Päivitysväli
+ Hallitse päivitysten tiheyttä
+Nyt valittu: %s
+ OpenCellID-asetukset
+ OpenCellID API-avain
+ Syötä OpenCellID API-avaimesi tähän
+
+
+
+
+
+ Karttanäkymän asetukset
+ Kartan tyyppi
+
+
+ "CID: "
+ "LAC: "
+ "MCC: "
+ "MNC: "
+ "PC: "
+ "Näytteet: "
+ OpenCellID-data
+ "Leveys: "
+ "Pituus: "
+
+ Valitse taulu
+
+ Vastaus:
+ Suorita
+
+
+
+ Aikakatkaisu:
+ Valitse aikakatkaisu
+
+
+ Hiljainen tekstiviesti havaittu
+
+ Taulussa ei ole näytettävää dataa.
+
+ OpenCellID API-avain
+
+
diff --git a/AIMSICD/src/main/res/values-fr/translatable_strings.xml b/AIMSICD/src/main/res/values-fr/translatable_strings.xml
index 83346086d..6f0dbcbec 100755
--- a/AIMSICD/src/main/res/values-fr/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-fr/translatable_strings.xml
@@ -3,81 +3,89 @@
Pistage
- Détails Téléphone/Carte SIM
- Carte des Antennes Relais
- Visionneuse de la Base de Données
+ Détails téléphone/carte SIM
+ Carte des antennes relais
+ Affichage de la base de données
Quitter
OK
Annuler
J\'accepte
- Je n\'accepte pas
+ Je refuse
- AVERTISSEMENT
- "En utilisant AIMSICD vous comprenez et acceptez qu\'AIMSICD est une application expérimentale a usage informatif, qui peux échouer à détecter une éventuelle surveillance pour pleins de raisons. Vous comprenez également que l\'application peut être contournée, évitée ou bloquée par d\'autres moyens que les développeurs ne connaissent pas encore. C\'est pourquoi vous acceptez que les développeurs et entreprises liés à ce produit gratuit, ne peuvent en aucun cas être tenu responsable des résultats ou conséquences de l\'usage de cette application. STATUT DE DÉVELOPPEMENT : ALPHA ! "
+ Notice légale
+ "En utilisant AIMSICD vous comprenez et acceptez qu\'AIMSICD est une application
+\n expérimentale à usage informatif, qui peut échouer à détecter une éventuelle
+\n surveillance pour différentes raisons. Vous comprenez également que
+\n l\'application peut être contournée, évitée ou bloquée par des moyens que
+\n les développeurs ne connaissent pas encore. C\'est pourquoi vous acceptez que
+\n les sociétés et les développeurs liés à ce produit gratuit, ne peuvent en aucun
+\n cas être tenus responsables des résultats ou conséquences de l\'usage de cette
+\n application. STATUT DE DÉVELOPPEMENT : ALPHA !
+\n "
- Démarrer/arrêter la détection des attaques
- Commencer à localiser les cellules
- Effacer/Réinitialiser la Base De Données
+ Détection d\'attaques
+ Suivi des cellules
+ Effacer/réinitialiser la base de données
Toutes les données seront effacées.\nÊtes-vous sûr ?
Préférences
- Appuyez une seconde fois pour quitter.
+ Appuyez à nouveau pour quitter.
Détails sur la/les cellule(s) actuelles
Débogage
- Aucune Connexion Internet
+ Aucune connexion Internet
Impossible de télécharger les données OpenCellID sans connexion à Internet, veuillez activer la connexion de données !
Télécharger les BTS depuis OpenCellID
- Informations sur l\'Appareil
- Informations sur la Carte SIM
- Information Sur le Réseau Mobile
- Niveau de Menace Actuel
- Cellules Voisines
- Indicateur du Chiffrement
+ Informations sur l\'appareil
+ Informations sur la carte SIM
+ Information sur le réseau mobile
+ Cellules voisines
+ Cellules voisines
+ Indicateur du chiffrement
Total :
Pays :
Identifiant de l’opérateur :
Nom de l’opérateur :
IMSI :
- Numéro de Série :
- Type de Téléphone :
+ Numéro de série :
+ Type de téléphone :
IMEI :
Version RIL :
- Nom du Fournisseur :
- Code du Fournisseur :
- Type de Réseau :
+ Nom de l\'opérateur :
+ Code de l\'opérateur :
+ Type de réseau :
LAC :
CID :
- Activité Data :
- Données du statut :
+ Activité données :
+ Statut des données :
Itinérance :
TA (LTE) :
- Rafraichir
- Ouvrir le Menu
- Fermer le Menu
+ Rafraichissement
+ Ouvrir le menu
+ Fermer le menu
PSC :
- Uploader les BTS sur OpenCellID
+ Uploader les données BTS
- À propos de AIMSICD
- Version: %s
+ A propos de AIMSICD
+ Version : %s
Projet Basé sur Android conçu pour détecter et éviter les fausses stations de bases (IMSI-Catchers) sur les réseaux GSM/UMTS.
AIMSICD sur GitHub
DOCUMENTATION
- CONTRIBUTEURS
+ CONTRIBUER
INFOS LÉGALES
RELEASES
CHANGELOG
- LICENSE
+ LICENCE
CREDITS
- Au Repos / Chargement.
+ Au repos / chargement.
Tracking actif près de vous !
Tout est OK.
Vous êtes traqué !
@@ -89,56 +97,56 @@
Identifiant du réseau :
Identifiant du système :
- ID de la Station de Base(BTS) :
+ ID de la station de base :
- Service de Localisation Désactivé
+ Service de localisation désactivé
Vous ne pouvez pas suivre les données GPS sans activer les Services de localisation. Les activer maintenant ?
Paramètres AIMSICD
- Démarrage Automatique
+ Démarrage automatique
Démarrer automatiquement le service lors du Boot
- Service Persistant
+ Service persistant
Le service va continuer à fonctionner après avoir quitté l\'application (décochez pour quitter complètement)
- Paramètres de Protection
- Tracking des Cellules
- Activer le Tracking automatique des Cellules
- Détection des FemtoCellules
+ Paramètres de protection
+ Suivi des cellules
+ Activation du suivi automatique des cellules
+ Détection des FemtoCell
(Actuellement téléphones CDMA seulement)
- Protection contre les FemtoCellules
- Force le mode avion lorsqu\'une FemtoCellules est détectée (réactivez le réseau manuellement)
- Paramètres de l\'Interface
+ Protection contre les FemtoCell
+ Active le mode avion lorsqu\'une Femtocell est détectée (réactivation manuelle de réseau )
+ Paramètres de l\'interface
Icone de statut
- Sélection de l\'Icone
- Taux de Rafraichissement
- Contrôle la fréquence de la mise à jour des données\nSélection courante: %s
+ Sélection de l\'icone
+ Taux de rafraichissement
+ Contrôle la fréquence de la mise à jour des données\nSélection courante : %s
Paramètres OpenCellID
Entrer une clé OpenCellID
Entrez votre clé de l\'API OpenCellID ici
- Monitoring des Cellules
- Activer le Monitoring des Cellules
+ Monitoring des cellules
+ Activer le monitoring automatique des cellules
Demander une clé de l’API d’OpenCellID
Demander une clé pour accéder aux données d\'OpenCellID
Préférences de la carte
- Type de Carte
- Type de Carte
+ Type de carte
+ Affiche différents types de carte
- CID:
- LAC:
- MCC:
- MNC:
- PC:
- "Echantillons: "
+ "CID : "
+ "LAC : "
+ "MCC : "
+ "MNC : "
+ "PC : "
+ "Exemples : "
Données OpenCellID
"Lat : "
"Lon : "
- Sélectionnez la Table
+ Sélectionnez la table
- @string/unique_bts_data
- @string/bts_measurements
@@ -154,39 +162,39 @@
Réponse :
Exécuter
Périphérique de série actuel :
- Sélectionnez un périphérique Série
+ Sélectionnez un périphérique série
Périphériques détectés :
Délai dépassé :
- Sélectionnez le délai Maximum
+ Sélection du délai
Entrez la commande AT ici.
- SMS Silencieux détecté!
- SMS Silencieux détecté!\nDetails: Voir la base de donnée.
+ SMS silencieux détecté !
+ SMS silencieux détecté !\nDétails : voir la base de données.
La table ne contient aucune donnée.
- clé de l\'API OpenCellID
- Appuyez sur OK pour demander une clé de l\'API d\'OpenCellID.org. Cela vous permettra de télécharger leurs données et de les afficher dans la carte. Cela vous permettra également d\'uploader des données sur les cellules. Notez que si vous n\'uploadez pas de données sur les cellules dans les 20 jours, votre clé API peut devenir inactive.
- Erreur lors de l\'obtention de la clé:
+ Clé de l\'API OpenCellID
+ Appuyez sur OK pour demander une clé API depuis OpenCellID.org. Cela vous permettra de télécharger leurs données et de les afficher dans la carte. Cela vous permettra également d\'envoyer des données sur les cellules. Notez que si vous n\'envoyez aucunes données sur les cellules dans les 20 jours, votre clé API peut devenir inactive.
+ "Erreur lors de l\'obtention de la clé : "
Nouvelle clé API enregistrée.
- Logs de Debugging
+ Logs de débogage
Effacer
Copier
- Logs copiés dans le presse papier.
- Arrêter
+ Logs copiés dans le presse-papier.
+ Arrêt
Démarrage
EXPLICATION DÉTAILLÉE
L’application est inactive ou en chargement. Aucune mesure de protection ou de détection n’est activée. Veuillez activer la détection d’attaques !
Aucune menace détectée. Notre application vérifie constamment votre réseau à partir des mesures de protections que vous avez paramétré dans le menu et les préférences.
- Zone avec un service non sécurisé : Au moins une BTS est nouvelle ou inconnue dans les environs, ou bien celle-ci utilise un système de chiffrement considéré comme non sûr (inférieure à A5/3). Tout appel/SMS envoyé ou reçu dans cette zone peut être intercepté et enregistré. Veuillez quitter cet endroit rapidement.
- 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. Scan actif dans cette zone. Vous devriez quitter ce lieu par n\'importe quel moyen, particulièrement s’il y a des troubles politiques. Enlevez votre batterie et votre carte SIM !
- Tracking hostile 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 et votre carte SIM, puis déclarez-les volés.
- Manipulation hostile : quelqu’un essaye de contrôler à distance votre combiné. Détruisez ou vendez votre téléphone et prenez-en un nouveau loin d’ici. N’y emmenez pas votre téléphone précédent ! Utilisez une nouvelle carte SIM anonyme achetée via le navigateur TOR, changez vos habitudes d’appel et prévenez vos amis en face-à-face, PAS en les appelant avec téléphone !
+ Zone avec un service non sécurisé : au moins une BTS est nouvelle ou inconnue dans les environs, ou bien celle-ci utilise un système de chiffrement considéré comme non sûr (inférieure à A5/3). Tout appel/SMS envoyé ou reçu dans cette zone peut être intercepté et enregistré. Veuillez quitter cet endroit rapidement.
+ Actions hostiles de la part d\'un service détecté : un IMSI-Catcher (IMSIC) ou une fausse BTS (FBTS) est actuellement en train de traquer ses utilisateurs. Scan actif dans cette zone. Vous devriez quitter ce lieu par n\'importe quel moyen, particulièrement s’il y a des troubles politiques. Enlevez votre batterie et votre carte SIM !
+ Tracking hostile détecté : une fausse BTS ou un 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 et votre carte SIM, puis déclarez-les volés.
+ Manipulation hostile : quelqu’un essaye de contrôler à distance votre combiné. Détruisez ou vendez votre téléphone et prenez-en un nouveau loin d’ici. N’y emmenez pas votre téléphone précédent ! Utilisez une nouvelle carte SIM anonyme avec une fausse identité, enregistrée via le Navigateur Tor. Changez vos habitudes d’appel et prévenez vos contacts que vous êtes surveillé en face-à-face, PAS en les appelant au téléphone !
Annuler
OK
@@ -198,49 +206,50 @@
Normal
Manuel
Automatique
- 2 s
- 5 s
- 10 s
- 25 s
- 45 s
+ 2 sec
+ 5 sec
+ 10 sec
+ 25 sec
+ 45 sec
1 min
- 5 min
- 2 s
- 5 s
- 10 s
- 20 s
- 30 s
+ 5 mins
+ 2 sec
+ 5 sec
+ 10 sec
+ 20 sec
+ 30 sec
10 min
Page d\'accueil
Paramètres
Application
- Monitoring des Cellules.
- 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.
+ Monitoring des informations de cellule.
+ Arrêt du monitoring des cellules.
+ Informations de suivi des cellules.
+ Arrêt du suivi des cellules.
+ Une seule demande de clé d\'API est possible par 24h !\nEssayez plus tard.
L’identifiant de la cellule n’est pas dans la base de données OpenCelllID !
Zone de service hostile : changement de LAC détecté !
- Détection des FemtoCellules Activé.
- Tracking des Cellules Activé.
- Monitoring des Cellules Activé.
- Type de Téléphone
- Statut: Inactif.
- Statut: Bon. Aucune Menace Détectée.
+ Détection active des FemtoCell .
+ Suivi actif des cellules.
+ Monitoring des cellules activé.
+ Type de téléphone
+ Statut : inactif.
+ Statut : bon. Aucune menace détectée.
ALERTE : menace détectée !
- ALERTE : connexion femtocell détectée !
+ ALERTE : connexion femtocellule détectée !
ALERTE : SMS silencieux détecté !
- ALERTE: SMS Wap Push Détecté!
+ ALERTE : SMS WAP Push détecté !
ALERTE : indicateur de message en attente détecté !
- AIMSICD ne peut détecter les connexions FemtoCellules que sur les appareils CDMA.
+ AIMSICD ne peut détecter les connexions femtocell que sur les appareils CDMA.
État du service changé !
- : Arrêt du tracking des FemtoCellules.
- ALERTE : pistage par femtocell détecté !
- Rafraichir tous les
- Raffaichissement…
+ : arrêt du suivi des femtocell.
+ ALERTE : pistage par femtocellule détecté !
+ Rafraichir toutes les
+ Rafraichissement…
secondes.
- Contact d\'OpenCellID pour récupérer les données…\nCela peut prendre jusqu\'à une minute.
- Impossible de déterminer votre dernière position.\nActivez les services et réessayez.
+ Récupération des données depuis OpenCellID …
+\nCela peut prendre jusqu\'à une minute.
+ Impossible de déterminer votre dernière position.\nActivez les services de localisation et réessayez.
Aucune position à afficher sur la carte.
Aucune donnée à publier.
Erreur de téléchargement :
@@ -248,89 +257,98 @@
Erreur lors de la récupération des données OpenCellID.\nVérifiez votre réseau !
Données OpenCellID reçues avec succès.\nCarte Mise à jour.
Envoi des données BTS à OpenCellID réussi.
- Erreur lors de l’envoi des données BTS aux les serveurs d’OpenCellID !
- Clé de l’API d’OpenCellID non trouvée!\nEntrez d’abord une clé dans les paramètres.
- 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 s’est produite lors de l’accès au périphérique série.\nVérifiez les messages d’erreurs de vos journaux et postez-les sur notre dépôt GitHub.
+ Erreur lors de l’envoi des données BTS aux serveurs d’OpenCellID !
+ Clé de l’API d’OpenCellID non trouvée !\nEntrez d’abord une clé dans les paramètres.
+ Rafraîchissement des infos CellId
+ Impossible d\'obtenir les accès ROOT.
+\nL\'injection de commandes AT à besoin d\'un accès ROOT.
+\nVérifiez que votre téléphone est rooté puis réessayez.
+ Busybox non trouvé.\nL\'injection de commandes AT a besoin de Busybox pour fonctionner correctement.\nVérifiez que votre appareil possède Busybox et ressayez.
+ Une erreur inconnue s’est produite lors de l’accès au périphérique série.\nVeuillez vérifier les messages d’erreurs dans vos journaux et postez-les sur notre dépôt 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
+ 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
Statut :
Repos
OK
MOYEN
- HAUT
+ Elevé
DANGER
- COURREZ !
+ Courrez !
- Ce menu concerne les utilisateurs avancés seulement!\n\nN\'insérez pas de texte aléatoire ici, cela pourrai rendre le système de détection hors de contrôle.\n\nPour ajouter du texte, sélectionnez le type de SMS dans le menu, tapez votre texte de détection et appuyez sur Insérer.\n\nPour supprimer le texte de la Base de Données, appuyez longuement sur celui-ci dans la Visionneuse.
+ Ce menu concerne uniquement les utilisateurs avancés !
+\n
+\nN\'insérez pas de texte aléatoire ici, cela pourrait rendre le système de détection hors de contrôle.
+\n
+\nPour ajouter du texte, sélectionnez le type de SMS dans le menu, tapez votre texte de détection et appuyez sur Insérer.
+\n
+\nPour supprimer le texte de la base de données, appuyez longuement sur celui-ci dans la liste.
- Ce menu concerne les utilisateurs avancés seulement!\nPour supprimer un SMS de la base de donnée, appuyez longuement sur celui-ci dans la Visionneuse.
+ Ce menu concerne uniquement les utilisateurs avertis!
+\nPour supprimer un SMS de la base de donnée, appuyez longuement sur celui-ci dans la liste.
Supprimer le SMS sélectionné
Paramètres avancés
- Texte de Détection
+ Texte de détection
Supprimer un SMS
Insérer et supprimer des textes de détection
Supprimer le SMS sélectionné
Activer la détection SMS
- le Root est requis pour activer la détection SMS
+ Root est requis pour activer la détection SMS
- Texte de Détection
+ Texte de détection
ATTENTION !
- SMS Silencieux Détecté
- Message Type-0 Détecté!\nDétails: Voir la Base de Données.
+ SMS silencieux détecté
+ Message Type-0 Détecté !\nDétails : voir la base de données.
ATTENTION !
- SMS MWI Détecté
- SMS de contrôle de la messagerie vocale (MWI) Détecté!\nDétails: Voir la Base de Données.
- SMS Wap Push Détecté
- Message SMS Wap Push Détecté!\nDétails: Voir la Base de Données.
+ MWI détecté
+ SMS de contrôle de la messagerie vocale (MWI) détecté !\nDétails : voir la base de données.
+ WAP Push détecté
+ Message SMS Wap Push détecté !\nDétails : voir la base de données.
-
- Détail du fournisseur de la carte SIM, IMEI, TMSI.
- Afficher une comparaison détaillée des cellules connectées avec les données (s’il y en a) trouvées dans OpenCelllD et surligner les différences.
- Voir les différentes Tables de la Base de Données.
+ Affiche le voisinage de cellules.
+ Détail de l\'opérateur de la carte SIM, IMEI, TMSI.
+ Affiche une comparaison détaillée des cellules connectées avec les données trouvées dans OpenCelllD (s’il y en a) et montre les différences.
+ Afficher 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).
- Démarre/Arrête la surveillance AIMSICD et compare les détails de chaque cellule avec la Base de Donnée.
+ Démarre/arrête la détection des attaques et compare les détails de chaque cellule avec la base de données.
Commencer à localiser les cellules pour les afficher sur la carte des antennes et les envoyer éventuellement à OpenCellID plus tard.
- paramètres AIMSICD : règles de protection, temps de requètes et comportement du réseau.
+ Paramètres AIMSICD : règles de protection, temps de requètes et comportement du réseau.
Effacer les tables sélectionnées de la Base de Données.
- Obtenir une clé pour utiliser la base de donnée d\'OpenCellID pour uploader vos données…
+ Obtenir une clé pour utiliser la base de donnée d\'OpenCellID pour uploader et télécharger des données…
Explication des icônes de statut et du projet.
Télécharge la base de données OpenCellID.
Envoie vos BTS à la base de données OpenCellID.
- Afficher et envoyer les logs d\'application.
+ Collecter et envoyer les logs d\'erreur.
Quitter cette application.
Recherche de votre localisation en cours…
- Données BTS Uniques
+ Données BTS uniques
Données BTS
Données importées d’OpenCellID
Codes MCC par pays
- SMS Silencieux
+ SMS silencieux
Événements
- Puissance des signaux Mesurés
+ Puissance des signaux mesurés
- *** Recherche de périphériques AT…\n
- Trouvé:
+ *** Recherche de périphériques série AT…\n
+ "Trouvé : "
*** Recherche terminée ***\n
- BTS actuellement connectée à votre Téléphone
+ BTS actuellement connectée à votre téléphone
BTS connu et sécurisé
BTS inconnu ou non-sécurisé
BTS nouvelle ou récemment ajoutée
@@ -378,7 +396,7 @@
Numéro du build : %s
Empreinte SHA de Git : %s
Paramètres GPS
- Activer le GPS pour la localisation des cellules
+ Activer le GPS pour localiser les cellules
Paramètres de notification
Activer le vibreur
Vibrer lorsque la notification change
@@ -389,12 +407,22 @@
Moyen
Danger
- "Chaîne de caractères non ajouté\nLe guillemet double (\") va provoquer une erreur dans la base de données "
+ "Chaîne de caractères non ajoutée
+Le guillemet double (\") va provoquer une erreur dans la base de données "
La chaîne de caractères a été ajoutée à la base de données
Échec lors de l’ajout de la chaîne de caractères à la base de données
Indisponible
- Ignoré
+ Inconnu
Base de données
- La requête de l\'API OpenCellID met trop de temps. Réessayer plus trad ?
+ La requête de l\'API OpenCellID met trop de temps. Réessayer plus tard ?
+ Une BTS ne fournit aucune cellule voisine !
+ Importer les informations des antennes
+
+ Téléchargement des données d\'antenne
+\nVeuillez patienter.
+ Les données d\'antenne ont été téléchargées avec succès.
+ Erreur lors de l\'importation des données d\'antenne.
+ Importation de la base de données d\'antenne.
+ Indiquez le lieu
diff --git a/AIMSICD/src/main/res/values-id/translatable_strings.xml b/AIMSICD/src/main/res/values-id/translatable_strings.xml
new file mode 100644
index 000000000..df5e7879e
--- /dev/null
+++ b/AIMSICD/src/main/res/values-id/translatable_strings.xml
@@ -0,0 +1,94 @@
+
+Detail Telepon/SIM
+ Penampil Peta Antena
+ Penampil Basisdata
+ Keluar
+ OK
+ Batalkan
+ Saya setuju
+ Saya tidak setuju
+
+ Pendeteksian Serangan
+ Bersihkan Basisdata
+ Semua data akan dihapus. Apakah Anda yakin?
+ Preferensi
+ Tekan lagi untuk keluar.
+ Tidak ada koneksi internet
+ Tidak dapat mengunduh data OpenCellID tanpa koneksi internet, mohon aktifkan koneksi data!
+
+ Mengunduh data BTS
+
+ Informasi Perangkat
+ Informasi SIM
+ Informasi Jaringan
+ Total:
+ Negara:
+ ID operator:
+ Nama operator:
+ IMSI:
+ Serial:
+ Tipe telepon:
+ IMEI:
+ Versi RIL:
+ Nama provider:
+ Kode provider:
+ Tipe:
+ LAC:
+ CID:
+ Aktivitas Data:
+ Status data:
+ Roaming:
+ TA (LTE):
+ Segarkan
+ Buka Navigation Drawer
+ Tutup Navigation Drawer
+ PSC:
+
+ Mengunggah Data BTS
+
+ Tentang AIMSICD
+ Versi: %s
+ Nomor build: %s
+ Git SHA-Hash: %s
+ AIMSICD di Github
+ Dokumentasi
+ Kontribusi
+ Persetujuan
+ Rilis
+ Log Peubahan
+ Lisensi
+ Credits
+ Lowong / Menunggu.
+ Menghapus SMS
+ Aktifkan Deteksi SMS
+ Root dibutuhkan untuk mengaktifkan deteksi SMS
+
+ Deteksi Strings
+ PERHATIAN!
+ SMS Diam-diam Terdeteksi
+ MWI Terdeteksi
+ Kumpulkan dan mengirim catatan kesalahan.
+ Keluar aplikasi ini.
+ Menunggu untuk lokasi…
+ Membutuhkan lokasi
+ BTS Data yang Unik
+ Pengukuran BTS
+ Perkiraan Kekuatan Signal
+
+ Ditemukan:
+ *** Pengaturan berhasil ***
+\n
+
+ BTS yang saat ini terhubung
+ BTS yang diketahui terenkripsi
+ BTS yang tidak aman atau tidak diketahui
+ BTS yang baru ditambahkan
+
+ Mendapatkan Kunci API OpenCellID...
+
+ Terhapus
+ Gagal untuk menghapus
+ N/A
+ Tidak diketahui
+
+
diff --git a/AIMSICD/src/main/res/values-ja/translatable_strings.xml b/AIMSICD/src/main/res/values-ja/translatable_strings.xml
index 88fd1fed0..00a218053 100644
--- a/AIMSICD/src/main/res/values-ja/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-ja/translatable_strings.xml
@@ -10,11 +10,16 @@
同意しない
免責事項
- "AIMSICD の使用について、AIMSICD は多くの理由により監視と追跡の検出に失敗することがある、実験的で有益な Android アプリケーションであることを理解の上、同意します。また、あなたは、それがまだ開発者が理解していない、他の手段で回避または無効にできることもあることを理解します。また、このフリーの製品に関連した開発者や企業は、このアプリケーションの使用によって得られる結果や出力に対して、一切責任を負わないことにも同意し、理解します。開発状況: アルファ! "
+ "AIMSICD の使用について、AIMSICD は多くの理由により監視と追跡の検出に失敗することがある、
+実験的で有益な Android アプリケーションであることを理解の上、同意します。また、あなたは、
+それがまだ開発者が理解していない、他の手段で回避または無効にできることもあることを理解します。
+また、このフリーの製品に関連した開発者や企業は、このアプリケーションの使用によって得られる結果や、
+出力に対して、一切責任を負わないことにも同意し、理解します。開発状況: アルファ!
+ "
- 攻撃の検出を切り替え
- 基地局の追跡を切り替え
+ toggle_attack_detection
+ toggle_cell_tracking
データベースのクリア/リセット
すべてのデータが削除されます。\nよろしいですか?
プリファレンス
@@ -113,12 +118,12 @@
地図の種類
異なる形式の地図を表示します
- "CID: "
- "LAC: "
- "MCC: "
- "MNC: "
- "PC: "
- "サンプル: "
+ CID:
+ LAC:
+ MCC:
+ MNC:
+ PC:
+ サンプル:
OpenCellID データ
"緯度: "
"経度: "
@@ -141,7 +146,7 @@
OpenCellID API キー
OpenCellID.org から API キーを要求するには、OK を押します。これでデータをダウンロードして、地図に表示することができるようになります。基地局のデータをアップロードすることもできます。20 日以内に基地局データをアップロードしない場合、あなたの API キーが非アクティブになる可能性があることに注意してください。
- "キーの取得エラー: "
+ キー取得エラー:
新しい API キーを保存しました。
デバッグ ログ
@@ -152,7 +157,7 @@
開始
詳細な説明
- アプリはアイドリングまたはロード中です。保護と検出の対策が有効になっていません。攻撃検出を切り替えてください!
+ アプリはアイドリングまたはロード中です。保護と検出の対策が有効になっていません。攻撃の検出を有効にしてください!
脅威は検出していません。有効にした検出の設定に基づいて、常にネットワークをチェックしています。
ベースバンド プロセッサに AT コマンドを送信できるようにするインターフェイスです (ROOT が必要)。
@@ -290,7 +295,7 @@
測定した信号の強度
*** AT シリアルデバイスを検索しています…\n
- "見つかりました: "
+ 見つかりました:
*** セットアップが完了しました ***\n
現在接続した BTS
@@ -328,4 +333,13 @@
データベース
OpenCellID API リクエストがタイムアウトしました。後でもう一度試しますか?
+ BTS は、隣接基地局を提供していません!
+ 基地局のデータをインポート
+
+ 基地局のデータをインポートしています…
+処理に時間がかかることがあります。
+ 基地局のデータを正常にインポートしました。
+ 基地局のデータをインポート中にエラー。
+ 基地局のデータベースをインポートします。
+ 場所が必要
diff --git a/AIMSICD/src/main/res/values-kab/translatable_strings.xml b/AIMSICD/src/main/res/values-kab/translatable_strings.xml
new file mode 100644
index 000000000..d3940e898
--- /dev/null
+++ b/AIMSICD/src/main/res/values-kab/translatable_strings.xml
@@ -0,0 +1,259 @@
+
+Aḍfaṛ
+ Ffeɣ
+ IH
+ Sefsex
+ Ur-tamasit
+ Aḍfaṛ
+ Ismenyifen
+ &Débogage
+ Ulac tuqqna n Internet
+ Talɣut
+ Amatu:
+ Tamurt:
+ Tiliɣri:
+ Lqem:
+ Isem n unamad:
+ Anaw:
+ Armud n isefka:
+ Addad n isefka:
+ Smiren
+ Tuttuyt %s
+ TASEMLIT
+ TTEKKI
+ Ur-tamasit
+ Turagt
+ Ismaden
+ Asula ID n uzeṭṭa:
+ Asulay ID n unagraw:
+ aɣewwaṛ
+ Imsektayen n unagraw
+ Aḍfaṛ
+ Afmidi n usmiren
+ Takarḍa
+ "Tar: "
+ "Taz: "
+
+ Tiririt:
+ Selkem
+ Tanzagt tezri:
+ Sfeḍ
+ Nɣel
+ Seḥbes
+ Exécuté le
+
+ Sefsex
+ IH
+
+ IH
+ D alemmas
+ Amlal
+ Amagnu
+ Awfus
+ Awurman
+ tasint
+ tasint
+ tasint
+ MAIN
+ Iγewwaṛen
+ Taffa n isefka
+ Asnas
+ Tiliɣri
+ tasinin.
+ Addad:
+ IH
+ D alemmas
+ Awriran
+ Azzel!
+
+ KKES
+ Yettwaf:
+ Yettwakkes
+ Ur izmir ara ad yekkes
+ N/A
+ Arussin
+
+ Talqayt n tiliɣri/takarḍa SIM
+ Takarḍa n tsekwa s umedwel
+ Askan n taffa n isefka
+ Qebleɣ
+ Ugiɣ
+
+ S useqdec n AIMSICD ad tegzuḍ udiɣ ad tqebleḍ d akken AIMSICD d asnas asermitan i telɣut kan, yezmer ad yecceḍ di tifin n tɛessast ɣef kra n sabbat. Ad tegzuḍ daɣen d akken asnas yezzmer ad yettwasekkey, ad yetttwazgel neɣ ad yewḥel s useqdacen n n wallalen ur ssinen ara yakan i neflayen. Ɣef aya ara tqebleḍ d akken tikebbaniyin akked ineflayen icudden ar ufaris-agi n baṭel, ur zmiren ara ad ilin d imasayen ɣef igmaḍ neɣ ayenara d-yeglu useqdec n usnas-agi. ADDAD N TNEFLIT: ALPHA !
+
+ Tifin n uẓdam
+ Sfeḍ/Ales awennez n taffa n isefka
+ Akk isefka ad ttwakksen.
+\nAd tkemmleḍ?
+ Senned tikelt nniḍen akken ad teffɣeḍ.
+ Talqayt ɣef tebniqt tamirant
+ Ur izmir ara ad d-isider isefka OpenCellID s war tuqqna Internet, red tuqqna n isefka!
+
+ Sider isefka BTS
+
+ Kter isefka BTS
+
+ Talɣut ɣef yibenk
+ Talɣut ɣef uẓeṭṭa
+ Tibniqin iqerben
+ Tibniqin iqerben
+ Anamal n uwgelhen
+ Asulay ID n unamad:
+ Isem n unamad:
+ IMSI:
+ Uṭṭun n umazrar:
+ IMEI:
+ Tanglat n unamad:
+ LAC:
+ CID:
+ Roaming:
+ TA (LTE):
+ Ldi umuɣ
+ Mdel umuɣ
+ PSC:
+
+ Sali isefka BTS
+
+ Ɣef AIMSICD
+ "Uṭṭun n lqem: %s"
+ Adsil SHA n Git: %s
+ Asenfaṛ yebna ɣef Android, yettwafṣel i tifin d uzgel n tiɣsar tizadurin (IMSI-Catchers) deg iẓedwa GSM/UMTS.
+ AIMSICD di GitHub
+ ILEQMAN
+ AƔMIS N IBEDDILEN
+ Deg usteɛfu / Asali.
+ Adfaṛ urmid iqerben ɣur-k!
+ Yal taɣawsa tetteddu.
+ Ad k-ṭṭafaṛen!
+ Tamnaḍt n umeẓlu tamihawt. Ffeɣ seg-s!
+ Azzel! Ibenk-ik yettwaṭṭef!
+ Senned ɣef tignitin n waddad ddaw-a i ugar n tenlɣut:
+
+ Asulay Id n teɣsert tazadurt:
+
+ Ameẓlu n usideg yensa
+ Ur tezmireḍ ara ad tefreḍ isefka GPS war ma tremdeḍ imeẓla n usideg. Rmed-iten tura?
+
+ Rmed GPS i usideg n tibniqin
+ Asenker awurman
+ Senker s wudem awurman ameẓlu di tnekra n yibenk
+ Ameẓlu yezgan
+ Ameẓlu ad ikemmel ad yeddu seld tuffɣa seg usnas (kkes ṛṛcem akken ad teffɣeḍ meṛṛa seg umeẓlu)
+ Iɣewwaṛen n ummesten
+ Iɣewwaṛen n yilɣa
+ Rmed aḍfaṛ awurman n tibniqin
+ Tifin n Femtocell
+ (Akka tura ala tiliɣriyin CDMA)
+ Ammesten mgal Femtocell
+ Rmed askar n usafag ticki yettwaf Femtocell (tulsa n urmad n uẓeṭṭa s ufus)
+ Iɣewwaṛen n ugrudem
+ Tignit n waddad
+ Afran n tignit
+ Asenqed n tesnigert n uleqqem n isefka
+\nAfran amiran: %s
+ Iɣewwaṛen OpenCellID
+ Tasarut API OpenCellID
+ Sekcem tasarut API OpenCellID
+ Asefrek n tibniqin
+ Rmed asefrek awurman n tibniqin
+ Suter tasarut API OpenCellID
+ Suter tasarut akken ad tkecmeḍ ar isefka OpenCellID
+
+ Ismenyifen n tkarḍa
+ Sken anawen nniḍen n tkarḍa
+
+ CID:
+ LAC:
+ MCC:
+ MNC:
+ PC:
+ Imedyaten:
+ Isefka OpenCellID
+ Fren tafelwit
+ Agrudem n tladna AT
+ Ibenk n umazrar amiran:
+ Fren ibenk n umazrar
+ Ibenkan yettwafen:
+ Afran n tenzagt
+ Sekcem taladna AT dagi.
+
+ SMS asusam yettwaf
+ SMS asusam yettwaf!
+\nTalqayt: Wali taffa n isefka.
+ Tafelwit ur tegbir ara isefka.
+
+ Tasarut API OpenCellID
+ Senned ɣef IH akken ad tsutreḍ tasarut API si OpenCellID.org.Wagi ad k-yeǧǧ ad tsidreḍ isefka-nsen sakin ad ten-id-sekneḍ di tkarḍa. Ayagi ad k-yeǧǧ daɣen ad tazneḍ isefka n tibniqin. Ẓer d akken ma yella ur tuzneḍ ara isefka di 20 n wussan, tasarut-ik tezmer ad tens.
+ Tuccḍa deg awway n tsarut:
+ Tasarut API tamaynut tettwasekles.
+
+ Aɣmis n temseɣtayt
+ Iɣmisen ttwaneɣlen ɣef afus.
+ ASEGZI LEQQAYEN
+ Asnas yensa neɣ yettali-d. Ulac ammesten neɣ tifin yettwafen. Ma ulac aɣilif, rmed tifin n uẓdam!
+ Rmed anhaz
+ Senhez ticki alɣu ibeddel
+ Senhez ticki yella wayen ur yelhin ara
+ Idle
+ Amihaw
+
+ 2 n tasinin
+ 5 n tasinin
+ 10 n tasinin
+ 20 n tasinin
+ 45 n tasinin
+ 2 n tasinin
+ 5 n tasinin
+ 10 n tasinin
+ 20 n tasinin
+ 30 n tasinin
+ Asulay ID n tebniqt ulac-itt di taffa n isefka OpenCellID!
+ Ɣur-k: Tuqqna FemtoCell tettwaf!
+ Ɣur-k: SMS asusam yettwaf!
+ AIMSICD yezmer kan ad yaf tuqqniwin FemtoCell deg ibenkan CDMA.
+ : iseḥbes tuddniwin FemtoCell yeṭṭafaren.
+ "Ɣur-k: Aḍfaṛ FemtoCell yettwaf!"
+ Tuccḍa n usider:
+ isefka BTS ulin akken iwata ar OpenCellID.
+ Ur izmir ara ad yeddu s UẒAR ɣef yibenl-ik.
+\nAsekcem n tladna AT tesra anekcum AẒAR.
+\nMa ulac aɣilif, wali ma yella ibenk-ik i teddu s uẓar sakin ɛreḍ.
+ Ur izmir ara ad yaf Busybox ɣef yibenk-ik.
+\nTaladna AT tesra isuddisen Busybox akken ad teddu akken iwata.
+\nMa ulac aɣilif, wali mayella Busybox yebded ɣef yibenk-ik sakin ɛreḍ.
+ Awway n tsarut API OpenCellID…
+ Ur izmir ara ad yernu takarḍa!
+ Idle
+ Amihaw
+ Kkes SMS yettwafen
+
+ Iɣewwaren n useqdac leqqayen
+ Izriren n tifin
+ Kkes SMS yettwafen
+
+ Rmed tifin n SMS
+ Izriren n tifin
+ ƔUR-k!
+ ƔUR-k!
+ MWI yettwaf
+ Ad d-isider taffa n isefka n OpenCellID.
+ Ad isali BTS-ik ar taffa n isefka OpenCellID.
+ Ffeɣ seg usnas-agi.
+ Yettraǧu adi…
+ Yesra adig
+ Aktili n BTS
+ Adig MCC amezwer
+ *** Anadi n n yibenkan n umazrar AT…
+\n
+ *** Asebded yemmed***
+\n
+
+ BTS yeqqnen tura
+ BTS arussin neɣ araɣelsan
+ BTS amaynut neɣ aneggaru yettwarnan
+
+ Awway n tsarut API OpenCellID...
+
+ Ulac ayen n dir yettwafen, Asnas-nneɣ yessenqad yal tikelt aẓeṭṭa-ik s kra n walleln n ummesten i tesbaduḍ deg umuq akked ismenyifen.
+ Ulac ayen n dir yettwafen, Asnas-nneɣ yessenqad yal tikelt aẓeṭṭa-ik s kra n wallalen n ummesten i tesbaduḍ deg umuɣ akked ismenyifen.
+
diff --git a/AIMSICD/src/main/res/values-lt/translatable_strings.xml b/AIMSICD/src/main/res/values-lt/translatable_strings.xml
index df540f30d..6d22c57c8 100644
--- a/AIMSICD/src/main/res/values-lt/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-lt/translatable_strings.xml
@@ -1,4 +1,4 @@
-
+
Išeiti
Gerai
Atšaukti
@@ -9,8 +9,8 @@
"Naudodamasis AIMSICD suprantu ir sutinku, kad AIMSICD yra ekspermentinė Android aplikacija, kuri gali ir neaptikti visų bandymų mane sekti. Suprantu, kad ši programa gali būti apgauta būdais, iki šiol nežinomiems jos kūrėjams. Taigi, sutinku ir suprantu, kad kūrėjai bei įmonės susijusios su šiuo nemokamu produktu negali būti laikomi atsakingais dėl rezultatų bei pasekmių kylančių dėl šios programos naudojimo. "
Duombazės peržiūra
- Įjungti atakų aptikimą
- Įjungti radijo bokšto sekimą
+ Atakų aptikimas
+ Radijo bokšto sekimas
Išvalyti duombazę
Duomenys bus ištrinti.\nTęsti?
Nustatymai
diff --git a/AIMSICD/src/main/res/values-nb/translatable_strings.xml b/AIMSICD/src/main/res/values-nb/translatable_strings.xml
index 210291850..11ecaddaa 100644
--- a/AIMSICD/src/main/res/values-nb/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-nb/translatable_strings.xml
@@ -1,44 +1,50 @@
Sporing
- Telefon/SIM Detaljer
- Antenne Kart
- Databasefremviser
+ Telefon-/SIM -detaljer
+ Antennekart
+ Databaseviser
Avslutt
OK
Avbryt
Jeg er enig
Jeg er uenig
- VIKTIG
- "Ved å bruke AIMSICD har du forstått og godtatt at AIMSICD er en experimentell og informativ Android applikasjon som kan feile i å oppdage sporing og overvåkning av flere årsaker. Du er også klar over at den kan bli lurt og slått av årsaker ukjent for utviklerne. Du forstår og at utviklerne og selskap tilknyttet denne gratisappen ikke kan holdes ansvarlig for resultater og konsekvenser vedrørende bruken av denne applikasjonen. UTVIKLINGS-STADIE: ALPHA! "
-
- Styr Angrepsoppdaging
- Styr Cellesporing
- Nullstill Database
+ ANSVARSFRASKRIVNING
+ "Ved å bruke AIMSICD har du forstått og godtatt at AIMSICD er et eksperimentelt
+\nog informativt Android-program som kan mislykkes i å oppdage sporing og
+\novervåkning av flere årsaker. Du er også klar over at det kan bli lurt eller
+\ngi tapt av årsaker ukjent for utviklerne. Du forstår også at utviklerne og selskap
+\ntilknyttet dette gratisprogrammet ikke kan holdes ansvarlig for resultater og konsekvenser
+\nvedrørende bruken av dette programmet. UTVIKLINGS-STADIE: ALPHA!
+\n "
+
+ bytt_angreps_oppdagelse
+ bytt_angreps_oppdagelse
+ Nullstill database
Alle data vil slettes.\nEr du sikker?
- Trykk på nytt for å Avslutte.
- Alle Nåværende Celledetaljer
+ Trykk igjen for å avslutte.
+ Alle nåværende celledetaljer
Feilsøking
- Ingen Internettforbindelse
- Klarte ikke laste ned OpenCellID data uten Internettilkobling, vennligst slå på datatilgang!
+ Ingen internettforbindelse
+ Klarte ikke laste ned OpenCellID-data uten internettilkobling, slå på datatilgang!
- Last ned BTS Data
+ Last ned BTS-data
- Telefoninformasjon
- SIM Informasjon
+ Enhetsinformasjon
+ SIM-informasjon
Nettverksinformasjon
- NaboCeller
- Naboceller
- Krypterings Indikator
+ Celler i nærheten av deg
+ Celler i nærheten av deg
+ Krypteringsindikator
Total:
Land:
- Operatør ID:
+ Operatør-ID:
Operatørnavn:
- Simkortnummer:
+ IMSI:
Serienummer:
Telefontype:
- TelefonSerienummer:
- Radio Version:
+ IMEI:
+ Radioversion:
Operatørnavn:
Operatørkode:
Type:
@@ -46,15 +52,15 @@
CelleID:
Dataaktivitet:
Datastatus:
- Søker:
+ Gjesting:
TA (LTE):
Oppdater
- Åpne Navigasjons Skuffe
+ Åpne navigasjonsskuff
Innstillinger
- Lukk Navigasjons Skuffe
+ Lukk navigasjonsskuff
PSC:
- Last Opp BTS Data
+ Last opp BTS-data
Om AIMSICD
Versjon: %s
@@ -65,105 +71,107 @@
UTGAVER
ENDRINGSLOGG
LISENS
- CREDITS
+ BIDRAGSYTERE
Venter / Laster.
Aktiv sporing nær deg!
- Allt OK.
+ Alt OK.
Du blir sporet!
Utrygt Område. Forlat det!
- "SPRING! Håndsettet er manipulert!"
- Trykk Status Ikonet under for detaljert informasjon:
+ SPRING! Håndsettet er manipulert!
+ Trykk status-ikonet under for detaljert informasjon:
- Nettverks ID:
- System ID:
- Base Stasjon ID:
+ Nettverks-ID:
+ System-ID:
+ Basestasjons-ID:
GPS avslått
- Du kan ikke spore GPS data uten GPS. Slå på GPS nå?
-
- System Oppsett
- Start Automatisk
- Start tjenesten Automatisk ved oppstart
- Kjørende Tjenester
- Tjenester vil fortsette å kjøre etter du avslutter appen (hak av for å totalt avslutte)
- Beskyttelses Innstillinger
+ Du kan ikke spore GPS-data uten GPS. Slå på GPS nå?
+
+ Systemoppsett
+ Start automatisk
+ Start tjenesten automatisk ved oppstart
+ Kjørende tjenester
+ Tjenester vil fortsette å kjøre etter du avslutter programmet (huk av for å avslutte helt)
+ Beskyttelsesinnstillinger
Meldingsoppsett
Cellesporing
- Slå på Automatisk Cellesporing
- Femtocell Oppdaging
- (foreløpig KUN CDMA telefoner)
- Femtocell Beskyttelse
- Fremtving Fly Modus når Femtocell oppdages (slå på igjen nettverk manuellt)
+ Slå på automatisk cellesporing
+ Femtocell-oppdagning
+ (foreløpig kun for CDMA-telefoner)
+ Femtocell-beskyttelse
+ Påtving flymodus når femtocell oppdages (slå på nettverk igjen manuelt)
Grensesnittoppsett
Status-ikoner
- Icon Utseende Utvalg
+ Ikondraktvalg
Oppfriskningsrate
- Kontroler intervall av enhetsoppdateringer\nNåværende intervall:%s
- OpenCellID Innstillinger
- OpenCellID API Nøkkel
- Skriv inn din OpenCellID API Nøkkel hær
- Celle Overvåkning
- Slå på Automatisk Celle Overvåkning
- Be om OpenCellID API Nøkkel
- Be om API nøkkel for OpenCellID Datatilgang
-
- Kart Innstillinger
+ Kontroler intervall for enhetsoppdateringer
+\nNåværende intervall:%s
+ OpenCellID-innstillinger
+ OpenCellID- API-nøkkel
+ Skriv inn din OpenCellID- API-nøkkel her
+ Celleovervåkning
+ Slå på automatisk celleovervåkning
+ Be om OpenCellID- API-nøkkel
+ Be om API-nøkkel for OpenCellID-datatilgang
+
+ Kartinnstillinger
Karttype
- Vis Kart i flere utgaver
+ Vis kart i flere stiler
- "CelleID: "
+ "CID: "
"OmrådeCelle: "
"Landskode: "
"Nettverkskode: "
"PC: "
- "Eksempler: "
- OpenCellID Data
+ Eksempler:
+ OpenCellID-data
"Breddegrad: "
"Lengdegrad: "
- Velg Liste
+ Velg liste
- AT kommando Linje
+ AT-kommandolinje
Tilbakemelding:
Utfør
- Nåværende Seriell Enhet:
- Velg Seriell Enhet
- Oppdagede Enheter:
+ Nåværende seriell enhet:
+ Velg seriell enhet
+ Oppdagede enheter:
Tidsavbrudd:
- Velg Tidsavbrudd
- Skriv inn AT kommando hær.
+ Velg tidsavbrudd
+ Skriv inn AT-kommando her.
- Stille SMS Oppdaget
- Stille SMS Oppdaget\nDetaljer: Se databasefremviser.
+ Stille SMS oppdaget
+ Stille SMS oppdaget!
+\nDetaljer: Se databasefremviser.
Listen inneholder ingen data å vise.
- OpenCellID API Nøkkel
- Trykk OK for å be om API nøkkel fra OpenCellID.org. Dette vil gjøre det mulig å laste ned deres data og se dette i kartet. Det vil og gi deg mulighet til å laste opp celle data. Bemerk at du må laste opp data innen 20 dager for å ha API nøkkelen aktiv.
- "Fikk ikke Nøkkel: "
+ OpenCellID- API-nøkkel
+ Trykk OK for å be om API-nøkkel fra OpenCellID.org. Dette vil gjøre det mulig å laste ned deres data og se dette i kartet. Det vil og gi deg mulighet til å laste opp celledata. Bemerk at du må laste opp data innen 20 dager for å ha API-nøkkelen aktiv.
+ Fikk ikke hentet nøkkel:
Lagret ny API-nøkkel.
Feilsøkingslogger
Rensk
Kopier
- Logger kopiert til clipboard.
+ Logger kopiert til utklippstavle.
Stopp
Start
DETALJERT FORKLARING
- Appen pauser eller laster. Ingen beskyttelse eller oppdaging er påslått. Vennligsts slå på Angrepsoppdaging!
- Ingen trusler oppdaget. Ditt nettverk sjekkes konstant basert på det du har påslått i Oppdagelses-Innstillinger.
- "Usikkert Område: Minst 1 ny eller ukjent basestasjon i området, eller med brutt eller usikker kryptering lavere enn A5/3. Alle samtaler eller SMS som utføres hær kan bli avlyttet og lagret. Forlat området Fort."
- Aktive Fientlige Tjenester Oppdaget: En IMSI-Catcher (IMSIC) eller falsk BTS (basestasjon) sporer aktivt brukere. Aktiv sporing foregår i dette området. Du bør helst unngå dette stedet, spesiellt ved Masseansamlinger og uro. Ta ut batteriet og SIM kortet!
- Aktive Fientlige Tjenester Oppdaget: En FBTS eller IMSIC sporer DEG og forhindrer din telefon tilkobling gjennom din vanlige krypterte tilkobling. Hvis du er i fare for straffeforfølgelser, ødelegg telefonen og SIM kortet, og rapporter den som nylig stjålet.
- Fientlig Manipulering: Noen forsøker å manipulere telefonen. Knus (eller selg) telefonen og skaff en ny langt borte dærfra. Ikke ta med telefonen til dær du kjøper ny! Bruk et nytt uregistrert SIM kort bestillt gjennom TOR-Nettleser. Bytt ringemønster og varsle dine venner om mulig sporing ved å snakke med dem, IKKE ved å ringe dem!
+ Programmet venter eller starter, Ingen beskyttelse eller oppdagelse er påslått. Vennligst slå på oppdagelser.
+ Ingen trusler oppdaget. Ditt nettverk sjekkes konstant basert på det du har påslått i Oppdagelsesinnstillinger.
+ Usikkert område: Minst én ny eller ukjent basestasjon i området, eller med brutt eller usikker kryptering lavere enn A5/3. Alle samtaler eller SMS som utføres her kan bli avlyttet og lagret. Forlat området fort.
+ Aktive fiendtlige tjenester Oppdaget: En IMSI-fangststasjon (IMSIC) eller falsk BTS (basestasjon) som aktivt sporer brukere. Aktiv sporing foregår i dette området. Du bør helst unngå dette stedet, spesielt ved masseansamlinger og uro. Ta ut batteriet og SIM-kortet!
+ Aktive fiendtlige tjenester oppdaget: En FBTS eller IMSIC sporer DEG og forhindrer din telefontilkobling gjennom din vanlige krypterte tilkobling. Hvis du kan være gjenstand for straffeforfølgelser, ødelegg telefonen og SIM-kortet, og rapporter den som nylig stjålet.
+ Fiendtlig manipulering: Noen forsøker å manipulere telefonen. Knus (eller selg) telefonen og skaff en ny langt borte derfra. Ikke ta med telefonen til der du kjøper ny! Bruk et nytt uregistrert SIM-kort bestilt gjennom Tor-nettleser. Bytt ringemønster og varsle dine venner om mulig sporing ved å snakke med dem, IKKE ved å ringe dem!
Avbryt
OK
Aktiver vibrering
Vibrer når varsler endres
Vibrer på trusselnivå
- Velg minimum trusselnivå å vibrere på
- Pause
+ Velg minste trusselnivå å vibrere på
+ Lediggang
OK
Middels
Fare
@@ -175,155 +183,190 @@
Normal
Manuell
Automatisk
- 2 sek
- 5 sek
- 10 sek
+ To sek
+ Fem sek
+ Ti sek
25 sek
45 sek
- 1 min
- 5 min
- 2 sek
- 5 sek
- 10 sek
+ Ett min
+ Fem min
+ To sek
+ Fem sek
+ Ti sek
20 sek
30 sek
- 10 min
+ Ti min
Hoved
Innstillinger
- Applikasjon
- Overvåker Celle Informasjon.
+ Program
+ Overvåker celleinformasjon.
VIKTIG
- Stoppet å Overvåker Celle Informasjon.
- Sporer Celle Informasjon.
- Stoppet sporing av Celle Information.
- Kun 1 API nøkkel forespøsel pr 24 timer\nPrøv igjen senere.
- Celle Informasjon ikke i OpenCellID Database!
- Fientlig Område: Endrende celle Informasjon Oppdaget!
- FemtoCell Oppdaging Aktiv.
- Cellesporing Aktiv.
- Celleovervåking Aktiv.
- Telefon Type
- Status: Pause.
- Status: God. Ingen Trusler oppdaget.
- ALARM: Noen Trusler Oppdaget!
- ALARM: FemtoCell Tilkobling Oppdaget!
+ Stoppet overvåkning av celleinformasjon.
+ Sporer celleinformasjon.
+ Stoppet sporing av celleinformation.
+ Kun én API-nøkkelforespøsel per 24 timer
+\nPrøv igjen senere.
+ Celleinformasjon finnes ikke i OpenCellID-database!
+ Fientlig område: Endrende celleinformasjon oppdaget!
+ FemtoCell-oppdagning aktiv.
+ Cellesporing aktiv.
+ Celleovervåking aktiv.
+ Telefontype
+ Status: Lediggang.
+ Status: God. Ingen trusler oppdaget.
+ ALARM: Noen trusler oppdaget!
+ ALARM: FemtoCell-tilkobling oppdaget!
ALARM: Stille SMS oppdaget!
- ALARM: Melding Venter indikator oppdaget!
- ALARM: WAP Push SMS oppdaget!
- AIMSICD kan kun oppdage FemtoCell tilkobling på CDMA enheter.
- Service Status endret!
- :Stoppet sporing av FemtoCell forbindelser.
- ALARM: FemtoCell Sporing oppdaget!
+ ALARM: Melding venter -indikator oppdaget!
+ ALARM: WAP Push-SMS oppdaget!
+ AIMSICD kan kun oppdage FemtoCell-tilkobling på CDMA-enheter.
+ Tjenestestatus endret!
+ :Stoppet sporing av FemtoCell-forbindelser.
+ ALARM: FemtoCell-sporing oppdaget!
Oppdaterer alle
Oppdaterer nå…
sekunder.
- Kontakter OpenCellID for data...\nDette kan ta opptil ett minutt.
+ Kontakter OpenCellID for data…
+\nDette kan ta opptil ett minutt.
Kan ikke bestemme din siste posisjon.\nSlå på GPS og prøv igjen.
- Ingen sporet posisjon funnet til å vise på kartet.
+ Ingen sporede plasseringer å vise på kartet.
Ingen data for publisering tilgjengelig.
- Nedlastningsfeil:
- OpenCellID data vellykket mottatt.
- Feil i Nedlasting av OpenCellID data.\nSjekk Nettforbindelsen!
- OpenCellID data vellykket mottatt.\nKart Markører oppdatert.
- "Opplasting av BTD data til OpenCellID vellykket."
- Feil under opplasting av OpenCellID data til serverne!
- Ingen OpenCellID API nøkkel oppdaget!\nVennligst skriv inn din nøkkel under innstillinger først.
- Oppdaterer Skjerm
- Klarte ikke å få ROOT tilgang på din enhet.\nAT kommando injection krever ROOT Terminal tilgang.\nVennligst undersøk om din enhet er ROOTET og prøv igjen.
- Kunne ikke oppdage BusyBox på din enhet.\nAT kommando Injection krever BusyBoks komponenter for å virke korrekt.\nVennligst undersøk om din enhet har BusyBoks installert og prøv igen.
- En ukjent feil har oppstått under forsøk på å nå serielenheten.\nVennligst undersøk din logcat for feil og post dem på vår Github.
- En ukjent feil har oppstått under forsøk på å nullstille AT Commado Injector.\nVennligst undersøk din logcat for feil og post dem på vår Github.
- Henter OpenCellID API Nøkkel…
+ Nedlastingsfeil:
+ OpenCellID-data mottatt.
+ Feil i nedlasting av OpenCellID-data.
+\nSjekk nettforbindelsen!
+ OpenCellID-data mottatt.
+\nKartmarkører oppdatert.
+ Opplasting av BTD-data til OpenCellID vellykket.
+ Feil under opplasting av OpenCellID-data til tjenerne!
+ Ingen OpenCellID- API-nøkkel oppdaget!
+\nSkriv inn din nøkkel i Innstillinger først.
+ Frisket opp CellId-info
+ Klarte ikke å få ROOT tilgang på din enhet.
+\nAT-kommandoinjeksjon krever ROOT-terminaltilgang.
+\nUndersøk om du har superbrukerrettigheter på din enhet og prøv igjen.
+ Kunne ikke oppdage BusyBox på din enhet.
+\nAT-kommandoinjeksjon krever BusyBox sine komponenter for å virke korrekt.
+\nUndersøk om din enhet har BusyBoks installert og prøv igjen.
+ En ukjent feil har oppstått under forsøk på å nå seriellenheten.
+\nUndersøk din logcat for feil og send dem til vår GitHub.
+ En ukjent feil har oppstått under forsøk på å nullstille AT-kommadoinnsenderen.
+\nUndersøk din logcat for feil og send dem til vår GitHub.
+ Henter OpenCellID- API-nøkkel…
Kunne ikke opprette kart!
- VIKTIG! Vennligst beskriv problemet du hadde, før du sender loggene. INGEN HJELP UTEN BESKRIVELSE!\n
- Status:
+ VIKTIG! Beskriv problemet du opplevde, før du sender loggene. INGEN HJELP UTEN BESKRIVELSE!
+\n
+ Tilstand:
PAUSE
OK
- MEDIUM
- HØY
+ MIDDELS
+ HØYT
FARE
SPRING!
- Denne menyen er kun for spesialister!\n\nVennligst ikke sett inn vilkårlige strenger fordi det vil få overvåkingen ut av kontroll.\n\nFor å legge til streng velg SMS type fra menyen, sriv inn strengen og trykk Legg til.\n\nFor å slette fra databasen trykk lenge på listevisning.
+ Denne menyen er kun for spesialister!
+\n
+\nIkke sett inn vilkårlige strenger fordi det vil få overvåkingen ut av kontroll.
+\n
+\nFor å legge til en streng, velg SMS-type fra menyen, skriv inn strengen og trykk Legg til.
+\n
+\nFor å slette fra databasen trykk lenge på Listevisning.
- Denne menyen er kun for spesialister!\nFor å slette en oppdaget SMS trykk lenge på listevisning.
- Slett Oppdaget SMS
+ Denne menyen er kun for spesialister!
+\nFor å slette en oppdaget SMS trykk lenge på Listevisning.
+ Slett oppdaget SMS
- Spesialist Innstillinger
- "Oppdagelses Strenger"
+ Spesialistinnstillinger
+ Oppdagelsesstrenger
Slett SMS
- Legg til og slett oppdagelses strenger
- Slett Oppdaget SMS
+ Legg til og slett oppdagelsesstrenger
+ Slett oppdaget SMS
- Slå på SMS Oppdagelse
- Root er påkrevet for å aktivere SMS oppdagelse
+ Slå på SMS-oppdagelse
+ Root trengs for å aktivere SMS-oppdagelse
- Oppdagelses Strenger
+ Oppdagelsesstrenger
VIKTIG!
- Stille SMS Oppdaget
- Type-0 SMS Oppdaget!\nDetaljer: Se Database Viser.
+ Stille SMS oppdaget
+ Type-0 SMS oppdaget!
+\nDetaljer: Se databaseviser.
VIKTIG!
- MWI Oppdaget
- Beskjed venter indikator oppdaget!\nDetaljer: Se Database Viser.
- WAP Push Oppdaget
- WAP Push SMS oppdaget!\nDetaljer: Se Database Viser.
+ MWI oppdaget
+ Oppdaget indikator for ventende beskjed!
+\nDetaljer: Se databasefremviser.
+ WAP push oppdaget
+ WAP push-SMS oppdaget!
+\nDetaljer: Se databaseviser.
- Viser NaboCeller.
- SIM Leverandør detaljer, IMEI, TMSI.
+ Viser celler i nærheten.
+ SIM-nettverksoperatørdetaljer, IMEI, TMSI.
Vis detaljert sammenligning av nåværende tilknyttet celle, med data (hvis noen) funnet i OpenCellID og merk forskjellen.
- Se de forskjellige DB listene vi har.
+ Vis de forskjellige DB-listene vi har.
Kart med fargekodede antenner i nærheten.
- Kommandolinje som tillater sending av AT kommandoer til Baseband Prosessor (krever ROOT).
+ Kommandolinje som tillater sending av AT-kommandoer til basebandprosessor (krever ROOT).
- Start/stop angrepsoppdagelse og samle celledetaljer inn i interne database lister.
- Versjon Nummer: %s
- Git SHA-Signering: %s
- Start å søke celler for å vise i Antenne Kartet og muligens laste dem opp senere til OpenCellID.
+ Start/stop angrepsoppdagelse og samle celledetaljer i interne databaselister.
+ Versjonsnummer: %s
+ Git SHA-sjekksum: %s
+ Start å søke celler for å vise i antennekartet for muligens senere å laste dem opp til OpenCellID.
- AIMSICD innstillinger som beskyttelsesregler, hyppighet og service oppførsel.
- Nullstill alle eller spesifiserte DB liste(r).
+ AIMSICD-innstillinger som beskyttelsesregler, hyppighet og tjenesteoppførsel.
+ Blank ut og tilbakestill alle eller spesifisert(e) DB-tabell(er).
- Motta API nøkkel for å bruke OpenCellID database til å opplaste og nedlaste data…
- Status Icon og Project forklaring.
- Last ned OpenCellID Database.
- Last opp Basestasjoner til OpenCellID Database.
- Avslutt denne Appen.
+ Motta API-nøkkel for å bruke OpenCellID-database til å laste opp og ned data…
+ Statusikon og prosjektforklaring.
+ Last ned OpenCellID-database.
+ Last opp basestasjoner til OpenCellID-database.
+ Avslutt dette programmet.
Venter på posisjon…
- Spesifikk Basestasjon Data
- Basestasjon Målinger
- Importert OpenCellID Data
- Standard Landskode Plassering
+ Unik basestasjonsdata
+ Basestasjonsmålinger
+ Importert OpenCellID-data
+ Forvalgt landskodeplassering
Stille SMS
Hendelseslogg
- Målte Signalstyrker
+ Målte signalstyrker
- ***Søker etter AT serielle enheter...\n
- "Funnet: "
- ***Innstillinger Fullført***\n
+ ***Søker etter serielle AT-enheter...
+\n
+ Funnet:
+ ***Oppsett fullført***
+\n
- Nåværende tilnyttet Basestasjon
- Godt kjent kryptert Basestasjon
- Ukjent eller usikker Basestasjon
- Ny eller nylig tillagt Baserstasjon
+ Nåværende tilknyttet basestasjon
+ Velkjent kryptert basestasjon
+ Ukjent eller usikker basestasjon
+ Ny eller nylig tillagt basestasjon
- Database slettet og gjenopprettet vellykket.\nVennligst start Appen på nytt for å renske gamle verdier fra minnet.
+ Lyktes med å slette og gjenopprette database.
+\nStart programmet på nytt for å renske gamle verdier fra minnet.
- "Invalid OpenCellId nøkkel, prøv igjen senere."
- Mottar OpenCellId API Nøkkel...
+ Ugyldig OpenCellId-nøkkel, prøv igjen senere.
+ Mottar OpenCellId- API-nøkkel…
Slettet
Feil under sletting
- "Setning ikke lagt til\n\"dobbel apostrof vil skape databasefeil "
+ "Strengen ble ikke lagt til
+\n \" dobbel apostrof vil skape databasefeil "
Setningen ble lagt til i databasen
Fikk ikke lagt til setningen i databasen
Samle og send feilmeldingslogger.
- GPS Innstillinger
- Slå på GPS for Cellesporing
- Ikke Tilgjengelig
+ GPS-innstillinger
+ Slå på GPS for cellesporing
+ Ikke tilgjengelig
Ukjent
Database
- OpenCellID API forespørsel tidsavbrudd Prøv igjen senere?
+ Tidsavbrudd for OpenCellID- API-forespørsel. Prøv igjen senere!?
+ Bakkestasjonen støtter ikke celler i nærheten!
+ Importer CellTowers-data
+
+ Importerer CellTowers-data…
+\nDette kan ta litt tid.
+ Import av CellTowers-data vellykket.
+ Import av CellTowers-data mislyktes.
+ Importerer CellTowers-database.
+ Trenger plassering
diff --git a/AIMSICD/src/main/res/values-ne-rNP/translatable_strings.xml b/AIMSICD/src/main/res/values-ne-rNP/translatable_strings.xml
new file mode 100644
index 000000000..a6b3daec9
--- /dev/null
+++ b/AIMSICD/src/main/res/values-ne-rNP/translatable_strings.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/AIMSICD/src/main/res/values-ne/translatable_strings.xml b/AIMSICD/src/main/res/values-ne/translatable_strings.xml
new file mode 100644
index 000000000..5b145a079
--- /dev/null
+++ b/AIMSICD/src/main/res/values-ne/translatable_strings.xml
@@ -0,0 +1,13 @@
+
+पछ्याउनु
+ फोन/सिम विवरण
+ "antenna नक्सा निरिक्षक"
+ database निरिक्षक
+ छोड्नु
+ हुन्छ
+ रद्द गर्नु
+ म सहमत छु
+ म असहमत छु
+
+ अधिकार त्याग गर्ने
+
diff --git a/AIMSICD/src/main/res/values-nl/translatable_strings.xml b/AIMSICD/src/main/res/values-nl/translatable_strings.xml
index 03bf90ae6..c577547ba 100644
--- a/AIMSICD/src/main/res/values-nl/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-nl/translatable_strings.xml
@@ -1,50 +1,51 @@
-
+
Volgen
- Telefoon/SIM details
- Antennekaart scherm
- Database scherm
+ Telefoon-/simkaartgegevens
+ Antennekaartscherm
+ Databasescherm
Stoppen
- OK
+ Oké
Annuleren
Ik ga akkoord
Ik ga niet akkoord
DISCLAIMER
- Aanvalsdetectie aan/uit
- Celtracking aan/uit
+ Aanvalsdetectie
+ Celtracking
Database leegmaken
- Alle gegevens worden verwijderd\nWeet u het zeker?
+ Alle gegevens worden verwijderd.
+\nWeet je het zeker?
Voorkeuren
Druk opnieuw om af te sluiten.
Alle gegevens van huidige cel
Foutopsporing
- Geen internet verbinding
- Kan geen OpenCellID data laden zonder dataverbinding, zet de dataverbinding a.u.b. aan!
+ Geen internetverbinding
+ Kan geen OpenCellID-gegevens laden zonder internetverbinding, schakel deze in!
- Download BTS gegevens
+ BTS-gegevens downloaden
Apparaatgegevens
- SIM gegevens
+ Simkaartgegevens
Netwerkgegevens
- Huidig gevarenniveau
+ Nabije masten
Buurcellen
- Encryptie indicator
+ Versleutelingsindicator
Totaal:
Land:
- Operator ID:
- Operator naam:
+ Operators-ID:
+ Operatorsnaam:
IMSI:
Serienummer:
- Toesteltype:
+ Telefoontype:
IMEI:
- RIL versie:
- Provider naam:
- Provider code:
+ RIL-versie:
+ Providernaam:
+ Leverancierscode:
Type:
LAC:
CID:
- Data activiteit:
- Data status:
+ Gegevensactiviteit:
+ Gegevensstatus:
Roaming:
TA (LTE):
Verversen
@@ -52,11 +53,11 @@
Sluit navigatiemenu
PSC:
- Upload BTS gegevens
+ BTS-gegevens uploaden
Over AIMSICD
Versie: %s
- Android project om valse basisstations (IMSI-catchers) te vinden in GSM/UMTS netwerken.
+ Android-project om valse basisstations (IMSI-catchers) te vinden in GSM-/UMTS-netwerken.
AIMSICD op GitHub
DOCUMENTATIE
BIJDRAGEN
@@ -66,23 +67,30 @@
LICENTIE
MET DANK AAN
Actieve tracking dichtbij!
- Alles OK.
- U wordt gevolgd!
- Onveilig service gebied. Ga weg!
- RENNEN! Telefoon wordt gemanipuleerd!
- Druk op de statusiconen hieronder voor meer informatie:
+ Alles oké.
+ Je wordt gevolgd!
+ Onveilige omgeving. Ga hier weg!
+ RENNEN! Je telefoon wordt gemanipuleerd!
+ Druk op de statuspictogrammen hieronder voor meer informatie:
- Netwerk ID:
- Systeem ID:
- Basisstation ID:
+ Netwerk-ID:
+ Systeem-ID:
+ Basisstations-ID:
Locatiediensten uitgeschakeld
- Kan geen GPS gegevens gebruiken zonder locatiediensten. Nu aanzetten?
+ Kan geen GPS gegevens-gebruiken zonder locatiediensten. Nu aanzetten?
Systeeminstellingen
Automatisch starten
Service automatisch starten bij opstarten telefoon
- "Door het gebruik van AIMSICD begrijpt u en gaat u er mee akkoord dat AIMSICD een experimenteel en informatieve Android applicatie is dat door verschillende redenen mogelijk niet in staat is om volgsystemen te detecteren. U begrijpt ook dat het omzeild of verslagen kan worden door methodes die de ontwikkelaars momenteel nog niet begrijpen. U begrijpt en gaat er tevens mee akkoord dat dit de ontwikkelaars van dit gratis project in geen geval verantwoordelijk te houden zijn voor elk resultaat en gebruik van dit programma. "
+ "Door het gebruik van AIMSICD begrijp je en ga je ermee akkoord dat AIMSICD
+\neen experimentele en informatieve Android-applicatie is die om verschillende redenen
+\nmogelijk niet in staat is om volgsystemen te detecteren. Je begrijpt ook dat het omzeild
+\nof verslagen kan worden door methodes die de ontwikkelaars momenteel nog niet begrijpen.
+\nJe begrijpt en gaat er tevens mee akkoord dat de ontwikkelaars van dit gratis project
+\nin geen geval verantwoordelijk te houden zijn voor elk resultaat en gebruik van dit
+\nprogramma. ONTWIKKELINGSSTATUS: ALFA!
+\n "
Inactief / aan het laden.
Permanente service
@@ -90,24 +98,25 @@
Beveiligingsinstellingen
Cel volgen
Zet automatisch cel volgen aan
- Femtocel detectie
- (momenteel ALLEEN CDMA telefoons)
- Femtocel bescherming
- Forceel vliegtuigmode indien femtocel waargenomen (heractiveer netwerk handmatig)
- Interface instellingen
- Statusiconen
- Thema selectie iconen
+ Femtoceldetectie
+ (momenteel ALLEEN CDMA-telefoons)
+ Femtocelbescherming
+ Forceer vliegtuigmode indien femtocel waargenomen (heractiveer netwerk handmatig)
+ Interfaceinstellingen
+ Statuspictogrammen
+ Pictogramthemaselectie
Verversingsfrequentie
- Stel de frequentie van apparaat updates in\nHuidige instelling: %s
- OpenCellID instellingen
- OpenCellID API sleutel
- Geef hier uw OpenCellID sleutel in
+ Stel de frequentie van apparaatupdates in
+\nHuidige instelling: %s
+ OpenCellID-instellingen
+ OpenCellID API-sleutel
+ Geef hier uw OpenCellID-sleutel in
Celmonitoring
Zet automatische celmonitoring aan
- Verzoek OpenCellID API sleutel
- Verzoek API sleutel voor OpenCellID data toegang
+ Verzoek OpenCellID API-sleutel
+ Verzoek API-sleutel voor OpenCellID-gegevenstoegang
- Kaartscherm instellingen
+ Kaartscherminstellingen
Kaarttype
Geeft kaart weer in verschillende stijlen
@@ -116,48 +125,49 @@
"MMC: "
"MNC: "
"PC: "
- "Monsters: "
- OpenCellID gegevens
- "Lat: "
- "Lon: "
+ "Voorbeelden: "
+ OpenCellID-gegevens
+ "Breedtegraad: "
+ "Lengtegraad: "
Selecteer tabel
- AT commandointerface
+ AT-opdrachtregel
Antwoord:
Uitvoeren
Huidig serieel apparaat:
Selecteer serieel apparaat
Gevonden apparaten:
- Timeout:
- Selecteer timeout
- Geef AT commando in.
+ Time-out:
+ Selecteer time-out
+ Geef AT-opdracht in.
- Stil SMS bericht gedetecteerd
- Stil SMS bericht gedetecteerd!\nDetails: zie database scherm.
- Tabel bevat geen te tonen gevenens.
+ Stille sms gedetecteerd
+ Stille sms gedetecteerd!
+\nDetails: zie databasescherm.
+ Tabel bevat geen te tonen gegevens.
- OpenCellID API sleutel
- Druk op OK om een API sleutel van OpenCellID.org aan te vragen. Dit stelt u in staat hun gegevens te downloaden en op de kaart te bekijken. Dit stelt u tevens in staat om celgegevens te uploaden. Let op: als u geen celgegevens upload binnen 20 dagen kan de sleutel inactief worden.
+ OpenCellID-API-sleutel
+ Druk op oké om een API-sleutel van OpenCellID.org aan te vragen. Dit stelt je in staat hun gegevens te downloaden en op de kaart te bekijken. Dit stelt je tevens in staat om celgegevens te uploaden. Let op: als je geen celgegevens uploadt binnen 20 dagen kan de sleutel inactief worden.
"Fout bij aanvragen sleutel: "
- Nieuwe API sleutel opgeslagen.
+ Nieuwe API-sleutel opgeslagen.
- Debug logboeken
+ Debuglogboeken
Leegmaken
- Copieren
- Logs gecopieerd naar het klembord.
+ Kopiëren
+ Logs gekopieerd naar het klembord.
Stop
Start
GEDETAILLEERDE UITLEG
- App is inactief of ladend. Er zijn geen beschermingsmaatregelen actief. Open het navigatie menu en zet ze aan in sectie VOLGEN!
- Geen bedreigingen gevonden. Onze app controleert continue het netwerk aan de hand van de beveiligingsinstellingen die u in het navigatie menu en in voorkeuren aangegeven hebt.
- Onveilig gebied: minstens 1 nieuwe of onbekende BTS is actief in deze omgeving of gebruikt een onveilige versleutelingsmethode, lager dan A5/3 [detectie is WIP]. Elke gesprek en SMS die in dit gebied gemaakt worden kunnen onderschept en opgeslagen worden. U kunt hier beter vertrekken.
- Vijandige dienstenacties gedetecteerd: een IMSI-Catcher (IMSIC) of valse BTS (FBTS) is actief gebruikers aan het volgen. In dit gebied wordt actief gescand. Ga van deze plaats weg, zeker als er politieke onrus heerst. Haal de accu uit uw telefoon of verniel het toestel!
- Vijandig volgen gedetecteerd: een FBTS of IMSIC is U actief aan het volgen en voorkomt dat uw telefoon met uw gebruikelijke beveiligde mobioele provider verbindt. Als u reden heeft om vervolging te vrezen kunt u het beste uw telefoon vernielen en hem als gestolen opgeven.
- Vijandige manipulatie: iemand probeert vanaf een afstand uw telefoon te beinvloeden. Verniel (of verkoop) uw telefoon en haal ergens anders een nieuwe (breng uw huidige toestel niet naar de plaats waar u de nieuwe koopt). Gebruik een nieuwe, anonieme SIM kaart, verander uw belgedrag en waarschuw uw contacten om niet over de telefoon met u te spreken maar direct!
+ App is inactief of aan het laden. Beschermings- en detectiemaatregelen zijn uitgeschakeld. Schakel aanvalsdetectie in!
+ Geen bedreigingen gevonden. Je netwerk wordt continu gecontroleerd aan de hand van de ingeschakelde opsporingsinstellingen.
+ Onveilig gebied: minstens 1 nieuwe of onbekende BTS is actief in deze omgeving of gebruikt een onveilige versleutelingsmethode, lager dan A5/3. Elke oproep en sms die in dit gebied gemaakt worden kunnen onderschept en opgeslagen worden. Vertrek hier zo snel mogelijk.
+ Vijandige dienstenacties gedetecteerd: een IMSI-Catcher (IMSIC) of valse BTS (FBTS) is actief gebruikers aan het volgen. In dit gebied wordt actief gescand. Vermijd deze plaats ten allen koste, zeker als er politieke onrust heerst. Haal de accu en simkaart uit je telefoon!
+ Vijandig volgen gedetecteerd: een FBTS of IMSIC is JOU actief aan het volgen en voorkomt dat je telefoon met je gebruikelijke beveiligde mobiele leverancier verbindt. Als je reden hebt om vervolging te vrezen, vernietig dan je telefoon en simkaart, en geef hem als gestolen op.
+ Vijandige manipulatie: iemand probeert vanaf een afstand je telefoon te beinvloeden. Verniel (of verkoop) je telefoon en haal ergens anders een nieuwe (breng je huidige toestel niet naar de plaats waar je de nieuwe koopt). Gebruik een nieuwe, anonieme simkaart, verander je belgedrag en waarschuw je contacten om niet over de telefoon met je te spreken maar in persoon!
Annuleren
- OK
+ Oké
Plat
Gevoeligheid
@@ -184,110 +194,134 @@
Applicatie
Celinformatie monitoren.
Gestopt met monitoren celinformatie.
- Volgen celinformatie.
+ Celinformatie volgen.
Gestopt met volgen celinformatie.
- Slechts een nieuwe API key per 24 uur!\nProbeer het later nog eens.
- Cell ID bestaat niet in OpenCellID database!
+ Slechts één nieuwe API key per 24 uur!
+\nProbeer het later nog eens.
+ Cell-ID bestaat niet in OpenCellID database!
Vijandig gebied: veranderende LAC waargenomen!
- FemtoCell detectie actief.
- Telefoon type
+ FemtoCell-detectie actief.
+ Telefoontype
Status: inactief.
- Status: goed. Geen risico\'s gedetecteerd..
+ Status: goed. Geen risico\'s gedetecteerd.
ALARM: risico\'s waargenomen!
- ALARM: FemtoCell verbinding gedetecteerd!
- ALARM: stil SMS bericht waargenomen!
+ ALARM: FemtoCell-verbinding gedetecteerd!
+ ALARM: stille sms waargenomen!
Celvolgen actief.
- Colmonitoring actief.
+ Celmonitoring actief.
ALARM: indicatie voor wachtend bericht gedetecteerd!
- ALARM: WAP pushbericht gedetecteerd!
- AIMSICD kan femtocellen alleen op CDMA toestellen detecteren.
+ ALARM: WAP-pushbericht gedetecteerd!
+ AIMSICD kan femtocellen alleen op CDMA-toestellen detecteren.
seconden.
Fout bij downloaden:
Diensttoestand is veranderd!
- Gestopt met het bijhouden van Femtocal verbindingen.
- ALARM: Femtocel volgen gedetecteerd!
+ Gestopt met het bijhouden van Femtocelverbindingen.
+ ALARM: Femtocel-volgen gedetecteerd!
Ververs alles
Verversen…
- Verbinding maken met OpenCellID voor gegevens...\nDit kan een minuut duren.
- Niet in staat om uw laatste positie vast te stellen.\nZet locatiediensten aan en probeer het opnieuw.
+ Verbinding maken met OpenCellID voor gegevens…
+\nDit kan een minuut duren.
+ Niet in staat om je laatste positie vast te stellen.
+\nZet locatiediensten aan en probeer het opnieuw.
Geen gevolgde locaties gevonden om te tonen op de kaart.
- Geen data beschikbaar om te publiceren.
- OpenCellID gegevens succesvol ververst.
- Fout bij het ophalen van OpenCellID gegevens.\nControleer uw netwerk!
- OpenCellID gegevens succesvol ontvangen.\nKaartmarkeringen vernieuwd.
- BTS gegevens succesvol verstuurd naar OpenCellID.
- Fout bij het opsturen van BTS gegevens naar OpenCellID servers!
- Geen OpenCellID API sleutel gevonden!\nStel uw sleutel eerst in de instellingen in.
- Scherm verversen
- Kan geen ROOT toegang op uw toestel krijgen.\nVersturen van AT commando\'s vereist ROOT terminal toegang.\nControleer of uw apparaat ROOT toegang heeft en probeer opnieuw.
- Kan busybox niet vinden op uw apparaat.\nHet versturen van AT commando\'s vereist busybox componenten.\nControleer of busybox geïnstalleerd is en probeer opnieuw.
- Er is een onbekende fout opgetreden met het serieel apparaat.\nCheck uw logcat voor foutmeldingen en post ze op onze Github.
- Een onbekende fout is opgetreden bij het uitvoeren van AT commando\'s.\nCheck uw logcat voor foutmeldingen en post ze op onze Github.
- Verkrijgen OpenCellID API sleutel…
+ Geen gegevens beschikbaar om te publiceren.
+ OpenCellID-gegevens succesvol ververst.
+ Fout bij het ophalen van OpenCellID-gegevens.
+\nControleer je netwerk!
+ OpenCellID-gegevens ontvangen.
+\nKaartmarkeringen vernieuwd.
+ BTS-gegevens verstuurd naar OpenCellID.
+ Fout bij het opsturen van BTS-gegevens naar OpenCellID-servers!
+ Geen OpenCellID-API-sleutel gevonden!
+\nStel je sleutel eerst in de instellingen in.
+ CellID-informatie vernieuwd
+ Kan geen ROOT-toegang op je apparaat krijgen.
+\nVersturen van AT-opdrachten vereist ROOT-terminaltoegang.
+\nControleer of je apparaat ROOT-toegang heeft en probeer het opnieuw.
+ Kan busybox niet vinden op je apparaat.
+\nHet versturen van AT-opdrachten vereist busybox-onderdelen.
+\nControleer of busybox geïnstalleerd is en probeer het opnieuw.
+ Er is een onbekende fout opgetreden met het serieel apparaat.
+\nControleer je logcat voor foutmeldingen en post ze op onze GitHub.
+ Er is een onbekende fout opgetreden bij het uitvoeren van AT-opdrachten.
+\nControleer je logcat voor foutmeldingen en post ze op onze GitHub.
+ OpenCellID-API-sleutel verkrijgen…
Kan geen kaart aanmaken!
- INACTIEF
- OK
- GEMIDDELD
- HOOG
- GEVAAR
- RENNEN!
-
- Dit menu is alleen bedoeld voor ervaren gebruikers.\n\nGeef a.u.b. geen willekeurige karakterreeksen in, dit kan er voor zorgen dat detectie raar gaat doen.\n\nKies het SMS type van het menu om een reeks toe te voegen, type een karakterreeks en druk op invoegen.\n\nOm een karakterreeks te verwijderen uit de database druk lang op de lijstweergave.
+ Inactief
+ Oké
+ Gemiddeld
+ Hoog
+ Gevaar
+ Loop weg!
+
+ Dit menu is alleen bedoeld voor ervaren gebruikers.
+\n
+\nGeef geen willekeurige karakterreeksen in, dit kan ervoor zorgen dat detectie raar gaat doen.
+\n
+\nKies het sms-type in het menu om een reeks toe te voegen, typ een karakterreeks en druk op invoegen.
+\n
+\nDruk lang op de lijstweergave om een karakterreeks te verwijderen uit de database.
- Dit menu is alleen bedoeld voor ervaren gebruikers!\nOm een gedetecteerde SMS te verwijderen druk er lang op in de lijstweergave.
- Verwijder gedetecteerde SMS
+ Dit menu is alleen bedoeld voor ervaren gebruikers!
+\nDruk lang op een gedetecteerde sms in de lijstweergave om deze te verwijderen.
+ Gedetecteerde sms verwijderen
Geavanceerde instellingen
Detectiereeksen
- Verwijder SMS
+ Sms verwijderen
Reeksen invoegen en verwijderen
- Verwijder gedetecteerde SMS
+ Gedetecteerde sms verwijderen
- Zet SMS detectie aan
- Root is nodig om SMS detectie aan te zetten
+ Sms-detectie inschakelen
+ Root is nodig om sms-detectie in te schakelen
Detectiereeksen
- ATTENTIE!
- Stille SMS gedetecteerd
- Type-0 bericht gedetecteerd!\nVoor details zie het database scherm.
- ATTENTIE!
+ OPGELET!
+ Stille sms gedetecteerd
+ Type-0-bericht gedetecteerd!
+\nZie het databasescherm voor details.
+ OPGELET!
MWI gedetecteerd
- Wacht voor bericht indicatie (MWI) gedetecteerd!\nDetails: See Database scherm.
- WAP pushbericht gedetecteerd
- ATTENTIE! Beschrijf a.u.b. het probleem voordat u logs opstuurt. GEEN HULP ZONDER BESCHRIJVINGEN!\n
+ Wacht voor berichtindicatie (MWI) gedetecteerd!
+\nDetails: zie databasescherm.
+ WAP-pushbericht gedetecteerd
+ OPGELET! Beschrijf het probleem voordat je logs opstuurt. GEEN HULP ZONDER BESCHRIJVINGEN!
+\n
Status:
- WAP pushbericht gedetecteerd!\nVoor details zie het database scherm.
+ WAP-pushbericht gedetecteerd!
+\nZie het databasescherm voor details.
-
- SIM netwerk provider details, IMEI, TMSI.
- "Toont een gedetailleerde vergelijking van de cel waarmee u nu verbonden bent en de gegevens uit OpenCellID en toont de verschillen."
- Toon de verschillende DB tabellen.
- Kleurcode kaart van in de buurt zijnde antennes.
- Interface dat het mogelijk maakt AT commando\'s te sturen naar de baseband processor (Root nodig).
+ Toont naburige cellen.
+ SIM-netwerkleverancierdetails, IMEI, TMSI.
+ "Toont een gedetailleerde vergelijking van de cel waarmee je nu verbonden bent en de gegevens uit OpenCellID en toont de verschillen."
+ Toon de verschillende DB-tabellen.
+ Kleurcodekaart van in de buurt zijnde antennes.
+ Interface die het mogelijk maakt AT-opdrachten te sturen naar de basebandprocessor (root nodig).
- Start/stop aanvalsdetectie en verzamel mastgegevens in de interne database tabellen.
+ Start/stop aanvalsdetectie en verzamel mastgegevens in de interne databasetabellen.
Start het volgen van cellen om ze op de antennekaart te tonen en ze later te versturen naar OpenCellID.
- AIMSICD instellingen zoals beschermingsregels, contactfrequentie en service gedrag.
+ AIMSICD-instellingen zoals beschermingsregels, contactfrequentie en dienstgedrag.
Alle of gespecificeerde tabellen leegmaken.
- Verkrijg een API sleutel voor de OpenCellID database om gegevens te up- en downloaden…
- Status iconen en uitleg over het project.
- Download de OpenCellID database.
- Upload de BTS naar de OpenCellID database.
+ Verkrijg een API-sleutel voor de OpenCellID-database voor uploaden en downloaden van gegevens…
+ Statuspictogrammen en uitleg over het project.
+ Download de OpenCellID-database.
+ Uploadt je BTS naar de OpenCellID-database.
Verzamel en verstuur foutberichten.
Deze app afsluiten.
Wachten op locatie…
- Unieke BTS gegevens
- BTS metingen
- OpenCellID gegevens geïmporteerd
- Standaard MCC locaties
- Stille SMS
- Gebeurtenissenlog
+ Unieke BTS-gegevens
+ BTS-metingen
+ OpenCellID-gegevens geïmporteerd
+ Standaard MCC-locaties
+ Stille sms
+ Gebeurtenissenlogboek
Gemeten signaalsterktes
- *** Zoeken naar AT serieel apparaat…\n
+ *** Zoeken naar seriële AT-apparaten…
+\n
"Gevonden: "
*** Setup klaar ***\n
@@ -296,12 +330,13 @@
Onbekende of onveilige BTS
Nieuwe of recent toegevoegde BTS
- Ongeldige OpenCellID sleutel, probeer het later nog eens.
- Verkrijgen OpenCellID API sleutel...
+ Ongeldige OpenCellID-sleutel, probeer het later nog eens.
+ OpenCellID-API-sleutel verkrijgen…
- De database is succesvol verwijderd en opnieuw aangemaakt.\nHerstart de app om oude gegevens uit het geheugen te verwijderen.
+ De database is verwijderd en opnieuw aangemaakt.
+\nHerstart de app om oude gegevens uit het geheugen te verwijderen.
- OK
+ Oké
Gemiddeld
Gevaar
@@ -312,15 +347,28 @@
Vibreren bij gevarenniveau
Selecteer het minimum gevarenniveau voor de trilfunctie
Inactief
- String toevoegen aan de database mislukt
+ Toevoegen van de string aan de database is mislukt
Instellingen voor meldingen
- Build nummer: %s
+ Versienummer: %s
Git SHA-Hash: %s
Trillen als notificatie verandert
- "String niet toegevoegd\n\" dubbele aanhalingstekens veroorzaken een db fout "
- GPS instellingen
- GPS inschakelen voor Cell tracking
+ "String niet toegevoegd
+\" dubbele apostroffen veroorzaken databasefout "
+ GPS-instellingen
+ GPS inschakelen voor cell tracking
Onbekend
+ Database
+ OpenCellID-API-verzoek is verlopen. Later opnieuw proberen?
+ Gsm-mast verstrekt geen naburige cellen!
+ N.v.t.
+ Zendmastgegevens importeren
+
+ Locatie vereist
+ Zendmastgegevens importeren…
+\nDit kan even duren.
+ Zendmastgegevens geïmporteerd.
+ Fout bij importeren van zendmastgegevens.
+ Importeert de zendmastendatabase.
diff --git a/AIMSICD/src/main/res/values-pl/translatable_strings.xml b/AIMSICD/src/main/res/values-pl/translatable_strings.xml
index 6f1739669..9c50e14ae 100644
--- a/AIMSICD/src/main/res/values-pl/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-pl/translatable_strings.xml
@@ -1,4 +1,4 @@
-
+
@@ -14,12 +14,13 @@
DISCLAIMER
- "Używając AIMSICD oświadczasz, że rozumiesz i zgadzasz się z tym, że AIMSICD jest eksperymentalną i informacyjną aplikacją na system Android, która może, z wielu powodów, nie być w stanie wykryć tego, że jesteś nadzorowany czy śledzony. Przyjmujesz także do wiadomości, że program może być pokonany w sposoby jeszcze nie znane deweloperom. Tak więc zgadzasz się i rozumiesz, że deweloperzy i firmy związane z tym darmowym produktem nie mogą być pociągnięte do odpowiedzialności z żadnego powodu niezależnie od wyniku użytkowania tej aplikacji. "
+ "Używając AIMSICD oświadczasz, że rozumiesz i zgadzasz się z tym, że AIMSICD jest eksperymentalną i informacyjną aplikacją na system Android, która może, z wielu powodów, nie być w stanie wykryć tego, że jesteś nadzorowany czy śledzony. Przyjmujesz także do wiadomości, że program może być pokonany w sposoby jeszcze nie znane deweloperom. Tak więc zgadzasz się i rozumiesz, że deweloperzy i firmy związane z tym darmowym produktem nie mogą być pociągnięte do odpowiedzialności z żadnego powodu niezależnie od wyniku użytkowania tej aplikacji.
+STAN ROZWOJU APLIKACJI: ALPHA! "
- Wykrywanie przełącz Atak
- Przełącz Śledzenie komórki
+ Wykrywanie Ataków
+ Monitorowanie Stacji Bazowych
Wyczyść bazę danych
Wszystkie dane zostaną skasowane.\nNa pewno?
Ustawienia
@@ -30,13 +31,13 @@
Nie da się pobrać danych z OpenCellID bez połączenia Internetowego. Proszę włączyć połączenie danych!
- Pobierz dane lokalnej stacji
+ Pobierz Informacje O Stacjach Bazowych
Informacje o urządzeniu
Informacje o SIM
Informacje o sieci
- Informacje o komórce
+ Sąsiednie Stacje Bazowe
Sąsiednie komórki
Wskaźnik szyfrowania
Razem:
@@ -63,7 +64,7 @@
PSC:
- Wyślij dane o lokalnych komórkach
+ Wyślij Informacje O Lokalnych Stacjach Bazowych
O AIMSICD
@@ -81,7 +82,7 @@
Aktywne śledzenie blisko Ciebie!
Wszystko OK.
Jesteś śledzony!
- Niebezpieczny obszar. Opóść go!
+ Niebezpieczny obszar. Opuść go!
Uciekaj! Telefon ulega manipulacji!
Kliknij na ikonę by uzyskać więcej informacji:
@@ -102,7 +103,7 @@
Działaj w tyle
Serwis będzie uruchomiony w tle po wyjściu z aplikacji
Ustawienia ochrony
- Śledzenie komórek
+ Automatyczne Monitorowanie
Włącz automatyczne śledzenie komórek
Wykrywanie Femtocell
(obecnie TYLKO dla telefonów z CDMA)
@@ -182,10 +183,10 @@
SZCZEGÓŁOWY OPIS
Aplikacja jest bezczynna lub ładuje się. Żadne środki ochrony lub wykrywania nie są włączone. Otwórz panel nawigacyjny i włącz śledzenie w menu!
- Nie wykryto żadnych zagrożeń.
+ Nie wykryto żadnych zagrożeń. Twoja sieć jest ciągle sprawdzana zgodnie z ustawieniami.
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 wrogą aktywność: IMIC lub FBTS aktywnie śledzi użytkowników! Wyjmij baterię z telefoni i unikaj tego miejsca!
- Wykryto wrogie śledzenie: W pobliżu jest aktywny FBTS lub IMSIC, uniemożliwiając bezpieczne, szyfrowane połączenie z dostawcą sieci. Jeśli jesteś w niebezpieczeństwie zniszczy swój telefon i kartę SIM i zgłoś ją jako niedawno ukradzioną.
+ Wykryto wrogie śledzenie: W pobliżu jest aktywny FBTS lub IMSIC, uniemożliwiając bezpieczne, szyfrowane połączenie z dostawcą sieci. Jeśli jesteś w niebezpieczeństwie zniszcz swój telefon, a kartę SIM zgłoś ją jako zaginioną.
Wykryto manipulację: ktoś próbuje zdalnie manipulować Twoim telefonem. Zniszcz lub sprzedaj telefon!
Anuluj
OK
@@ -296,7 +297,7 @@
-
+ Pokaż sąsiednie komórki.
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.
@@ -315,13 +316,13 @@
Uzyskaj klucz API do OpenCellID by pobierać i wysyłać dane…
O nas i kogo wspieramy.
Pobierz bazę danych OpenCellID.
- Wyślij dane o lokalnych BTS do OpenCellID.
+ Wyślij Informacje O Lokalnych Stacjach Bazowych do OpenCellID.
Wczytaj i wyślij logi.
Zakończ działanie aplikacji.
Oczekiwanie na lokalizację…
Unikalne dane BTS
Pomiary BTS
- Importowane dane OpenCellID
+ Zaimportowane dane z OpenCellID
Domyślne lokalizacje MMC
Bezgłośny SMS
Logi zdarzeń
@@ -374,4 +375,29 @@
Baza danych została usunięta i odtworzona.\nProszę zrestartować aplikację by usunąć resztę danych z pamięci.
Nieznany
+ Numer Kompilacji: %s
+ Git SHA-Hash: %s
+ Ustawienia GPS
+ Włącz GPS aby śledzić komórki
+ Ustawienia powiadomień
+ Włacz wibracje
+ Wibruj gdy zmienia się stan powiadomień
+ Wibruj na zmianie poziomu zagrożenia
+ Wybierz minimalny poziom zagrożenia dla wibracji
+ Wstrzymany
+ OK
+ Średni
+ Zagrożenie
+
+ Baza danych
+ BTS nie dostarcza informacji o żadnych sąsiednich komórkach!
+ Zapytanie do OpenCellID przekroczyło limit czasu. Spróbować później?
+ Usunięto
+ Usuwanie nie powiodło się
+ "String nie został dodany
+dodanie \" spowoduje błąd bazy danych "
+ Dodano do bazy danych
+ Nie powiodło się dodawanie do bazy danych
+ N/A
+ Potrzebuje lokalizacji
diff --git a/AIMSICD/src/main/res/values-pt-rBR/translatable_strings.xml b/AIMSICD/src/main/res/values-pt-rBR/translatable_strings.xml
index adbc011a4..49f9cc6af 100644
--- a/AIMSICD/src/main/res/values-pt-rBR/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-pt-rBR/translatable_strings.xml
@@ -15,7 +15,8 @@
Detecção de ataques de alternância
Rastreamento de células de alternância
Limpar/Restabelecer banco de dados
- Todos os dados serão eliminados\nVocê tem certeza?
+ Todos os dados serão eliminados.
+Você tem certeza?
Preferências
Pressione novamente para sair.
Todos os detalhes da célula atual
@@ -32,7 +33,7 @@
células vizinhas
Indicador de codificação
Total:
- País
+ País:
ID do operador:
Nome do operador:
IMSI:
@@ -75,4 +76,82 @@
Você está sendo monitorado!
Desconhecido
+ Configurações do GPS
+ Configurações do sistema
+ Serviço de persistência
+ Configurações de proteção
+ Configurações de notificações
+ Configurações da interface
+ Taxa de atualização
+ Preferências de visualização do mapa
+ Tipo do mapa
+ Mostrar mapas em estilos diferentes
+
+ Selecionar tabela
+ Resposta:
+ Executar
+ "chave da API da OpenCellID "
+ Limpar
+ Copiar
+ Logs copiados para a caixa de transferência.
+ Parar
+ Iniciar
+
+ EXPLICAÇÃO DETALHADA
+ Presione o Ícone de Status abaixo para informações detalhadas:
+
+ ID da rede:
+ ID do sistema:
+ ID da estação base:
+
+ Serviço de localização desabilitado
+ Seleção do ícone do tema
+ Ícones de status
+ Controle a frequência de atualização dos dispositivos
+Frequência atual: %s
+ "CID: "
+ "LAC: "
+ "MCC: "
+ "MNC: "
+ "PC: "
+ "Exemplos: "
+ "Latitude: "
+ "Longitude: "
+
+ Detectar dispositivos:
+ Timeout:
+ Selecionar Timeout
+ Nova API key foi salva.
+
+ Logs de depuração
+ Cancelar
+ OK
+
+ Habilitar vibração
+ Vibrar quando notificações forem alteradas
+ Idle
+ OK
+ Médio
+ Perigo
+
+ Normal
+ Manual
+ Automático
+ 2 segundos
+ 5 segundos
+ 10 segundos
+ 25 segundos
+ 45 segundos
+ 1 minuto
+ 5 minutos
+ 2 segundos
+ 5 segundos
+ 10 segundos
+ 20 segundos
+ 30 segundos
+ 10 minutos
+ Principal
+ Configurações
+ Banco de dados
+ Aplicação
diff --git a/AIMSICD/src/main/res/values-ro/translatable_strings.xml b/AIMSICD/src/main/res/values-ro/translatable_strings.xml
new file mode 100644
index 000000000..006ac9bdc
--- /dev/null
+++ b/AIMSICD/src/main/res/values-ro/translatable_strings.xml
@@ -0,0 +1,366 @@
+
+Urmarire
+ Detalii Telefon/SIM
+ Vizualizare Harta Antenelor
+ Vizualizator Baza de Date
+ Renuntare
+ De acord
+ Anulare
+ De acord
+ Nu sunt de acord
+
+ Act de Renuntare
+ Prin utilizarea AIMSICD ati inteles si sunteti de acord ca AIMSICD este o aplicatie Android experimentala si informativa care poate esua sa detecteze supravegherea și urmarirea din mai multe motive. De asemenea, intelegeti ca metodele pot fi eludate sau infrante prin alte mijloace, care nu au fost inca intelese de dezvoltatori. De asemenea, sunteti de acord și intelegeti ca dezvoltatorii și companiile legate de acest produs gratuit nu pot fi trasi la raspundere pentru niciun rezultat sau rezultate, indiferent de utilizarea acestei aplicatii. STATUSUL DE DEZVOLTARE: ALPHA!
+
+ Detectarea Atacului
+ Urmarirea Celulelor
+ Sterge/Reseteaza Baza de Date
+ Toate datele vor fi sterse.
+\nEsti sigur ?
+ Preferinte
+ Atinge din nou pentru iesire.
+ Toate Detaliile Celulei Curente
+ Depanare
+ Fara conexiune la Internet
+ Imposibil de descarcat datele OpenCellID fara conexiune la Internet, te rog activeaza conexiunea de date!
+
+ Descarca Datele BTS
+
+ Importa Datele Turnurilor Celulare
+
+ Informatii despre Dispozitiv
+ Informatii despre SIM
+ Informatii despre Retea
+ Celule Vecine
+ Celule Vecine
+ Indicator de Criptare
+ Total:
+ Tara:
+ ID Operator:
+ Numele Operatorului:
+ IMSI:
+ Seria:
+ Tipul Telefonului:
+ IMEI:
+ Versiunea RIL:
+ Nume Furnizor:
+ Cod Furnizor:
+ Tip:
+ LAC:
+ CID:
+ Activitatea Datelor:
+ Statusul Datelor:
+ Roaming :
+ TA (LTE):
+ Reimprospateaza
+ Deschide Sectorul de Navigare
+ Inchide Sectorul de Navigare
+ PSC:
+
+ Incarca Datele BTS
+
+ Despre AIMSICD
+ Versiune: %s
+ Numarul Constructiei: %s
+ Git SHA-suma de control: %s
+ Proiect bazat pe Android pentru detectarea și evitarea statiilor de baza false (Capcane-IMSI) in retelele GSM / UMTS.
+ AIMSICD pe GitHub
+ DOCUMENTATIE
+ CONTRIBUE
+ ACT DE RENUNTARE
+ DE PRESA
+ SCHIMBARI
+ LICIENTA
+ CREDITE
+ Inactiv / Incarcare.
+ Urmarire activa aproape de tine !
+ Totul este OK.
+ Esti urmarit !
+ Zona cu Servicii Nesecurizate. Paraseste-o !
+ FUGI! Receptor manipulat!
+ Atinge Statusul Iconitei de mai jos pentru Informatii detaliate:
+
+ ID Retea:
+ ID Sistem:
+ ID Statie de Baza:
+
+ Servicii de Localizare Dezactivate
+ Nu se pot urmari datele GPS fara activarea Serviciilor de Localizare. Le activezi acum?
+
+ Setari GPS
+ Activati GPS pentru Urmarirea Celulelor
+ Setarile Sistemului
+ Auto Pornire
+ Porneste automat serviciul la pornire
+ Servicii Persistente
+ Serviciul va continua sa functioneze dupa iesirea din aplicatie (debifeaza pentru inchidere totala)
+ Setari de Protectie
+ Setari de Notificare
+ Urmarirea Celulelor
+ Activeaza Urmarirea Automata a Celulelor
+ Detectia Femtocelulelor
+ (in prezent DOAR Telefoane CDMA)
+ Protectie Femtocelule
+ Aplica Modul Avion atunci cand sunt detectate Femtocelule (reactiveaza manual reteaua)
+ Setari de Interfata
+ Statusul-Iconitelor
+ Selectia Temelor de Iconita
+ Rata de Reinprospatare
+ Controleaza frecventa actualizarilor dispozitivului
+\nSelectia actuala: %s
+ Setarile OpenCellID
+ Cheia API OpenCellID
+ Introduceti Cheia API OpenCellID aici
+ Monitorizare Celule
+ Activeaza Monitorizarea Automata a Celulelor
+ Solicita Cheia API OpenCellID
+ Solicita Cheia API OpenCellID pentru accesul la date
+
+ Preferinte Aspect Harta
+ Tipul Hartii
+ Afiseaza Harta in diferite stiluri
+
+ CID:
+ LAC:
+ MCC:
+ MNC:
+ PC:
+ Esantioane:
+ Date OpenCellID
+ "Latitudine: "
+ "Longitudine: "
+
+ Selecteaza Tabel
+ Interfata Comanada AT
+ Raspuns:
+ Executa
+ Seria Actuala Dispozitiv:
+ Selecteaza Seria Dispozitiv
+ Dispozitive Detectate:
+ Timp de asteptare:
+ Selecteaza Timp de asteptare
+ Introduceti comanda AT aici.
+
+ SMS Silentios Detectat
+ Mesaj SMS Silentios detectat
+\nDetalii: Vezi Vizualizatorul Bazei de Date.
+ Tabelul nu contine date afisate.
+
+ Cheia API OpenCellID
+ Apasa pe OK pentru a solicita o cheie API de la OpenCellID.org. Acest lucru iti va permite sa descarci datele si sa le vizualizezi pe harta. De asemenea, iti va permite sa incarci datele despre celule. Retine ca daca nu incarci date despre celule in 20 de zile, cheia ta API poate deveni inactiva.
+ Eroare la obtinerea cheii:
+ S-a salvat noua cheie API.
+
+ Inregistrari Depanare
+ Sterge
+ Copiaza
+ Inregistrari copiate in clipboard.
+ Stop
+ Porneste
+
+ EXPLICATII DETALIATE
+ Aplicatia este inactiva sau se incarca. Nu sunt activate masurile de protectie si detectare. Te rog activeaza detectarea atacurilor!
+ Nici o amenintare detectata. Reteaua ta este in mod constant verificata pe baza setarilor de detectare activate.
+ Zona cu Servicii Nesecurizate: cel puțin 1 BTS nou sau necunoscut este in functiune in aceasta zona sau foloseste un algoritm de criptare nesigur (spart) mai mic decat A5/3. Orice apel telefonic / SMS realizat in aceasta zona poate fi interceptat si inregistrat. Paraseste rapid acest loc.
+ Actiuni Ostile Detectate: O Capcana-IMSI (IMSIC) sau un BTS fals (FBTS) urmareste in mod activ utilizatorii. In aceasta zona este activa o scanare. Ar trebui sa evitati acest loc prin toate mijloacele, mai ales daca exista miscari cu caracter politic. Scoateti bateria și cartela SIM!
+ Urmarire Ostila Detectata: Un FBTS sau IMSIC va urmareste in mod activ si impiedica telefonul sa se conecteze prin furnizorul vostru de telefonie mobila criptata normal. Daca sunteti in pericol ca urmare a unei actiuni, distrugeti telefonul si SIM-ul, apoi raportati-l recent furat.
+ Manipulare Ostila: Cineva incearca sa manipuleze telefonul tau de la distanta. Distruge sau vinde telefonul si obtine unul nou, din locuri aflate la mare distanta. Nu duce vechiul telefon in locatia schimbata! Utilizeaza o noua cartela SIM anonima, cu o identitate falsa inregistrata prin Tor-Browser. Schimba comportamentul de apelare și avertizati-va contactele despre monitorizare, vorbind cu ei fata in fata, NU prin telefon!
+ Anulare
+ OK
+
+ Activeaza Vibratia
+ Vibreaza cand se schimba notificarea
+ Vibreaza la nivelul de amenintare
+ Selectati nivelul minim de amenintare pentru a vibra
+ Inactiv
+ OK
+ Mijlociu
+ Pericol
+
+ Plat
+ Sens
+ Alb
+ Teren
+ Normal
+ Manual
+ Automat
+ 2 secunde
+ 5 s
+ 10 s
+ 25 s
+ 45 s
+ 1 minut
+ 5 min
+ 2 s
+ 5 secunde
+ 10 s
+ 20 secunde
+ 30 secunde
+ 10 min
+ Principal
+ Setari
+ Baza de Date
+ Aplicatie
+ Monitorizare Informatiilor despre Celule.
+ Oprirea monitorizarii Informatiilor despre Celule.
+ Urmarirea Informatiilor despre Celule.
+ Oprirea urmaririi Informatiilor despre Celule.
+ Doar o cerere noua de chei API la 24 de ore !
+\nTe rog incearca mai tarziu.
+ ID-ul Celulei nu e in Baza de Date OpenCellID!
+ Zona de Serviciu Ostil: Schimbare de LAC Detectat!
+ BTS nu furnizeaza celule vecine!
+ Detectarea Femtocelula Activa.
+ Urmarirea Celulelor Activa.
+ Monitorizarea Celulelor Activa.
+ Tipul Telefonului
+ Status: Inactiv.
+ Status: Bine. Nici o Amenintare Detectata.
+ ALERTA: Au fost Detectate unele Amenintari!
+ ALERTA: Detectata Conexiune la Femtocelula!
+ ALERTA: SMS Silentios detectat!
+ ALERTA: Mesajul Indicatorului de Asteptare detectat!
+ ALERTA: SMS WAP Push detectat!
+ AIMSICD poate detecta conexiunile cu Femtocelule numai pe dispozitivele CDMA.
+ Starea Serviciului sa schimbat!
+ : Oprita urmarirea conexiunilor la FemtoCelule.
+ ALERTA: Urmarirea FemtoCelulei Detectata!
+ Reimprospateaza fiecare
+ Reimprospateaza acum…
+ secunde.
+ Contactez OpenCellID pentru date...
+\nAceasta poate dura pana la un minut.
+ Imposibil de determinat ultima locatie.
+\nActiveaza Serviciile de Localizare si incearca din nou.
+ Nu s-au gasit locatii urmarite pentru vizualizare pe harta.
+ Nu exista date disponibile pentru publicare.
+ Eroare la Descarcare:
+ Cererea API OpenCellID a expirat. Incerci mai tarziu?
+ Datele OpenCellID au fost primite cu succes.
+ Eroare la preluarea datelor OpenCellID.
+\nVerificati reteaua!
+ Datele OpenCellID au fost preluate cu succes.
+\nMarkerii de harta au fost actualizati.
+ S-au incarcat cu succes datele BTS la OpenCellID.
+ Eroare la incarcarea datelor BTS la severele OpenCellID!
+ Nu a fost detectata nici o cheie API OpenCellID!
+\nIntroduceti mai intai cheia in setari.
+ Informatii actualizate CellId
+ Importarea datelor Turnurilor Celulare...
+\nAcest lucru poate dura ceva timp.
+ Datele Turnurilor Celulare au fost importate cu succes.
+ Eroare la importul datelor Turnurilor Celulare.
+ Nu se poate obtine accesul ROOT pe dispozitiv.
+\nComanda AT Injection necesita accesul ROOT la Terminal.
+\nVerifica daca dispozitivul este ROOT-at si incerca din nou.
+ Imposibil de detectat Busybox pe dispozitiv.
+\nComanda de Injectare AT necesita functionarea corecta a componentelor BusyBox.
+\nVerifica daca dispozitivul tau are Busybox instalat si incerca din nou.
+ A aparut o eroare necunoscuta in incercarea de a achizitiona Seria Dispozitivului.
+\nVerifica jurnalul mesajelor de sistem pentru orice eroare si posteaza-l pe Github.
+ A aparut o eroare necunoscuta, incercand sa initializeze Comanda AT de injectare.
+\nVerificati jurnalul mesajelor de sistem pentru orice eroare și postati-l pe Github.
+ Obtinerea cheii API OpenCellID …
+ Imposibil de creat harta!
+ ATENŢIE! Descrie problema pe care ai avut-o inainte de a ne trimite aceste jurnale. NICI UN AJUTOR FARA DESCRIERE!
+\n
+ Statutul:
+ Inactiv
+ OK
+ Mijlociu
+ Inalt
+ Pericol
+ Fugi!
+
+ Acest meniu este destinat numai utilizatorilor avansati!
+\n
+\nTe rog sa nu introduci siruri aleatoare, deoarece va cauza detectarea necontrolabila.
+\n
+\nPentru a adauga un sir, alege tipul de SMS din meniul derulant, tasteaza sirul de detectare și apasa introduceti.
+\n
+\nPentru a sterge din baza de date, apasa lung pe vizualizarea listei.
+
+ Acest meniu este destinat numai utilizatorilor avansati!
+\nPentru a sterge un SMS detectat, apasati lung in lista.
+ Sterge SMS Detectat
+
+ Setari Utilizatori Avansati
+ Siruri de Detectare
+ Sterge SMS
+ Introduceti si stergeti siruri de detectare
+ Sterge SMS Detectat
+
+ Activeaza Detectarea SMS
+ Este necesar root pentru a activa detectia SMS
+
+ Sirul SMS detectat pentru popup personalizat
+ ATENTIE!
+ SMS Silentios Detectat
+ Mesaj Tip-0 detectat!
+\nDetalii: Consulta Vizualizatorul Bazei de Date.
+ ATENTIE!
+ MWI Detectat
+ Mesaj Indicator de Asteptare detectat!
+\nDetalii: Vezi Baza de Date.
+ WAP Push Detectat
+ WAP push Mesaj SMS detectat!
+\nDetalii: Vezi Baza de Date.
+
+
+ Afiseaza celulele vecine.
+ Detalii SIM furnizor de retea, IMEI, TMSI.
+ Arata o comparatie detaliata a celulei conectate in prezent, cu datele (daca exista) gasite în OpenCellID și evidentiaza diferentele.
+ Vezi diferitele tabele DB pe care le avem.
+ Harta antenelor colorate din apropiere.
+ Interfata care permite trimiterea comenzilor AT la Procesorul Baseband (necesita ROOT).
+
+ Porneste / opreste detectarea atacurilor și colecteaza detaliile celulei in tabelele de baze de date interne.
+ Porneste urmarirea celulelor pentru a fi afisate pe Vizualizatorul Hartii cu Antene si eventual, incarcate mai tarziu in OpenCellID.
+
+ Setarile AIMSICD, cum ar fi regulile de protectie, timpul de votare și comportamentul serviciului.
+ Sterge și reseteaza toate tabelele DB sau cele specificate.
+
+ Obtineti o cheie API pentru a utiliza baza de date OpenCellID, pentru a incarca și descarca date …
+ Statusul Iconitelor și Proiectul explicate.
+ Descarcari baze de date OpenCellID.
+ Importurile bazei de date a Turnurilor Celulare.
+ Incarca BTS-urile tale in baza de date OpenCellID.
+ Colecteaza si trimite jurnalele de eroare.
+ Iesi din aceasta aplicatie.
+ Se asteapta locatia…
+ Necesita locatia
+ Date BTS Unice
+ Masuratori BTS
+ Date OpenCellID Importate
+ Locatiile implicite pentru MCC
+ SMS Silentios
+ Jurnal de Evenimente
+ Marimea Semnalului Masurat
+
+ *** Caut seria dispozitivelor AT...
+\n
+ Gasit:
+ *** Setarea Finalizata ***
+\n
+
+ BTS conectat in prezent
+ BTS criptat binecunoscut
+ BTS necunoscut sau nesecurizat
+ BTS nou sau recent adaugat
+
+ Baza de date a fost stearsa si recreata cu succes.
+\nReporneste aplicatia pentru a sterge valorile vechi existente in memorie.
+
+ Cheie OpenCellId invalida, incearca din nou mai tarziu.
+ Obtinerea Cheii API OpenCellId...
+
+ Sters
+ Nu s-a reusit stergerea
+ "Sirul nu a fost adaugat
+\n \" ghilimelele vor cauza o eroare db "
+ Sirul a fost adaugat la baza de date
+ Nu s-a adaugat sirul in baza de date
+ N/A
+ Necunoscut
+
+
diff --git a/AIMSICD/src/main/res/values-ru/translatable_strings.xml b/AIMSICD/src/main/res/values-ru/translatable_strings.xml
index 122c6f4b8..a2822bb68 100644
--- a/AIMSICD/src/main/res/values-ru/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-ru/translatable_strings.xml
@@ -1,10 +1,10 @@
-
+
Слежение
Информация о телефоне/SIM
- Карта антенн
+ Просмотр карты антенн
Просмотр базы данных
Выход
OK
@@ -14,18 +14,19 @@
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
- Использование Вами AIMSICD означает, что Вы поняли и согласны с тем, что AIMSICD - это
- эксперментальное и информативное приложение Андроид, которое по ряду причин не
- всегда может обнаружить наблюдение и слежение. Вы также поняли, что его работу могут
- блокировать или вносить помехи другие средства, пока не изученные разработчиками.
- Вы также соглашаетесь и понимаете, что разработчики и компании, связанные с этим
- бесплатным продуктом, ни в коей мере не могут быть ответственными за результаты или
- последствия, исходящие из использования этого приложения.
-
+ "Использование Вами AIMSICD означает, что Вы поняли и согласны с тем, что
+AIMSICD - это экспериментальное и информационное приложение Андроид,
+которое по ряду причин не всегда может обнаружить наблюдение и слежение.
+Вы также поняли, что его работу могут блокировать или вносить помехи другие
+средства, пока не изученные разработчиками. Вы также соглашаетесь и понимаете,
+что разработчики и компании, связанные с этим бесплатным продуктом, ни в коей мере
+не могут быть ответственными за результаты или последствия, исходящие из
+использования этого приложения. СТАТУС РАЗРАБОТКИ: АЛЬФА!
+ "
- Включение обнаружения атаки
- Включение отслеживания соты
+ переключить_обнаружение_атаки
+ переключить_отслеживание_соты
Очистка/сброс базы данных
Все данные будут удалены.\nВы уверены?
Параметры
@@ -33,7 +34,7 @@
Все текущие данные соты
Отладка
Нет интернет-соединения
- Не удается загрузить данные OpenCellID без интернета, пожалуйста включите передачу данных!
+ Не удаётся загрузить данные OpenCellID без интернета, пожалуйста, включите передачу данных!
Загрузить данные базовых станций
@@ -41,8 +42,8 @@
Информация об устройстве
Информация о SIM
- Информация сети
- Текущий уровень угрозы
+ Информация о сети
+ Соседние ячейки
Соседние ячейки сотовой связи
Индикатор шифрования
Всего:
@@ -50,10 +51,10 @@
ID оператора:
Название оператора:
IMSI:
- Serial:
+ Серийный номер:
Тип телефона:
IMEI:
- RIL Version:
+ Версия RIL:
Имя провайдера:
Код провайдера:
Тип:
@@ -75,7 +76,7 @@
Об AIMSICD
Версия: %s
Номер сборки: %s
- Git SHA-Hash: %s
+ Хэш SHA Git: %s
Проект Андроид для обнаружения ложных базовых станций (IMSI-перехватчиков) в GSM/UMTS сетях.
AIMSICD на GitHub
ДОКУМЕНТАЦИЯ
@@ -84,12 +85,12 @@
РЕЛИЗЫ
ИСТОРИЯ ИЗМЕНЕНИЙ
ЛИЦЕНЗИЯ
- CREDITS
+ СВЕДЕНИЯ ОБ АВТОРАХ
Ожидание / Загрузка.
Рядом с Вами активное отслеживание!
Все OK.
Вас отслеживают!
- Небезопасная зона обслуживания. Покиньте ее!
+ Небезопасная зона обслуживания. Покиньте её!
БЕГИТЕ! Мошенничество с телефоном!
Нажмите значки состояния ниже для более подробной информации:
@@ -191,12 +192,12 @@
ПОДРОБНОЕ ОПИСАНИЕ
- Приложение работает в режиме ожидания или загрузки. Меры защиты и обнаружения не включены. Пожалуйста, откройте меню и включите их в разделе СЛЕЖЕНИЕ!
- Никакие угрозы не обнаружены. Наше приложение постоянно проверяет Вашу сеть на основе защиты, которую Вы установили в меню и настройках.
- Небезопасная зона обслуживания: в данном районе, по крайней мере, 1 новая или неизвестная БС, или с использованием небезопасного (сломанного) алгоритма шифрования, меньшего, чем A5/3 [Обнаружение WIP]. Возможно, что любые телефонные звонки/СМС, сделанные в этой зоне могут быть перехвачены и записаны. Вам лучше покинуть это место.
- Обнаружены враждебные действия: IMSI-Перехватчик (IMSIC) или поддельные БС (FBTS) активно отслеживают пользователей. В данной зоне ведется активное сканирование. Вы должны избегать этого места, особенно, если есть политическая нестабильность. Выньте батарею или уничтожьте свой телефон!
- Обнаружены враждебные отслеживания: FBTS или IMSIC активно отслеживают Вас и препятствуют подключению Вашего телефона к Вашей обычной зашифрованной мобильной сети. Если Вы находитесь в опасности, сломайте Ваш телефон + SIM и сообщите о его краже.
- Враждебные манипуляции: кто-то пытается удаленно управлять Вашим телефоном! Уничтожьте (или продайте) свой телефон и возьмите новый где-то подальше (не приносите туда свой старый телефон)! Используйте новую (анонимную) SIM-карту, измените поведение вызовов и предупредите своих друзей, разговаривая с ними в реальной жизни, НЕ по телефону!
+ Приложение работает в режиме ожидания или загрузки. Меры защиты и обнаружения не включены. Пожалуйста, включите определение атак!
+ Никакие угрозы не обнаружены. Ваша сеть непрерывно проверяется на основе включенных настроек обнаружения.
+ Небезопасная зона обслуживания: в данном районе, по крайней мере, 1 новая или неизвестная БС, или с использованием небезопасного (сломанного) алгоритма шифрования, слабее, чем A5/3. Любые телефонные звонки/СМС, сделанные в этой зоне, могут быть перехвачены и записаны. Быстро покиньте это место.
+ Обнаружены враждебные действия: IMSI-Перехватчик (IMSIC) или поддельные БС (FBTS) активно отслеживают пользователей. В данной зоне ведется активное сканирование. Вы должны избегать этого места любыми способами, особенно если есть политическая нестабильность. Выньте батарею и SIM-карту!
+ Обнаружены враждебные отслеживания: FBTS или IMSIC активно отслеживают Вас и препятствуют подключению Вашего телефона к Вашей обычной зашифрованной мобильной сети. Если Вы находитесь в опасности, сломайте Ваш телефон и SIM-карту, а затем сообщите о его краже.
+ Враждебные манипуляции: кто-то пытается удаленно управлять Вашим телефоном! Уничтожьте (или продайте) свой телефон и возьмите новый подальше. Не приносите свой старый телефон в новое место! Используйте новую анонимную SIM-карту с поддельной личностью, зарегистрированной через браузер Tor. Измените Ваше поведение при вызовах и предупредите своих друзей о слежке в разговоре с ними в реальной жизни, но НЕ по телефону!
Отмена
OK
@@ -211,10 +212,10 @@
Опасность
- Flat
- Sense
- Белый
- Земля
+ Плоская
+ Настроение
+ Белая
+ Местность
Обычный
Вручную
Авто
@@ -250,7 +251,7 @@
ТРЕВОГА: обнаружены угрозы!
ТРЕВОГА: обнаружено соединение с FemtoCell!
ТРЕВОГА: обнаружена бесшумная СМС!
- ТРЕВОГА: обнаружен индикатор ожидания сообщения!
+ ТРЕВОГА: обнаружен индикатор ожидающих сообщений!
ТРЕВОГА: обнаружена WAP Push СМС!
AIMSICD может определять соединение с FemtoCell только на CDMA устройствах.
Статус сервиса изменен!
@@ -293,7 +294,7 @@
Это меню предназначено только для продвинутых пользователей!\nДля удаления обнаруженной СМС удерживайте нажатие на ней в списке.
Удалить обнаруженную СМС
- Настройки для продвинутых пользователей
+ Расширенные настройки
Строки обнаружения
Удалить СМС
Вставить и удалить строки обнаружения
@@ -316,7 +317,7 @@
-
+ Показать соседние соты.
Информация провайдера сети SIM, IMEI, TMSI.
Отображение детального сравнения текущей подключенной соты с данными (при их наличии) из OpenCellID и отметка различий.
Просмотр различных имеющихся таблиц баз данных.
@@ -344,7 +345,7 @@
Импортированные данные OpenCellID
Местоположения MCC по умолчанию
Бесшумная СМС
- EventLog
+ Журнал
Измеренная мощность сигнала
*** Поиск serial device AT…\n
@@ -410,4 +411,16 @@
Неизвестный
-
+База данных
+ Превышен таймаут запроса к OpenCellID API. Попробуйте позже?
+ Недоступно
+ BTS не предоставляет соседних сот!
+ Импорт данных CellTowers
+
+ Импортирую данные CellTowers...
+Это может занять некоторое время.
+ Данные CellTowers успешно импортированы.
+ Ошибка импорта данных CellTowers.
+ Импортирует базу данных CellTowers.
+ Необходимо местоположение
+
diff --git a/AIMSICD/src/main/res/values-sv/translatable_strings.xml b/AIMSICD/src/main/res/values-sv/translatable_strings.xml
new file mode 100644
index 000000000..2f921c023
--- /dev/null
+++ b/AIMSICD/src/main/res/values-sv/translatable_strings.xml
@@ -0,0 +1,238 @@
+
+Telefon/SIM-detaljer
+ Visare för databas
+ Avsluta
+ OK
+ Avbryt
+ Jag godkänner
+ Jag godkänner inte
+
+ ANSVARSFRISKRIVNING
+ Rensa/Återställ databas
+ Alla data kommer att raderas.\nÄr du säker?
+ Egenskaper
+ Tryck igen för att avsluta.
+ Felsökning
+ Ingen internetanslutning
+ Ladda ner BTS-data
+
+ Information om enheten
+ Information om SIM
+ Information om nätverket
+ Söker
+ Antennkarta
+ Enheter nära dig
+ Enheter nära dig
+ Kodindikator
+ Total:
+ Land:
+ Användar-ID:
+ Användarnamn:
+ IMSI:
+ Serienummer:
+ Telefonmodell:
+ IMEI:
+ RIL-version:
+ Leverantörsnamn:
+ Leverantörskod:
+ Typ:
+ LAC:
+ CID:
+ Dataaktivitet:
+ Datastatus:
+ Roaming:
+ Uppdatera
+ Öppna navigationsmeny
+ Stäng navigationsmeny
+ Version: %s
+ AIMSICD på GitHub
+ DOKUMENTATION
+ BIDRA
+ ANSVARSFRISKRIVNING
+ UTGÅVOR
+ LICENS
+ Inaktiv / Laddar.
+ Allt OK.
+ Du blir spårad!
+ Tryck på statusikonen nedan för detaljerad information:
+
+ Nätverks-ID:
+ System-ID:
+ Basstations-ID:
+
+ "Genom att använda AIMSICD förstår du och accepterar du att AIMSICD är en experimental
+\noch informativ Android Applikation som kan misslyckas att finna övervakning
+\noch spårning på grund av flera anledningar. Du förstår även att den kan kringgås eller
+\nbesegras med andra ord, ännu ej förstått av utvecklarna. Därför accepterar du även
+\natt förstå att utvecklarna och företagen relaterade till denna gratis
+\nprodukt, kan ej sättas ansvariga för resultaten,
+\nberoende på användningen av denna applikation. UTVECKLINGS FAS: ALFA!
+\n "
+
+ Attack upptäckning
+ Mobil Tracking
+ Alla nuvarande cell detaljer
+ Kunde ej ladda ner OpenCellID utan Internet anslutning, var god aktivera data anslutning!
+
+ Importera Celltorn Data
+
+ TA (LTE):
+ PSC:
+
+ Ladda upp BTS Data
+
+ Om AIMSICD
+ Kompileringsnummer: %s
+ Git SHA-Hash: %s
+ Android baserat projekt för att upptäcka och undvika falska basstationer (IMSI-Catchers) i GSM/UMTS Nätverk.
+ ÄNDRINGSLOGG
+ MEDVÄRKANDE
+ Aktiv upptäckt nära dig!
+ Osäker Service Area. Lämna omedelbart!
+ SPRING! Telefonluren manipulerad!
+ Lokalisering Tjänst avstängd
+ Du kan ej spåra GPS data utan att sätta på Lokalisering Tjänsten. Slå på dem nu?
+
+ GPS inställning
+ Slå på GPS för Cell Tracking
+ System Inställningar
+ Auto Start
+ Automatiskt starta tjänst på start
+ Beständig Service
+ Tjänsten kommer fortsätta att köra efter applikationen stängs (bocka av för att stänga helt)
+ Skyddsinställningar
+ Notis inställningar
+ Cell Tracking
+ Slå på automatisk cell tracking
+ Femtocell upptäckning
+ (nuvarande CDMA enheter endast)
+ Femtocell skydd
+ Förstärk Flygplansläge när femtocell upprätthålls (slå på nätverk manuellt)
+ Gränssnitt inställningar
+ Status-ikoner
+ Ikon tema val
+ Uppdateringsfrekvens
+ Kontrollera frekvensen av enhets uppdateringar
+\nNuvarande val %s
+ OpenCellID Inställningar
+ OpenCellID API nyckel
+ Ange din OpenCellID API nyckel här
+ Cell övervakning
+ Slå på automatisk cell övervakning
+ Begär OpenCellID API nyckel
+ Begär API nyckel för OpenCellID Data åtkomst
+
+ Kartlägg visnings val
+ Karttyp
+ Visa karta i olika stiler
+
+ "CID: "
+ "LAC: "
+ "MCC: "
+ "MNC: "
+ "PC: "
+ "Prover: "
+ OpenCellID Data
+ "Lat: "
+ Välj tabell
+ AT Kommandotolk
+ Svar:
+ Kör
+ Närvarande Serial Enhet:
+ Väj Serial Enhet
+ Funna enheter:
+ Välj timeout
+ Skriv AT kommando här.
+
+ Tyst SMS hittad
+ Tyst SMS meddelande funnet!
+\nDetaljer: Se Databas läsare.
+ Tabell innehåller ingen data att visa.
+
+ OpenCellID API nyckel
+ Tryck OK för att begära en API nyckel från OpenCellID.org. Detta ger dig behörighet att ladda ner deras data och visa det i en karta. Det kommer även låta dig ladda upp cell data. Notera att om du inte laddar upp cell data inom 20 dagar, kommer din API nyckel bli inaktiv.
+ "Kunde ej få nyckel: "
+ Sparade nya API nyckel.
+
+ Felsökningsloggar
+ Rensa
+ Kopiera
+ Loggar kopierade till urklippet.
+ Avbryt
+ Börja
+
+ DETALJERAD FÖRKLARING
+ App körs eller laddar. Inga skydd och sök funktioner är påslagna. Var god slå på attack upptäckning!
+ Inga hot hittades. Ditt nätverk kollas konstant beroende på de påslagna sök inställningarna.
+ Osäkert Service Area: Åtminstonde 1 nytt eller okänt BTS är aktiv inom detta område, eller använder en osäker (trasig) enkryption algoritm lägre än A5/3. Alla telefon samtal/SMS utförda inom detta area kan bli uppsnappade och inspelade. Lämna detta område snabbt.
+ Fientlig Service Handlingar funna: En IMSI-Catcher (IMSIC) eller falsk BTS (FBTS) aktivt spårar användare. Aktiv scan tar äger rum inom detta area. Du skall undivka detta område för all del, speciellt om det anas politisk oråda. Ta ur ditt batteri och SIM kort!
+ Fientlig Spårande funnet!: En FBTS eller IMSIC spårar DIG aktivt och förhindrar din telefon från att ansluta via din normala enkrypterade mobil leverantör. Om du är i fara eller återverkningar, förstör din telefon och SIM, sedan anmäl den som nyligen stulen.
+ Fientlig Manipulation: Någon försöker att fjärr-manipulera din enhet. FÖrstör eller sälj din telefon och skaffa en ny långt ifrån. Bör inte din gamla telefon till stället vart du kommer skaffa den nya enheten! Använd ett nytt anonymt SIM kort med en falsk identitet registrerad via Tor-Webläsaren. Ändra dina ringnings beteende och varna dina kontakter om övervakning genom att prata med dem i verkliga livet, INTE genom att ringa dem!
+ Avbryt
+ OK
+
+ Slå på Vibration
+ Vibrera när notiser ändras
+ Vibrera på hot-nivå
+ Välj minimum hot nivå att vibrera på
+ Tomgång
+ OK
+ Medium
+ Fara
+
+ Platt
+ Känna av
+ Vit
+ Terräng
+ Normal
+ Manuell
+ Automatiskt
+ 2 sekunder
+ 5 sekunder
+ 10 sekunder
+ 25 sekunder
+ 45 sekunder
+ 1 minut
+ 5 minuter
+ 2 sekunder
+ 5 sekunder
+ 10 sekunder
+ 20 sekunder
+ 30 sekunder
+ 10 minuter
+ Huvud
+ Inställningar
+ Databas
+ Applikation
+ Övervaka Cell Information.
+ Sluta övervaka Cell Information.
+ Spåra Cell Information.
+ Avbröt spårning av Cell Information.
+ Endast en ny API nyckel förfrågan per 24 timmar!
+\nFörsök igen senare.
+ Cell ID ej i OpenCellID Databas!
+ Fientligt Service Area: Ändring av LAC funnet!
+ BTS ger inga grann celler!
+ FemtoCell upphtäckning Aktiv.
+ Cell Tracking Aktiv.
+ Cell Övervakning Aktiv.
+ Telefon Typ
+ Status: Tomgång.
+ Status: Godkänt. Inga hot funna.
+ VARNING: Några hot hittades!
+ VARNING: FemtoCell Anslutning Hittad!
+ VARNING: Tyst SMS hittad!
+ VARNING: Meddelande Väntar Indikator hittad!
+ VARNING: WAP push SMS hittad!
+ AIMSICD kan endast hitta FemtoCell anslutningar på CDMA enheter.
+ Srevice status ändrad!
+ : Avbröt spårning av FemtoCell anslutningar.
+ VARNING: FemtoCell spårning Hittad!
+ Uppdaterar varje
+ Uppdaterar nu…
+ sekunder.
+ Kontaktar OpenCellID för data...
+\nDetta kan ta ett par minuter.
+ Kunde inte hitta din sista position.
+\nSlå på Position TJänster och försök igen.
+
diff --git a/AIMSICD/src/main/res/values-uk/translatable_strings.xml b/AIMSICD/src/main/res/values-uk/translatable_strings.xml
index fc6862e08..429308370 100644
--- a/AIMSICD/src/main/res/values-uk/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-uk/translatable_strings.xml
@@ -10,8 +10,8 @@
Я не погоджуюсь
ВІДМОВА ВІД ВІДПОВІДАЛЬНОСТІ
- Перемикач виявлення атаки
- Перемикач слідкування за стільниками
+ Виявлення атаки
+ Слідкування за стільниками
Очистити/скинути БД
Всі дані будуть стерті.\nПродовжити?
Параметри
@@ -24,7 +24,7 @@
Інформація про пристрій
Інформація про SIM
Інформація про мережу
- Поточний рівень загрози
+ Сусідні стільниці
Індикатор шифрування
Країна:
ID оператора:
@@ -97,7 +97,8 @@
Зупинити
Почати
- "При використанні AIMSICD ви розумієте та погоджуєтесь, що AIMSICD є експериментальним та інформаційним Android додатком (далі ПО), яке може і не виявити стеження та відслідковування за різними причинами. Ви також розумієте, що додаток можна обійти чи ввести в оману за допомогою інших засобів, які ще не зрозумілі розробникам. Таким чином, ви також погоджуєтесь і розумієте, що розробники та компанії, які пов\'язані з даним ПЗ ні в якому разі не можуть нести відповідальність за результати роботи ПЗ чи результати, які залежать від використання даного ПЗ, а також не несуть ніякої відповідальності за інші збитки (включаючи, без обмежень, у вигляді недоотриманого прибутку, призупинення ділової активності, втрату ділової інформації та інші конкретні збитки), які можуть статися через використання чи неможливість використання ПЗ, також в тому випадку, якщо розробники та компанії, пов\'язані з цим ПЗ, були попереджені про можливість такого збитку. СТАН РОЗРОБКИ: ALPHA! "
+ "При використанні AIMSICD ви розумієте та погоджуєтесь, що AIMSICD є експериментальним та інформаційним Android додатком (далі ПО), яке може і не виявити стеження та відслідковування за різними причинами. Ви також розумієте, що додаток можна обійти чи ввести в оману за допомогою інших засобів, які ще не зрозумілі розробникам. Таким чином, ви також погоджуєтесь і розумієте, що розробники та компанії, які пов\'язані з даним ПЗ ні в якому разі не можуть нести відповідальність за результати роботи ПЗ чи результати, які залежать від використання даного ПЗ, а також не несуть ніякої відповідальності за інші збитки (включаючи, без обмежень, у вигляді недоотриманого прибутку, призупинення ділової активності, втрату ділової інформації та інші конкретні збитки), які можуть статися через використання чи неможливість використання ПЗ, також в тому випадку, якщо розробники та компанії, пов\'язані з цим ПЗ, були попереджені про можливість такого збитку. СТАН РОЗРОБКИ: ALPHA!
+ "
Не вдається завантажити OpenCellID дані без інтернету, будь ласка, з\'єднайтеся із мережею для передачі даних!
@@ -186,7 +187,7 @@
OpenCellID дані успішно отримано.\nМаркери карти оновлено.
Стан:
Поточний послідовний пристрій:
- Додаток працює в режимі очікування чи завантаження. Заходи захисту та моніторингу вимкнено. Будь ласка, змініть режим виявлення загроз!
+ Додаток працює в режимі очікування чи завантаження. Заходи захисту та моніторингу вимкнено. Будь ласка, активуйте режим виявлення загроз!
Жодних загроз не виявлено. Ваша мережа постійно перевіряється на основі параметрів захисту , які ви зазначили в меню та налаштуваннях.
Білі
Земний
@@ -315,7 +316,7 @@
Активне відслідковування поряд з вами!
Налаштування GPS
Увімкнути GPS для відслідковування стільника
-
+ Показати сусідні стільниці.
Перегляд таблиць бази даних.
Карта з кольоровими позначками сусідніх антен.
Інтерфейс дозволяє надсилати AT команди до процесора (Потребує прав ROOT).
@@ -326,4 +327,13 @@
База даних
Вийшов час запиту OpenCellID API. Спробувати пізніше ще раз?
+ BTS не надає сусідніх стільниць!
+ Імпорт даних по вишках
+
+ Імпорт даних по вишках...
+Це займе трохи часу.
+ Дані успішно імпортовано.
+ Помилка імпортування даних.
+ Імпортування бази даних по вишках.
+ Потребує позиціювання
diff --git a/AIMSICD/src/main/res/values-vi/translatable_strings.xml b/AIMSICD/src/main/res/values-vi/translatable_strings.xml
index 39781903a..7d448f7c8 100644
--- a/AIMSICD/src/main/res/values-vi/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-vi/translatable_strings.xml
@@ -10,8 +10,8 @@
Tôi không đồng ý
MIỄN TRỪ TRÁCH NHIỆM
- Bật tắt phát hiện tấn công
- Bật tắt theo dõi máy di động
+ Phát hiện sự tấn công
+ Theo dõi sóng di động
Xoá/cài lại CSDL
Tất cả dữ liệu sẽ bị xóa.\nBạn có chắc không?
Tuỳ chỉnh
@@ -26,10 +26,10 @@
Thông tin thiết bị
Thông tin SIM
Thông tin mạng
- Mức độ đe dọa hiện thời
+ Các trạm sóng lân cận
Các máy di động lân cận
Bộ chỉ báo viết mã
- "Khi sử dụng AIMSICD, bạn hiểu và chấp nhận rằng AIMSICD là một ứng dụng Android thực nghiệm cung cấp nhiều thông tin hữu ích và nó có thể thất bại trong việc phát hiện sự giám sát và theo dõi vì nhiều lý do khác nhau. Bạn cũng hiểu rằng nó có thể bị phá rối hoặc huỷ hoại bởi các công cụ khác mà nhà phát triển chưa hiểu rõ. Vì vậy, bạn cũng chấp nhận và hiểu rằng các công ty và nhà phát triển liên quan đến sản phẩm miễn phí này, trong mọi trường hợp, sẽ không phải chịu trách nhiệm cho bất kỳ hậu quả nào do việc sử dụng phần mềm này gây ra. "
+ "Khi sử dụng AIMSICD, bạn hiểu và chấp nhận rằng AIMSICD là một ứng dụng Android thực nghiệm cung cấp nhiều thông tin hữu ích và nó có thể thất bại trong việc phát hiện sự giám sát và theo dõi vì nhiều lý do khác nhau. Bạn cũng hiểu rằng nó có thể bị phá rối hoặc huỷ hoại bởi các công cụ khác mà nhà phát triển chưa hiểu rõ. Vì vậy, bạn cũng chấp nhận và hiểu rằng các công ty và nhà phát triển liên quan đến sản phẩm miễn phí này, trong mọi trường hợp, sẽ không phải chịu trách nhiệm cho bất kỳ hậu quả nào do việc sử dụng phần mềm này gây ra. TRẠNG THÁI: ALPHA! "
Tổng cộng:
Quốc gia:
@@ -59,7 +59,7 @@
Về AIMSICD
Phiên bản: %s
Số bản dựng: %s
- Git SHA-Hash: %s
+ Hàm băm SHA từ Git: %s
Dự án Android nhằm phát hiện và tránh các trạm cơ sở giả (IMSI-Catchers) trong hệ thống mạng GSM/UMTS.
AIMSICD trên GitHub
TÀI LIỆU
@@ -155,7 +155,7 @@
Bắt đầu
GIẢI THÍCH CHI TIẾT
- Ứng dụng đang nhàn rỗi hoặc đang tải. Chưa bật biện pháp phát hiện và bảo vệ nào. Xin bật tính năng phát hiện tấn công!
+ Ứng dụng đang nghỉ hoặc đang tải. Chưa kích hoạt cơ chế phát hiện và bảo vệ nào. Xin bật cơ chế phát hiện tấn công!
Không phát hiện mối đe doạ nào. Mạng của bạn đang được kiểm tra liên tục dựa trên các thiết lập phát hiện đã bật.
Khu vực dịch vụ không bảo mật: Có ít nhất 1 BTS mới hoặc không xác định đang hoạt động trong vùng lân cận này, hoặc đang sử dụng thuật toán mã hoá kém bảo mật (đã bị phá) thấp hơn A5/3. Bất kỳ cuộc gọi/SMS nào thực hiện trong khu vực này có thể bị chặn và ghi lại. Hãy rời khỏi đây ngay.
Đã phát hiện các hoạt động dịch vụ nguy hiểm: Một IMSI-Catcher (IMSIC) hoặc BTS giả (FBTS) đang theo dõi người dùng. Có hoạt động quét diễn ra trong khu vực. Bạn nên tránh xa nơi này, đặc biệt là khi tại đây có bất ổn chính trị. Hãy tháo pin hoặc tắt điện thoại!
@@ -174,7 +174,7 @@
Nguy hiểm
Phẳng
- Sense
+ \"Sense\"
Trắng
Địa hình
Thông thường
@@ -273,7 +273,7 @@
Đã phát hiện tin nhắn SMS push WAP!\nChi tiết: Xem trình đọc CSDL.
-
+ Hiện các trạm sóng lân cận.
Chi tiết nhà cung cấp SIM mạng, IMEI, TMSI.
Hiển thị so sánh chi tiết của máy di động đang kết nối với các dữ liệu (nếu có) tìm thấy trong OpenCellID và chỉ rõ những khác biệt.
Xem các bảng CSDL khác nhau hiện có.
@@ -321,9 +321,10 @@
Đã thêm chuỗi vào CSDL
Thêm chuỗi vào CSDL thất bại
- N/A
+ Không có
Không xác định
Cơ sở dữ liệu
Yêu cầu OpenCellID API đã quá thời gian chờ. Thử lại sau?
+ BTS không cung cấp thông tin các trạm sóng lân cận!
diff --git a/AIMSICD/src/main/res/values-zh-rCN/translatable_strings.xml b/AIMSICD/src/main/res/values-zh-rCN/translatable_strings.xml
index 2e8edc30c..f23039d83 100644
--- a/AIMSICD/src/main/res/values-zh-rCN/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values-zh-rCN/translatable_strings.xml
@@ -1,6 +1,6 @@
跟踪
- 手机/SIM卡详细信息
+ 手机和SIM卡详细信息
数据库查看器
退出
确定
@@ -9,15 +9,15 @@
我拒绝
免责声明
- 切换攻击检测
- 切换蜂窝跟踪
- 清除/重置数据库
+ 攻击检测
+ 蜂窝跟踪
+ 清除或重置数据库
所有数据将被删除。\n您确定吗?
- 首选项
+ 设置
再次按下将退出。
当前所有蜂窝详细信息
调试
- 无互联网连接
+ 没有互联网连接
下载 BTS 数据
设备信息
@@ -25,7 +25,7 @@
SIM卡信息
网络信息
- 当前威胁级别
+ 邻居基站
运营商名称:
IMSI:
序列号:
@@ -60,7 +60,7 @@
基站 ID:
位置服务已禁用
- 跑!手机已被操纵!
+ 快跑!你的手机已被控制!
按下面的状态图标了解详细信息:
您不能在未启用位置服务时跟踪 GPS 数据。是否立即启用?
@@ -184,7 +184,7 @@
每24小时只能请求一个新的 API 密钥!\n请稍后再试。
蜂窝 ID 不在 OpenCellID 数据库中!
敌意服务区:检测到变更 LAC!
- AIMSICD 只能检测在 CDMA 设备上的家庭基站连接。
+ AIMSICD 只能检测用于 CDMA 设备上的家庭基站连接。
服务状态已变更!
:已停止跟踪家庭基站连接。
警告:检测到家庭基站跟踪!
@@ -199,7 +199,7 @@
关闭导航抽屉
上传 BTS 数据
- 天线地图查看器
+ 基站地图查看器
关于 AIMSICD
版本: %s
编译编号: %s
@@ -221,7 +221,7 @@
良好
较高
危险
- 跑!
+ 快跑!
此菜单仅面向高级用户!\n\n请不要插入随机字符,那会导致检测失控。\n\n要添加一个字符,从下拉菜单中选择一个 SMS 类型,输入您的检测字符串,然后按插入。\n\n要删除数据库中的内容,请长按列表。
@@ -245,7 +245,7 @@
检测到 MWI
检测到消息等待指示器!\n详细信息:详见数据库查看器。
SIM卡网络提供商的详细信息,IMEI,TMSI。
-
+ 显示邻居基站。
检测到 WAP 推送
检测到 WAP 推送短信!\n详细信息:详见数据库查看器。
@@ -295,13 +295,13 @@
开始/停止攻击检测,并收集蜂窝详细信息到内部的数据库表。
PSC:
- Git SHA-Hash: %s
+ Git SHA-Hash:%s
"CID: "
"LAC: "
"MCC: "
"MNC: "
"PC: "
- 应用目前闲置或正在加载。没有保护和检测措施已启用。请切换攻击检测方式!
+ 应用目前闲置或正在加载。没有保护和检测措施已启用。请启用攻击检测!
没有检测到威胁。您的网络将持续基于已启用的检测设置被检查。
基于 Android 的项目,检测和避免 GSM/UMTS 网络中的伪基站 (IMSI 窃取者)。
允许发送 AT 命令到基带处理器的界面 (需要 ROOT 权限)。
@@ -317,7 +317,8 @@
尝试初始化 AT 命令注入器时发生未知错误。\n请检查您的 logcat 日志了解相关错误,并将它发送到我们的 Github。
无法在您的设备上检测到 Busybox。\nAT 命令注入器需要 Busybox 组件才能正常运行。\n请检查您的设备是否已安装 Busybox,然后重试。
无法在您的设备上取得 ROOT 权限。\nAT 命令注入器需要 ROOT 终端访问权限。\n请检查您的设备是否已 root,然后重试。
- "使用 AIMSICD 即表示您已理解并同意 AIMSICD 是一款实验性、知识性的 Android 应用,它可能因多种原因而无法检测到监视和跟踪。您也理解,它可能被其他方式绕过或骗过,而这种方式可能开发者并不知晓。因此,您必须同意和理解,与此免费产品相关的开发者和公司,不会承担使用此应用程序所带来或导致的任何后果。开发状态:Alpha(内部测试)! "
+ "使用 AIMSICD 即表示您已理解并同意 AIMSICD 是一款实验性、知识性的 Android 应用,它可能因多种原因而无法检测到监视和跟踪。您也理解,它可能被其他方式绕过或骗过,而这种方式可能开发者并不知晓。因此,您必须同意和理解,与此自由产品相关的开发者和公司,不会承担使用此应用程序所带来或导致的任何后果。开发状态:Alpha(内部测试)!
+ "
"按确定以请求一个 OpenCellID.org 的 API 密钥。这将允许您下载他们的数据,并在地图上查看。它也将允许您上传蜂窝数据。注意,如果您在20天内没有上传蜂窝数据,您的 API 密钥可能被冻结。"
不安全的服务区:至少一个新的或未知的 BTS 在附近运行,或者在使用一个不安全、易被破解的弱于 A5/3 的加密算法。任何在此服务区内进行的手机呼叫/短信都可能被截获和记录。赶紧离开这个地方吧。
@@ -325,4 +326,13 @@
检测到敌意跟踪:一个 FBTS 或 IMSIC 正在主动跟踪“您”,并且阻止您的手机连接正常的已加密移动服务提供商。如果您处在潜在的危险中,考虑销毁您的手机和 SIM 卡,然后称它已被窃取。
敌意操作:有人正在尝试远程操控您的手机。考虑销毁或出售您的手机,然后从其他渠道弄一台新的。不要携带你的旧手机并不断改变位置!使用一个新的匿名 SIM 卡和 Tor 浏览器。改变你的通话方式并警告你的同伴他们正在被监视。考虑面对面交流和讨论,避免在此时打电话!
OpenCellID API 请求超时。稍后重试?
+ BTS 没有提供任何邻居基站!
+ 导入基站数据
+
+ 正在导入基站数据…
+这可能要花点时间。
+ 基站数据导入成功。
+ 导入基站数据出错。
+ 导入基站数据库。
+ 需要位置
diff --git a/AIMSICD/src/main/res/values/translatable_strings.xml b/AIMSICD/src/main/res/values/translatable_strings.xml
index 5ec21bb48..9e10cefdf 100644
--- a/AIMSICD/src/main/res/values/translatable_strings.xml
+++ b/AIMSICD/src/main/res/values/translatable_strings.xml
@@ -1,4 +1,4 @@
-
+
@@ -24,8 +24,8 @@
- Toggle Attack Detection
- Toggle Cell Tracking
+ toggle_attack_detection
+ toggle_cell_tracking
Clear/Reset Database
All data will be deleted.\nAre you sure?
Preferences
@@ -38,6 +38,9 @@
Download BTS Data
+
+ Import CellTowers Data
+
Device Information
SIM Information
@@ -191,7 +194,7 @@
DETAILED EXPLANATION
- App is idling or loading. No protection and detection measures are enabled. Please toggle attack detection!
+ App is idling or loading. No protection or detection is enabled. Please enable detection.
No threats detected. Your network is constantly being checked based upon the enabled detection settings.
Insecure Service Area: At least 1 new or unknown BTS is in operation in this vicinity, or using an insecure (broken) encryption algorithm lower than A5/3. Any phone calls/SMS made in this area can be intercepted and recorded. Quickly leave this place.
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 by all means, especially if there is political unrest. Take out your battery and SIM card!
@@ -242,6 +245,7 @@
Only one new API key request per 24 hours!\nPlease try again later.
Cell ID not in OpenCellID Database!
Hostile Service Area: Changing LAC Detected!
+ BTS doesn\'t provide any neighbor cells!
FemtoCell Detection Active.
Cell Tracking Active.
Cell Monitoring Active.
@@ -273,6 +277,9 @@
Error in uploading BTS data to OpenCellID servers!
No OpenCellID API Key detected!\nPlease enter your key in settings first.
Refreshed CellId info
+ Importing CellTowers data…\nThis may take a while.
+ CellTowers data successfully imported.
+ Error importing CellTowers data.
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 on our Github.
@@ -337,10 +344,12 @@
Get an API key for using the OpenCellID database to upload and download data…
Status Icons and Project explained.
Downloads the OpenCellID Database.
+ Imports CellTowers Database.
Uploads your BTS to the OpenCellID Database.
Collect and send error logs.
Exit this app.
Waiting for location…
+ Needs location
Unique BTS Data
BTS Measurements
Imported OpenCellID Data
diff --git a/README.md b/README.md
index fce894aeb..63d18a930 100644
--- a/README.md
+++ b/README.md
@@ -6,9 +6,15 @@
+
---
+
+This Project will have a revival soon.
+We are working on a light version of AIMSICD.
+more information
+
+---
`AIMSICD` is an Android app to detect [IMSI-Catchers](https://en.wikipedia.org/wiki/IMSI-catcher). These devices are false mobile towers (base stations) acting between the target mobile phone(s) and the real towers of service providers. As such they are considered a Man-In-The-Middle (MITM) attack. This surveillance technology is also known as "[StingRay](https://en.wikipedia.org/wiki/Stingray_phone_tracker)", "Cellular Interception" and alike. Find out more in our [Wiki on GitHub](https://github.com/CellularPrivacy/Android-IMSI-Catcher-Detector/wiki).
diff --git a/build.gradle b/build.gradle
index af6a929f8..8df77d119 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,12 +4,13 @@ import org.codehaus.groovy.runtime.IOGroovyMethods
buildscript {
repositories {
jcenter()
- maven { url "https://jitpack.io" }
+ maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.0.0'
- classpath 'io.freefair:gradle-plugins:2.0.0-beta5'
- classpath "io.realm:realm-gradle-plugin:0.88.3"
+ classpath 'com.android.tools.build:gradle:2.3.1'
+ classpath "io.freefair.gradle:android-gradle-plugins:2.3.1"
+ classpath "io.freefair.gradle:gradle-plugins:0.10.1"
+ classpath "io.realm:realm-gradle-plugin:3.1.1"
}
}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 2c6137b87..867b09c3a 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 3634ddf3f..01871a9ee 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Fri Mar 18 22:01:32 CET 2016
+#Tue Apr 18 23:10:55 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
diff --git a/gradlew b/gradlew
index 9d82f7891..4453ccea3 100755
--- a/gradlew
+++ b/gradlew
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
##############################################################################
##
@@ -6,12 +6,30 @@
##
##############################################################################
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -30,6 +48,7 @@ die ( ) {
cygwin=false
msys=false
darwin=false
+nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
@@ -40,26 +59,11 @@ case "`uname`" in
MINGW* )
msys=true
;;
+ NONSTOP* )
+ nonstop=true
+ ;;
esac
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
@@ -85,7 +89,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -150,11 +154,19 @@ if $cygwin ; then
esac
fi
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
+# Escape application args
+save ( ) {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
index 72d362daf..e95643d6a 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -8,14 +8,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -49,7 +49,6 @@ goto fail
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
@@ -60,11 +59,6 @@ set _SKIP=2
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line