0

「Network Speed Indicator」という名前の Xposed Framework のアプリは、Android のステータス バーに正味速度を表示することができます。これを達成する方法は?

私はこのような他のいくつかの質問を調べましたAndroidステータスバーのカスタマイズ.それは、「これはAndroid開発とは関係なく、むしろAndroidハッキングとは関係ありません.:)しかし、それは本当に簡単です。ルートが必要で、デバイスからframework-res.apkをプルします. 抽出 (7Zip または WinRar) すると、膨大な量の png ができます。それらを編集して apk を再パックし、署名してデバイスにプッシュし、再起動するだけです。tadda".

xposedもこのようにしますか?

4

1 に答える 1

0

Xposed は実際にはもっと興味深い方法で動作します/system/bin/app_process。jar を追加して (/data/data/de.robv.android.xposed.installer/bin/XposedBridge.jar正確には) 変更します。これにより、任意のメソッド呼び出しに「フック」することができます。基本的に、任意のメソッドの前後に独自のコードを実行できます。GitHub ページのサンプル コードを次に示します。

package de.robv.android.xposed.mods.tutorial;

import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
import android.graphics.Color;
import android.widget.TextView;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;

public class Tutorial implements IXposedHookLoadPackage {
    public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
        if (!lpparam.packageName.equals("com.android.systemui"))
            return;

        findAndHookMethod("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader, "updateClock", new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                TextView tv = (TextView) param.thisObject;
                String text = tv.getText().toString();
                tv.setText(text + " :)");
                tv.setTextColor(Color.RED);
            }
        });
    }
}

これは、システム UI のクロック更新メソッドにフックされ:)、時刻が追加され、さらにテキストが赤くなります。これにより、Xposed でどのように機能するかについての理解が得られることを願っています。

明白な利点は、元のアプリを置き換えないことです。そのため、解凍、署名、プッシュの手順は必要ありません。元のアプリ、Xposed フレームワーク、およびモジュールを用意するだけです。

編集:また、PNGを解凍して置き換えるだけでは、作業コードにアクセスできません。そのため、ステータスバーのネットワーク速度は、Xposedを使用する必要があるものです-テキストを作成するコードを「掘り下げる」必要がありますステータスバーに表示されます。

于 2016-12-03T14:40:18.240 に答える