Bitwarden mobile apps (Password Manager and Authenticator) for Android. https://bitwarden.com
  • Kotlin 99.5%
  • TypeScript 0.3%
  • Ruby 0.1%
Find a file
aikido-autofix[bot] 1c90dc242f
[AppSec] AI Fix for Template Injection in GitHub Workflows Action (#6784)
Co-authored-by: aikido-autofix[bot] <119856028+aikido-autofix[bot]@users.noreply.github.com>
2026-06-02 21:33:45 +00:00
.checkmarx [PM-16534] Monorepo prep - Update checkmarx, renovate and gitignore (#4794) 2025-02-26 15:23:01 +00:00
.claude llm: Add interface KDoc rule to implementing-android-code skill (#6963) 2026-05-22 13:32:25 +00:00
.github [AppSec] AI Fix for Template Injection in GitHub Workflows Action (#6784) 2026-06-02 21:33:45 +00:00
annotation PM-31922: Remove deprecated Android block where possible (#6512) 2026-02-11 15:55:33 +00:00
app [PM-37571] feat: Map Passport and License to SDK types (#7009) 2026-06-02 20:29:20 +00:00
authenticator [QA-1826] Adding missing testTags for Authenticator/PM apps (#6993) 2026-05-29 13:37:12 +00:00
authenticatorbridge PM-34085: Chore: Remove the Authenticator Sync backwards compatibility (#6928) 2026-05-21 14:45:23 +00:00
core PM-38140 Feat: SDK policy filters (#6979) 2026-05-27 20:59:53 +00:00
cxf [deps]: Update androidxCredentialsProviderEvents to v1.0.0-alpha06 (#6734) 2026-04-07 19:21:44 +00:00
data PM-26577: Feat: Support multiple schemes for Duo, WebAuthn, and SSO callbacks (#6339) 2026-06-01 16:09:16 +00:00
docs Remove remember ViewModel (#6618) 2026-03-09 16:41:54 +00:00
fastlane Add missing Password Manager Locale for Play Store (#6804) 2026-04-17 18:03:16 +00:00
gradle Deps: Update the Gradle Wrapper to v9.5.1 (#7006) 2026-06-02 15:46:02 +00:00
keystores Merge remote-tracking branch 'bwa-android/main' into bwa-monorepo 2025-02-26 22:13:24 +00:00
network [PM-37571] feat: Map Passport and License to SDK types (#7009) 2026-06-02 20:29:20 +00:00
scripts [PM-28041] Remove SDK Update PR changelog list size limit (#6152) 2025-11-10 21:58:01 +00:00
testharness QA-1702: Adding missing testTags for TestHarness app (#6763) 2026-04-06 16:16:45 +00:00
ui PM-38479: Feat: Update the RemovePasswordScreen UI (#7010) 2026-06-02 20:02:04 +00:00
.editorconfig Refactor .editorconfig to focus on Kotlin and common file types (#4808) 2025-02-28 16:16:28 +00:00
.gitattributes Initial commit 2023-07-14 11:56:49 -05:00
.gitignore [PM-24930] New workflow to update the SDK and test ongoing work (#5742) 2025-08-19 15:19:57 +00:00
.mcp.json [PM-34487] llm: Add Android device interaction MCP server with ADB tooling (#6747) 2026-05-07 15:18:42 +00:00
.ruby-version [PM-22335] Support fastlane dev via rbenv (#5390) 2025-07-16 14:13:21 +00:00
build.gradle.kts Chore: Add gradle lockfiles (#7008) 2026-06-02 20:52:53 +00:00
buildscript-gradle.lockfile Chore: Add gradle lockfiles (#7008) 2026-06-02 20:52:53 +00:00
CONTRIBUTING.md Initial commit 2023-07-14 11:56:49 -05:00
crowdin.yml [PM-24175] Refactor Crowdin workflow (#5587) 2025-07-30 18:03:13 +00:00
detekt-config.yml PM-21255: Implement type-safe navigation (#5131) 2025-05-06 20:46:53 +00:00
Gemfile [deps]: Update fastlane to v2.233.1 (#6902) 2026-05-14 21:56:06 +00:00
Gemfile.lock [deps]: Lock file maintenance (#6904) 2026-05-21 22:35:54 +00:00
gradle.lockfile Chore: Add gradle lockfiles (#7008) 2026-06-02 20:52:53 +00:00
gradle.properties chore: Update to latest Protobuf plugin and start using new DSL (#6811) 2026-04-20 15:28:02 +00:00
gradlew Deps: Update AGP to v9.2.1 (#6872) 2026-05-05 19:13:57 +00:00
gradlew.bat Deps: Update AGP to v9.2.1 (#6872) 2026-05-05 19:13:57 +00:00
LICENSE.txt Repo tuneup (#1400) 2024-06-20 17:08:07 +01:00
README.md Update Readme compatibility docs (#6100) 2025-10-30 21:50:44 +00:00
SECURITY.md [PM-18655] sync with bitwarden/template (#4795) 2025-02-26 15:24:00 +00:00
settings-gradle.lockfile Chore: Add gradle lockfiles (#7008) 2026-06-02 20:52:53 +00:00
settings.gradle.kts [PM-32758] ci: Improve CI cache to fix GitHub runners running out of memory (#6583) 2026-02-25 22:24:48 +00:00

Bitwarden Android

Contents

Compatibility

  • Minimum SDK: 29 (Android 10)
  • Target SDK: 36 (Android 16)
  • Device Types Supported: Phone and Tablet
  • Orientations Supported: Portrait and Landscape

Setup

  1. Clone the repository:

    $ git clone https://github.com/bitwarden/android
    
  2. Create a user.properties file in the root directory of the project and add the following properties:

  3. Setup the code style formatter:

    All code must follow the guidelines described in the Code Style Guidelines document. To aid in adhering to these rules, all contributors should apply docs/bitwarden-style.xml as their code style scheme. In IntelliJ / Android Studio:

    • Navigate to Preferences > Editor > Code Style.
    • Hit the Manage button next to Scheme.
    • Select Import.
    • Find the bitwarden-style.xml file in the project's docs/ directory.
    • Import "from" BitwardenStyle "to" BitwardenStyle.
    • Hit Apply and OK to save the changes and exit Preferences.

    Note that in some cases you may need to restart Android Studio for the changes to take effect.

    All code should be formatted before submitting a pull request. This can be done manually but it can also be helpful to create a macro with a custom keyboard binding to auto-format when saving. In Android Studio on OS X:

    • Select Edit > Macros > Start Macro Recording
    • Select Code > Optimize Imports
    • Select Code > Reformat Code
    • Select File > Save All
    • Select Edit > Macros > Stop Macro Recording

    This can then be mapped to a set of keys by navigating to Android Studio > Preferences and editing the macro under Keymap (ex : shift + command + s).

    Please avoid mixing formatting and logical changes in the same commit/PR. When possible, fix any large formatting issues in a separate PR before opening one to make logical changes to the same code. This helps others focus on the meaningful code changes when reviewing the code.

  4. Setup JDK Version 21:

    • Navigate to Preferences > Build, Execution, Deployment > Build Tools > Gradle.
    • Hit the selected Gradle JDK next to Gradle JDK:.
    • Select a 21.x version or hit Download JDK... if not present.
    • Select Version 21.
    • Select your preferred Vendor.
    • Hit Download.
    • Hit Apply.
  5. Setup detekt pre-commit hook (optional):

Run the following script from the root of the repository to install the hook. This will overwrite any existing pre-commit hook if present.

echo "Writing detekt pre-commit hook..."
cat << 'EOL' > .git/hooks/pre-commit
#!/usr/bin/env bash

echo "Running detekt check..."
OUTPUT="/tmp/detekt-$(date +%s)"
./gradlew -Pprecommit=true detekt > $OUTPUT
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
  cat $OUTPUT
  rm $OUTPUT
  echo "***********************************************"
  echo "                 detekt failed                 "
  echo " Please fix the above issues before committing "
  echo "***********************************************"
  exit $EXIT_CODE
fi
rm $OUTPUT
EOL
echo "detekt pre-commit hook written to .git/hooks/pre-commit"
echo "Making the hook executable"
chmod +x .git/hooks/pre-commit

echo "detekt pre-commit hook installed successfully to .git/hooks/pre-commit"

Dependencies

Application Dependencies

The following is a list of all third-party dependencies included as part of the application beyond the standard Android SDK.

The following is an additional list of third-party dependencies that are only included in the non-F-Droid build variants of the application.

Development Environment Dependencies

The following is a list of additional third-party dependencies used as part of the local development environment. This includes test-related artifacts as well as tools related to code quality and linting. These are not present in the final packaged application.

CI/CD Dependencies

The following is a list of additional third-party dependencies used as part of the CI/CD workflows. These are not present in the final packaged application.