mooltipass / android_companion

Repository for the Mini BLE Android companion app
GNU General Public License v3.0
4 stars 5 forks source link

Not working. #20

Closed RChadwick7 closed 2 years ago

RChadwick7 commented 2 years ago

I've tried on my Samsung Galaxy S20, and a newer Lenovo tablet. I can pair, install the app, the app finds the Mini BLE, and I have Autofill configured to use "Mooltipass Autofill Service". However, when logging in with Chrome, I don't get any choice to have the Mini BLE send the password.

limpkin commented 2 years ago

could you try on firefox? can you use mooltifill to test the communication? there's a button in it :)

RChadwick7 commented 2 years ago

I'm making progress! The app says there is communication. In Firefox, I go to a website I know the password is saved. It's unreliable, and I still need to learn the quirks, but I do sometimes see a 'Mooltipass' icon pop up. I tap it, and it says request sent, check device. I never see anything light up on the BLE, and it then says the credential was not found.

limpkin commented 2 years ago

is this happening on both your devices? this is the first time we hear of such issue on the latest mooltifill version

RChadwick7 commented 2 years ago

I'm only able to get one of my devices to connect to the app.

limpkin commented 2 years ago

@mathfactory do we still have the issue with multiple devices connected to a single phone?

Hootie81 commented 2 years ago

I can confirm 2 devices connecting to one phone still cases issues. both work individually but all pairings need to be forgotten on both the phone and MP before switching between the two.

RChadwick7 commented 2 years ago

I unpaired both of my devices, turned off Bluetooth on both devices, turned on Bluetooth on one device, paired it with my phone, and the app recognizes it. However, I still don't get any notification on the BLE about sending credentials.

limpkin commented 2 years ago

when selecting a credential field, do you have the same box as shown here? https://www.themooltipass.com/ressources/android_knock.mp4

RChadwick7 commented 2 years ago

I do get that same box, but I never see any activity on the Mini BLE. At first I wasn't logged in to the BLE, so I did, and then the message popped up about no found credentials. I'll try another website, as the one I'm trying is my own, and has a port number after it, which might confuse things. EDIT: I just tried facebook. It asked me to unlock my Mooltipass. When I did, it waits a few seconds, asks to look on the device, then No credentials found. I have never seen the BLE wake up or show anything in response to Mooltifill. EDIT 2: I tried with github.com, same issue.

limpkin commented 2 years ago

can you make sure that on your phone only a single mini ble pairing data is present?

RChadwick7 commented 2 years ago

Yes. I unpaired both, paired one, the other has Bluetooth turned off. At one point I was getting the 'Too many connections' error on the BLE, so I unpaired every device I think I paired it with, and haven't seen the error recently.

limpkin commented 2 years ago

could you give us more details about the phone, so we can hopefully reproduce this issue? :)

RChadwick7 commented 2 years ago

My phone is a Samsung Galaxy S20. I have also just tried it on my Lenovo Tab M10 using the other Mini BLE, with the same results. Also, after it failed and said there were no credentials, I manually selected the github credentials in the Mini BLE, and it typed them in fine to the browser. Everything seems to be working fine, except for finding the credentials. My database is from the Mini days, could that be a factor?

limpkin commented 2 years ago

it shouldn't. what setting did you use for "substitution of www. subdomain part from browser urls" in mooltifill?

RChadwick7 commented 2 years ago

I'm currently using "always remove www", but I've also tried "Try without www first". and "Do not change subdomain".

limpkin commented 2 years ago

that's the right setting.... I don't get why you can't fetch credentials.... can you "test mooltipass device connection"?

RChadwick7 commented 2 years ago

It responds with "Successfully connected to device!". When I try and get it to send credentials, and the BLE is locked, it says so, and waits until I unlock it. Best as I can tell, everything is working except it doesn't seem to be looking for the credential, or isn't finding it.

limpkin commented 2 years ago

when you click on the autofill box next to a login field and get the mooltifill modal, do you have a service on your device that exactly matches the one in said model?

RChadwick7 commented 2 years ago

I'm not sure what you mean by service. Do you mean website? Here's the dialog window:

Mooltifill Query github.com Status please unlock device to continue

Then, when I unlock it, the status changes to : request sent, please check device, and then 5 seconds later the github.com changes to www.github.com, and 5 seconds after that an oval window below says 'No credentials found', and a few seconds later all Mooltifill windows close. However, I can scroll to github.com manually on my Mini BLE, and tell it to type username, and then password, and it enters the right credentials. github.com's user and password is definitely in the Mini BLE. Looking at it manually, it is "github.com", and what shows in the query is "github.com". and the website I'm going to is "github.com".

limpkin commented 2 years ago

what if you unlock your device before clicking the mooltifill modal?

RChadwick7 commented 2 years ago

If I pre-unlock the Mini BLE, it simply does all the above steps, minus the part where it asks to unlock the device.

limpkin commented 2 years ago

and that's the case for both your phone & tablet? :)

mathfactory commented 2 years ago

Thanks for reporting the issue @RChadwick7! Sadly I'm a bit out of ideas as well :/ The "no credentials found" message really should only be triggered when the device reported that there is no such service/website, which for your github.com case should not be the case as you said.

My phone is a Samsung Galaxy S20. I have also just tried it on my Lenovo Tab M10 using the other Mini BLE, with the same results. Also, after it failed and said there were no credentials, I manually selected the github credentials in the Mini BLE, and it typed them in fine to the browser. Everything seems to be working fine, except for finding the credentials. My database is from the Mini days, could that be a factor?

@limpkin I'm just thinking, might there be a setting on the card that could be causing this, like some charset / language / input type mapping or something which changes how the device communicates such that we "miss" the correct service name here?

Generally, one way to get more information would be to enable (verbose) debug output in the settings and see what actually happens on the bluetooth link to check whether the request is right (obtainable with "adb logcat"). (If you want to go that route, please be sure not to use actual credentials in the requests as they would be logged as well!) (cf. also https://github.com/mooltipass/minible/wiki/Mooltipass-Protocol)

@mathfactory do we still have the issue with multiple devices connected to a single phone?

Yes, multiple devices are not really supported yet. :) If there should be drawn more attention to this, I think it would be worth opening a separate feature request issue.

RChadwick7 commented 2 years ago

Thanks for the responses. The results are identical on my phone and tablet. I'm happy to enable logging. Perhaps for this test, I'll think of a website I don't have credentials to and create credentials. I'm familiar with ADB, but not logcat. I'm guessing enabling logging in the Android app will save to the system log?

limpkin commented 2 years ago

@mathfactory I'm afraid not, I'm not doing any processing on the service name. The characters however do need to be setup in uint16_t (but you're already converting IIRC) and the payload length needs to be correct. I'll create a separate issue for multiple device support then :)

RChadwick7 commented 2 years ago

I think I might be getting closer. I haven't actually used my Mini BLE's, as I'm still using my Minis, and I'm waiting for the database to be compatible with both of them. I just connected one of my BLE's via USB to my laptop, and went to github.com, and logged out. When I went to log back in, the BLE didn't ask to send credentials. So, I entered them in, and the BLE asked if it wanted to save them, and I said yes. I thought, great, now it might work. So I tried it, but no. So I connected to my laptop again, went to github.com, and it still didn't find credentials. When I entered them in manually, the BLE asked to save them again. Seems it's a BLE problem, not a Mooltifill issue.

limpkin commented 2 years ago

wow that's a first... what bundle version are you running? in case you don't have it, can you update to bundle v8 using https://www.themooltipass.com/updates/ ? Can you then run an integrity check?

Hootie81 commented 2 years ago

On your MiniBLE can you scroll upwards through your credentials? like from A back to Z.. or 1 back to Z? or only in the forward direction?

I keep having issues with my database moved onto my BLE from the old mini, it gets a duplicate credential or something and every time I sync between 2 BLEmini's it happens again as it seems to try and merge or something now. from memory I get a denied message on the computer, but this maybe different with mooltifill.

limpkin commented 2 years ago

that could explain the issue indeed! @Hootie81 regarding your issue: I'm very interested in your way to reproduce it. We've just released a new moolticute version that does check for duplicate services, would you be able to download it from https://betas.themooltipass.com/v0.54.3-testing/ and try to reproduce it? Moolticute should check for the issue and inform you. From there we can try to get to the root cause of this issue :)

Hootie81 commented 2 years ago

Im not actually sure how to reproduce it, it just happens.. normally after I update some passwords then sync between devices. i have tried a few times tonight and cant make it happen.

RChadwick7 commented 2 years ago

I'm running bundle 8. I do have the problem where I can scroll forward through creds, but if I try to scroll backwards to get directly to Z, it reboots my BLE, at least that's what happened in older FW versions.

Mar 26, 2022 6:19:04 AM Hootie81 @.***>:

On your MiniBLE can you scroll upwards through your credentials? like from A back to Z.. or 1 back to Z? or only in the forward direction?

I keep having issues with my database moved onto my BLE from the old mini, it gets a duplicate credential or something and every time I sync between 2 BLEmini's it happens again as it seems to try and merge or something now. from memory I get a denied message on the computer, but this maybe different with mooltifill.

— Reply to this email directly, view it on GitHub[https://github.com/mooltipass/android_companion/issues/20#issuecomment-1079656235], or unsubscribe[https://github.com/notifications/unsubscribe-auth/ACA4C23ITFVKQ7ENOHGZZITVB3QBLANCNFSM5REPMCCQ]. You are receiving this because you were mentioned.[Tracking image][https://github.com/notifications/beacon/ACA4C256PJ2FYGNDITODB7DVB3QBLA5CNFSM5REPMCC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOIBND6KY.gif]

Hootie81 commented 2 years ago

ahh yes thats right it reboots! if you select login on the device and search through the list looking for duplicate services, you may find some doubled up. would be a good test for the moolticute beta listed above.

I manually removed the duplicates and re-added them. the first time there was 3 or 4, now when it happens its normally only one.

limpkin commented 2 years ago

oh then something is wrong with your database then! could you:

We'll identify for you the credentials having the duplicate service issue :). Or alternatively, you can install the latest version of moolticute, enter credentials management mode, and look inside the logs for an error message :)

RChadwick7 commented 2 years ago

I have the latest Moolticute, and enabled logs. However, I can't find the log. Where should I look?

limpkin commented 2 years ago

"view" button next to "view daemon logs" in moolticute settings tab :)

RChadwick7 commented 2 years ago

Got it. It said I had a critical error with Amazon.com, so I looked at it in the database. Nothing too unusual, there was one credential with my name and PW, and another with just a PW. I deleted the one with just the PW, but no change. I deleted the other one, and it worked! I can even scroll backwards on the device.

Although this looks solved, I have one more question. Since I don't want to save the database on my BLE (As my database will no longer be compatible with my Minis), can I fix this by going into the original Mini database, and deleting and recreating Amazon.com's credentials?

limpkin commented 2 years ago

oh yes please do so and let us know if that fixes the issue :)

RChadwick7 commented 2 years ago

I can verify that removing and re-adding the bad account in the Mini also fixed the problem when transferred to the Mini BLE. Thanks for the help!

limpkin commented 2 years ago

awesome!