From 4bdcfa9616519d9e42f1dfbd99539ef6019a9278 Mon Sep 17 00:00:00 2001 From: cyberta Date: Wed, 11 May 2022 13:24:25 +0200 Subject: update README.md --- README.md | 361 ++++++------------------------------------------ docs/Troubleshooting.md | 113 +++++++++++++++ 2 files changed, 152 insertions(+), 322 deletions(-) create mode 100644 docs/Troubleshooting.md diff --git a/README.md b/README.md index 831b8065..a6fdf708 100644 --- a/README.md +++ b/README.md @@ -23,14 +23,6 @@ Please see the [issues](https://0xacab.org/leap/bitmask_android/issues) section * [Debug APKs](#debug-apks) * [Release APKs](#release-apks) * [Signed Release APKs](#signed-release-apks) -* [Running Tests](#running-tests) -* [Debugging in an Emulator](#debugging-in-an-emulator) - * [From Android Studio](#from-android-studio) - * [From The Shell](#from-the-shell) - * [Debian Gotchas](#debian-gotchas) - * [Virtualization Not Enabled](#virtualization-not-enabled) - * [Unpatched Filepaths Bug](#unpatched-filepaths-bug) - * [Outdated GL Libraries](#outdated-gl-libraries) * [Updating Submodules](#updating-submodules) * [Acknowledgments](#acknowledgments) * [Contributing](#contributing) @@ -46,19 +38,20 @@ We will assume for convenience that you are installing on a Debian- or Ubuntu-ba The Bitmask Android Client has the following system-level dependencies: -* JDK v. 1.8 -* Assorted 32-bit C libraries -* Android SDK Tools, v. 27.0.3, with these packages: - * Platform-Tools, v. 27.0.3 - * Build-Tools, API v. 23-27 - * Platforms 23-27 +* JDK 11 +* Android SDK Tools, v. 30.0.3, with these packages: + * Platform-Tools, v. 30.0.3 + * Build-Tools, API v. 30 + * Platforms 30 * Android Support Repository * Google Support Repository - * NDK v. r16b (enables C code in Android) + * NDK v. r21e (enables C code in Android) * For running the app in an emulator, you will also need these packages: * Android Emulator - * System Images for Android APIs 23-27 -* The ICS-OpenVpn submodule + * System Images for Android APIs 30 +* ics-openvpn submodule +* tor-android submodule +* bitmaskcore submodule You can install them as follows: @@ -67,15 +60,16 @@ You can install them as follows: Install with: ```bash -sudo apt install default-jdk +sudo apt-get update -qq && \ + apt-get install -y openjdk-11-jdk ``` ### C Libraries -These are necessary to make sure the program cross-compiles to 32-bit architectures successfully from 64-bit GNU/Linux machines. If you don't have the lib32stdc++, try for example lib32stdc++-8-dev-x32-cross or whatever version is current on your system. +These are necessary to make sure the program cross-compiles openssl, openvpn, tor etc. for Bitmask Android. ``` -sudo apt install make gcc file lib32stdc++ lib32z1 +sudo apt-get -y install make gcc swig file lib32stdc++6 lib32z1 autoconf autogen automake autopoint autotools-dev gettext-base libtool patch pkg-config mesa-utils ``` ### Android SDK @@ -92,50 +86,7 @@ Once you've got it installed, use the `SDK Manager` tool (Android figure Icon wi #### With Bash -Alternatively (eg: for build machines), you may download and unzip the `android-sdk` bundle from Google as follows (assuming an install location of `/opt/android-sdk-linux`: - -``` -curl -L https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -o sdk-tools.zip \ - && unzip -q sdk-tools.zip -d /opt/android-sdk-linux \ - && rm -f sdk-tools.zip -``` - -To download the NDK (for cross-compiling and running the C code used in `ics-openvpn`), use: - -``` -curl -L http://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip -o ndk.zip \ - && unzip ndk.zip -d /opt/android-sdk-linux/android-ndk-r16b \ - && rm -rf ndk.zip -``` - -After updating your PATH (see next step), you may now use the `sdkmanager` tool bundled with `android-sdk` to browse and install new sdk packages from Google. - -To browse all available packages, run: - -```shell -sdkmanager --list -``` - -To search for available packages of a certain type (eg: `tools`), run: - -```shell -sdkmanager --list | grep tools -``` - -To install all of the dependencies listed above (targetting SDK versions 23 - 26), run: - -```shell -sdkmanager tools -sdkmanager platform-tools -sdkmanager extras;android;m2repository -sdkmanager extras;google;m2repository -sdkmanager build-tools;27.0.3 -sdkmanager build-tools;25.0.2 -sdkmanager build-tools;23.0.3 -sdkmanager platforms;android-27 -sdkmanager platforms;android-25 -sdkmanager platforms;android-23 -``` +Alternatively (eg: for build machines), you may have a look at our docker build files in [the docker directory](/docker/) #### Updating Your Path @@ -149,38 +100,38 @@ export PATH=$ANDROID_HOME/platform-tools:$PATH export PATH=$ANDROID_HOME/tools/bin:$PATH ``` -NOTE: On GNU/Linux machines, Android Studio installs the Android SDK in `~/Android/Sdk/`. Our dockerfile installs it in `/opt/android-sdk-linux`. You can install it wherever you want! Just be sure to remember where so you can add it to your PATH! :) - #### With Docker Geesh! If all that above seems like a lot, it is! -To keep ourselves from messing it up all the time everyone someone new joins the project, we made a Dockerfile that creates the above environment with one line. You can pull the image and run builds from inside it, or consult the [Dockerfile](/docker/android-sdk.dockerfile) itself for requirements that your system might need but be missing. +To keep ourselves from messing it up all the time someone new joins the project, we made a Dockerfile that creates the above environment with one line. You can pull the image and run builds from inside it, or consult the [Dockerfile](/docker/android-sdk.dockerfile) itself for requirements that your system might need but be missing. Assuming you've already [installed docker](https://docs.docker.com/engine/installation/), you can pull the image with: ``` shell -docker pull 0xacab.org:4567/leap/bitmask_android/android-ndk:latest +docker pull registry.0xacab.org/leap/bitmask_android/android-ndk:latest ``` Run the image with: ``` shell -docker run --rm -it 0xacab.org:4567/leap/bitmask_android/android-ndk:latest +docker run --rm -it registry.0xacab.org/leap/bitmask_android/android-ndk:latest ``` More likely than not, you'll want to run the image with the source code mounted. You can do that with: ``` shell cd -docker run --rm -it -v`pwd`:/bitmask_android -t 0xacab.org:4567/leap/bitmask_android/android-ndk:latest +docker run --rm -it -v`pwd`:/bitmask_android -t registry.0xacab.org/leap/bitmask_android/android-ndk:latest ``` ### Submodules -We depend on [ics-openvpn](https://github.com/schwabe/ics-openvpn) as an interface to Android's OpenVPN implementation. We include it as a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) in our project, which requires that we initialize and update it (and its respective upstream submodule dependencies) in order to compile and run Bitmask Android. - -We do so with: +We depend on several [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) to build Bitmask Android: +* [ics-openvpn](https://github.com/schwabe/ics-openvpn) as an interface to Android's OpenVPN implementation. +* [bitmaskcore](https://0xacab.org/leap/android_libs/bitmaskcore.git) mainly as a library for Pluggable Transports (censorship circumvention functionality), +* [tor-android](https://0xacab.org/leap/android_libs/tor-android.git) to protect the communication to configuration servers from being blocked. +In order to initialize and update these submodules run: ```bash cd @@ -189,15 +140,13 @@ git submodule update --init --recursive ``` ## Compiling - -You have lots of options for compiling, all of which will output Android-executable `apk` packages to `/bitmask_android/app/build/outputs/apk/`. - +pend on several [git submodule](https://git-scm.com/ ### Just Build It! If you compile the project for the first time you'll have to compile the dependencies. This can be done with: ``` -./build_deps.sh +./scripts/build_deps.sh ``` This command will create all libs we need for Bitmask. @@ -207,264 +156,32 @@ If you want to to have a clean build of all submodules run ``` before you call `./build_deps.sh`. That script removes all build files and does the git submodule init and update job for you. -You are then welcome to run: - -``` -./gradlew build -``` - -This will compile the code and run the tests, but not output any `apk` packages. As such, it's not all that useful. :) - ### Debug APKs -To assemble debug packages for running locally or testing in CI, run: - +After having run `./build_deps.sh`, you can assemble debug packages for running locally or testing in CI: ```bash -./build_deps.sh -./gradlew assembleDebug +./gradlew assembleNormalProductionFatDebug ``` -This will output `app-insecure-debug.apk` and `app-production-debug.apk` to `/bitmask_android/app/build/outputs/apk/`. - -### Release APKs - -To assemble release packages, run: - +In order to build a custom branded version of Bitmask you can run: ```bash -./build_deps.sh -./gradlew assembleRelease -``` - -This will output `app-insecure-release.apk` and `app-production-release.apk` to `/bitmask_android/app/build/outputs/apk/`. - -### Signed Release APKs - -If you want to release a signed APK (which you *must* do to publish the app to the Google Play store), you'll have to create a gradle.properties file in the project root with the following structure: - -```properties -storeFileProperty= -storePasswordProperty= -keyAliasProperty= -keyPasswordProperty= -``` - -### Building In Docker - -If you want to make sure the environment you use to build APKs matches exactly the environment that Gitlab will use to build and publish artifacts, you can run any of the above build commands from inside Docker. To assemble a release build this way, run the following commands: - -``` shell -$ cd -$ sudo docker run --rm -it -v `pwd`:/bitmask_android 0xacab.org:4567/leap/bitmask_android/android-ndk:latest -# cd /bitmask_android -# ./cleanProject.sh -# ./build_deps.sh -# ./gradlew assembleRelease -``` - -## Running Tests - -To run the automated tests: - - 1. Run an emulator - 2. Unlock Android - 3. Issue the command ./gradlew connectedCheck - 4. Pay attention and check the "Trust this app" checkbox, if you don't do so tests won't run. - - -## Debugging in an Emulator - -You can run the app in an emulator running any version of Android and simulating (almost) any device. To run it you'll have to create an emulator, run the emulator, and then load an assembled APK of the app onto the emulator. (You can then use all sort of nifty tools in [Anroid Debug Bridge](https://developer.android.com/studio/command-line/adb.html) to tail the logs and debug the app.) - -Assuming you've already tackled (or don't need to tackle) the [Debian Gotchas](#debian-gotchas) listed below, you can do that using either Android Studio or a bash shell as follows: - -### From Android Studio - -To create an emulator: - -* Select `Tools/Android/AVD Manager` from the application menu -* Follow the instructions - -To run a pre-existing emulator: - -* Open the `AVD Manager` as above -* Press the "Play" button next to the emulator you want to run - -To run the app: - -* Ensure you have an emulator running -* Open the left-hand project pane (Meta-1 or Cmd-1, depending on your keybindings) -* Navigate to `bitmask_android/app/src/main/java/se/leap/bitmaskclient/StartActivity` -* Right-click over the `StartActivity` filename and click the `Run 'StartActivity'` option (or use Shift-Ctl-F10 or Shift-Ctl-R, depending on your keybindings) -* After you have done this once, you should be able to simply select `StartActivity` from the dropdown menu next to the big green arrow in the toolbar, then click the green arrow to run the app. - -### From the Shell - -To list the available avd images for creating an emulator: - -``` shell -avdmanager list -``` - -To create an emulator: - -``` shell -avdmanager create avd -``` - -To list the emulators you have already created: - -``` shell -avdmanager list avd +./gradlew assembleCustomProductionFatDebug ``` -To run a pre-existing emulator called `Nexus_5_API_25`: +If everything went fine, you will find the debug apks in `/bitmask_android/app/build/outputs/apk/`. -``` shell -emulator @Nexus_5_API_15 -``` - -Verify the device is running with: - -``` shell -adb devices -``` - -You should see something like: - -``` shell -List of devices attached -emulator-5554 device -``` -Install APK with: - -``` shell -abd install .apk -``` - -Uninstall with: - -``` shell -abd uninstall se.leap.bitmaskclient -``` -Install with option to reinstall: - -``` shell -abd install -r -``` - -### Debian Gotchas - -If you are running Debian on a 64-bit machine, your emulator will likely not work out of the gate. Test to see if this is the case by: - -* first creating an emulator in Android Studio (with name, eg, `Nexus_5_API_25`) -* then running: - ```shell - cd ~/ - emulator @ - ``` -If you can launch an emulator, HUZZAH! If not, you likely have one of 3 problems: - -#### 1. Virtualization Not Enabled - -Boo! Try turning it on. The second half of [this article](https://docs.fedoraproject.org/en-US/Fedora/13/html/Virtualization_Guide/sect-Virtualization-Troubleshooting-Enabling_Intel_VT_and_AMD_V_virtualization_hardware_extensions_in_BIOS.html) is a decent enough guide. - -#### 2. Unpatched Filepaths Bug - -**Symptoms:** If you have this bug, you will see something like the following when you try to spin up an emulator: - -``` shell -[140500439390016]:ERROR:./android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib -Could not launch '../emulator/qemu/linux-x86_64/qemu-system-i386': No such file or directory -``` -As [documented here](https://stackoverflow.com/questions/42554337/cannot-launch-avd-in-emulatorqt-library-not-found), there is a standing bug in the version of `emulator` packaged for emulator that assumes it always runs from within the `$ANDROID_HOME/emulator` directory, and can thus safely use relative filepaths, when in fact this is almost never the case. (Cool bug!) - -**Fixes:** - -You have a couple options. The second is more robust: - -1. Always run emulator from within its own directory (clunky!): - -``` shell - cd "$(dirname "$(which emulator)")" - emulator -``` - -2. Insert a line in your `~/.bashrc` to automatically navigate to the correct directory (and back) whenever you invoke `emulator`: - - ```shell -function emulator { pushd `pwd`; cd "$(dirname "$(which emulator)")" && ./emulator "$@"; popd;} -``` - -#### 3. Outdated GL Libraries - -**Symptoms:** If you have this bug, you will see something like the following: - -``` shell -libGL error: failed to load driver: swrast -X Error of failed request: BadValue (integer parameter out of range for operation) -# redacted incredibly long stack trace -``` - -As documented [here](http://stackoverflow.com/questions/36554322/cannot-start-emulator-in-android-studio-2-0), the current emulator package ships without outdated versions of LibGL libraries. To work around this: - -1. Install modern GL libriaries with: - -``` shell -sudo apt-get install mesa-utils -``` - -2. Ensure that `emulator` always uses the correct libraries by either: - - a. always calling `emulator` with the `-use-system-libs` flag, like so: - - ``` shell - emulator -use-system-libs -avd Nexus_5_API_25 - ``` - b. adding the following line to your ~/.bashrc or ~/.bash_profile: - - ```shell - export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1 - ``` - -**Special Android Studio Debian Bonus Gotcha:** - -Assuming you have made all the above fixes (great job!), to be able to launch emulators from Android Studio, you must either: - -1. Use the environment variable solution above (option a), then *always* launch Android Studio from a bash shell with: - -``` shell -studio -``` - -This means never using the desktop launcher. :( - -2. If you want to use the desktop launcher: - - * You must *always* launch emulators from the terminal. :( - * But: you can quickly access a terminal inside of Android Studio with `OPTION-F12` - -## Updating Submodules - -If you need to refresh of our upstream dependency on ics-openvpn, you may do so with: +### Release APKs -``` shell -cd -./gradlew updateIcsOpenVpn -``` +To build releases, a script comes to the rescue: [prepareForDistribution.sh](/scripts/prepareForDistribution.sh) ` -Alternately: +Before you can actually build a release make sure you have setup a keystore with your Android signing key. Additionally you can sign your software with your PGP key using this script. -```shell -cd -cd ics-openvpn -git remote add upstream https://github.com/schwabe/ics-openvpn.git -git pull --rebase upstream master +If you want to build and sign apks and aab bundles for the current commit, run: +```bash + ./scripts/prepareForDistribution.sh build sign -ks ~/path/to/bitmask-android.keystore -ka ``` -A bunch of conflicts may arise. The guidelines are: - 1. Methods in HEAD (upstream) completely removed from Bitmask should be removed again (e.g. askPW) - 2. Sometimes, Dashboard.class is in Bitmask while in ics-openvpn it is replaced by MainActivity.class and other classes. Keep removing them to keep Dashboard.class in there. - 3. Some resources files are stripped from several entries. Remove them if possible (check the code we compile is not using anything else new). +Please check `./prepareFordistribution.sh -h` for all options! ## Acknowledgments @@ -477,6 +194,6 @@ Please file bug tickets on our main [development platform](https://0xacab.org/le Please fork this repository and contribute back using [pull requests](https://0xacab.org/leap/bitmask_android/merge_requests). -Our preferred method for receiving translations is our [Transifex project](https://www.transifex.com/projects/p/bitmask). +Our preferred method for receiving translations is our [Transifex project](https://www.transifex.com/otf/bitmask). Any contributions, large or small, major features, bug fixes, additional language translations, unit/integration tests are welcomed and appreciated but will be thoroughly reviewed and discussed. diff --git a/docs/Troubleshooting.md b/docs/Troubleshooting.md new file mode 100644 index 00000000..7def4c0d --- /dev/null +++ b/docs/Troubleshooting.md @@ -0,0 +1,113 @@ +### Debian Gotchas + +If you are running Debian on a 64-bit machine, your emulator will likely not work out of the gate. Test to see if this is the case by: + +* first creating an emulator in Android Studio (with name, eg, `Nexus_5_API_25`) +* then running: + ```shell + cd ~/ + emulator @ + ``` +If you can launch an emulator, HUZZAH! If not, you likely have one of 3 problems: + +#### 1. Virtualization Not Enabled + +Boo! Try turning it on. The second half of [this article](https://docs.fedoraproject.org/en-US/Fedora/13/html/Virtualization_Guide/sect-Virtualization-Troubleshooting-Enabling_Intel_VT_and_AMD_V_virtualization_hardware_extensions_in_BIOS.html) is a decent enough guide. + +#### 2. Unpatched Filepaths Bug + +**Symptoms:** If you have this bug, you will see something like the following when you try to spin up an emulator: + +``` shell +[140500439390016]:ERROR:./android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib +Could not launch '../emulator/qemu/linux-x86_64/qemu-system-i386': No such file or directory +``` +As [documented here](https://stackoverflow.com/questions/42554337/cannot-launch-avd-in-emulatorqt-library-not-found), there is a standing bug in the version of `emulator` packaged for emulator that assumes it always runs from within the `$ANDROID_HOME/emulator` directory, and can thus safely use relative filepaths, when in fact this is almost never the case. (Cool bug!) + +**Fixes:** + +You have a couple options. The second is more robust: + +1. Always run emulator from within its own directory (clunky!): + +``` shell + cd "$(dirname "$(which emulator)")" + emulator +``` + +2. Insert a line in your `~/.bashrc` to automatically navigate to the correct directory (and back) whenever you invoke `emulator`: + + ```shell +function emulator { pushd `pwd`; cd "$(dirname "$(which emulator)")" && ./emulator "$@"; popd;} +``` + +#### 3. Outdated GL Libraries + +**Symptoms:** If you have this bug, you will see something like the following: + +``` shell +libGL error: failed to load driver: swrast +X Error of failed request: BadValue (integer parameter out of range for operation) +# redacted incredibly long stack trace +``` + +As documented [here](http://stackoverflow.com/questions/36554322/cannot-start-emulator-in-android-studio-2-0), the current emulator package ships without outdated versions of LibGL libraries. To work around this: + +1. Install modern GL libriaries with: + +``` shell +sudo apt-get install mesa-utils +``` + +2. Ensure that `emulator` always uses the correct libraries by either: + +a. always calling `emulator` with the `-use-system-libs` flag, like so: + + ``` shell + emulator -use-system-libs -avd Nexus_5_API_25 + ``` +b. adding the following line to your ~/.bashrc or ~/.bash_profile: + + ```shell + export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1 + ``` + +**Special Android Studio Debian Bonus Gotcha:** + +Assuming you have made all the above fixes (great job!), to be able to launch emulators from Android Studio, you must either: + +1. Use the environment variable solution above (option a), then *always* launch Android Studio from a bash shell with: + +``` shell +studio +``` + +This means never using the desktop launcher. :( + +2. If you want to use the desktop launcher: + +* You must *always* launch emulators from the terminal. :( +* But: you can quickly access a terminal inside of Android Studio with `OPTION-F12` + +## Updating Submodules + +If you need to refresh of our upstream dependency on ics-openvpn, you may do so with: + +``` shell +cd +./gradlew updateIcsOpenVpn +``` + +Alternately: + +```shell +cd +cd ics-openvpn +git remote add upstream https://github.com/schwabe/ics-openvpn.git +git pull --rebase upstream master +``` +A bunch of conflicts may arise. The guidelines are: + + 1. Methods in HEAD (upstream) completely removed from Bitmask should be removed again (e.g. askPW) + 2. Sometimes, Dashboard.class is in Bitmask while in ics-openvpn it is replaced by MainActivity.class and other classes. Keep removing them to keep Dashboard.class in there. + 3. Some resources files are stripped from several entries. Remove them if possible (check the code we compile is not using anything else new). -- cgit v1.2.3 From efbad4c3d09b1f09869523124b40af04c548debe Mon Sep 17 00:00:00 2001 From: cyberta Date: Wed, 11 May 2022 18:42:00 +0200 Subject: add Code of conduct --- Code of conduct.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Code of conduct.md diff --git a/Code of conduct.md b/Code of conduct.md new file mode 100644 index 00000000..09f414fc --- /dev/null +++ b/Code of conduct.md @@ -0,0 +1,49 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + + +## Examples of unacceptable behavior by participants include: + + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at community@leap.se. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html -- cgit v1.2.3 From 0accbebf0d7680d48ea3d27b05c344be7e965d6f Mon Sep 17 00:00:00 2001 From: cyberta Date: Thu, 12 May 2022 12:16:25 +0200 Subject: update ndk path in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a6fdf708..063a93fd 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ Once you've installed Android SDK & NDK packages, you need to modify your PATH s ```shell export ANDROID_HOME= -export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle +export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/20.1.5948944 export PATH=$ANDROID_NDK_HOME:$PATH export PATH=$ANDROID_HOME/platform-tools:$PATH export PATH=$ANDROID_HOME/tools/bin:$PATH -- cgit v1.2.3 From c907330149da2ab5c014d959ab2c697d42101119 Mon Sep 17 00:00:00 2001 From: cyberta Date: Thu, 12 May 2022 20:15:48 +0200 Subject: add note about currently supported android versions in README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 063a93fd..3d7e1727 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Please see the [issues](https://0xacab.org/leap/bitmask_android/issues) section * [Debug APKs](#debug-apks) * [Release APKs](#release-apks) * [Signed Release APKs](#signed-release-apks) -* [Updating Submodules](#updating-submodules) +* [Supported Versions](#supported-versions) * [Acknowledgments](#acknowledgments) * [Contributing](#contributing) @@ -183,6 +183,10 @@ If you want to build and sign apks and aab bundles for the current commit, run: Please check `./prepareFordistribution.sh -h` for all options! +## Supported Versions + +Currently API 16 (Android 4.1) - API 30 (Android 11) are officially supported. Keep backwards compatibility in mind if you plan to contribute new features. + ## Acknowledgments This project bases its work in [ics-openvpn project](https://code.google.com/p/ics-openvpn/). -- cgit v1.2.3 From ca35ccbf2c862d8ba93a2ee1d4a8130f8b1233a5 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Fri, 13 May 2022 17:07:50 +0200 Subject: some changes in Troubleshooting.md after review --- docs/Troubleshooting.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/Troubleshooting.md b/docs/Troubleshooting.md index 7def4c0d..5c4b42f1 100644 --- a/docs/Troubleshooting.md +++ b/docs/Troubleshooting.md @@ -26,19 +26,19 @@ As [documented here](https://stackoverflow.com/questions/42554337/cannot-launch- **Fixes:** -You have a couple options. The second is more robust: +You have a couple options. The fist is more robust: -1. Always run emulator from within its own directory (clunky!): +1. Insert a line in your `~/.bashrc` to automatically navigate to the correct directory (and back) whenever you invoke `emulator`: -``` shell - cd "$(dirname "$(which emulator)")" - emulator + ```shell +function emulator { pushd `pwd`; cd "$(dirname "$(which emulator)")" && ./emulator "$@"; popd;} ``` -2. Insert a line in your `~/.bashrc` to automatically navigate to the correct directory (and back) whenever you invoke `emulator`: +2. Always run emulator from within its own directory (clunky!): - ```shell -function emulator { pushd `pwd`; cd "$(dirname "$(which emulator)")" && ./emulator "$@"; popd;} +``` shell + cd "$(dirname "$(which emulator)")" + emulator ``` #### 3. Outdated GL Libraries @@ -91,7 +91,7 @@ This means never using the desktop launcher. :( ## Updating Submodules -If you need to refresh of our upstream dependency on ics-openvpn, you may do so with: +If you need to refresh our upstream dependency on ics-openvpn, you may do so with: ``` shell cd -- cgit v1.2.3 From a7a1b093f8e9a8b5cbd1b4f37e1e91edd1928f0d Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 14 May 2022 00:29:33 +0200 Subject: fix required ndk version in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3d7e1727..76b763a2 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ Once you've installed Android SDK & NDK packages, you need to modify your PATH s ```shell export ANDROID_HOME= -export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/20.1.5948944 +export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529 export PATH=$ANDROID_NDK_HOME:$PATH export PATH=$ANDROID_HOME/platform-tools:$PATH export PATH=$ANDROID_HOME/tools/bin:$PATH -- cgit v1.2.3 From 1a4f5a01e2038cdab94bc492ad78845096e88e87 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 14 May 2022 00:37:58 +0200 Subject: fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 76b763a2..8ef212f0 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ docker run --rm -it -v`pwd`:/bitmask_android -t registry.0xacab.org/leap/bitmask ### Submodules -We depend on several [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) to build Bitmask Android: +We depend on several [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) to build Bitmask Android: * [ics-openvpn](https://github.com/schwabe/ics-openvpn) as an interface to Android's OpenVPN implementation. * [bitmaskcore](https://0xacab.org/leap/android_libs/bitmaskcore.git) mainly as a library for Pluggable Transports (censorship circumvention functionality), * [tor-android](https://0xacab.org/leap/android_libs/tor-android.git) to protect the communication to configuration servers from being blocked. -- cgit v1.2.3 From c8232dbd72a04b851d93b5e91e6c21300ed93232 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 14 May 2022 00:39:53 +0200 Subject: add info about translations and Transifex onboarding --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ef212f0..6ca798eb 100644 --- a/README.md +++ b/README.md @@ -198,6 +198,6 @@ Please file bug tickets on our main [development platform](https://0xacab.org/le Please fork this repository and contribute back using [pull requests](https://0xacab.org/leap/bitmask_android/merge_requests). -Our preferred method for receiving translations is our [Transifex project](https://www.transifex.com/otf/bitmask). +Our preferred method for receiving translations is our [Transifex project](https://www.transifex.com/otf/bitmask). Localization Lab helps us with on-boarding volunteers. If you are new to translations and Transifex we've got a [short how-to](https://wiki.localizationlab.org/index.php/Bitmask). Any contributions, large or small, major features, bug fixes, additional language translations, unit/integration tests are welcomed and appreciated but will be thoroughly reviewed and discussed. -- cgit v1.2.3 From dcc4028352136c5f071a4ba74eb5f4083aeeb6be Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 14 May 2022 00:47:03 +0200 Subject: remove broken c&p'ed string --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ca798eb..2794acc1 100644 --- a/README.md +++ b/README.md @@ -140,7 +140,7 @@ git submodule update --init --recursive ``` ## Compiling -pend on several [git submodule](https://git-scm.com/ + ### Just Build It! If you compile the project for the first time you'll have to compile the dependencies. This can be done with: -- cgit v1.2.3