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

注目の投稿

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 編)その2


※ver.2.14.0 編はこちら

※2020/05/16 ファイル名を修正しました。用意したapkファイルのディレクトリでコマンドプロンプトを開き、太字になっているコマンドを実行してください。

前回の続きです。

手順

1.apkの展開

用意した apk を便宜上、line_lite.apk とリネームします。
コマンド: apktool d line_lite.apk
apk がフォルダに展開されます。この場合、フォルダ名は line_lite になると思います。

2.ファイルの置き換え

展開されたフォルダ内の \res\raw にある lineapp_ring_16k.wav を、好みの音楽と置き換えます。
その際、用意した音楽のファイル名を lineapp_ring_16k.wav にリネームしておいてください。

3.apk の再構築

コマンド: apktool b [編集済フォルダ名] -o [アプリの名前].apk
編集済フォルダ名は先ほどの line_lite です。作成したいアプリ名を line_lite-rebuilt とします。ですので、具体的には、
コマンド: apktool b line_lite -o line_lite-rebuilt.apk
となります。

すると、line_lite-rebuilt.apkが出力されます。このままではAndoroidにインストールできないので、次はこれに署名をしていきます。

4.署名を作成

キーストア名やキーストアパスは何でも構いませんが、便宜的に以下のようにします。
  • キーストア名を line_lite-rebuilt-keystore
  • キーストアパスを 111111
  • キーペア名を line_lite-rebuilt-keypair
  • キーパスを 222222
  • 有効期間を36500日
コマンド: keytool -genkeypair -keystore line_lite-rebuilt-keystore.jks -storepass 111111 -alias line_lite-rebuilt-keypair -keypass 222222 -v -keyalg RSA -keysize 2048 -validity 36500

実行すると、姓名・組織単位等を聞かれますが、Enter で先に進みましょう。
最後に「CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknownでよろしいですか。」と尋ねられるので、y と打ち Enter で先に進みましょう。

コマンドオプションについては勉強不足でよくわかりません。ですが、個人的に使うアプリですので、難しいことを考える必要はありません
なお、オプションの意味は以下のとおりだそうです。参考ページ
  • -genkeypair  旧称 genkey。秘密鍵、公開鍵 (、自己署名証明書) を生成するオプション。
  • -keystore 出力される Java KeyStore (JKS) ファイル名。
  • -alias keystore 内部における keypair の名称。keystore には複数の keypair を格納できる。
  • -v verbose 出力を行う。
  • -keyalg 公開鍵暗号のアルゴリズムを指定する。
  • -keysize 鍵長を指定する。
  • -validity 証明書の有効日数を指定する。36500 は 100 年。
line_lite-rebuilt-keystore.jks が出力されているはずです。

5.署名

署名後の apk ファイルを line_lite-rebuilt.apk とします。

コマンド: apksigner sign --ks line_lite-rebuilt-keystore.jks --v1-signing-enabled true --v2-signing-enabled true line_lite-rebuilt.apk

キーストアのパスワード、キーパスワードを順次尋ねられるので、先ほど設定したものを打ち込みましょう。それぞれ、111111, 222222 です。

Android 7.0 以上では jarsigner ではなく apksigner で署名します。jarsigner で何度も失敗してしまい泥沼にはまってしまったので、ご注意ください。

なお、apkに署名がされたかを確認をる際は、
コマンド: apksigner verify -v line-rebuilt.apk
を使うと良いでしょう。

コメント

このブログの人気の投稿

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位 充電端子の位置 本体右側に充電端子があるので、 充電中...