Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maps Viewer #13

Closed
xLaMbChOpSx opened this issue Apr 6, 2014 · 47 comments
Closed

Maps Viewer #13

xLaMbChOpSx opened this issue Apr 6, 2014 · 47 comments

Comments

@xLaMbChOpSx
Copy link
Contributor

The View Map feature originally from RawPhone was used to display a map with signal strength overlays showing tracked data about signal strength information captured through the app.

I have rewritten a portion of this but wanted to ask if this is what we want to display on the map or show something else as signal strength is not really a main objective of the project.

Any thoughts or suggestions would be great so I don't waste time on writing something we don't really want. :)

@xLaMbChOpSx xLaMbChOpSx self-assigned this Apr 6, 2014
@SecUpwN
Copy link
Member

SecUpwN commented Apr 6, 2014

@xLaMbChOpSx, instead of showing the signal strength, I'd rather prefer a map of where attacks happened. Although the main function of AIMSICD (showing if network encryption is disabled) is not implemented yet, but maybe AIMSICD can also upload the plotted map data and compare it with other results to trace down fake cell towers? Just my two little cents. I don't need a map with signal strengths.

@E3V3A
Copy link
Contributor

E3V3A commented Apr 6, 2014

First of all, don't spend too much time on the map function. We need the other AT stuff resolved first. (Also, I'd prefer to stay with Google maps, since that's what most people have, by stock/default, unless you have a better solution, with alternative maps, that are easy to implement.)

I'm thinking that there are 3 essential things to consider here:
a) Showing a BTS "history" that would indicate if there's a sudden BTS popping up, where one has not been seen before.
2) If the encryption of a BTS has changed.
3) If the signal strength of a BTS has changed radically "lately". [We need to think more about this.]

So it's hard to see what's going on with this, without pictures...

@xLaMbChOpSx
Copy link
Contributor Author

Yeah the maps stuff is already written I was just trying to get the database helper to play nicely with it but didn't want to waste my time if it was not something that was important at the moment. The tracking all works well and currently captures signal strength, cell information and location into individual tables which of course can be modified but the code is there to support SQLite database actions for whatever purposes are needed.

@SecUpwN
Copy link
Member

SecUpwN commented Apr 6, 2014

@xLaMbChOpSx, I go with the suggestion of @E3V3A. Having an overview of these would be great. Maybe, in a later point of time, the map could automatically display identified real and fake cell towers..

@He3556
Copy link
Collaborator

He3556 commented Apr 6, 2014

No3 of @E3V3A is a very interesting point.

  1. The fake BTS would send with a higher signal strength than the original.
  2. But we should also notice the distance between the BTS and the phone. Because the fake BTS would imitate a BTS, which is far away - to overlay its signal. (If it imitates a near BTS, the catcher would need much more power, than the specification allows. And the radius would be greater > more phones would be catched or interruped)

So if we get a high signal from a BTS which is far away, this can be a "flag yellow" or red (to tell it in the words of catcher catcher)

But in reality i am not sure if it always works. The BTS is changing the signal power and so is the phone, too. There is a ETSI Spec. about how to regulate the sending power (for power saving).
I found it, when i was looking for a way to calculate the distance to the current connected BTS.

This could be a much stronger indicator. We could compare the measured distance to the geo-positions we get from the map. But this 2. option is hard to develop i guess. But i can do more research, if you think you can realize it somehow.

@E3V3A
Copy link
Contributor

E3V3A commented Apr 7, 2014

@He3556 ...Which is why we eventually need the raw diagnostic radio stream, so that we can also measure Timing Advance (TA) among other things...

@xLaMbChOpSx
Copy link
Contributor Author

The MapViewer class has been totally rewritten and is functioning correctly now including overlaying signal strength information, it has been upgraded to Google Maps API v2 whilst still maintaining compatibility with our minimum SDK level. I will push the commit shortly.

@SecUpwN
Copy link
Member

SecUpwN commented Apr 11, 2014

@xLaMbChOpSx, version 0.1.6 crashes instantly when clicking "Show Map" - probably because I have to Google Maps installed? Just to let you know: I HATE Google. No, I really do! Why in the world let Google get more data about me than it really should have? I get your point that you had to change to Google Maps API v2 to enable new features and gain an API Key, but can't we use something more open and free like stuff from the NoGAPPS-Project? Would be EXTREMELY thankfuk for an implementation of that. I'm sure @mar-v-in is willing to help making the switch, too.

@E3V3A
Copy link
Contributor

E3V3A commented Apr 12, 2014

@SecUpwN Uhm, good idea eventually..., but not right now, everyone "has" Gmaps and as little I like to share my data with Google, at least it works very good. WHy do you have 2 Gmaps installed!? That is not really the App problem I think.

EDIT: Dammit, I keep on getting the auto-filled tag names wrong...

@SecUpwN
Copy link
Member

SecUpwN commented Apr 13, 2014

@E3V3A, was this question meant for me? I am using AOKP for HTC One - Generic GSM and it naturally comes without GMaps. To be able to use things like my beloved Öffi (a public transport companion showing connections even with dealays) I utilize the App NetworkLocation for KitKat and Maps API 1 v0.5 Beta 3, both from the NoGAPPS-Project. I really see the potential of making AIMSICD become an awesome privacy-tool, yet we should try to at least not make it dependent on proprietary code by privacy-invading monsters like Google. Hence my question: Is a switch to a free and Open Source alternative like provided by @mar-v-in possible in the long run? Not sure if I ask for too much if the Maps stuff can be built into AIMSICD. What do YOU think of this, @xLaMbChOpSx?

@He3556
Copy link
Collaborator

He3556 commented Apr 14, 2014

There is something else we need to think about, when we switch to another map service sometime. The A-GPS is communication with Google Server, too. The assisted part sends out the Base Stations (Cell-ID's) to supl.google.com to get back information about the satellites in the area. This is usually a feature of the provider network. I didn't know, that Google delivers this feature in Android phones.
You can find the servers in the file /etc/gps.conf
It should look like this:
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org
SUPL_HOST=supl.google.com
SUPL_PORT=7276

If disabled, it will take a few minutes to get the right GPS coordinates. It seems that this is a problem in some custom ROM's. I am wondering if this service is also blocked in China? I will look for more info's about all that, (alternative services) when the time is right. Just want to inform you about it.

@E3V3A
Copy link
Contributor

E3V3A commented Apr 14, 2014

@He3556 We'll the other thing is, that soon people will not know the IPs of other DNS servers, than those of google, so the question is how far we should stretch our paranoia? Of course if google provides ping times of a few ms versus a few hundreds ms's for other servers, that will impact GPS lock-on times when moving around in uncommon areas. But is this something WE should worry about here? I don't think so, I think we should just have the option to disable/block (or change gps.conf) A-GPS and keep a pre-downloaded local map in device. (Assuming this is still possible.)

@He3556
Copy link
Collaborator

He3556 commented Apr 15, 2014

yes, a option to disable the assisted part of the A-GPS it would be great.
So the users can decide. I am just trying to think about the details. Thanks for your time.

@mjowe
Copy link

mjowe commented May 1, 2014

Maybe I'm totally wrong, but I thought there is an option in the System to disable A-GPS. Settings -> Locations Services -> Use wireless networks (.. use Google's location service to estimate your location faster ..)
That sounds a lot like A-GPS to me.

I created Issue #50 just today. It should be merged into this issue somehow I think.

The Maps API recreation of NoGapps can now be found in the MicroG project.
https://github.com/microg

Generally I don't see the Map View as a high priority at the moment. For now it would be no problem if it would just not work on devices without Google Services.

@E3V3A
Copy link
Contributor

E3V3A commented May 1, 2014

@mjowe See my response in other issue (#50). Yes, I now also think A-GPS is part of AOS. But there are some other funky and hidden behavior on Qualcomm modems, that kind of always keep the GPS on, even if never forwarded to AOS, user space. I found that out when investigating MSM modems in devices claimed not to have a GPS, and amazingly actually had a full GPS HW implementation installed and pushing GPS info into the big blue... And we simply do not know where this is going, without being able to monitor the radio interface.

@E3V3A
Copy link
Contributor

E3V3A commented May 1, 2014

@SecUpwN @xLaMbChOpSx In addition (and eventually) it would be very useful if we could have a spider web view of the local towers. For example, something similar to that shown in these apps/pictures.

Antennas
spider1

Field Test-SignalSitemap, this is probably the most useful, as you would clearly see how your phone changes towers with location and time.
spider2

Netmonitor
spider3s

and also some more Cell Info when touching cell tower on the map, perhaps something like in G-NetTrack:
map_cell_info1

One of the most awesome features of that app is the inclusion of the cell tower sector info.

gnettrack_sector_map

@rjh427
Copy link

rjh427 commented May 1, 2014

👍

@xLaMbChOpSx
Copy link
Contributor Author

@E3V3A I think that is an awesome idea and looks pretty cool as well, I can create a custom Info Window layout for the cell markers and we can also select a custom icon to use for them as well so they look a bit better than the default marker and also provide extended details as suggested. The current release does include a number of extra details but in a very plain fashion using the default info window.

I would need to look into the spider web view but it would definitely be a worthy feature, I will look at that once I have the OEM_HOOK_RAW incorporated and also finish the fragment for the advanced cell details featuring neighbouring cell data.

@E3V3A E3V3A added dev_discussion and removed bug labels May 3, 2014
@SecUpwN
Copy link
Member

SecUpwN commented May 11, 2014

@xLaMbChOpSx, I absolutely support the previous comment of @E3V3A. Rock it! ;-)

@E3V3A
Copy link
Contributor

E3V3A commented May 17, 2014

@xLaMbChOpSx CC: @SecUpwN @He3556
I have been experimenting a little with the Google API's related to Geolocation of cell towers. This is a feature they've had for a long time, but which has evolved and changed many times in the last 2 years. In addition it is a feature that Google are trying not to publicly promote, unless you have a "business" account. However, the API is public and is used by many of the deeply connected google applications, including those of Mozilla, who has their own extremely similar solution.

The advantage of Google API is that it gives a very precise geo location of the cell towers, given normal LAC/CID/MCC/MNC data. This data is probably (?) way more reliable than that provided by OpenCellID, whose measurements are mostly based on passer-by's, and occasional users uploads. For example in my city there were essentially no cell towers recorded until I started to use OpenCellID mapping, whereas Google would know all of them.

The shit part of using Google is that they require an API key, which requires you to sign up for a verified gmail account and a connected and verified credit card, even if it is never used. The "test" service is free for:

  • 100 queries per 24 hours.
  • 1 query per second, per user.

On the other hand, you can Google for API keys, and eventually you will find some you can "borrow" from either other Android Apps or other online services. We can use some of these to test with so we don't have to sing up for anything, until we can get our own... But there are still other options.

You can read all about this HERE and HERE

You can then just provide a JSON file with the appropriate data to get a fairly good result.
aimsicd_query.json:

{
 "homeMobileCountryCode": nnn,
 "homeMobileNetworkCode": 1,
 "radioType": "wcdma",
 "carrier": "Omnitel",
 "cellTowers": [
  {
   "cellId": nnnnnnnn,
   "locationAreaCode": nnn,
   "mobileCountryCode": nnn,
   "mobileNetworkCode": 1,
   "age": 0,
   "signalStrength": -81
  }
 ]
}

Then run the query with:

curl -d @aimsicd_query.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=API_KEY"

...and so on.

Using Mozilla!
http://mozilla-ichnaea.readthedocs.org/en/latest/api/index.html
http://mozilla-ichnaea.readthedocs.org/en/latest/api/search_api.html#api-search
https://location.services.mozilla.com/v1/geolocate?key=nightly

@SecUpwN
Copy link
Member

SecUpwN commented May 17, 2014

@E3V3A, great proposal! My 2 cents: Although I really love my Android device, I have the mindset that Google IS EVIL. And before we get into a deeper discussion on this, let me make my point: I would LOVE to stay away from everything Google as much as possible. PLEASE USE THE FREE MOZILLA APIs!

Yeah, Google might make great tools, they provide better APIs - but you see what price we'd have to pay. Signing up to Gmail, creating a "verified account" (which of course only gets verified with a valid phone number, and THEN linking a credit card to it? Gosh, even a fool can see the pattern here! Or, maybe not.. otherwise people would use their BRAIN and throw away their Gmail Accounts, then start using secure alternatives while at the same time switching to better and non-tracking search engines like DuckDuckGo.

Other than that, I'd also like to stay away from "borrowing" keys - if we can avoid legal trouble, I'm by all means voting to do so from the very beginning. Trust me, enough people watch our project - and maybe not everyone thinks that positive about it. So please, let's use real Open Source @xLaMbChOpSx. 👍

@E3V3A
Copy link
Contributor

E3V3A commented May 18, 2014

@SecUpwN Yes, I see your point. But we have to find a way to get reliable and highly accurate cell tower locations. This cannot be done without access to relevant debug GSM variables and/or excessive programming of new data collection and triangulation algorithms. So how do you propose to collect and obtain this info?

@SecUpwN
Copy link
Member

SecUpwN commented May 18, 2014

@E3V3A, I really don't know. What keeps us from using the Moziall APIs? I can't imagine that Google really is our only option for obtaining these accurate cell tower locations! Maybe we should ask the N$A? I'm sure they have the most accurate info and are glad to help us. 👅 Joke aside - I'll keep researching for a better method for obtaining accurate cell tower info. In the mean time, just keep this Issue open.

@tobykurien
Copy link
Contributor

I've discovered some strange things while looking into this issue:

  • There doesn't seem to be code to plot "currently connected BTS", it just plots whatever is in the "Cell Data" table. I am not sure where that is populated, but there could be other issues here, e.g. if a cell isn't deleted from the table, app always thinks it's connected to that cell.
  • There doesn't seem to be code to plot "neighbouring cells", so I added it - it should plot it in orange.
  • From what I can tell, the map plots are not updated, so if the data isn't ready when the map loads, it will never plot the data (e.g. neighbouring cells). It might update when the lcoation changes, haven't tested that.

@E3V3A
Copy link
Contributor

E3V3A commented Oct 26, 2014

Yeah, I don't think it was ever implemented like that, I simply don't know. I think the past implementation was just showing all the cells from OPENCELLID_TABLE.

For reference, here's a picture of our current DB tables:

aimsicd_mycellinfo_er_2

Another possibility is that the currently connected BTS data is kept in memory (because of frequent updates). This would make sense, since searching and comparing that with what's in the DB would probably be easier that way. But I doubt it was implemented in that way. Only @xLaMbChOpSx could answer that.

So @tobykurien you propose a new/different color for Neighboring Cells? Yes, sounds good to me.

@NghtWachman
Copy link

Hi guys

Just wanted to introduce myself as a newbie and I'm excited of the work you guys are doing.

Came across AIMSICD while searching through the web for protection against fake cell towers as I seem to have mysterious events on my phone when online or talking with a friend. I have downloaded the app onto my phone a Samsung Galaxy S5 which as I've notice while reading about your supported devices S5 is not amongst the listed devices. Downloaded AIMSICD yesterday followed the instruction on how to install the app onto my phone and I now have a sweet app that gives me accurate location of cell towers around me. So far so good, as of this moment nothing seemed off and everything seems smooth except for the map which seems to take few minutes to load up, but once loaded I seem to get accurate location on towers.

I also want to mention that I went to your website looking for a way to contribute to the discusion but it took me to XDA discussion thread that is closed, so I had no choice but to join Github just to post this comment, haha.. anyway keep up the good work guys and please, please DO NOT GIVE UP on this project as this is a very good project that will become very useful in the near future, I should also add that while doing my resarch yesterday on fake cell towers there was a Cesna plane flying above my area for close to six hours, now I'm not sure if this is coincidence but just makes one wonder.

Will be checking to see if I get any response from you guys as I notice the last time someone posted here was in October of this year.

@SecUpwN
Copy link
Member

SecUpwN commented Nov 18, 2014

@NghtWachman, welcome to our project! How cool you joined GitHub just to post this, rest assured you won't regret it. One more person who will (hopefully) contribute pull requests! 😸 As for the the discussion thingy: I will change that ASAP since you are the second guy pointing this out. Our discussion thread is currently closed due to the fact that peeps join in and tend to ask all sorts of irrelevant questions although that thread was primarily meant for highly technical talk. We might reopen it one day.

As for now, we are happy to see you joining our brave movement and hope you will spread the word. And hey, we have not "vanished", we are merely working off our asses in so many different places since we lack developers and it seems people rather like to just star us, instead of contributing code. You can change that. Feel warmly welcomed on behalf of our whole team, looking forward to your contributions!

@E3V3A
Copy link
Contributor

E3V3A commented Dec 21, 2014

A very friend and encouraging email from the author of the Antennas app:

Dear Team,

I'd love to help and I can make my source code available (although it is not great, it was put together in a weekend). I am on vacation away from home until Jan 6th, and my only connectivity is via my phone... Let's talk after that...

Cheers, and best wishes for the holidays,

Michael

So now you may wonder why this is important, since he's using Google maps, and we're using OSM. Well mostly because of the way he presents the various BTS as clearly labelled dots. (See image above.)

A red circle indicates the cell site that your mobile phone is currently using.
Yellow circles indicate other cell sites in your vicinity, that your mobile receiver is also connected to. Note that only the sites for your current network provider are visible to the application. This feature is not available on CDMA and UMTS
Smaller yellow circles indicate other cell sites in your vicinity that your mobile receiver was able to connect earlier in this session, but are now out of reach.
A blue circle indicates user location as reported by the GPS (G), the Google Network Location service (N) or as best guessed based on nearby antenna locations (A).
If you have a valid GPS location, a separate darker blue circle marked (N) indicates the "Network Location" determined by looking at nearby mobile and WiFi antennas. If you are using CDMA and WiFi is turned off, this should coincide with your active antenna location.

The numbers in the circles indicate signal strength. To calculate dBm from the number shown, use the formula dBm = -113 + 2 * strength. Values below -112 dBm are shown as 0, values over -52 dBm are shown as 31. If signal strength is unknown, a "?" is shown.

On some CDMA networks, signal strength indicators are not available. Instead the letter "A" (for Antenna) is shown.

Of course we'd have to tune this to our own purposes... But perhaps gives us good ideas on how to best present BTS info, and what to present, and so on...

@E3V3A
Copy link
Contributor

E3V3A commented Dec 21, 2014

Any ideas how to change the pins in OSM?

@SecUpwN
Copy link
Member

SecUpwN commented Dec 23, 2014

Any ideas how to change the pins in OSM?

What exactly has to be changed? I'm in brainstorming mode right now! :)

@tobykurien
Copy link
Contributor

The pins are set up in the Map Viewer, e.g. here is where the blue "currently connected" pin is set up: https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/blob/master/app/src/main/java/com/SecUpwN/AIMSICD/activities/MapViewerOsmDroid.java#L404

@E3V3A
Copy link
Contributor

E3V3A commented Dec 23, 2014

@tobykurien Yes, I know it has something to do with the "overlay" item, but I simply don't understand where the colors and "icons" are defined. There's no comments there, so how do I know it's blue or red or whatever. And how can we change those silly "drop" shaped pins into a circles? Also, what and why has that code following that line, been commented out? It doesn't work or something else?

@tobykurien
Copy link
Contributor

The icons are in the various drawable folders, named: ic_map_pin_XXXX (where XXXX is the colour).

@E3V3A
Copy link
Contributor

E3V3A commented Dec 31, 2014

Great, ok so they are here in the following sub-directories:

drawable-hdpi   
drawable-ldpi   
drawable-mdpi   
drawable-xhdpi  
drawable-xxhdpi 
drawable-xxxhdpi

What is a good tool to use to change all these with out having to do it individually for each DPI?

@SecUpwN
Copy link
Member

SecUpwN commented Dec 31, 2014

What is a good tool to use to change all these with out having to do it individually for each DPI?

Don't know yet. Wait. Found: Android Asset Studio. You should work on your google-foo, @E3V3A. ^^ Otherwise I'm a huge fan of GIMP, with which I crafted all the other Icons for our project so far.

@E3V3A
Copy link
Contributor

E3V3A commented Dec 31, 2014

So here's the code from Antennas that fixes the pins, these are not images as I thought but something else..

Here's the relevant code of SitesOverlay.java:
(The full code is here. ):

package com.technolatry.antennas;

import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;
import com.google.android.maps.Projection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

// Referenced classes of package com.technolatry.antennas:
//            SitesOverlayItem, Geo
public class SitesOverlay extends ItemizedOverlay
{

    private GeoPoint center;
    private List items;
    private Drawable marker;

    public SitesOverlay(Drawable drawable)
    {
        super(drawable);
        items = new ArrayList();
        marker = null;
        center = null;
        marker = drawable;
    }
...
    public void draw(Canvas canvas, MapView mapview, boolean flag)
    {
        ArrayList arraylist;
        Iterator iterator;
        String s;
        GeoPoint geopoint;
        Projection projection;
        Point point;
        Paint paint;
        double d;
        Iterator iterator1;
        boolean flag1;
        String s1;
        String s2;
        Projection projection1;
        Point point2;
        Paint paint1;
        int i;
        boolean flag2;
        try
        {
            arraylist = new ArrayList(items);
            Collections.sort(arraylist);
        }
        catch (Exception exception)
        {
            return;
        }
        if (flag || arraylist == null) goto _L2; else goto _L1
_L1:
        if (arraylist.size() <= 0) goto _L2; else goto _L3
_L3:
        iterator = arraylist.iterator();
_L8:
        if (iterator.hasNext()) goto _L5; else goto _L4
_L4:
        iterator1 = arraylist.iterator();
_L13:
        flag1 = iterator1.hasNext();
        if (flag1) goto _L6; else goto _L2
_L2:
        return;
_L5:
        OverlayItem overlayitem = (OverlayItem)iterator.next();
        s = overlayitem.getSnippet();
        geopoint = overlayitem.getPoint();
        projection = mapview.getProjection();
        point = new Point();
        projection.toPixels(geopoint, point);
        paint = getCPaint(s);
        if (center == null || s.equals("C")) goto _L8; else goto _L7
_L7:
        d = Geo.distance(geopoint, center);
        if (d > 10D && d < 40000D)
        {
            try
            {
                Point point1 = new Point();
                projection.toPixels(center, point1);
                canvas.drawLine(point1.x, point1.y, point.x, point.y, paint);
            }
            catch (Exception exception1) { }
        }
          goto _L8
_L6:
        OverlayItem overlayitem1 = (OverlayItem)iterator1.next();
        s1 = overlayitem1.getTitle();
        s2 = overlayitem1.getSnippet();
        GeoPoint geopoint1 = overlayitem1.getPoint();
        projection1 = mapview.getProjection();
        point2 = new Point();
        projection1.toPixels(geopoint1, point2);
        paint1 = new Paint();
        paint1.setARGB(255, 10, 10, 10);
        paint1.setAntiAlias(true);
        paint1.setFakeBoldText(true);
        if (!s2.equals("M")) goto _L10; else goto _L9
_L9:
        if (!s1.equalsIgnoreCase("G")) goto _L12; else goto _L11
_L11:
        i = (new Float(projection1.metersToEquatorPixels(200F))).intValue();
_L14:
        paint1.setARGB(255, 10, 10, 255);
_L15:
        Paint paint2 = getBPaint(s2);
        Paint paint3 = getCPaint(s2);
        RectF rectf = new RectF(point2.x - i, point2.y - i, i + point2.x, i + point2.y);
        canvas.drawOval(rectf, paint3);
        rectf.inset(1.0F, 1.0F);
        canvas.drawOval(rectf, paint2);
        if (s2.equals("M"))
        {
            paint3.setAlpha(255);
            RectF rectf1 = new RectF(point2.x - 13, point2.y - 13, 13 + point2.x, 13 + point2.y);
            canvas.drawOval(rectf1, paint3);
            RectF rectf2 = new RectF(point2.x, point2.y, point2.x, point2.y);
            canvas.drawOval(rectf2, paint3);
        }
        float f = paint3.measureText(s1);
        float f1 = paint3.getTextSize();
        canvas.drawText(s1, (float)point2.x - f / 2.0F, (float)(point2.y - 1) + f1 / 2.0F, paint1);
          goto _L13
_L12:
        i = (new Float(projection1.metersToEquatorPixels(2000F))).intValue();
          goto _L14
_L10:
        if (!s2.equals("N"))
        {
            break MISSING_BLOCK_LABEL_687;
        }
        i = 14;
          goto _L15
        if (!s2.equals("A"))
        {
            break MISSING_BLOCK_LABEL_704;
        }
        i = 11;
          goto _L15
        flag2 = s2.equals("C");
        if (flag2)
        {
            i = 5;
        } else
        {
            i = 11;
        }
          goto _L15
        Exception exception2;
        exception2;
          goto _L13
    }

    public Paint getBPaint(String s)
    {
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setFakeBoldText(true);
        if (s.equals("M"))
        {
            paint.setARGB(80, 180, 180, 240);
            return paint;
        }
        if (s.equals("N"))
        {
            paint.setARGB(128, 60, 60, 80);
            return paint;
        }
        if (s.equals("A"))
        {
            paint.setARGB(224, 200, 80, 80);
            return paint;
        }
        if (s.equals("H") || s.equals("C"))
        {
            paint.setARGB(224, 255, 196, 40);
            return paint;
        } else
        {
            paint.setARGB(255, 0, 0, 0);
            return paint;
        }
    }

    public Paint getCPaint(String s)
    {
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setFakeBoldText(true);
        paint.setStyle(android.graphics.Paint.Style.STROKE);
        paint.setStrokeWidth(1.0F);
        if (s.equals("M"))
        {
            paint.setARGB(128, 10, 10, 255);
            paint.setStrokeWidth(1.0F);
            return paint;
        }
        if (s.equals("N"))
        {
            paint.setARGB(128, 10, 10, 10);
            paint.setStrokeWidth(3F);
            return paint;
        }
        if (s.equals("A"))
        {
            paint.setARGB(224, 200, 10, 10);
            paint.setStrokeWidth(3F);
            return paint;
        }
        if (s.equals("H") || s.equals("C"))
        {
            paint.setARGB(224, 128, 98, 20);
            if (s.equals("H"))
            {
                paint.setStrokeWidth(3F);
                return paint;
            } else
            {
                paint.setStrokeWidth(2.0F);
                return paint;
            }
        } else
        {
            paint.setARGB(255, 0, 0, 0);
            return paint;
        }
    }
...

and from SitesOverlayItems.java:

package com.technolatry.antennas;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.OverlayItem;

public class SitesOverlayItem extends OverlayItem
    implements Comparable
{

    private String description;

    public SitesOverlayItem(GeoPoint geopoint, String s, String s1)
    {
        super(geopoint, s, s1);
    }

    public SitesOverlayItem(GeoPoint geopoint, String s, String s1, String s2)
    {
        this(geopoint, s, s1);
        description = s2;
    }

    private Integer parse(OverlayItem overlayitem)
    {
        if (overlayitem.getSnippet().equals("A")) { return Integer.valueOf(900); }
        if (overlayitem.getSnippet().equals("C")) { return Integer.valueOf(-30); }
        if (overlayitem.getSnippet().equals("M")) { return Integer.valueOf(-20); }
        if (overlayitem.getSnippet().equals("N")) { return Integer.valueOf(-10); }
        if (overlayitem.getTitle().equals("?")) { return Integer.valueOf(0); } 
        else { return Integer.valueOf(Integer.parseInt(overlayitem.getTitle())); }
    }

    public int compareTo(OverlayItem overlayitem)
    {
        int i;
        try
        {
            i = parse(this).compareTo(parse(overlayitem));
        }
        catch (Exception exception)
        {
            return 0;
        }
        return i;
    }

    public volatile int compareTo(Object obj)
    {
        return compareTo((OverlayItem)obj);
    }

    public String getDescrtiption()
    {
        return description;
    }
}

I'm not sure this can be applied to the OSM in the same way...

@SecUpwN
Copy link
Member

SecUpwN commented Mar 17, 2015

@E3V3A, what is the current state of this Issue? Is the Map Viewer perfect now?

@darkerego
Copy link

I am confused as to how to interpret the antenna map viewer data. So the green circles are known, real cells, the blue ones are... i don't know? And the green arrow that appears and sometimes moves? What does that indicate?

@He3556
Copy link
Collaborator

He3556 commented Mar 27, 2015

Hello darkerego
On the map we use clusterization now - than means that Cell Towers will be grouped. The red dots are clustered and the green dots are single cell towers. The arrow is your own position. I hope this info will help you.

@darkerego
Copy link

Thanks for the reply. I just updated from an older version to the newest and whenever I at home I get the yellow icon warning. What do the blue ring circles that appear on the map represent?

@SecUpwN
Copy link
Member

SecUpwN commented Mar 27, 2015

@He3556, I am strongly voting for adding a legend for the circles to the map. New Issue for this?

@darkerego
Copy link

@SecUpwN I second that! That would be a great feature. I've gotten some of my friends to use AIMSICD and they are intrigued, and a map legend would be very helpful for new users to interpret the data they are seeing. One other question, is there documentation somewhere explaining what exactly the AT Command Processor can be used for? Forgive me if I overlooked it, but the wiki pages I could find provided limited information. Btw, I love this project and would like to thank all of the developers for their efforts.

@E3V3A
Copy link
Contributor

E3V3A commented Jun 25, 2015

Closed in favor of #228 and #250.

@E3V3A E3V3A closed this as completed Jun 25, 2015
@bmcycles
Copy link

Why do I get multiple cells in one location and they move and they have different cid they are not anywhere near a real cell site and their lat and lon coordinates are all just a few numbers off and what are the red lines on map than span out away from each major city into nowhere

@bmcycles
Copy link

Please help asap on my question I think we are being watched for a long time there are lots of different signs and issues that come up often thanks

@SecUpwN
Copy link
Member

SecUpwN commented Jan 17, 2016

Why do I get multiple cells in one location and they move and they have different cid they are not anywhere near a real cell site and their lat and lon coordinates are all just a few numbers off and what are the red lines on map than span out away from each major city into nowhere

@bmcycles, sorry to hear you're having Issues. Please file a fresh Issue with this and add screenshots.

@CellularPrivacy CellularPrivacy locked and limited conversation to collaborators Jan 17, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

10 participants