1
0
mirror of https://github.com/areteruhiro/LIME-beta-hiro.git synced 2025-02-06 05:21:37 +09:00

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	app/build.gradle
This commit is contained in:
areteruhiro 2025-01-06 21:52:19 +09:00
commit 654cf52597
7 changed files with 156 additions and 123 deletions

43
FunctionLIST.md Normal file
View File

@ -0,0 +1,43 @@
## 機能
- 不要なボトムバーのアイコンの削除
- ボトムバーのアイコンのラベルの削除
- 広告・おすすめの削除
- サービスのラベルを削除
- 通知の「通知をオフ」アクションを削除
- WebView を既定のブラウザで開く
<br>
- 送信取り消しの拒否
 -add 取り消されたメッセージの保存機能
- 常にミュートメッセージとして送信
- 送信時「通常メッセージ」を選択すれば通知されます
- トラッキング通信のブロック(この機能は自己責任です)
- `noop`, `pushRecvReports`, `reportDeviceState`, `reportLocation`, `reportNetworkStatus` がブロックされます
- 通信内容をログに出力
- 通信内容を改変
[- JavaScript で通信内容を改変できます](https://github.com/areteruhiro/LIMEs/blob/master/JavaRead.md)
<br>以下から追加機能
- ナビゲーションバーを黒色に固定化、ブラックテーマをナチュラルブラックに変更
- 非表示にしたチャットの再表示を無効化
- LsPatch用 着信音を鳴らす
- サービスの項目の削除
<br>
- 未読のまま閲覧ボタンの位置調整
- 常に既読をつけないの仕様変更
<br>
- トークのバックアップ、リストア外部からのIntentでバックアップが可能
- 既読者の確認 (グループのみ)
- 音声ボタンの無効化
- 通知に画像を添付、通知を更新させない機能
-<br>添付される画像 が別のものになる場合 DOWNLOADの LIMEbackp のwait_time.txtでミリ秒で調整できます
- 登録しているグループ名の通知を無効化
→ONにしている間に招待されたグループが自動で追加されます。
- 更新されたプロフィールの削除
<br>
今後追加が予定されている機能<br>
- mid idによる友だち追加
- 既読者の確認(個別チャット)

15
JavaRead.md Normal file
View File

@ -0,0 +1,15 @@
### JavaScript で通信内容を改変する
設定の「リクエストを改変」、「レスポンスを改変」では、Rhino の JavaScript コードを記述することで自由に通信内容を改変できます。これを利用して新たな機能が実装可能なことを確認済みです (`HOOK_SAMPLE.md`)。
あらかじめ `data` という変数が用意されており、以下のプロパティが含まれます。
- `type`: `REQUEST` または `RESPONSE` となる `Enum`
- `name`: 通信の名前
- `value`: 通信内容
※`data` は、[こちらのクラス](https://github.com/Chipppppppppp/LIME/blob/master/app/src/main/java/io/github/chipppppppppp/lime/hooks/Communication.java) のインスタンスで、「通信内容をログに出力」で確認できます。
また、`console.log` で `XposedBridge` にログを出力できます。エラーが発生した場合もここに出力されます。
リクエスト・レスポンスともに、JavaScript は他の処理より早く実行され、「通信内容にログを出力」は最後に実行されます。
Rhino の仕様、特に **Java 文字列との比較に `equals` を用いる**必要があることに注意してください。

52
README for LsPatch.md Normal file
View File

@ -0,0 +1,52 @@
## LsPatchを利用の方へ
通知が届かないの解決方法 - 14.19.1 では以下をおこなわなくても良い
下記の、LINE 14.3.2をインストールしパッチを行い、インストールを行って、ログインをしてください。
ログイン後、LIMEに適応するバージョンのLINEにパッチを行って、**更新**するようにしてください。
https://apkcombo.com/ja/line/jp.naver.line.android/download/phone-14.3.2-apk
推奨LsPatch<br>
https://github.com/JingMatrix/LSPatch/actions
# パッチするapkについて
LINE 14.19.1 <br>
<br>
このapkを<br>
M apk tool <br>
https://maximoff.su/apktool/?lang=en
でapkに変換してからパッチしてください
エラーが発生する場合以下からダウンロード<br>
https://t.me/LsPosedLIMEs/36/83
## トーク履歴のリストアについて
一度アプリをアンインストールした場合以下に従ってください。
①リストアしたいファイルを移動させる<br>
②LINEを開いてバックアップ<br>
③移動させたファイルの名前を`naver_line_backup.db`に変更する<br>
④LIME backup フォルダに入れ替え<br>
で、移動させる<br>
⑤リストアさせる
ファイルエクスプローラーは以下を使用してください(エラーなどの報告に対応しやすくするためです)
https://play.google.com/store/apps/details?id=me.zhanghai.android.files
方法が怪しい場合以下の動画を参照してから、リストアを行ってください。(データが上書きされリストアできなくなる恐れがあります)
https://youtu.be/94JN4NLGdOI
## トーク履歴の自動バックアップについて
[Macro SAMPLE](https://drive.usercontent.google.com/u/0/uc?id=1rhZPmoMbti_l1JaX2EbjcRKUePkWlIXU&export=download)

7
README for root.md Normal file
View File

@ -0,0 +1,7 @@
### Root 端末 (Magisk)
1. [**LSPosed for JingMatrix**](https://github.com/JingMatrix/LSPatch/releases) をインストール
2. LI**N**E アプリと LI**M**E アプリを両方ともインストール
3. Google Play ストアの自動アップデートを防ぐために、[**Update Locker**](https://github.com/Xposed-Modules-Repo/ru.mike.updatelocker) や [**Hide My Applist**](https://github.com/Dr-TSNG/Hide-My-Applist) で LINE アプリを指定する
[Aurora Store](https://auroraoss.com) の場合はブラックリストを使用
4. LSPosed のモジュールから LIME に移動し、<kbd>モジュールの有効化</kbd> と LINE アプリにチェックを入れる

148
README.md
View File

@ -8,31 +8,26 @@
v1.12.6 →適応するLINEバージョンの変更<br>
v1.12.5a, v1.12.5a1→仕様変更
# 導入方法
[ROOT](https://github.com/areteruhiro/LIMEs/blob/master/README%20for%20root.md)
[LsPatch](https://github.com/areteruhiro/LIMEs/blob/master/README%20for%20LsPatch.md)
## 概要
このアプリで追加されている機能は、いずれPRするものがおおいですが、機能の追加を優先しているため、修正が必要なものが多く、このような形で公開させていただいております。
[機能リスト](https://github.com/areteruhiro/LIMEs/blob/master/FunctionLIST.md)
## 確認済みのバグやエラー
アプリがクラッシュする→トラッキング通信をブロックするを無効にしてください
## LsPatchを利用の方へ
通知が届かないの解決方法 - 14.19.1 では以下をおこなわなくても良い
下記の、LINE 14.3.2をインストールしパッチを行い、インストールを行って、ログインをしてください。
ログイン後、LIMEに適応するバージョンのLINEにパッチを行って、**更新**するようにしてください。
https://apkcombo.com/ja/line/jp.naver.line.android/download/phone-14.3.2-apk
推奨LsPatch<br>
https://github.com/JingMatrix/LSPatch/actions
# パッチするapkについて
apkmは辞めてください。
## トーク履歴のリストアについて
一度アプリをアンインストールした場合以下に従ってください。
@ -42,8 +37,15 @@ apkmは辞めてください。
③移動させたファイルの名前を`naver_line_backup.db`に変更する<br>
④LIME backup フォルダに入れ替え<br>
で、移動させる<br>
⑤リストアさせる
⑤リストアボタンを押す 
## トーク画像のリストアについて
①chats_backupフォルダを長押しして別のフォルダに移動<br>
②LINEを開いてトーク画像フォルダのバックアップを開始をクリック<br>
④別の場所にあるフォルダを LIME backup フォルダに移動させ入れ替え<br>
⑤トーク画像のリストアボタンを押す 
ファイルエクスプローラーは以下を使用してください(エラーなどの報告に対応しやすくするためです)
https://play.google.com/store/apps/details?id=me.zhanghai.android.files
@ -57,6 +59,11 @@ https://youtu.be/94JN4NLGdOI
[Macro SAMPLE](https://drive.usercontent.google.com/u/0/uc?id=1rhZPmoMbti_l1JaX2EbjcRKUePkWlIXU&export=download)
または以下を参考にしてください
https://github.com/areteruhiro/LIMEs/issues/10
# 寄付
* [100円 PayPay](https://qr.paypay.ne.jp/p2p01_qIqiHEfm7jWiXaKd)<br>
* [300円
@ -69,11 +76,6 @@ PayPay](https://qr.paypay.ne.jp/p2p01_oc9qTsEoIg8kn8Gy)<br>
* [Amazon Gift Card](https://www.amazon.co.jp/gp/product/B004N3APGO) Send to (limebeta.dev@gmail.com)<br>
* [GitHub Sponsors](https://github.com/sponsors/areteruhiro)
## 概要
このアプリで追加されている機能は、いずれPRするものがおおいですが、機能の追加を優先しているため、修正が必要なものが多く、このような形で公開させていただいております。
LIME開発者様 感謝しています
## Thank you
@ -102,8 +104,9 @@ https://github.com/reindex-ot
https://egg.5ch.net/test/read.cgi/android/1729438846/
## 使用方法
LINEアプリの <kbd>ホーム</kbd> > <kbd></kbd> から「**設定**」に入り、右上の「**LIME**」のボタンより開けます。また、Root ユーザーは LI**M**E アプリから設定することも可能です。クローンアプリなどでは LI**M**E 側からしか設定できない場合があるようです。
<details><summary>画像を閲覧</summary>
@ -112,95 +115,14 @@ LINEアプリの <kbd>ホーム</kbd> > <kbd>⚙</kbd> から「**設定**」に
</details>
また、トーク画面上の <kbd>トグル又は✉️ボタン</kbd>らスイッチをオン(緑)にすると**未読のまま閲覧**できます。(このスイッチは設定で削除可能です)
また、トーク画面上の <kbd>トグル又は✉️ボタン</kbd> かオン(緑または、未開封)にすると**未読のまま閲覧**できます。(このスイッチは設定で削除可能です)
※返信すると未読が解除されてしまうのでご注意ください
<details><summary>画像を閲覧</summary>
<a href="#"><img src="https://github.com/Chipppppppppp/LIME/assets/78024852/bd391a83-b041-4282-9eec-fe71b3b19aa0" width="400px" alt="Sample screenshot"></a>
<img src="https://github.com/user-attachments/assets/a9ee3b95-f785-4fac-9937-b904fe84f7b2" width="400px" alt="Sample screenshot">
</details>
## 機能
- 不要なボトムバーのアイコンの削除
- ボトムバーのアイコンのラベルの削除
- 広告・おすすめの削除
- サービスのラベルを削除
- 通知の「通知をオフ」アクションを削除
- WebView を既定のブラウザで開く
- 常に既読をつけない
- 未読のまま閲覧
- トーク画面右上メニューのスイッチから設定できます (スイッチは削除可能)
- 送信取り消しの拒否
- 常にミュートメッセージとして送信
- 送信時「通常メッセージ」を選択すれば通知されます
- トラッキング通信のブロック
- `noop`, `pushRecvReports`, `reportDeviceState`, `reportLocation`, `reportNetworkStatus` がブロックされます
- 通信内容をログに出力
- 通信内容を改変
- JavaScript で通信内容を改変できます (後述)
- ナビゲーションバーを黒色に固定化
- 非表示にしたチャットの再表示を無効化
- LsPatch用 着信音を鳴らす
- サービスの項目の削除
- トークのバックアップ、リストア
- 既読者の確認
### JavaScript で通信内容を改変する
設定の「リクエストを改変」、「レスポンスを改変」では、Rhino の JavaScript コードを記述することで自由に通信内容を改変できます。これを利用して新たな機能が実装可能なことを確認済みです (`HOOK_SAMPLE.md`)。
あらかじめ `data` という変数が用意されており、以下のプロパティが含まれます。
- `type`: `REQUEST` または `RESPONSE` となる `Enum`
- `name`: 通信の名前
- `value`: 通信内容
※`data` は、[こちらのクラス](https://github.com/Chipppppppppp/LIME/blob/master/app/src/main/java/io/github/chipppppppppp/lime/hooks/Communication.java) のインスタンスで、「通信内容をログに出力」で確認できます。
また、`console.log` で `XposedBridge` にログを出力できます。エラーが発生した場合もここに出力されます。
リクエスト・レスポンスともに、JavaScript は他の処理より早く実行され、「通信内容にログを出力」は最後に実行されます。
Rhino の仕様、特に **Java 文字列との比較に `equals` を用いる**必要があることに注意してください。
### Root 端末 (Magisk)
1. [**LSPosed**](https://github.com/LSPosed/LSPosed) をインストール
2. LI**N**E アプリと LI**M**E アプリを両方ともインストール
3. Google Play ストアの自動アップデートを防ぐために、[**Update Locker**](https://github.com/Xposed-Modules-Repo/ru.mike.updatelocker) や [**Hide My Applist**](https://github.com/Dr-TSNG/Hide-My-Applist) で LINE アプリを指定する
[Aurora Store](https://auroraoss.com) の場合はブラックリストを使用
4. LSPosed のモジュールから LIME に移動し、<kbd>モジュールの有効化</kbd> と LINE アプリにチェックを入れる
### 非 Root 端末
> [!WARNING]
> 非 root 端末では、 以下の問題があります
> - Google アカウント (ドライブ) を使用したトーク履歴の復元ができない
> ([この方法](https://github.com/Chipppppppppp/LIME/issues/50#issuecomment-2174842592) でログインすれば可能)
> - 着信が入るとクラッシュ
> - コインの購入が不可
> - LINE Pay の一部の機能が使用不可
> - △ Wear OS (スマートウォッチ)での連携
1. [**LSPatch**](https://github.com/LSPosed/LSPatch) をインストール
※フォークで開発されている [**NPatch**](https://github.com/HSSkyBoy/NPatch) では不具合が発生する可能性があります。
また、**LSPosed 公式** の LSPatch を利用してアプリがクラッシュする場合は、フォークで開発されている [**JingMatrix LSPatch**](https://github.com/JingMatrix/LSPatch/) を利用してパッチを適用すると正常に動作する場合があります。
2. **LSPatch** アプリを開き、<kbd>管理</kbd> > 右下の <kbd></kbd> > <kbd>ストレージからapkを選択</kbd> > 先程ダウンロードした LI**N**E の APK を選択 > <kbd>ローカル</kbd><kbd>パッチを開始</kbd>
※[この方法](https://github.com/Chipppppppppp/LIME/issues/50#issuecomment-2174842592) を用いればトークの復元が可能なようです。
> [!TIP]
> <kbd>ディレクトリの選択</kbd>と出てきた場合は、<kbd>OK</kbd> を押してファイルピッカーを起動し、任意のディレクトリ下にフォルダを作成し、<kbd>このフォルダを使用</kbd> > <kbd>許可</kbd>を押す
3. [**Shizuku**](https://github.com/RikkaApps/Shizuku) を使用している場合は <kbd>インストール</kbd> を押して続行する
使用していない場合は、ファイルエクスプローラー等の別のアプリからインストールする
> [!IMPORTANT]
> 既に Playストア からインストールした LINE アプリがインストールされている場合は、署名が競合するため、最初にアンインストールを行ってください。
### 1. デバイス、アプリバージョンを偽装してログイン
この機能は自己責任です
@ -230,5 +152,7 @@ Rhino の仕様、特に **Java 文字列との比較に `equals` を用いる**
新たなバグや修正方法を見つけた場合は、報告 をお願いします。
> [!NOTE]
> 日本語がわかる場合は日本語で記述してください。
To foreigners, please translate your report into English and submit it rather than translating it into Japanese.

View File

@ -331,11 +331,12 @@ public class ReadChecker implements IHook {
}
String query = "SELECT user_name FROM group_messages WHERE server_id=? ORDER BY created_time ASC";
Cursor cursor = limeDatabase.rawQuery(query, new String[]{serverId});
List<String> userNames = new ArrayList<>();
List<String> userNames = new ArrayList<>();
while (cursor.moveToNext()) {
String userNameStr = cursor.getString(0);
if (userNameStr != null) {
// user_nameをそのままリストに追加
userNames.add(userNameStr);
}
}

View File

@ -81,16 +81,7 @@ import io.github.hiro.lime.LimeOptions;
}
});
Class<?> voIPBaseFragmentClass = loadPackageParam.classLoader.loadClass("com.linecorp.voip2.common.base.VoIPBaseFragment");
XposedBridge.hookAllMethods(voIPBaseFragmentClass, "onCreate", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
if (ringtone != null && ringtone.isPlaying()) {
ringtone.stop();
isPlaying = false;
}
}
});
}
}
}