「Line 無料電話 着信音 変更」と検索して上位に挙がってくるのは、 music.jp 着信音ツール 着うた®・着メロ・着信音設定 Lineミュージック のいずれかを用いる方法ですが、いずれも、Lineと別のアプリを「設定+同時起動」する必要があります。これでは、無駄な手間とアプリのバックグラウンド起動を許すことになり、メモリ・バッテリーを無駄遣いしかねません。さらに後者の方法は、無料期間を過ぎれば有料です。 Line単体で実現するのが理想です。 そのために、中身をいじってしまいましょう。すなわち、 「apkファイル展開→音源差し替え→コンパイル,署名」 で、音源を直接置き換えることにします。 実験課程をまとめますが、今回使用したのは line lite ですのでご注意ください。 (以前までは line 7.15.1 を使っていたのですが、現時点でなぜか再現できていません。個人の力量無さが原因でしょう。コンパイル中にエラーが出てしまいます。line 9.1.1 でも同じでした) ※以下では自分の都合のいいように、ファイル名・パスワードを設定していますので、別の名前やパスワードが良いというこだわりのある方は、その部分につき以下の記述を読み替えてください。 用意するもの Line lite 2.5.1 apktool を使える環境 keytool を使える環境 apksigner を使える環境 記述が長くなるので、2回に分けます。 Line 単体で(別アプリ無しで) 無料電話着信音 オリジナル音源以外への変更手順 コンパイル (Line lite 編) その2
2020/06/21日現在の最新版ver. 2.14.0で動作確認。
用意したapkファイルのディレクトリでコマンドウインドウを開き、太字になっているコマンドを実行してください。斜体の部分はログです。
~小話~
エクスプローラー内でShiftキーを押しながら右クリックすると、「コマンド ウインドウをここで開く」が表示されます。
目次
用意するもの
- apktool を使える環境 今回は v2.4.1
- keytool を使える環境
- apksigner を使える環境
1.apkファイルのダウンロード
Apkpureからダウンロードします。※arm64版です。
2.apkファイルの展開
ダウンロードしたapkファイルをline_lite.apkにリネームしておきます。
apktool d line_lite.apk -r
I: Copying raw resources...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
line_liteフォルダが出力されます。
~小話~
経験上、-r オプションを付けると、後でビルドするときにエラーが出にくいです。
-r, --no-res Do not decode resources.
3.着信音の置き換え
line_lite>res>raw ディレクトリの lineapp_ring_16k.wav が着信音です。
任意の音源をwavにエンコードした後、同名にリネームして上書きしましょう。
~小話~
YouTubeの音楽ライブラリからJazz con Cajónを使いました。
~小話~
有名音楽プレイヤーのfoobar2000を使うと簡単にエンコードできます。
4.apkファイルの再構築
apktool b line_lite -o line_lite-rebuilt.apk
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Copying raw resources...
I: Copying libs... (/lib)
I: Copying libs... (/kotlin)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...
line_liite-rebuilt.apk が出力されます。
5.キーストアファイルの作成・署名
無いと端末にインストールできないので、忘れずに署名しましょう。
キーストアファイルの作成
keytool -genkeypair -keystore linelitekey.jks -keyalg RSA -storepass 111111 -validity 36500
実行すると、以下のように姓名・組織単位等を聞かれるので、それぞれEnter で進みましょう。
最後に「CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknownでよろしいですか。」と尋ねられるので、y と打ち Enter で先に進みましょう。
linelitekey.jks が出力されます。
[Unknown]:
組織単位名は何ですか。
[Unknown]:
組織名は何ですか。
[Unknown]:
都市名または地域名は何ですか。
[Unknown]:
都道府県名または州名は何ですか。
[Unknown]:
この単位に該当する2文字の国コードは何ですか。
[Unknown]:
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknownでよろしいですか。
[いいえ]: y
36,500日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA256withRSA)を生成しています
ディレクトリ名: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
~小話~
よくわからないので、シンプルなものを用意しました。
キーストア名:linelitekey.jks
暗号化アルゴリズム:RSA
キーストアパス:111111
キーストアファイルの有効期限:36500日
署名する
apksigner sign --ks linelitekey.jks line_lite-rebuilt.apk
Keystore password for signer #1:
キーストアのパスワードを尋ねられるので、111111と打ち込み、Enterで進みましょう。
~小話~
署名の確認をするときは、以下のコマンドを使います。
apksigner verify -v line_lite-rebuilt.apk
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Number of signers: 1
以上です。
コメント
コメントを投稿