Skip to content

Commit

Permalink
Showing 69 changed files with 2,522 additions and 155 deletions.
53 changes: 23 additions & 30 deletions BUILDING
Original file line number Diff line number Diff line change
@@ -29,25 +29,32 @@
- You may have to switch the Android Build Target to API 23 or newer
by (Right-clicking on the project)->Properties->Android

3. Install at least the following dependencies:
3. Install at least the following dependencies on your Linux machine:
cmake automake libtool intltool gtk-doc-tools gnome-common gobject-introspection nasm

4. Change directory to the Opaque project
4. Build all library dependencies (30 - 60 minutes of compilation):

cd eclipse_projects/bVNC/jni/libs/
export PATH=$PATH:/path/to/your/android/NDK/
export PATH=$PATH:/path/to/your/android/SDK/platform-tools/
export PATH=$PATH:/path/to/your/android/SDK/tools
cd eclipse_projects/Opaque/jni/libs/
./build-deps.sh -j 4 -n /path/to/your/android/NDK build

5. Import all projects into Eclipse.

Add bVNC, ZoomerWithKeys, PubkeyGenerator from the
bVNC/eclipse_projects/ directory to Eclipse as existing Android
Add bVNC, ZoomerWithKeys, PubkeyGenerator, android-support-v7-appcompat,
and FreeRDPCore projects.

The bVNC, ZoomerWithKeys, and PubkeyGenerator are in the
bVNC/eclipse_projects/ directory. Add them to Eclipse as existing Android
projects.


The android-support-v7-appcompat project is available under the
extras/android/support/v7/appcompat/ in your Android SDK if you have
installed the support libraries through the SDK manager.

The FreeRDP project was downloaded automatically as part of the build process,
and a symlinc was made to it in bVNC/eclipse_projects/
and a symlinc was made to it in bVNC/eclipse_projects/.

Some modifications are needed to the freeRDPCore project in part because
it is set up to be developed under the ADT IDE.
@@ -62,7 +69,8 @@

- Also there, click Add to a reference to the AppCompat project (from 2)

- Also there, change Java Compiler->Compiler compliance level to 1.7.
- Also there, change Java Compiler -> Enable project specific settings ->
Compiler compliance level to 1.7.

- Clean and rebuild the project.

@@ -83,36 +91,21 @@
7a. To build bVNC, just use the IDE to deploy the project to your device, etc.

7b. To build aSPICE, you need to:
- Unpack gstreamer-sdk 1.4.5 into /opt/gstreamer. I obtained my copy from:
https://gstreamer.freedesktop.org/data/pkg/android/1.4.5/gstreamer-1.0-android-arm-release-1.4.5.tar.bz2
Newer versions either crash or have GNUtls errors that need work.

- Edit AndroidManifest.xml and change android:label="bVNC" and android:name="bVNC"
to android:label="aSPICE" and android:name="aSPICE" respectively.

- cd bVNC/eclipse_projects/bVNC
- cp AndroidManifest.xml.aspice AndroidManifest.xml

- Replace all instances of aSPICE with bVNC in native code (.c and .h files).
This requirement should go away in the future. You can use the following command:
find jni/src -name \*.h -o -name \*.c -exec sed -i 's/aSPICE/bVNC/' {} \;

- ndk-build -j 12

- Unfortunately, currently ndk-build destroys other pre-existing libraries in eclipse_projects/bVNC/libs,
so after successfully building libspice and libgstreamer, one has to git checkout the files which were deleted.

- Force one boolean variable to be true. You can use the following command:
find ./ -name \*.java -exec sed -i 's/isSpice = .*;/isSpice = true;/' {} \;
- Recompile with:
ndk-build -j 12

- You may have to select the "Android private libraries" entry in
Project Properties->Java Build Path->Order and Export
if you have it.

- Enable requesting the RECORD_AUDIO permission in AndroidManifest.xml with the following sed command:
sed -i 's/<!--RECORD_AUDIO-->/<uses-permission android:name="android.permission.RECORD_AUDIO"><\/uses-permission>/g' AndroidManifest.xml
- Clean and rebuild the project.

7c. To build aRDP, you have to successfully build the FreeRDP library.
- Edit AndroidManifest.xml and change android:label="bVNC" and android:name="bVNC"
to android:label="aRDP" and android:name="aRDP" respectively.
- cd bVNC/eclipse_projects/bVNC
- cp AndroidManifest.xml.ardp AndroidManifest.xml
- Clean and rebuild the project.

Please inform me if (6) needs to be expanded (i.e. if you needed to do anything else in addition to the above.
37 changes: 37 additions & 0 deletions eclipse_projects/Opaque/jni/src/Android.mk
Original file line number Diff line number Diff line change
@@ -1,13 +1,50 @@
LOCAL_PATH := $(call my-dir)
COMMON_ROOT := ../libs/deps/$(TARGET_ARCH_ABI)
PREBUILT_ROOT := $(COMMON_ROOT)/root
GSTREAMER_ROOT := $(COMMON_ROOT)/gstreamer

# Add prebuilt libraries to avoid deletion.
include $(CLEAR_VARS)
LOCAL_MODULE := libsqlcipher
LOCAL_SRC_FILES := ../libs/deps/android-database-sqlcipher/libs/$(TARGET_ARCH_ABI)/libsqlcipher.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := libhogweed
LOCAL_SRC_FILES := $(GSTREAMER_ROOT)/lib/libhogweed.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := libz
LOCAL_SRC_FILES := $(GSTREAMER_ROOT)/lib/libz.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := libnettle
LOCAL_SRC_FILES := $(GSTREAMER_ROOT)/lib/libnettle.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := libiconv
LOCAL_SRC_FILES := $(GSTREAMER_ROOT)/lib/libiconv.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := libgmp
LOCAL_SRC_FILES := $(GSTREAMER_ROOT)/lib/libgmp.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := libintl
LOCAL_SRC_FILES := $(GSTREAMER_ROOT)/lib/libintl.so
include $(PREBUILT_SHARED_LIBRARY)

#include $(CLEAR_VARS)
#LOCAL_MODULE := intl
#LOCAL_SRC_FILES := $(GSTREAMER_ROOT)/lib/libintl.a
#LOCAL_EXPORT_C_INCLUDES := $(GSTREAMER_ROOT)/include
#include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := usb
LOCAL_SRC_FILES := $(PREBUILT_ROOT)/lib/libusb-1.0.a
1 change: 1 addition & 0 deletions eclipse_projects/bVNC/.gitignore
Original file line number Diff line number Diff line change
@@ -7,4 +7,5 @@ local.properties
obj/
libs/armeabi/
libs/armeabi-v7a
libs/x86
gst-build
80 changes: 0 additions & 80 deletions eclipse_projects/bVNC/AndroidManifest.xml

This file was deleted.

1 change: 1 addition & 0 deletions eclipse_projects/bVNC/AndroidManifest.xml
90 changes: 90 additions & 0 deletions eclipse_projects/bVNC/AndroidManifest.xml.aRDP
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.iiordanov.aRDP" android:installLocation="auto"
android:versionCode="3920" android:versionName="v3.9.2">

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10"></uses-sdk>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.microphone" android:required="false"/>

<supports-screens
android:xlargeScreens="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>

<application android:icon="@drawable/icon" android:label="@string/ardp_app_name" android:allowBackup="false" android:debuggable="false" android:theme="@style/AppTheme" android:name="com.iiordanov.bVNC.App">
<activity android:label="@string/ardp_app_name"
android:name="com.iiordanov.bVNC.aRDP"
android:screenOrientation="unspecified"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden|adjustResize"
android:theme="@android:style/Theme.DeviceDefault">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"></category>
</intent-filter>
</activity>
<activity android:screenOrientation="unspecified"
android:configChanges="orientation|keyboardHidden|keyboard"
android:name="com.iiordanov.bVNC.RemoteCanvasActivity"
android:windowSoftInputMode="stateHidden|adjustResize"
android:theme="@android:style/Theme.DeviceDefault">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="rdp" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/vnd.rdp" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="*" android:pathPattern=".*\\.rdp" />
<data android:scheme="file" android:host="*" android:pathPattern=".*\\.rdp" />
<data android:scheme="http" android:host="*" android:pathPattern=".*\\.RDP" />
<data android:scheme="file" android:host="*" android:pathPattern=".*\\.RDP" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
<activity android:name="com.iiordanov.bVNC.ConnectionListActivity"
android:label="@string/shortcut_label"
android:windowSoftInputMode="stateHidden|adjustResize"
android:theme="@android:style/Theme.DeviceDefault">
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="com.iiordanov.pubkeygenerator.GeneratePubkeyActivity"
android:configChanges="keyboardHidden|orientation"
android:windowSoftInputMode="stateHidden|adjustResize"
android:screenOrientation="unspecified"
android:theme="@android:style/Theme.DeviceDefault"/>
<uses-library android:required="false" android:name="com.sec.android.app.multiwindow"> </uses-library>
<meta-data android:name="com.sec.android.support.multiwindow"
android:value="true" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W"
android:resource="@dimen/app_defaultsize_w" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H"
android:resource="@dimen/app_defaultsize_h" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W"
android:resource="@dimen/app_minimumsize_w" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H"
android:resource="@dimen/app_minimumsize_h" />
</application>
</manifest>
Loading

0 comments on commit b1844f1

Please sign in to comment.