Skip to content

Instantly share code, notes, and snippets.

@lidemin
Forked from tyvsmith/dex-count.sh
Created July 18, 2014 03:04

Revisions

  1. @tyvsmith tyvsmith created this gist Jul 22, 2013.
    31 changes: 31 additions & 0 deletions dex-count.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    function dex-method-count() {
    cat $1 | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"'
    }

    function dex-method-count-by-package() {
    dir=$(mktemp -d -t dex)
    baksmali $1 -o $dir
    for pkg in `find $dir/* -type d`; do
    smali $pkg -o $pkg/classes.dex
    count=$(dex-method-count $pkg/classes.dex)
    name=$(echo ${pkg:(${#dir} + 1)} | tr '/' '.')
    echo -e "$count\t$name"
    done
    rm -rf $dir
    }

    function dex-field-count(){
    cat $1 | head -c 84 | tail -c 4 | hexdump -e '1/4 "%d\n"'
    }

    function dex-field-count-by-package() {
    dir=$(mktemp -d -t dex)
    baksmali $1 -o $dir
    for pkg in `find $dir/* -type d`; do
    smali $pkg -o $pkg/classes.dex
    count=$(dex-field-count $pkg/classes.dex)
    name=$(echo ${pkg:(${#dir} + 1)} | tr '/' '.')
    echo -e "$count\t$name"
    done
    rm -rf $dir
    }