Samuel Sloniker
2 years ago
7 changed files with 98 additions and 1 deletions
Binary file not shown.
Binary file not shown.
@ -1,3 +1,28 @@ |
|||||||
# passthroughbrowser |
# passthroughbrowser |
||||||
|
|
||||||
Waydroid Passthrough Browser - Open links in host browser |
Waydroid Passthrough Browser - Open links in host browser |
||||||
|
|
||||||
|
Passthrough Browser has two components --- a server and a client. The server is |
||||||
|
a Python program written with Flask, while the client is an Android app written |
||||||
|
using [MIT App Inventor](https://appinventor.mit.edu). The server listens for |
||||||
|
HTTP POST connections on TCP port 8888 on an IP address only accessible to |
||||||
|
programs running on the host or in the Waydroid container. When it receives a |
||||||
|
properly formatted request, it opens the host's browser to the URL specified in |
||||||
|
the request. The client, when installed in Waydroid, is intended to be set as |
||||||
|
the default browser. After this is done, whenever an Android app attempts to |
||||||
|
open a Web page, it will open the Passthrough Browser client just as it would |
||||||
|
launch any other browser. The client then sends the URL to the server, which |
||||||
|
causes the host browser to open. |
||||||
|
|
||||||
|
## Installation |
||||||
|
|
||||||
|
Run `./install_both.sh`. (Make sure Waydroid is running first.) Installing the |
||||||
|
client requires running a command as root; the script uses `sudo`. You may need |
||||||
|
to enter your password during installation. |
||||||
|
|
||||||
|
## Credits |
||||||
|
|
||||||
|
The client app uses the |
||||||
|
[CustomWebView](https://github.com/vknow360/CustomWebView/tree/beta) (beta |
||||||
|
version) App Inventor extension by Sunny Gupta. CustomWebView is used under the |
||||||
|
MIT licese. |
||||||
|
@ -0,0 +1,4 @@ |
|||||||
|
#!/bin/bash |
||||||
|
./install_server.sh |
||||||
|
echo "----------" |
||||||
|
./install_client.sh |
@ -0,0 +1,12 @@ |
|||||||
|
#!/bin/bash |
||||||
|
echo "Running 'sudo waydroid app install PassThroughBrowser.apk'. Please enter your" |
||||||
|
echo "password if prompted:" |
||||||
|
sudo waydroid app install PassThroughBrowser.apk |
||||||
|
cat << HERE |
||||||
|
To set up the Passthrough Browser client: |
||||||
|
1. Open Settings in Waydroid. |
||||||
|
2. Click/tap "Apps and Notifications." |
||||||
|
3. Click/tap "Default apps." |
||||||
|
4. Click/tap "Browser app." |
||||||
|
5. Click/tap "Passthrough Browser." |
||||||
|
HERE |
@ -0,0 +1,12 @@ |
|||||||
|
#!/bin/bash |
||||||
|
mkdir -p ~/.config/autostart |
||||||
|
mkdir -p ~/.local/bin/ |
||||||
|
cat > ~/.config/autostart/passthrough_browser_server.desktop << HERE |
||||||
|
[Desktop Entry] |
||||||
|
Type=Application |
||||||
|
Name=Passthrough Browser Server |
||||||
|
Exec=$HOME/.local/bin/passthrough_browser_server |
||||||
|
HERE |
||||||
|
cp server.py ~/.local/bin/passthrough_browser_server |
||||||
|
echo "To start the Passthrough Browser server, log out and log back in. (Wait until" |
||||||
|
echo "you have set the client up, if it isn't already installed.)" |
@ -0,0 +1,44 @@ |
|||||||
|
#!/usr/bin/env python3 |
||||||
|
from flask import Flask |
||||||
|
from flask import request, Response |
||||||
|
import webbrowser |
||||||
|
import time |
||||||
|
|
||||||
|
app = Flask(__name__) |
||||||
|
|
||||||
|
@app.route('/', methods = ['GET', 'POST']) |
||||||
|
def page(): |
||||||
|
if request.method == 'GET': |
||||||
|
return """\ |
||||||
|
<!DOCTYPE html> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
||||||
|
<title>Passthrough Browser Server</title> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<h1>Passthrough Browser Server</h1> |
||||||
|
<p>This is the server for <a href=https://git.kj7rrv.com/kj7rrv/passthroughbrowser>Passthrough Browser</a>. Passthrough Browser is an Android app that, when set as the default browser in Waydroid, causes links to open in the host computer's browser.</p> |
||||||
|
<p>If you have not yet installed the client app in Waydroid, follow these steps to install it:</p> |
||||||
|
<ul> |
||||||
|
<li>Open Waydroid</li> |
||||||
|
<li>Open a terminal</li> |
||||||
|
<li><code>cd</code> to the directory where you downloaded Passthrough Browser</li> |
||||||
|
<li><code>./install_client.sh</code></li> |
||||||
|
<li>Follow the instructions on the command line</li> |
||||||
|
</ul> |
||||||
|
</body> |
||||||
|
</html> |
||||||
|
""" |
||||||
|
elif request.method == 'POST': |
||||||
|
webbrowser.open(request.form['url']) |
||||||
|
return Response('', 203) |
||||||
|
|
||||||
|
if __name__ == '__main__': |
||||||
|
while True: |
||||||
|
try: |
||||||
|
app.run(host='192.168.250.1', port=8888) |
||||||
|
except OSError as e: |
||||||
|
print(e) |
||||||
|
time.sleep(3) |
||||||
|
|
Loading…
Reference in new issue