Blutter Termux Guide: Setup, Usage, and Updates πŸ“±πŸ’»

Posted on Feb 12, 2024

Blutter is a powerful tool for reverse engineering Flutter apps, and you can run it directly on your Android device using Termux. Here’s a complete guide on how to install, use, and update Blutter in Termux. Let’s dive in!


πŸŽ₯ Video Guide:

While there are video guides available, they might not be very helpful due to being outdated:

But don’t worry, this text guide will get you up and running smoothly! πŸ˜„


πŸ–₯ Requirements:

Make sure you have the following installed in Termux:

pkg i -y git python

πŸ‘‰ Installation Steps:

  1. Navigate to Home Directory:

    cd $HOME
    
  2. Clone the Blutter Repository:

    git clone https://github.com/dedshit/blutter-termux.git
    
  3. Install Dependencies:

    pip install requests pyelftools
    pkg install -y cmake ninja build-essential pkg-config libicu capstone fmt
    
  4. Enter the Blutter Directory:

    cd blutter-termux
    

✨ Usage:

  1. Navigate to the Blutter Directory:

    cd $HOME
    pwd   # To check if you're in the correct directory
    

    If you’re not in the Blutter directory, navigate there:

    cd blutter-termux
    
  2. Run Blutter:

    python3 blutter.py path/to/app/lib/arm64-v8a out_dir
    

    Or alternatively:

    python blutter.py path/to/app/lib/arm64-v8a out_dir
    

πŸ–₯ Example Command:

For example, if you want to extract files from an app:

python3 blutter.py /storage/emulated/0/MT2/lib_edit/ /storage/emulated/0/MT2/lib_edit/blutter-output/

✨ Important Notes:

  1. Enter Commands One by One:

    • Press enter after each command.
  2. Check Your Home Directory:

    • Your $HOME directory in Termux should be:
         /data/data/com.termux/files/home
      
  3. Fixing Errors:

    • If you encounter errors related to no member named 'format' in namespace std, run the following command in the Blutter directory:
         find -type f -exec sed -i 's/std::format/fmt::format/g' {} +
      

πŸ‘‰ Updating Blutter:

  • Automatic Updates:
    Every time you run blutter.py, it will automatically check for updates and apply them, including the necessary changes to std::format.

  • Manual Update (if needed): If Blutter isn’t updating or you’ve made manual changes, you might need to reset and pull the latest updates:

      git reset --hard && git pull
    

πŸ₯· Extra: Handling Dart Dev Version Errors πŸ›

If you’re dealing with Dart dev version between 3.0.0-30.dev and 3.0.0-51.dev, use the following update:

git clone https://github.com/AbhiTheModder/blutter-termux -b 3.0.0-XX.0.dev blutter-termux-dev

This will create a new directory named blutter-termux-dev in your Termux current directory, specifically for those Dart versions.


πŸ‘·β€β™‚οΈ Quick Tip for Using (b)lutter:

If you’re dealing with Dart versions that share the same snapshots (like Dart 3.4.x), you can avoid recompiling Blutter by using the --dart-version flag. For instance:

--dart-version 3.4.1_android_arm64

This flag allows you to use a compiled version for other versions like 3.4.2 or 3.4.3 without needing to recompile! 😎


That’s it! You’re all set to use Blutter in Termux for your reverse engineering needs.

Happy reversing! πŸ”§πŸ’»