Giter VIP home page Giter VIP logo

ichnaeanlpbackend's Introduction

IchnaeaNlpBackend

Build Status

UnifiedNlp backend that uses Mozilla Location Services to resolve locations.

License

Copyright (C) 2015-2022 microG Project Team

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

The launcher icon (res/mipmap-*/ic_launcher.png) is created using the Launcher Icon Generator from Android Asset Studio and thus licensed under CC BY 3.0.

ichnaeanlpbackend's People

Contributors

be-neth avatar burunduk avatar crankycoder avatar daktak avatar jonathanklee avatar kamikazow avatar mar-v-in avatar xottab-duty avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ichnaeanlpbackend's Issues

Does crash in Android 6.0.1

Your backend does crash in Android 6.0.1 (OmniROM and CopperheadOS).

I get no location information at all. I use a hammerhead (Nexus 5) device.

Exception if location permission is missing on Android 6

Hi, just a note if other people are looking for the same problem. The app force closes if the location permission is missing on Android 6 with the following exception:

01-14 13:14:50.510 15391 15391 E AndroidRuntime: FATAL EXCEPTION: main
01-14 13:14:50.510 15391 15391 E AndroidRuntime: Process: org.microg.nlp.backend.ichnaea, PID: 15391
01-14 13:14:50.510 15391 15391 E AndroidRuntime: java.lang.SecurityException: Neither user 10113 nor current process has android.permission.ACCESS_COARSE_LOCATION.

It's just displaying a common error in the GUI, but works if the location permission is granted manually. Nice would be a dialogue I guess, but a simple toast message that leads in the right direction may also be enough.

System crashing after fetch attempts happen

When using the Mozilla backend for UnifiedNlp on Lineage+microG I get a reboot. I am currently not able to reproduce this crash extremely reliably but it seems to be related to use of Instagram and NewPipe one after another. Here's a snippet from logcat:

08-27 21:37:37.881  1267  1745 W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in handler on main thread (main)
08-27 21:37:37.886  1267  1745 W Watchdog: main annotated stack trace:
08-27 21:37:37.886  1267  1745 W Watchdog:     at com.android.server.ServiceWatcher.onServiceDisconnected(ServiceWatcher.java:384)
08-27 21:37:37.887  1267  1745 W Watchdog:     - waiting to lock <0x082047a2> (a java.lang.Object)
08-27 21:37:37.887  1267  1745 W Watchdog:     at android.app.LoadedApk$ServiceDispatcher.doDeath(LoadedApk.java:1749)
08-27 21:37:37.887  1267  1745 W Watchdog:     at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1764)
08-27 21:37:37.887  1267  1745 W Watchdog:     at android.os.Handler.handleCallback(Handler.java:873)
08-27 21:37:37.887  1267  1745 W Watchdog:     at android.os.Handler.dispatchMessage(Handler.java:99)
08-27 21:37:37.887  1267  1745 W Watchdog:     at android.os.Looper.loop(Looper.java:193)
08-27 21:37:37.887  1267  1745 W Watchdog:     at com.android.server.SystemServer.run(SystemServer.java:480)
08-27 21:37:37.887  1267  1745 W Watchdog:     at com.android.server.SystemServer.main(SystemServer.java:302)
08-27 21:37:37.887  1267  1745 W Watchdog:     at java.lang.reflect.Method.invoke(Native Method)
08-27 21:37:37.887  1267  1745 W Watchdog:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
08-27 21:37:37.887  1267  1745 W Watchdog:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:838)
08-27 21:37:37.888  1267  1745 W Watchdog: *** GOODBYE!
08-27 21:37:38.074  8542  8542 E AndroidRuntime: FATAL EXCEPTION: main
08-27 21:37:38.074  8542  8542 E AndroidRuntime: Process: com.android.phone, PID: 8542
08-27 21:37:38.074  8542  8542 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
08-27 21:37:38.079  6955  6955 E AndroidRuntime: FATAL EXCEPTION: main
08-27 21:37:38.079  6955  6955 E AndroidRuntime: Process: org.microg.nlp.backend.ichnaea, PID: 6955
08-27 21:37:38.079  6955  6955 E AndroidRuntime: java.lang.RuntimeException: Unable to unbind to service org.microg.nlp.backend.ichnaea.BackendService@9fb379c with Intent { act=org.microg.nlp.LOCATION_BACKEND pkg=org.microg.nlp.backend.ichnaea cmp=org.microg.nlp.backend.ichnaea/.BackendService }: java.lang.IllegalStateException: Do not call onClose if not opened before
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at android.app.ActivityThread.handleUnbindService(ActivityThread.java:3641)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at android.app.ActivityThread.access$1500(ActivityThread.java:200)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1682)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:193)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6718)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Do not call onClose if not opened before
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at org.microg.nlp.api.AbstractBackendHelper.onClose(AbstractBackendHelper.java:47)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at org.microg.nlp.api.CellBackendHelper.onClose(CellBackendHelper.java:382)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at org.microg.nlp.api.HelperLocationBackendService.onClose(HelperLocationBackendService.java:64)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at org.microg.nlp.backend.ichnaea.BackendService.onClose(BackendService.java:153)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at org.microg.nlp.api.LocationBackendService.disconnect(LocationBackendService.java:80)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at org.microg.nlp.api.AbstractBackendService.onUnbind(AbstractBackendService.java:58)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	at android.app.ActivityThread.handleUnbindService(ActivityThread.java:3625)
08-27 21:37:38.079  6955  6955 E AndroidRuntime: 	... 8 more
08-27 21:37:38.131   618   635 D NetlinkEvent: Unknown ifindex 33 in RTM_DELADDR
08-27 21:37:38.364  8741  8741 I wificond: wificond is starting up...

Ichnaea not fetching cells

Hi,

I'm trying to get UnifiedNlp to work on my phone running Android 4.2.2. With wifi, everything is working fine with either this backend or the AppleWifi backend. However, it seems that using wifi networks for location positionning under Android 4.2.2 requires having the wifi always on, so I'm looking for a way to rely on cell network.

Using cell network in this backend, I don't get any position. After investigating it a bit in adb logcat, this line always log "Cells: 0" which seems to mean it is not fetching the nearby cells. Not sure why :/

Thanks

Permissions not being granted

I am having trouble getting this back-end to work. I have looked through logcat when running satstat and the only references to "Ichnaea" i have are as follows:

W PackageManager: Not granting permission android.permission.ACCESS_COARSE_LOCATION to package org.microg.nlp.backend.ichnaea because it was previously installed without
W PackageManager: Not granting permission android.permission.ACCESS_FINE_LOCATION to package
W PackageManager: Not granting permission android.permission.READ_PHONE_STATE to package org.microg.nlp.backend.ichnaea because it was previously installed without
I ActivityManager: Start proc 8497:org.microg.nlp.backend.ichnaea/u0a54 for service org.microg.nlp.backend.ichnaea/.BackendService

How can I grant the app the permissions it needs?

missing PEERS_MAC_ADDRESS permission

Describe the bug
when using the IchnaeaNlpBackend on android 11 it throws the following error

08-25 18:15:10.028  1066  2727 I WifiService: startScan uid=10133
08-25 18:15:10.030  1066  2727 E WifiService: Permission violation - startScan not allowed for uid=10133, packageName=org.microg.nlp.backend.ichnaea, reason=java.lang.SecurityException: UID 10133 has no location permission
08-25 18:15:10.032  2161  2161 D LocationFuser: Received no location from org.microg.nlp.backend.ichnaea/.BackendService

looking through the aosp code for android 11 it appears that it fails here http://aosp.opersys.com/xref/android-11.0.0_r47/xref/frameworks/opt/net/wifi/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java#358

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

System
Android Version: [e.g. 10] 11
Custom ROM: [e.g. LineageOS 17.1] /e/

Additional context
Add any other context about the problem here.

F-Droid report DisabledAlgorithm and KnownVuln

In this page it report these:

  • DisabledAlgorithm

This APK was signed using a signature algorithm that was disabled because it is broken.
Since April 2017, APK signatures that use MD5 are no longer considered valid, jarsigner and apksigner will return an error when verifying.

  • KnownVuln

This APK has a known security vulnerability, found by one of the scanners in fdroidserver.
current APK has a weak MD5 signature aka AntiFeature:DisabledAlgorithm
fix by making new release or rebuild to get an APK signed with the current signature algorithms
uses a version of OpenSSL that has known vulnerabilities
update the app to OpenSSL 1.0.2f/1.0.1r or higher. For more info, see How to address OpenSSL vulnerabilities in your apps

It would be nice to fix them.

Doesn't request background location permission in Android 10

In Android 10, a new location permission was introduced. Therefore, apps have to request android.permission.ACCESS_BACKGROUND_LOCATION in order to access location when running in background. Manually allowing the backend to access background location via local terminal doesn't seem to work.

01-11 17:19:49.047 3493 7691 E WifiService: Permission violation - startScan not allowed for uid=10163, packageName=org.microg.nlp.backend.ichnaea, reason=java.lang.SecurityException: UID 10163 has no location permission

A workaround is proposed by adding this permission to the AndroidManifest.xml:

microg/GmsCore#986

Occasionally freezing

The plugin is occasionally freezing and when this happens the location can no more be determined in any app. The logcat doesn't give useful hints. Reinstalling does not help either. Someone else ?

Does it interfer with MozStumbler

Hello, I've been using your backend for a week now and I have a question:

  • I've been using Mozstumbler to help Mozilla Location Service and now that I use your backend I wonder it simply does the same thing as Mozstumbler does ?
  • If it does I can uninstall Mozstumbler because it would be pointless to have it if your backend does the same job isn't it ?

Thanks

Doesn't work well in 2G/3G

Hello,

I don't know if it's UnifiedNlp or IchnaeaNlpBackend that doesn't work well but often my map apps can't find my location. I meant that doesn't work well with GPS disabled (disabled or in buildings). With GPS the location is found quickly. When GPS is not available UnifiedNLP should locate me, not accurately but I think in a range of 100m to 1km based on wifi and gsm, and that often not the case.

  • Sometimes the location is never found
  • Sometimes the location is quite imprecise (200+ km radius)
  • Sometimes the location is wrong, not updated, and correspond to the location where the last time I used the map apps

By the way I live in Bordeaux, France and there is plenty of wifi and 2G, 3G around. The thing is that at a given location sometimes that work, sometimes not.

Thanks !

Android 11 requires permanent location permission

Describe the bug
Android 11 apparently requires new permissions to work in background : https://medium.com/swlh/request-location-permission-correctly-in-android-11-61afe95a11ad

To Reproduce
Steps to reproduce the behavior:

  1. Install Mozilla Location backend
  2. Activate it in MicroG
  3. Configure it
  4. Android requests location permission, but doesn't allow permanent location ; only while the app is running"
  5. No network location is shown in troubleshooting apps such as SatStat

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

System
Android Version: Android 11
Custom ROM: LineageOS 18.1

Stop pointing to Mozilla Stumbler

Describe the bug
Currently, this backend points out to Mozilla Stumber as something people can use to help out Mozilla's database.
However, that application was "retired" last February: https://discourse.mozilla.org/t/retiring-mozilla-stumbler/75206 .
As that announcement points out, https://github.com/zamojski/TowerCollector can be used as an alternative to contribute with
submiting cell towers to MLS, we can either just take out that section or point to TowerCollector instead.

Wifi throttling needs to be disabled

I needed to disable wifi throttling in the dev options to make this backend work. Else WifiService refuses to scan completely and the position is not passed on:

06-07 23:39:17.240  1293  1909 I WifiService: startScan uid=10181
06-07 23:39:17.242  1293  2037 I WifiScanRequestProxy: Scan request from org.microg.nlp.backend.ichnaea throttled
06-07 23:39:17.242  1293  1909 E WifiService: Failed to start scan
06-07 23:39:17.250  5276  5276 D BackendHelper: No change in WiFi networks

This is unpleasant, this should work out of the box.

Add caching

Similar to the Apple Nlp backend, this backend should probably cache location results. This would improve data usage, responsiveness and privacy.

Contribute Data disables Location Service

I've installed your backend from F-Droid, backend is up to date. This afternoon I wanted to enable the "contribute data" option but when I enable it the backend does not working after. Tried to disable the option it works great again.....

Don't know how to provide a logcat or anything else but would be happy to help

Galaxy S(1) + Omni Rom 4.4.4 + IchnaeNlpBackend KO with cell but OK with WIFI

Hello,
I have some problem with this configuration. Also the tool Mozilla Stumbler doesn't work.
I used the last apk from F-droid and the release version of Omni Rom.
I saw some logcat but there is no information to understand the issue ...

For information, LocalGsmNlpBackend works with a database celldb.

If you have any test to make or tips, it will be greatfull.

Best regards,
Wark.

Crashes when selected in UnifiedNlp settings

ROM: CM-13.0-20160325-NIGHTLY-jfltexx

Using the XposedUnifiedNlp module and UnifiedNlp (v1.6.2-dirty) I can successfully access and configure the settings of the Mozilla Location services backend, but when I go (back) to the UnifiedNlp settings, activate this backend and click "ok" the default Android crash message is shown.

Updated zh-rCN (Chinese (China)) translation

I have translated your application into zh-rCN (Chinese (China)). Here is the xml:

src/main/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?><!--
  ~ Copyright (C) 2013-2017 microG Project Team
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<resources>
    <string name="app_name">Mozilla UnifiedNlp 后端</string>
    <string name="backend_name">Mozilla 定位服务</string>
    <string name="summary">使用 Mozilla 的在线数据库进行定位</string>

    <string name="pref_category_submit">数据贡献</string>
    <string name="pref_title_submit_data">贡献数据</string>
    <string name="pref_description_submit_data">将访问点 (access point) 信息提交至 Mozilla 定位服务的公共数据库</string>
    <string name="pref_title_nickname">昵称</string>
    <string name="pref_description_nickname">计入 Mozilla 定位服务贡献排行榜(在提交时)</string>
    <string name="pref_title_install_mozstumbler">安装 Mozilla Stumbler</string>
    <string name="pref_description_install_mozstumbler">Mozilla Stumbler 是用来向 Mozilla 定位服务的公共数据库贡献信息的工具</string>

    <string name="pref_category_source">数据来源</string>
    <string name="pref_title_use_wifis">使用 Wi-Fi</string>
    <string name="pref_description_use_wifis">是否将 Wi-Fi 数据发送至定位服务</string>
    <string name="pref_title_use_cells">使用移动数据网络基站 (GSM/UMTS/LTE/CDMA)</string>
    <string name="pref_description_use_cells">是否将移动数据网络基站信息发送至定位服务。\n
 这需要 Android 4.2 或更高版本。</string>

    <string name="first_time_notification_title">为 Mozilla 定位服务贡献数据</string>
    <string name="first_time_notification_content">Mozilla位置服务是一个自由的、由用户驱动的地理位置数据库。&lt;br&gt;Ichnaea 后端允许您在不消耗额外的电池或网络流量的情况下为此数据库作出贡献,从而提高每一位用户的定位准确度。&lt;br&gt; &lt;b&gt;触摸此处即可打开设置,启用贡献数据功能。&lt;/ b&gt;谢谢。</string>
</resources>

Translation made with Stringlate.

Backend doesn't work with UMTS and LTE

Hello,

I describe the problem. I use the backend with radio GSM and here it works perfect, after them i test UMTS and LTE.
UMTS can only be locate via the Location Area Code and LTE via the Mobile Country Code.
The cellids exists all in the database and the GSM Location Backend works offline perfect.
I use a Moto G.

No location provided (how to debug)

Unfortunately I can't get the location backend to work and I'm a bit lost to find the reason. I've installed the latest UnifiedNlp (GAPPS Version, since I've playstore installed), the XposedUnifiedNlp Module and the IchnaeaNlpBackend 1.4.0 configured and activated. According to the SelfTest everything is in order and should work but "No UnifiedNlp location was provided by the system within 10 seconds".

Now I'm a bit lost on how to find the problem. There is no error message and logcat doesn't show any related errors. Are there any other ways to debug this problem? Or is this a known behaviour?

Im using Lineage 16.0 on an Sony Xperia XZ1Compact

add option to temporarily turn on WiFi when location is requested

It would be convenient to add an option to automatically and temporarily turn on the WiFi radio when location is requested if the WiFi radio was off at the time of the request. I normally keep my WiFi radio off to save battery, but have to activate it for location.

Thank you!

Thank you!

Thank you for your project and software!

Thank you for maintenance in the past and in the future!

Kind regards and season's greetings!

Offline data base possible ?

Hello

First thanks for your amazing work !!!

I found that only official backend are working (from microg) all other alternatives does not seems to work.

Any way is it possible to use/create an offline data base like "LocalGsmNlpBackend" is supposed to do ?

Thanks

"No instance found active" in first several runs

I refer to this post for a background, especially a filtered logcat.

MozillaNlpBackend version 1.4.0 with microG version 0.2.8.17785-4 (06c8b76)

When Mozilla Nlp backend is (firstly) enabled in UnifiedNlp, there are messages in logcat: IchnaeaBackendService: No instance found active. The backend gives the location only after a long period and maybe the repeated re-enablings are also necessary.

After searching in codes, I found that the only place to print this message is in the member function reloadInstanceSettings() when instance == null. Note that

  1. instance is a private static variable which is written only by protected member functions onOpen() and onClose(), as far as I understand.
  2. reloadInstanceSettings() is a public member function. However, among member functions, only onCreate() calls it.

This seems to be illogical. The instance could only be set to a non-null value by onOpen(). That is to say, every call to onCreate() would have failed with No instance found active. before the first call of onOpen() - this is a plausible reason why Ichnaea does not work once enabled in UnifiedNlp. Other backends do not share a similar issue under the same circumstance. Especially if we compare the code onCreate() here and that in Apple WiFi Nlp Backend, we see that onCreate() there does not check any analog of instance.

GPS is stuck at my old place

Describe the bug
I moved to another place. but since I also moved my computer and all my devices, also the wifi is called the same (tough it's not the same router anymore).
Now, living here for half a year, I was annoyed by the GPS always showing my old home location with pretty good accuracy. Checked out microG location Modules and the Mozilla Location Service seems to be quite certain that my actual location is... well... 470km away. all the other nlp services I used didn't find anything, so when disabling Mozilla Location Service, there is no GPS at all (at least inside my appartment).

Screenshots
signal-2023-01-22-201726

System

Android Version: Android 11 (Samsung Galaxy S10)
Android Version: Android 12 (Fairphone)
Custom ROM: /e/OS (microG preinstalled)
Both devices have the same problem.

Additional context
well, I can't really add screenshots of my location without crossing some privacy lines...

[com.mercadopago.wallet] Google's ML Kit for codebar scanning causes crash

App name
Name: Mercado Pago
Package id: com.mercadopago.wallet
Link

Describe the bug
When attempting to use the qrscanner from the app, it crashes instantly and without fault. The log points towards Google's ML Kit's barcode scanner, part of G Play Services, which, as I don't have it, would assumingly be the cause of the crash.

To Reproduce
Steps to reproduce the behavior:

  1. Open the app
  2. Click on 'QR Scan' at the bottom
  3. Crash

Expected behavior
What should happen is that the app would open a qrcode scanner, as it used to, but later versions seem to have implemented this new API.

photo5019277414546647639

System
Android Version: 11
Custom ROM: [crDroid 7.17
Device: Mi A1 (tissot)

microG
microG Core version: 0.2.24.214816
microG Self-Check results: All ticked

I hope the screenshot is sufficient.

Cannot enable on Android Nougat

I get a toast message with "Error initializing backend" when I try to enable this service.

logcat:

07-25 20:01:31.424  4579 23414 W ActivityManager: Permission Denial: Accessing service ComponentInfo{org.microg.nlp.backend.ichnaea/org.microg.nlp.backend.ichnaea.BackendService} from pid=30863, uid=10037 requires android.permission.ACCESS_COARSE_LOCATION

Looks like we need to request permissions?

Not compatible with Android 4.1 and below?

Though the F-Droid repo points out this backend should work on Android 2.3.3+, and according to the map my area is covered with a bunch of WiFi APs in the Mozilla database, I couldn't get it to work on my 4.1 device: it returns no location. A closer look with logcat (see this pastebin) suggests something here requires at least Android 4.2. Excerpt:

W/NlpLocationBackendHelper( 8976): java.lang.IllegalStateException: Requires Android 4.2+
[…]
Unbinding from: Intent { act=org.microg.nlp.LOCATION_BACKEND pkg=org.microg.nlp.backend.ichnaea cmp=org.microg.nlp.backend.ichnaea/.BackendService }

I had tried two other backends before (OpenBmap and Apple) which didn't work either (my area seems not to be covered in their databases), but this error only showed up when I added Ichnaea.

Any clues?

Note: The device is a tablet running Android 4.1.2. There are no newer Android versions available for it (neither stock nor custom ROMs), so I can't do anything from that end. And it has no GSM nor GPS, so my only choices are location services based on WiFi, so I'm currently stuck with these 3 of which none seems to work.

Android 10 / LOS 17.1: Requests location every 60 seconds

Hi. I'm using Lineage OS for MicroG 17.1:

The Mozilla UnifiedNLP requests the location every 60 seconds if I enable location services. It shows the GPS icon for a few seconds and this repeats every minute.

In the location settings I figured out that the requests are made by Mozilla UnifiedNLP.

The behavior stops if I allow the location permission only if in foreground, but, unfortunately, the NLP stops working at all then.

What can I do to debug this issue?

BackendService has leaked IntentReceiver and Receiver not registered: org.microg.nlp.api.WiFiBackendHelper

Describe the bug
I just get the crash without doing nothing special.

System
Android Version: 7
Custom ROM: LineageOS 14.1

microG
microG Core version: 0.2.24.214816
IchnaeaNlpBackend version: 1.5.0
microG Self-Check results: All ticked

Additional context

[ 05-08 19:18:14.698  3488: 3488 E/ActivityThread ]
Service org.microg.nlp.backend.ichnaea.BackendService has leaked IntentReceiver org.microg.nlp.api.WiFiBackendHelper$1@ba2a62d that was originally registered here. Are you missing a call to unregisterReceiver()?
android.app.IntentReceiverLeaked: Service org.microg.nlp.backend.ichnaea.BackendService has leaked IntentReceiver org.microg.nlp.api.WiFiBackendHelper$1@ba2a62d that was originally registered here. Are you missing a call to unregisterReceiver()?
	at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:1159)
	at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:946)
	at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1302)
	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1282)
	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1276)
	at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:586)
	at org.microg.nlp.api.WiFiBackendHelper.onOpen(WiFiBackendHelper.java:80)
	at org.microg.nlp.api.HelperLocationBackendService.addHelper(HelperLocationBackendService.java:33)
	at org.microg.nlp.backend.ichnaea.BackendService.reloadSettings(BackendService.java:139)
	at org.microg.nlp.backend.ichnaea.BackendService.onOpen(BackendService.java:110)
	at org.microg.nlp.api.LocationBackendService$Backend.open(LocationBackendService.java:88)
	at org.microg.nlp.api.LocationBackend$Stub.onTransact(LocationBackend.java:84)
	at android.os.Binder.execTransact(Binder.java:565)


[ 05-08 19:18:14.716  2364: 2964 W/ActivityManager ]
Scheduling restart of crashed service com.google.android.gms/org.microg.nlp.location.v3.LocationService in 1000ms

[ 05-08 19:18:14.716  2364: 2964 W/ActivityManager ]
Scheduling restart of crashed service com.google.android.gms/org.microg.nlp.geocode.v1.GeocodeService in 10995ms

[ 05-08 19:18:14.717  2364: 2964 W/ActivityManager ]
Scheduling restart of crashed service com.google.android.gms/.analytics.service.AnalyticsService in 20995ms
[ 05-08 19:20:22.831  2364: 9142 I/ActivityManager ]
START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.messaging/.ui.conversationlist.ConversationListActivity bnds=[20,695][108,800] (has extras)} from uid 10029 on display 0

[ 05-08 19:20:22.931  2364: 2519 I/ActivityManager ]
Start proc 9456:com.android.messaging/u0a67 for activity com.android.messaging/.ui.conversationlist.ConversationListActivity

[ 05-08 19:20:23.604  3488: 3488 E/AndroidRuntime ]
FATAL EXCEPTION: main
Process: org.microg.nlp.backend.ichnaea, PID: 3488
java.lang.RuntimeException: Unable to create service org.microg.nlp.backend.ichnaea.BackendService: java.lang.IllegalArgumentException: Receiver not registered: org.microg.nlp.api.WiFiBackendHelper$1@ba2a62d
	at android.app.ActivityThread.handleCreateService(ActivityThread.java:3226)
	at android.app.ActivityThread.-wrap5(ActivityThread.java)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1586)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6186)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.IllegalArgumentException: Receiver not registered: org.microg.nlp.api.WiFiBackendHelper$1@ba2a62d
	at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:1007)
	at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1330)
	at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:608)
	at org.microg.nlp.api.WiFiBackendHelper.onClose(WiFiBackendHelper.java:88)
	at org.microg.nlp.api.HelperLocationBackendService.removeHelpers(HelperLocationBackendService.java:40)
	at org.microg.nlp.backend.ichnaea.BackendService.reloadSettings(BackendService.java:126)
	at org.microg.nlp.backend.ichnaea.BackendService.reloadInstanceSettings(BackendService.java:118)
	at org.microg.nlp.backend.ichnaea.BackendService.onCreate(BackendService.java:61)
	at android.app.ActivityThread.handleCreateService(ActivityThread.java:3216)
	... 8 more


[ 05-08 19:20:23.654  2364: 9481 W/DropBoxManagerService ]
Dropping: system_app_crash (1864 > 0 bytes)

[ 05-08 19:20:23.670  2364: 2375 D/MmsServiceBroker ]
getCarrierConfigValues() by com.android.messaging

[ 05-08 19:20:24.082  2364: 7794 D/MmsServiceBroker ]
getCarrierConfigValues() by com.android.messaging

[ 05-08 19:20:25.928  2364: 2376 D/MmsServiceBroker ]
getCarrierConfigValues() by com.android.messaging

[ 05-08 19:20:33.717  2364: 2519 I/ActivityManager ]
Killing 3488:org.microg.nlp.backend.ichnaea/u0a65 (adj 0): crash

[ 05-08 19:20:33.717  2364: 2519 D/ActivityManager ]
cleanUpApplicationRecord -- 3488

persistant notification issue.

In recent versions of this app, whenever it is enabled in mgUnifiedNlp app, there is a persistant notification that says to contribute to mozilla location services.

In previous versions of this app, there used to be an option whether or not to contribute to Mozilla Location Services with name defaulted to "mgUser". But now there is no such option and there is a persistant notification on status bar and lockscreen that says to contribute to mozLocService.

Sure i can go to app info and uncheck "show notifications" for this app. But that is not a good solution.

Please fix this..

IchnaeaBackend Version: 1.1.0
android version: 5.0.2
unified nlp version: 1.3.0

Sync names

  • On GitHub the project name is IchnaeaNlpBackend
  • On GitHub the apk name is IchnaeaNlpBackend.apk
  • On F-Droid the name is MozillaNlpBackend
  • Under Android backends list in UnifiedNlp it appears as Mozilla Location Service

I think it would be better to choose one and rename all of them to the selected name to reduce confusion.

My proposal is to rename in F-Droid to IchnaeaNlpBackend and to change text under Android backends list to simply Ichnaea since there is already the description that refer to Mozilla and the title that refer to location backends.

Image

I'm not sure if it's working correctly

Hi!! 😃

I've installed Networklocation.apk and IchnaeaNlpBackend in my Meizu MX3 as you explain in the main Readme doc. But I'm not sure if it works correctly, let me explain, I hope you will understand me because English it's not my language. Apologizes…

First of all, before installing the apk and the backend I was sure that the phone couldn't locate me by wifi/3G. Then installed Networklocation.apk plus IchnaeaNlpBackend and started the testings. What I did:

1.- In my office the phone located me correctly by wifi. Then, I turned off wifi and turned on the 3G connection. I'd checked the position and I was still in the same place.
2.- After, when I arrived at home I connected the phone to my wifi, I live in another city 20 kms far from my work. I refreshed some apps which use the location service and still appeared to be in work.
3.- Then I installed AppleWifiNlpBackend, checked again and then the apps showed me the correct location, at home.
4.- Then, I selected the IchnaeaNlpBackend again, I turned off wifi and turned on data. The location still was on my work, 20 kms far from home.
5.- After, I did the reverse process, turned off data and turned on wifi. IchnaeaNlpBackend located me at the right place.

And now, I really have no idea if it works or not, I'm a non-technical user so I'm really lost… When the backend connects to Mozilla servers? Every determined period of time?

Thank you very much and kind regards!! 😄

Exceptions in log

I am seeing these errors in the log. Doesn't look all correct to me...

W/IchnaeaBackendService( 1929): Error: {"error":{"code":404,"message":"Not found","errors":[{"domain":"geolocation","message":"Not found","reason":"notFound"}]}}
W/IchnaeaBackendService( 1929): java.io.FileNotFoundException: https://location.services.mozilla.com/v1/geolocate?key=068ab754-c06b-473d-a1e5-60e7b1a2eb77
W/IchnaeaBackendService( 1929):         at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:206)
W/IchnaeaBackendService( 1929):         at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
W/IchnaeaBackendService( 1929):         at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)
W/IchnaeaBackendService( 1929):         at org.microg.nlp.backend.ichnaea.BackendService$1.run(BackendService.java:141)
W/IchnaeaBackendService( 1929):         at java.lang.Thread.run(Thread.java:818)

Daily limit hit

When I tried to use location service on my phone today I noticed that UnifiedNlp did not work. I was using Mozilla backend so I switched to GSM location service and everything worked again. I then investigated a little more and I found a warning from logcat:

W OkHttpClient: A connection to https://location.services.mozilla.com/ was leaked. Did you forget to close a response body?

So I searched your source code and found the url the backend tries to visit should be https://location.services.mozilla.com/v1/geolocate?key=068ab754-c06b-473d-a1e5-60e7b1a2eb77. When I opened this url in my browser I got this response:

{"error":{"code":403,"message":"You have exceeded your daily limit.","errors":[{"domain":"usageLimits","message":"You have exceeded your daily limit.","reason":"dailyLimitExceeded"}]}}

So apparently there are too many visits to Mozilla's location service using the same API key.

Is there a way to avoid this? For example, let user register for their own keys?

Cell only version

First, I have to applaud the monumental efforts leading up to this point. Having a drop in replacement for Google location services is outstanding. Thank you.

Would it be possible to create a separate version or user configurable setting that only shares and requests information about cells and not wi-fi access points? Given the sensitivity of Wi-fi points I would prefer to use a different backend for those. I am aware of Local GSM Backend and it is useful, but downloading and creating the local database is resource and time intensive.

Questions about widespread deployment

Hi!

I wasn't sure if there was a better place to ask general questions - but is there any data on how widely the microG library is being deployed? We're seeing a lot of traffic on Ichnaea and microG is hitting it's API key rate-limit at Mozilla.

ck_location_server_timeboard___datadog

The traffic looks unusual - I think this is probably because of over aggressive querying of the service in the IchnaeaNlpBackend code which spins up a thread everytime onCellChanged() is invoked.

Is there an IRC channel or slack channel where I can ask someone questions?

thanks!

v0.10.0 is crashing

When I upgraded the backend to v0.10.0 (and UnifiedNlp to 1.3.0), Ichnaea backend keeps crashing, here's what I find in logcat:

D/NlpLocationBackendHelper(30754): Bound to: ComponentInfo{org.microg.nlp.backend.ichnaea/org.microg.nlp.backend.ichnaea.BackendService}
D/IchnaeaBackendService( 1993): Contributing with nickname "µg User"
D/AndroidRuntime( 1993): Shutting down VM
W/dalvikvm( 1993): threadid=1: thread exiting with uncaught exception (group=0x418bfba8)
E/AndroidRuntime( 1993): FATAL EXCEPTION: main
E/AndroidRuntime( 1993): Process: org.microg.nlp.backend.ichnaea, PID: 1993
E/AndroidRuntime( 1993): java.lang.NullPointerException
E/AndroidRuntime( 1993):        at org.microg.nlp.api.CellBackendHelper.loadCells(CellBackendHelper.java:263)
E/AndroidRuntime( 1993):        at org.microg.nlp.api.CellBackendHelper.onCellsChanged(CellBackendHelper.java:199)
E/AndroidRuntime( 1993):        at org.microg.nlp.api.CellBackendHelper.access$100(CellBackendHelper.java:53)
E/AndroidRuntime( 1993):        at org.microg.nlp.api.CellBackendHelper$1$1.onCellInfoChanged(CellBackendHelper.java:90)
E/AndroidRuntime( 1993):        at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:385)
E/AndroidRuntime( 1993):        at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 1993):        at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 1993):        at android.app.ActivityThread.main(ActivityThread.java:5001)
E/AndroidRuntime( 1993):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1993):        at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 1993):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
E/AndroidRuntime( 1993):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
E/AndroidRuntime( 1993):        at dalvik.system.NativeStart.main(Native Method)
D/IchnaeaBackendService( 1993): Activating instance at process 1993
D/IchnaeaBackendService( 1993): Cells: 0
I/Process ( 1993): Sending signal. PID: 1993 SIG: 9
D/NlpLocationBackendHelper(30754): Unbound from: ComponentInfo{org.microg.nlp.backend.ichnaea/org.microg.nlp.backend.ichnaea.BackendService}
I/ActivityManager( 2389): Process org.microg.nlp.backend.ichnaea (pid 1993) has died.
W/ActivityManager( 2389): Scheduling restart of crashed service org.microg.nlp.backend.ichnaea/.BackendService in 1000ms

[IchnaeaNlpBackend] (unimportant) crash while interacting with interface

Affected app
IchnaeaNlpBackend

Describe the bug
Tapping on "Install Mozilla Stumbler" goes back, and tapping 'configure' and on "Install Mozilla Stumbler" sometimes crashes.

Logs

10-26 10:37:07.752   851   994 D EventSequenceValidator: Transition from ACTIVITY_FINISHED to INTENT_STARTED
10-26 10:37:07.753   851   994 D EventSequenceValidator: Transition from INTENT_STARTED to INTENT_FAILED
10-26 10:37:07.753  6966  6966 E InputEventReceiver: Exception dispatching input event.
10-26 10:37:07.754  6966  6966 E MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=org.mozilla.mozstumbler }
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2073)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.app.Instrumentation.execStartActivity(Instrumentation.java:1729)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.app.Activity.startActivityForResult(Activity.java:5320)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.app.Activity.startActivityForResult(Activity.java:5278)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.app.Activity.startActivity(Activity.java:5664)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.app.Activity.startActivity(Activity.java:5617)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.preference.Preference.performClick(Preference.java:1181)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:260)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.widget.AdapterView.performItemClick(AdapterView.java:330)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.widget.AbsListView.performItemClick(AbsListView.java:1210)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.widget.AbsListView$PerformClick.run(AbsListView.java:3202)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.widget.AbsListView.onTouchUp(AbsListView.java:4172)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.widget.AbsListView.onTouchEvent(AbsListView.java:3916)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.View.dispatchTouchEvent(View.java:14310)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3112)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2785)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:488)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1871)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.app.Activity.dispatchTouchEvent(Activity.java:4125)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:446)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.View.dispatchPointerEvent(View.java:14569)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6024)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5827)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5318)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5375)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5341)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5493)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5349)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5550)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5322)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5375)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5341)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5349)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5322)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8095)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8046)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8006)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8218)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:221)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.os.MessageQueue.nativePollOnce(Native Method)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.os.MessageQueue.next(MessageQueue.java:335)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.os.Looper.loop(Looper.java:183)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at android.app.ActivityThread.main(ActivityThread.java:7716)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at java.lang.reflect.Method.invoke(Native Method)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
10-26 10:37:07.762  6966  6966 E MessageQueue-JNI:      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
10-26 10:37:07.763  6966  6966 D AndroidRuntime: Shutting down VM
10-26 10:37:07.764  6966  6966 E AndroidRuntime: FATAL EXCEPTION: main
10-26 10:37:07.764  6966  6966 E AndroidRuntime: Process: org.microg.nlp.backend.ichnaea, PID: 6966
10-26 10:37:07.764  6966  6966 E AndroidRuntime: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=org.mozilla.mozstumbler }
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2073)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1729)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.app.Activity.startActivityForResult(Activity.java:5320)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.app.Activity.startActivityForResult(Activity.java:5278)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.app.Activity.startActivity(Activity.java:5664)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.app.Activity.startActivity(Activity.java:5617)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.preference.Preference.performClick(Preference.java:1181)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:260)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.widget.AdapterView.performItemClick(AdapterView.java:330)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.widget.AbsListView.performItemClick(AbsListView.java:1210)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3202)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.widget.AbsListView.onTouchUp(AbsListView.java:4172)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.widget.AbsListView.onTouchEvent(AbsListView.java:3916)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.View.dispatchTouchEvent(View.java:14310)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3112)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2785)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:488)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1871)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.app.Activity.dispatchTouchEvent(Activity.java:4125)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:446)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.View.dispatchPointerEvent(View.java:14569)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6024)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5827)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5318)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5375)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5341)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5493)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5349)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5550)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5322)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5375)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5341)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5349)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5322)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8095)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8046)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8006)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8218)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:221)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.os.MessageQueue.nativePollOnce(Native Method)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.os.MessageQueue.next(MessageQueue.java:335)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:183)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7716)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
10-26 10:37:07.764  6966  6966 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
10-26 10:37:07.769   851  6963 W ActivityTaskManager:   Force finishing activity org.microg.nlp.backend.ichnaea/.SettingsActivity

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.