備忘録

備忘録

Android

AndroidエミュレータでSMS受信テストをする方法

Ⅰ. はじめに タイトルの通り「AndroidエミュレータでSMS受信テストをする方法」です Ⅱ. 手順 1. エミュレータに接続する telnet localhost 5554 2. 認証トークンを送信する C:\Users\%username%\.emulator_console_auth_token auth <YOUR_AUTH_TOKEN> 3. SMS送信コマンドを送</your_auth_token>…

Androidの共有ライブラリをAndroid以外のOSで利用する方法

Ⅰ. はじめに Ⅱ. やり方 1. 共有ライブラリのサンプルプログラムを書く 2. 1をコンパイルする 3. 共有ライブラリを利用するサンプルプログラムを書く 実行結果 FAQ Q. unidbgはスレッドセーフですか? Q. Java以外はありますか? 参考 Ⅰ. はじめに AndroidはL…

VisualStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法

Ⅰ. はじめに タイトルの通り「VisualStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法」です。 Ⅱ. やり方 1. Visual Studio Installerを起動する 2. 「C++ によるモバイル開発」をインストールする 3. 「メイクファイル プロジェクト(A…

AndroidStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法

Ⅰ. はじめに タイトルの通り「AndroidStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法」です。 Ⅱ. やり方 1. 新規Native C++プロジェクトを作成する 2. CMakeLists.txtを編集する $(project_root)/app/src/main/cpp/CMakeLists.txt cma…

AndroidでIPv6を無効・有効化する方法

Ⅰ. はじめに タイトルの通り「AndroidでIPv6を無効・有効化する方法」です。 Ⅱ. 環境 root権限必須 Android 10で動作確認済み Ⅱ. 無効化する ※端末のOS再起動で無効化設定が消えます > adb shell $ su # echo 0 > /proc/sys/net/ipv6/conf/wlan0/accept_ra #…

Androidで他アプリのメソッドをhookする方法

注意 この記事の内容は2016年10月27日時点の物です。 内容が古くなっている場合があります。 Ⅰ はじめに Xposed Frameworkを利用します。 ネイティブ(C/C++)で書かれたコードはhookできません。 また、初歩的な事は以下の記事を参照して下さい。 https://k…

Android Xposedモジュール開発方法

注意 この記事の内容は2017年1月16日時点の物です。 内容が古くなっている場合があります。 Ⅰ はじめに 英語読める人は こちらへ この記事は次のリビジョンを元にしています 77a14d29d04d6c01fa78218cfc04946f64987fd1 Ⅱ 準備物 Android Studio root化済みの…

adb shell で root 権限でコマンドを実行する方法

Ⅰ. はじめに タイトルの通り「adb shell で root 権限でコマンドを実行する方法」です。 Ⅱ. やり方 root 権限で hoge.xml を削除する例 adb shell "su -c 'rm -rf /data/data/jp.co.domain/shared_prefs/hoge.xml'" 参考 https://android.stackexchange.com/…

AndroidのパケットをWiresharkでリアルタイムに見る方法

Ⅰ. はじめに タイトルの通り「AndroidのパケットをWiresharkでリアルタイムに見る方法」です。 Ⅱ. 環境 Windows 10 Android 9.0.5(root権限あり) PuTTY (putty-gdi-20180413.zip)https://ice.hotmint.com/putty/index.html Ⅲ. やり方 1. SSHDroid をインス…

Androidコマンドライン ツールの利用方法

Ⅰ. はじめに タイトルの通り「Androidコマンドライン ツールのみを利用してplatform-toolsをインストールする方法」です。 Ⅱ. コマンドラインツールのインストール方法 1. PATHを設定する 変数名 ANDROID_SDK_ROOT 変数値 C:\Android ※任意のディレクトリでO…

TermuxにSSH接続する方法

Ⅰ. はじめに Ⅱ. やり方(パスワード認証) 1. リポジトリを変更する 2. 以下のコマンドを実行する 3. SSHサーバの起動 接続結果 Ⅱ. やり方(公開鍵認証) 1. リポジトリを変更する 2. ストレージ権限を有効にする 3. 以下のコマンドを実行する 4. 秘密鍵を取…

mitmproxyとarpspoofを利用してスマートフォン(Android/iOS)のHTTP(s)通信を見る方法

Ⅰ. はじめに Ⅱ. 環境 Ⅲ. やり方 1. IPフォワードを有効にする 2. ルーティングを変更する 3. ARPスプーフィングを行う 4. mitmproxyを透過型として起動する 5. ルート証明書(mitmproxy-ca-cert.pem)をスマートフォンにインストールする 6. ログがmitmproxy…

Androidで複数キーでソートする

Ⅰ. はじめに この記事ではStream APIを利用したソートとLightweight-Stream-APIを利用したソートの2つを紹介します。 Java8で追加されたStream APIとComparatorを使ったソートはAndroid N (Android 7.0)以上でなければ動作しません。 Android N 以下の場合は…

Android 非同期処理を強制しない方法

Ⅰ. はじめに Android 3.0以降では ネットワーク処理をメインスレッドで行うと以下の例外を吐くようになりました。 java.net.SocketException: android.os.NetworkOnMainThreadException Ⅱ. 強制しない方法 以下をonCreateなどに追加するとメインスレッドでネ…

Android 5.x以降でアプリからProxy設定を変更する方法

Ⅰ. はじめに Android 4.xまではProxy Settings などの便利なアプリで簡単にProxy設定が出来ていました。 しかし、 Android 5.xからはセキュリティの為アプリからProxyの設定が出来なくなりました。 それを回避する方法です。(root権限必須) Ⅱ. やり方 Wi-F…

Android アプリ内課金を実装する

Ⅰ. はじめに 「課金してアプリ内に表示される広告を消す」 「課金してアプリ内の石を購入する」 などの実装方法です。継続課金(定期購入)については具体的に触れませんが、 この記事を一通り行った後公式ドキュメントを見れば簡単に実装できます。備忘録と…

Android 5.x PIE チェックを回避する

Ⅰ. 概要 Android 5.xからPIE以外の実行ファルが実行できなくなりました。 PIEのチェックは /system/bin/linker によって行われています。 セキュリティの強化の為に存在するチェックですが、邪魔な場合があるので回避方法についてのメモです。 また、制限さ…

Androidでtcpdumpを利用する方法

Ⅰ. はじめに タイトルの通り「Androidでtcpdumpを利用する方法」です。 Ⅱ. やり方 1. tcpdumpのバイナリをこちらからダウンロード http://www.androidtcpdump.com/android-tcpdump/downloads2. adb push tcpdump /data/local/tmp 3. adb shell 4. cp /data/l…

Androidで他アプリのメソッドをhookする

Qiitaに投稿しました http://qiita.com/kagasu/items/7a3421ec471349885b10

Android Xposedモジュール開発方法

Qiitaに投稿しました http://qiita.com/kagasu/items/c6b930e7dbe64748090d

Xamarin.AndroidでAlertDialogを出す

RunOnUiThread( () => new AlertDialog.Builder(this) .SetTitle("alert") .SetMessage("helloworld") .Show() );

Xamarin.Androidでroot権限でコマンドを実行する

Java.Lang.Runtime.GetRuntime().Exec(new string[] { "su", "-c", "your command here" });

Windowsで一番いいAndroidエミュレータ

Ⅰ. はじめに Windows用のAndroidエミュレータを比較します。 Ⅱ. 比較 名称 快適さ 複数仮想端末 ゲームプレイ Genymotion 高速 ○ × Droid4X 高速 ? ○ Andy 高速 ○(1種類のみ) ○ Nox 高速 ○ ○ MEmu 高速 ○ ○ BlueStacks 遅い × ○ Windroy 遅い × × AMIDuOS …

(root only)Android 4.2以降で機内モードをON/OFFする

Ⅰ. はじめに Android 4.2以前 可能 Android 4.2以降 不可能 Android 4.2(Jelly Bean)で仕様変更され、通常のユーザ権限で機内モードの切り替えが出来なくなりました。 どうしてもアプリから機内モードの状態を変更させるにはroot権限が必要です。 ※情報元は…

APK(smali)を弄る

用意するもの・JDK ・apktool.jar https://code.google.com/p/android-apktool/downloads/list手順# デコンパイル 1) java -jar apktool.jar d hoge.apk# smaliを弄る ○弄るときに役に立つもの一覧 ・Dalvik opecodes http://pallergabor.uw.hu/androidblog/…

Could not fetch model of type 'IdeaProject' using Gradle distribution

Android Studioを導入し、 新規プロジェクトを作成しようとしたときに出てきた、 こいつの対処方法 とりあえず、ダイアログのテキストをコピペ Failed to import new Gradle project: Could not fetch model of type 'IdeaProject' using Gradle distributio…

Android MACアドレス 変更方法

必要なもの ・root権限 ・busybox手順 (1/3) Android端末のWi-Fi接続をONにする(2/3) # busybox ifconfig wlan0 hw eth 変更したいMACアドレス 例. # busybox ifconfig wlan0 hw eth 11:22:33:aa:bb:cc Android端末のターミナル、もしくはadb shellして実行…