1

このように定義された列挙型クラスがあるとします(Javaドキュメントから適応)

package com.example.planetExample;

public enum Planet {
    MERCURY (3.303e+23, 2.4397e6){
        public double surfaceGravity() {
            return 42;
        }
    },
    VENUS   (4.869e+24, 6.0518e6);

    private final double mass;   // in kilograms
    private final double radius; // in meters
    Planet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }

    // universal gravitational constant  (m3 kg-1 s-2)
    public static final double G = 6.67300E-11;

    double surfaceGravity() {
        return G * mass / (radius * radius);
    }
}

surfaceGravity今、私は MERCURY によってオーバーライドされた関数 (以下で定義されている一般的な関数ではありません) をフックする XPosed を使用したいと考えています。その機能にアクセスするにはどうすればよいですか?

試してみfindAndHookMethod("com.example.planetExample.Planet", lpparam.classLoader, "surfaceGravity", [etc])ましたが、それは Planet クラスで定義された一般的な surfaceGravity のみをフックし、MERCURY で定義されたものではありません。com.example.planetExample.Planet$MERCURYまたはを試してみると、関数が見つからないcom.example.planetExample.Planet.MERCURYという XPosed からのエラーが表示されます。surfaceGravity

XPosed を使用してこの関数をフックする方法はありますか?

4

1 に答える 1