スキップしてメイン コンテンツに移動

注目の投稿

Line をデコードして着信音を直接書き換える(Line lite 編)その1

「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 

LINEをデコードして着信音を直接置き換える Line Lite ver.2.14.0 編


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: Using Apktool 2.4.1 on line_lite.apk
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: Using Apktool 2.4.1
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

Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Number of signers: 1

以上です。

コメント

このブログの人気の投稿

VHSテープを極力高画質&無劣化でMP4化し、ブルーレイディスクに焼く。

テープの中身をH.264コーデックでキャプチャすることにより、キャプチャデータのコンパクト化と画質の維持、及び無劣化での 切り取り・結合が可能です (以下では単に無劣化編集とします)。H.264はBD規格に対応するので、画質の劣化なしにオーサリングできるのもポイント。 ※aviコーデックのままキャプチャするのが最も高画質ですが、ファイルサイズが大きくなりすぎるため現実的ではないかも。ドライブ容量を圧迫するだけでなく、MP4化する際に動画コーデックを変換することになるため、時間もかかります。アップスケーリングや、フィルタ等を使った高画質化を狙う場合は別として、H.264キャプチャで問題ないと思われます。 手順 1.VHSビデオデッキにアナレコ (gv-usb2)を接続し、アマレコTVを使ってキャプチャ ↓ 2.Aviutlで無劣化切り取り・結合 ↓ 3.オーサリング 1.VHSビデオデッキにアナレコ (gv-usb2)を接続し、アマレコTVを使ってキャプチャ VHSビデオデッキを用意します。 S端子を使う方が高画質で出力できるようなので、できればS端子付きを用意したほうがよさそうです。 ※管理人はコンポジット端子を使いましたが、問題ありませんでした 。 続いて、 「アナレコ」 GV-USB2 を用意します。この機材本体が無いと、VHSテープの映像をPCに入力できません(つまり、アナログ映像をデジタル化できない)。 逆に言うと、この製品本体さえあれば、あとはフリーソフトで事足りるので、アナレコの中でも最安のバリエーションを購入すればいいかと思います。 忘れずに、付属のドライバをインストールしましょう。 H.264コーデック「x264VFW」の使い方と設定方法 を参考に、アマレコTVでH.264キャプチャができる環境を整えましょう。 あとは、用意したデッキにアナレコを接続し、再生を開始してキャプチャを実行するだけ。キャプチャが終わると、動画コーデックがH.264、音声コーデックがpcm、コンテナ(拡張子)がAviのファイルが出力されます。 ※アマレコTVにビデオの映像が表示されない・音が流れない多くの場合、私の経験上、ケーブルの接続不良が原因だと思われます。ケーブルの角度を変えるなどしてみるとよいでしょう。 2.Aviutlで無劣化切り取り・結合 ffmpegでコ...

通知問題に終止符を打ちたい。その6 再起動してもDozeモードの無効化を維持

再起動するとDozeモードが有効化されるので、以下のように方法でDozeモードを維持させましょう。 まず、PCからDozeモードを無効化する場合、以下のコマンドを使います。 adb shell dumpsys deviceidle disable https://forum.xda-developers.com/oneplus-6t/how-to/guide-notification-fix-100-t3865551 再起動するとDozeモードが有効化されるので、それが面倒な場合、何らかの作業が必要です。 ただ、 Disable doze は有料ですし、 Doze Settings Editor は pie に対応していません。Oneplus 6T には、 OOS_Doze_Disabler.zip  という パッチを当てる方法もあるようですが、私の redmi 4 pro に適用できるか不明です。 そこで、普段から使っている  Automagic  の、execute root command アクションで対応することにしました 。

メイン端末としてのJelly2。半年以上使って感じた良さ・悪さ

OCNモバイルONEとgoosimsellerでJelly2がセット販売されていることに驚いています。 今なら約2600円で購入できるので、購入予定の方もおられるかと思います。 そこで、メイン端末としてJelly2半年以上使って感じた良さ・悪さを上位3つ挙げました。 開封動画 および スペック については別記事をご覧ください。 良い点BEST3 3位 おサイフケータイ対応 FeliCaが使えるSIMフリースマートフォンの中でも、 定価24000円で搭載 している端末は稀です。 現在ではバーコード決済が普及していますが、決済時にバーコードを示す必要があるのは不便な点も多いです。FeliCa搭載端末なので、 端末本体を決済用デバイスに置くだけ なのは便利です。 2位 携帯性 軽く小さいため携帯性は抜群です。 胸ポケットにすっぽり 収まり出し入れも簡単。 上下左右の ベゼルに余裕で指が届く 大きさ。 Felicaと指紋認証の双方に対応している端末として、この小型感は唯一無二です。 1位 指紋認証対応 「FeliCa搭載」かつ「手のひらサイズのコンパクトさ」で競合するRakuten Miniとの大きな違いです。私が Rakuten MiniからJelly2に乗り換えた最大の理由 です。 ロック解除がマスク着用の有無や周囲の明るさ等に左右されません (なお、良いか悪いかは別として、Jelly2はマスク着用時でも顔認証可能)。 また、 銀行アプリやパスワード管理ソフトに登載されている「指紋認証でロックを解除する機能」が使えます 。 例えば、各種銀行アプリ(SMBC)やパスワードマネージャー(Bitwarden)など、高いセキュリティ性が求められるアプリにはスマートフォンのロック機能とは別に、アプリ起動時に別途認証を要することとする機能が搭載されています。 ロック解除の手段としてパターン入力やPIN入力をせずに済むため、 他人に解除コードを視認される危険がなく、入力に手間取ることもありません 。 極小サイズのスマートフォンはその小ささ故に画面の視認性が悪いため、画面上での操作が求められる作業は極力避けたいところです。実際、Rakuten Miniを常用しているときは極めて不便でした。 悪い点BEST3 3位 充電端子の位置 本体右側に充電端子があるので、 充電中...