Skip to content

Commit 0048777

Browse files
committed
Add cli feature
Implement cli via socket
1 parent 0da27d9 commit 0048777

File tree

29 files changed

+958
-263
lines changed

29 files changed

+958
-263
lines changed

app/src/main/java/org/lsposed/manager/ConfigManager.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -336,15 +336,6 @@ public static boolean setHiddenIcon(boolean hide) {
336336
}
337337
}
338338

339-
public static String getApi() {
340-
try {
341-
return LSPManagerServiceHolder.getService().getApi();
342-
} catch (RemoteException e) {
343-
Log.e(App.TAG, Log.getStackTraceString(e));
344-
return e.toString();
345-
}
346-
}
347-
348339
public static List<String> getDenyListPackages() {
349340
List<String> list = new ArrayList<>();
350341
try {

app/src/main/java/org/lsposed/manager/ui/fragment/HomeFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ private void updateStates(Activity activity, boolean binderAlive, boolean needUp
150150
binding.statusTitle.setText(R.string.activated);
151151
binding.statusIcon.setImageResource(R.drawable.ic_round_check_circle_24);
152152
}
153-
binding.statusSummary.setText(String.format(LocaleDelegate.getDefaultLocale(), "%s (%d) - %s",
154-
ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode(), ConfigManager.getApi()));
153+
binding.statusSummary.setText(String.format(LocaleDelegate.getDefaultLocale(), "%s (%d)",
154+
ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode()));
155155
binding.developerWarningCard.setVisibility(isDeveloper() ? View.VISIBLE : View.GONE);
156156
} else {
157157
boolean isMagiskInstalled = ConfigManager.isMagiskInstalled();

app/src/main/java/org/lsposed/manager/ui/fragment/SettingsFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
8080
getChildFragmentManager().beginTransaction().add(R.id.setting_container, new PreferenceFragment()).commitNow();
8181
}
8282
if (ConfigManager.isBinderAlive()) {
83-
binding.toolbar.setSubtitle(String.format(LocaleDelegate.getDefaultLocale(), "%s (%d) - %s", ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode(), ConfigManager.getApi()));
83+
binding.toolbar.setSubtitle(String.format(LocaleDelegate.getDefaultLocale(), "%s (%d)", ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode()));
8484
} else {
8585
binding.toolbar.setSubtitle(String.format(LocaleDelegate.getDefaultLocale(), "%s (%d) - %s", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE, getString(R.string.not_installed)));
8686
}

app/src/main/java/org/lsposed/manager/util/UpdateUtil.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,12 @@ public void onResponse(@NonNull Call call, @NonNull Response response) {
5555
if (!response.isSuccessful()) return;
5656
var body = response.body();
5757
if (body == null) return;
58-
String api = ConfigManager.isBinderAlive() ? ConfigManager.getApi() : "riru";
5958
try {
6059
var info = JsonParser.parseReader(body.charStream()).getAsJsonObject();
6160
var notes = info.get("body").getAsString();
6261
var assetsArray = info.getAsJsonArray("assets");
6362
for (var assets : assetsArray) {
64-
checkAssets(assets.getAsJsonObject(), notes, api.toLowerCase(Locale.ROOT));
63+
checkAssets(assets.getAsJsonObject(), notes);
6564
}
6665
} catch (Throwable t) {
6766
Log.e(App.TAG, t.getMessage(), t);
@@ -79,11 +78,10 @@ public void onFailure(@NonNull Call call, @NonNull IOException e) {
7978
App.getOkHttpClient().newCall(request).enqueue(callback);
8079
}
8180

82-
private static void checkAssets(JsonObject assets, String releaseNotes, String api) {
81+
private static void checkAssets(JsonObject assets, String releaseNotes) {
8382
var pref = App.getPreferences();
8483
var name = assets.get("name").getAsString();
8584
var splitName = name.split("-");
86-
if (!splitName[3].equals(api)) return;
8785
pref.edit()
8886
.putInt("latest_version", Integer.parseInt(splitName[2]))
8987
.putLong("latest_check", Instant.now().getEpochSecond())

daemon/build.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import com.android.build.api.dsl.ApplicationExtension
22
import com.android.ide.common.signing.KeystoreHelper
33
import java.io.PrintStream
4+
import java.util.UUID
45

56
val defaultManagerPackageName: String by rootProject.extra
67
val injectedPackageName: String by rootProject.extra
@@ -26,6 +27,11 @@ android {
2627
buildConfigField("int", "MANAGER_INJECTED_UID", """$injectedPackageUid""")
2728
buildConfigField("String", "VERSION_NAME", """"${versionNameProvider.get()}"""")
2829
buildConfigField("long", "VERSION_CODE", versionCodeProvider.get())
30+
31+
val cliToken = UUID.randomUUID()
32+
// Inject the MSB and LSB as Long constants
33+
buildConfigField("Long", "CLI_TOKEN_MSB", "${cliToken.mostSignificantBits}L")
34+
buildConfigField("Long", "CLI_TOKEN_LSB", "${cliToken.leastSignificantBits}L")
2935
}
3036

3137
buildTypes {
@@ -92,6 +98,8 @@ android.applicationVariants.all {
9298

9399
dependencies {
94100
implementation(libs.agp.apksig)
101+
implementation(libs.gson)
102+
implementation(libs.picocli)
95103
implementation(libs.kotlinx.coroutines.android)
96104
implementation(libs.kotlinx.coroutines.core)
97105
implementation(projects.external.apache)

daemon/proguard-rules.pro

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
-keepclasseswithmembers,includedescriptorclasses class * {
22
native <methods>;
33
}
4-
-keepclasseswithmembers class org.matrix.vector.daemon.core.VectorDaemon {
4+
-keepclasseswithmembers class org.matrix.vector.daemon.VectorDaemon {
5+
public static void main(java.lang.String[]);
6+
}
7+
-keepclasseswithmembers class org.matrix.vector.daemon.Cli {
58
public static void main(java.lang.String[]);
69
}
710
-keepclasseswithmembers class org.matrix.vector.daemon.env.LogcatMonitor {

0 commit comments

Comments
 (0)