1 diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
2 index 0564a8d..0356f33 100644
3 --- a/java/AndroidManifest.xml
4 +++ b/java/AndroidManifest.xml
6 <?xml version='1.0' encoding='utf-8'?>
7 -<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="org.kde.necessitas.example">
8 +<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="org.sigrok.pulseview">
9 <application android:name="org.kde.necessitas.origo.QtApplication" android:icon="@drawable/icon" android:label="@string/app_name">
10 <activity android:name="org.kde.necessitas.origo.QtActivity" android:label="@string/app_name" android:configChanges="orientation|locale|fontScale|keyboard|keyboardHidden" >
14 <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
15 <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
16 - <meta-data android:name="android.app.lib_name" android:value=""/>
17 + <meta-data android:name="android.app.lib_name" android:value="pulseview"/>
18 <!-- Messages maps -->
19 <meta-data android:name="android.app.ministro_not_found_msg" android:value="@string/ministro_not_found_msg"/>
20 <meta-data android:name="android.app.ministro_needed_msg" android:value="@string/ministro_needed_msg"/>
21 diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
22 index bd6928f..68f017e 100644
23 --- a/java/res/values/strings.xml
24 +++ b/java/res/values/strings.xml
26 <?xml version='1.0' encoding='utf-8'?>
28 - <string name="app_name"></string>
29 + <string name="app_name">PulseView</string>
30 <string name="ministro_not_found_msg">Can\'t find Ministro service.\nThe application can\'t start.</string>
31 <string name="ministro_needed_msg">This application requires Ministro service. Would you like to install it?</string>
32 <string name="fatal_error_msg">Your application encountered a fatal error and cannot continue.</string>
33 diff --git a/java/src/org/kde/necessitas/origo/QtActivity.java b/java/src/org/kde/necessitas/origo/QtActivity.java
34 index 4ebf1f6..f4e3598 100644
35 --- a/java/src/org/kde/necessitas/origo/QtActivity.java
36 +++ b/java/src/org/kde/necessitas/origo/QtActivity.java
37 @@ -108,6 +108,12 @@ public class QtActivity extends Activity
41 + System.loadLibrary("gnustl_shared");
42 + org.sigrok.androidutils.LibWrangler.setupLibs(
43 + getAssets().open("liblist.txt"),
44 + new File(getApplicationInfo().nativeLibraryDir),
45 + new File(getFilesDir(), "lib"));
47 if (loaderParams.getInt(ERROR_CODE_KEY) != 0)
48 { // fatal error, show the error and quit
49 AlertDialog errorDialog = new AlertDialog.Builder(QtActivity.this).create();
50 diff --git a/java/src/org/sigrok/androidutils/LibWrangler.java b/java/src/org/sigrok/androidutils/LibWrangler.java
52 index 0000000..0c9effe
54 +++ b/java/src/org/sigrok/androidutils/LibWrangler.java
56 +package org.sigrok.androidutils;
58 +import java.io.InputStream;
59 +import java.io.InputStreamReader;
60 +import java.io.BufferedReader;
61 +import java.io.IOException;
64 +public final class LibWrangler
66 + protected static String stripSoVersion(String s)
68 + int p = s.lastIndexOf(".so.");
70 + s = s.substring(0, p+3);
74 + protected static void makeLink(File from, File to)
77 + if (to.equals(from.getCanonicalFile())) {
78 + // Symlink already correct
84 + Runtime.getRuntime().exec(new String[]{"ln", "-s",
85 + to.getAbsolutePath(),
86 + from.getAbsolutePath()});
89 + rc = proc.waitFor();
91 + } catch(InterruptedException ie) {
95 + throw new IOException("Failed to create symlink "+from);
98 + public static void setupLibs(BufferedReader reader, File libDir1, File libDir2)
101 + if (!libDir2.exists())
105 + while ((libname = reader.readLine()) != null) {
106 + File shlib = new File(libDir2, libname);
107 + makeLink(shlib, new File(libDir1, stripSoVersion(libname)));
108 + System.load(shlib.getAbsolutePath());
112 + public static void setupLibs(InputStream is, File libDir1, File libDir2)
115 + setupLibs(new BufferedReader(new InputStreamReader(is, "US-ASCII")),