Advanced ApkTool 備忘録

「Advanced ApkTool」は、Windows向けに開発された強力なツールで、Androidアプリ（APKファイル）の解析や改変を行うために使用されます。以下にその主な機能と特徴を詳しく紹介します。

Advanced APKTool V4.2.0 For Windows Updated 2023
https://xdarom.com/advanced-apktool/

# Advanced ApkTool とは
## 主な機能

1.  **デコンパイル（Decompile）**
 APKファイルを元のリソースやコードに変換します。
XMLリソースや画像、smaliコード（Dalvikバイトコード）などを抽出可能。
2.  **リコンパイル（Recompile）**
変更を加えたリソースやコードを再びAPKファイルにまとめ直すことができます。
3.  **署名（Signing）**
APKファイルを再署名する機能を搭載。これにより、インストール可能な形式に整えられます。
4.  **Zipalign**
APKファイルの最適化処理。アプリの読み込み速度やパフォーマンス向上に寄与します。

## 特徴
* GUIベース：コマンドラインではなく、グラフィカルなインターフェースで操作可能。
* 初心者にも扱いやすい：複雑なコマンドを覚える必要がなく、ボタン操作で完結。
* 複数APKの一括処理：複数のAPKをまとめて処理することも可能。
* smaliコードの編集：Javaコードではなく、smaliコードを直接編集できます。

## 使用例（基本的な流れ）

1. APKファイルを読み込む。
2. 「Decompile」ボタンで展開。
3. 展開されたリソースやコードを編集。
4. 「Recompile」で再構築。
5. 「Sign」→「Zipalign」で最終APKを生成。

## 注意点

改変したAPKを配布・公開することは、著作権や利用規約に違反する可能性があります。
自己学習やセキュリティ研究など、合法的な範囲での使用が推奨されます。

# Advanced ApkTool のインストール

「Advanced ApkTool」のWindowsへのインストール手順は以下の通りです。これは、XDA Developersなどで配布されている「BDFreak」氏によるバージョン（例：v4.1.0やv4.2.0）を前提としています 1。

## 必要な準備

* Windows PC
* Java Runtime Environment（JRE）：Java 8以上が必要です。
Java公式サイトからインストールできます。

## インストール手順

1. ツールのダウンロード
例: Advanced ApkTool v4.2.0 ダウンロードページ 1
.rar形式で配布されていることが多いため、解凍ソフト（例：7-Zip）を用意してください。
2. ファイルの解凍
ダウンロードした .rar ファイルを任意のフォルダに解凍します。
解凍後、以下のようなファイルが含まれているはずです：
 AdvancedApkTool.exe
 apktool.jar
 framework フォルダ など
3. Javaのパス確認
java コマンドがコマンドプロンプトで動作するか確認します。
動作しない場合は、Javaのインストール先を環境変数 PATH に追加してください。
4. 初回起動
AdvancedApkTool.exe をダブルクリックして起動。
初回起動時に framework のセットアップを求められる場合があります。

## 動作確認

APKファイルをドラッグ＆ドロップするか、ツール内の「Decompile」ボタンで解析を開始できます。
編集後、「Recompile」→「Sign」→「Zipalign」で再構築・署名・最適化が可能です。

注意点

セキュリティソフトが誤検出する場合がありますが、これは一部のバッチ処理やJava実行ファイルに対する誤検知です。
改変APKの配布は違法になる可能性があるため、自己学習や検証目的にとどめてください。


# 例：APKのアプリ名（表示名）を変更する

1. APKをデコンパイルする
Advanced ApkToolを起動し、対象のAPKファイルを読み込み、「Decompile」ボタンをクリックします。

2. AndroidManifest.xml を編集する
デコンパイル後、以下のようなファイル構成になります：
Decompiled/
├── AndroidManifest.xml
├── res/
│   └── values/
│       └── strings.xml
AndroidManifest.xml を開き、android:label="@string/app_name" のような記述を探します。
この場合、実際のアプリ名は res/values/strings.xml に定義されています。
3. strings.xml を編集する
res/values/strings.xml を開き、以下のような記述を探します：
 `<string name="app_name">旧アプリ名</string>`
これを以下のように変更します：
`<string name="app_name">新しいアプリ名</string>`
4. APKを再構築する
Advanced ApkToolに戻り、「Recompile」ボタンをクリックしてAPKを再構築します。
5. APKに署名する
「Sign」ボタンをクリックしてAPKに署名します。署名しないとAndroid端末にインストールできません。
6. Zipalign（最適化）
最後に「Zipalign」ボタンをクリックしてAPKを最適化します。

### 結果
この手順を完了すると、アプリの表示名が変更されたAPKファイルが生成されます。端末にインストールすると、ホーム画面などで新しい名前が表示されます。

# 広告コードの削除手順（例：AdMobなど）

1. APKをデコンパイルする
Advanced ApkToolを使って対象のAPKファイルを「Decompile」します。これにより、アプリの構成ファイル（XML、smaliコードなど）が展開されます。

2. 広告関連のコードを探す
 **方法A：AndroidManifest.xml を確認**
以下のような記述がある場合、広告SDKが使われています：
`<activity android:name="com.google.android.gms.ads.AdActivity" />
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>`
→ これらの行を削除します。<br>
 **方法B：smaliコードを確認**
smaliフォルダ内で、以下のような広告関連のクラスを探します：
`com/google/android/gms/ads/`
`com/facebook/ads/`
`com/unity3d/ads/`
→ 該当するフォルダやファイルを削除します。<br>
 **方法C：res/layout や res/values を確認**
layout XMLファイルに以下のような広告ビューがある場合：
`<com.google.android.gms.ads.AdView`
`    android:id="@+id/adView"`
`    android:layout_width="wrap_content"`
`    android:layout_height="wrap_content"`
`    ads:adUnitId="ca-app-pub-xxxxxxxxxxxxxxxx/zzzzzzzzzz"`
`    ads:adSize="BANNER"/>`
→ このビューを削除します。
3. コード内の広告初期化処理を削除
MainActivity.smali や Application.smali などに、以下のような初期化コードがある場合：
`invoke-static {}, Lcom/google/android/gms/ads/MobileAds;->initialize()`
→ この行を削除します。
4. APKを再構築・署名・最適化
「Recompile」→「Sign」→「Zipalign」の順に処理を行い、編集済みAPKを生成します。

### 注意点
広告コードの削除は、アプリの収益モデルに影響するため、自分が所有するアプリに対してのみ行ってください。
他人のアプリを改変・再配布することは、著作権違反になる可能性があります。

# アプリアイコン変更手順

APKファイルのアプリアイコンを変更する方法は、以下の手順で行えます。これは Advanced ApkTool を使ってAPKをデコンパイル・編集・再構築する流れに基づいています。

1. APKをデコンパイル
Advanced ApkToolで対象のAPKを「Decompile」します。

2. アイコンファイルの場所を特定
デコンパイル後、以下のようなフォルダ構成になります：
Decompiled/
├── res/
│   ├── mipmap-hdpi/`
│   ├── mipmap-mdpi/
│   ├── mipmap-xhdpi/
│   ├── mipmap-xxhdpi/
│   └── mipmap-xxxhdpi/
各フォルダに ic_launcher.png や ic_launcher_foreground.png などのファイルがあります。
これらがアプリアイコンです。

3. 新しいアイコン画像を用意
同じファイル名・サイズ（ピクセル）・形式（通常はPNG）で新しい画像を用意します。
解像度ごとに異なるサイズの画像を用意するのが理想です（例：hdpiは72x72px、xxhdpiは144x144pxなど）。

4. アイコン画像を差し替え
各 mipmap-* フォルダ内のアイコン画像を、新しい画像で上書きします。
ファイル名は元のままにしておくと、AndroidManifest.xml の修正が不要になります。

5. APKを再構築・署名・最適化
「Recompile」→「Sign」→「Zipalign」の順に処理を行い、編集済みAPKを生成します。

 **補足：アイコン名を変更したい場合**
AndroidManifest.xml に以下のような記述があります：
~~~
<application
    android:icon="@mipmap/ic_launcher"
    ... >
~~~
ここで @mipmap/ic_launcher を別の名前に変更した場合は、res/mipmap-* にもその名前の画像を用意する必要があります。

# XDA Developers
「XDA Team」という言葉は、通常「XDA Developers」という大規模な開発者コミュニティを指す際に使われることが多いです。以下にその詳細を紹介します。

## XDA Developersとは？
XDA Developersは、2002年に設立されたモバイル開発者向けの国際的なコミュニティサイトで、現在はアメリカの JB Online Media によって運営されています。

### 主な活動内容

Androidやその他のモバイルOS（Sailfish OS、Ubuntu Touch、Windows Phoneなど）に関する開発・改造・カスタマイズ
カスタムROMの作成・配布（例：LineageOS、Pixel Experienceなど）
端末のルート化、ブートローダーのアンロック、TWRPなどの導入
アプリ開発、UI改造、パフォーマンスチューニング
デバイスごとのフォーラムでの技術サポートやQ&A

### XDA Teamとは？
「XDA Team」は、以下のような役割を持つXDAコミュニティの中核メンバーを指すことがあります：

Recognized Developers（認定開発者）：高品質なROMやツールを提供する開発者
Forum Moderators（フォーラム管理者）：投稿の管理やルールの運用を担当
Contributors（貢献者）：チュートリアルやレビューなどの情報提供者
Themers（テーマ制作者）：UIのカスタマイズに特化したメンバー
これらのメンバーは、XDA内で特別な権限や認定を受けており、ユーザーからの信頼も厚いです 2。

### 対応デバイスとメーカー
XDAでは、以下のようなメーカーの端末ごとに専用フォーラムが存在します：

Google Pixel
Samsung Galaxy
Sony Xperia
Xiaomi / Redmi / POCO
OnePlus
ASUS / ROG Phone
Motorola など

### 公式リンク

XDA Developers 公式サイト
https://www.xda-developers.com/
XDA フォーラム
https://xdaforums.com/f/about-xda-developers.263/
XDAについて（英語）
https://www.xda-developers.com/page/about/