mirror of
https://github.com/revanced/jadb.git
synced 2025-05-11 20:04:28 +02:00
Adding package manager
This commit is contained in:
parent
18375a8d02
commit
dfb04af94b
21
src/se/vidstige/jadb/managers/Package.java
Normal file
21
src/se/vidstige/jadb/managers/Package.java
Normal file
@ -0,0 +1,21 @@
|
||||
package se.vidstige.jadb.managers;
|
||||
|
||||
/**
|
||||
* Android package
|
||||
*/
|
||||
public class Package {
|
||||
private final String name;
|
||||
|
||||
public Package(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() { return name; }
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) { return name.equals(o); }
|
||||
|
||||
@Override
|
||||
public int hashCode() { return name.hashCode(); }
|
||||
}
|
40
src/se/vidstige/jadb/managers/PackageManager.java
Normal file
40
src/se/vidstige/jadb/managers/PackageManager.java
Normal file
@ -0,0 +1,40 @@
|
||||
package se.vidstige.jadb.managers;
|
||||
|
||||
import se.vidstige.jadb.JadbDevice;
|
||||
import se.vidstige.jadb.JadbException;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Java interface to package manager. Launches package manager through jadb
|
||||
*/
|
||||
public class PackageManager {
|
||||
private final JadbDevice device;
|
||||
|
||||
public PackageManager(JadbDevice device) {
|
||||
this.device = device;
|
||||
}
|
||||
|
||||
public List<Package> getPackages() throws IOException, JadbException {
|
||||
ArrayList<Package> result = new ArrayList<Package>();
|
||||
BufferedReader input = null;
|
||||
try {
|
||||
input = new BufferedReader(new InputStreamReader(device.executeShell("pm", "list", "packages"), Charset.forName("UTF-8")));
|
||||
String line;
|
||||
while ((line = input.readLine()) != null) {
|
||||
final String prefix = "package:";
|
||||
if (line.startsWith(prefix)) {
|
||||
result.add(new Package(line.substring(prefix.length())));
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
if (input != null) input.close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
40
test/se/vidstige/jadb/test/PackageMangerTests.java
Normal file
40
test/se/vidstige/jadb/test/PackageMangerTests.java
Normal file
@ -0,0 +1,40 @@
|
||||
package se.vidstige.jadb.test;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import se.vidstige.jadb.JadbConnection;
|
||||
import se.vidstige.jadb.managers.Package;
|
||||
import se.vidstige.jadb.managers.PackageManager;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
public class PackageMangerTests {
|
||||
private static JadbConnection jadb;
|
||||
private PackageManager pm;
|
||||
|
||||
@BeforeClass
|
||||
public static void connect() throws IOException {
|
||||
try {
|
||||
jadb = new JadbConnection();
|
||||
jadb.getHostVersion();
|
||||
} catch (Exception e) {
|
||||
org.junit.Assume.assumeNoException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
public void createPackageManager()
|
||||
{
|
||||
pm = new PackageManager(jadb.getAnyDevice());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testListPackages() throws Exception {
|
||||
List<Package> packages = pm.getPackages();
|
||||
for (Package p : packages) {
|
||||
System.out.println(p);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user