A lightweight Android web browser designed to enable text selection and copying on any website, bypassing restrictions that prevent text selection.
- Full Web Browsing: Browse any website using the native Android WebView
- Text Selection Enabled: Long-press to select text on any webpage
- Copy to Clipboard: Copy selected text with a single tap
- Navigation Controls: Back, forward, and refresh functionality
- Progress Indicator: Visual loading progress bar
- URL Auto-Complete: Automatically adds https:// to URLs
- Search Support: Enter search queries directly in the URL bar
The browser uses JavaScript injection to override website restrictions that prevent text selection and copying. When a page loads, the app injects CSS and JavaScript to:
- Force
user-select: texton all elements - Remove event listeners that block text selection
- Enable context menus on all elements
- Android Studio (or command-line tools)
- Android SDK (API level 24 or higher)
- Java Development Kit (JDK) 8 or higher
-
Open the project in Android Studio:
File > Open > /path/to/OpenTextBrowser -
Wait for Gradle to sync dependencies
-
Build the debug APK:
Build > Build Bundle(s) / APK(s) > Build APK(s)
If you have the Android SDK installed, you can build from the command line:
cd OpenTextBrowser
./gradlew assembleDebugThe APK will be generated at:
app/build/outputs/apk/debug/app-debug.apk
- Transfer the APK to your Android device
- Enable "Install from unknown sources" in Settings
- Open the APK file and install
- Enter URL: Type a URL or search query in the top bar and press Go
- Navigate: Use the back, forward, and refresh buttons at the bottom
- Select Text: Long-press on any text to select it
- Copy Text: Tap the copy button or use the system copy option
OpenTextBrowser/
├── app/
│ ├── src/main/
│ │ ├── java/com/opentext/browser/
│ │ │ └── MainActivity.kt # Main browser activity
│ │ ├── res/
│ │ │ ├── layout/ # UI layouts
│ │ │ ├── drawable/ # Icons and graphics
│ │ │ ├── values/ # Colors, strings, themes
│ │ │ └── mipmap/ # App icons
│ │ └── AndroidManifest.xml # App manifest
│ └── build.gradle # App build configuration
├── build.gradle # Project build configuration
├── settings.gradle # Project settings
├── gradle.properties # Gradle properties
└── gradle/wrapper/ # Gradle wrapper files
- INTERNET: Required for web browsing functionality
- ACCESS_NETWORK_STATE: For checking network connectivity
- Android 7.0 (API level 24) or higher
- No special permissions required beyond internet access
This project is provided as-is for educational and personal use.