cross-posted from: https://slrpnk.net/post/30244810
ProtonVPN CLI, Android Linux Dev Terminal
Hello,
First, I'm not expecting any specific amount of support, or absolute resolution, as I'm fairly certain this falls under non-standard use. So, this is for testing and experimentation. Thanks ahead of time for any help or guidance you can think of!
Testing the recent CLI program in the Linux Development Environment on a Pixel 6a, GrapheneOS, I've had an error come up.
proton.keyring_linux.core.keyring_linux:120 | ERROR | Keyring keyring.backends.SecretService.Keyring (priority: 5) error Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 48, in send_and_get_reply raise DBusErrorResponse(resp_msg) jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.UnknownMethod] ('Object does not exist at path “/org/freedesktop/secrets/collection/login”',) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 177, in get_default_collection return Collection(connection) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 45, in __init__ self._collection.get_property('Label') File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 67, in get_property (signature, value), = self.send_and_get_reply(msg) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 52, in send_and_get_reply raise ItemNotFoundException('Item does not exist!') from resp secretstorage.exceptions.ItemNotFoundException: Item does not exist! During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 61, in get_preferred_collection collection = secretstorage.get_default_collection(bus) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 179, in get_default_collection return create_collection(connection, 'Default', 'default', session) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 159, in create_collection raise PromptDismissedException('Prompt dismissed.') secretstorage.exceptions.PromptDismissedException: Prompt dismissed. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/proton/keyring_linux/core/keyring_linux.py", line 111, in _is_backend_working keyring_backend.get_password( File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 78, in get_password collection = self.get_preferred_collection() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 63, in get_preferred_collection raise InitError("Failed to create the collection: %s." % e) keyring.errors.InitError: Failed to create the collection: Prompt dismissed.. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | proton.keyring_linux.core.keyring_linux:120 | ERROR | Keyring keyring.backends.SecretService.Keyring (priority: 5) error Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 48, in send_and_get_reply raise DBusErrorResponse(resp_msg) jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.UnknownMethod] ('Object does not exist at path “/org/freedesktop/secrets/collection/login”',) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 177, in get_default_collection return Collection(connection) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 45, in __init__ self._collection.get_property('Label') File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 67, in get_property (signature, value), = self.send_and_get_reply(msg) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 52, in send_and_get_reply raise ItemNotFoundException('Item does not exist!') from resp secretstorage.exceptions.ItemNotFoundException: Item does not exist! During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 61, in get_preferred_collection collection = secretstorage.get_default_collection(bus) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 179, in get_default_collection return create_collection(connection, 'Default', 'default', session) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 159, in create_collection raise PromptDismissedException('Prompt dismissed.') secretstorage.exceptions.PromptDismissedException: Prompt dismissed. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/proton/keyring_linux/core/keyring_linux.py", line 111, in _is_backend_working keyring_backend.get_password( File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 78, in get_password collection = self.get_preferred_collection() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 63, in get_preferred_collection raise InitError("Failed to create the collection: %s." % e) keyring.errors.InitError: Failed to create the collection: Prompt dismissed.. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | proton.keyring_linux.core.keyring_linux:120 | ERROR | Keyring keyring.backends.SecretService.Keyring (priority: 5) error Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 48, in send_and_get_reply raise DBusErrorResponse(resp_msg) jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.UnknownMethod] ('Object does not exist at path “/org/freedesktop/secrets/collection/login”',) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 177, in get_default_collection return Collection(connection) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 45, in __init__ self._collection.get_property('Label') File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 67, in get_property (signature, value), = self.send_and_get_reply(msg) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 52, in send_and_get_reply raise ItemNotFoundException('Item does not exist!') from resp secretstorage.exceptions.ItemNotFoundException: Item does not exist! During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 61, in get_preferred_collection collection = secretstorage.get_default_collection(bus) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 179, in get_default_collection return create_collection(connection, 'Default', 'default', session) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 159, in create_collection raise PromptDismissedException('Prompt dismissed.') secretstorage.exceptions.PromptDismissedException: Prompt dismissed. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/proton/keyring_linux/core/keyring_linux.py", line 111, in _is_backend_working keyring_backend.get_password( File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 78, in get_password collection = self.get_preferred_collection() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 63, in get_preferred_collection raise InitError("Failed to create the collection: %s." % e) keyring.errors.InitError: Failed to create the collection: Prompt dismissed.Given what I've seen, it's trying to access keyring, can't find relevant files, and fails to do what it's wanting.
In a stimulated environment like this, similar to maybe docker/podman as I've noticed, a 'regular' boot/initialization doesn't occur and seemingly neither does a logon. So, keyring and other relevant files, services, or utilities just may not get initialized as a program might expect or need.
Though, a keyring program seems installed, and autocomplete even works to enter the name in the terminal, that doesn't mean it's operating as needed.
Given no regular desktop environment to utilize; as the 6a seems to not function with that aspect of the Linux Dev Environment, whether that would resolve this or not; there may not be a solution here.
In the past, with the same hardware and environment, I've gotten manual configuration of OpenVPN to work with config files, so, at least at the time of that experiment, it's seemingly feasible to use ProtonVPN through that method if needed.
Thanks again for any direction or advice. I hope you're having a good weekend.
Yeah. I'm trying to find more about how the Linux VM on Android is setup, but idk if the Pixel 6a is able to run a GUI/window manager for that VM.
Well, the Linux VM on Android uses a loopback and does not work while a VPN is on. So it won't route the VM through it as it just doesn't open with a VPN on.
It will work from the Private Space, but then that doesn't share a VPN connection so no VPN for the VM unless one is opened through the Private Space.
And this was just an experiment to see if the new CLI beta for ProtonVPN would work in the VM, as the OpenVPN config method for ProtonVPN does seem to work, but likely as it doesn't depend on any GUI related actions or programs.
Would you be able to share why you wouldn't recommend running a VPN in the VM on Android?