Fire HD 10 als normales Tablet mit Whatsapp

Das Fire HD 10 kann man ab und zu bei Amazon schon für unter 100,- EUR bekommen. Da kann man dann doch mal überlegen, ob sich so eine Anschaffung für einen lohnen kann, um das Gerät als normales Tablet einzusetzen.

Die Bedienoberfläche ist sehr speziell auf die Amazon-Services angepasst. Daher ist das Tablet für den „normalen“ alltäglichen Gebrauch eigentlich kaum geeignet.

Aber wie wäre es, wenn man die Bedienoberfläche nun so anpasst, dass sie so aussieht wie bei einem „normalen“ Android-Tablet?

Wie das gehen soll, wird in diesem Artikel beschrieben.
Dabei wird das Tablet so umkonfiguriert, dass es alltagstauglich wird, ohne das System zu rooten oder den Google-App-Store zu installieren.

Nach der Umkonfiguration kann man beliebige Apps installieren -auch aus dem Google-Playstore- und es wird gezeigt wie man Whatsapp zum Laufen bekommt.

Vorbereitung

Um Amazon-fremde Apps installieren zu können, muss man zunächst erlauben, dass Apps aus fremden Quellen installieren darf.
Hierfür geht man in das Menü „Einstellungen/Sicherheit und Datenschutz“ und aktiviert dort Apps unbekannter Herkunft.

Nach dem man nun fremde Apps installieren kann, fangen wir mit den Vorbereitungen für die Installation des Launchers an.
Dafür geht man mit dem Silk-Browser auf die Github-Seite https://github.com/BaronKiko/LauncherHijack/releases und lädt von dort dann das aktuelle Release (4.0.2) runter.

Nach dem Download klickt man auf das Paket und installiert es.
Diese App sorgt dafür, dass bei einem Klick auf den Home-Button eine beliebige App aufgerufen wird. In diesem Fall wird es der noch zu installierenden Nova-Launcher sein.

Als nächstes wird noch der Appstore F-Droid installiert. Dieser wird benötigt um einige freie Opensource Apps zu installieren.
Im Silk-Browser ruft man dann https://f-droid.org/FDroid.apk auf und installiert dann die App.

Dann ruft man die App  F-Droid auf und installiert den Yalp-Store. Der Yalp-Store ist eine schöne App mit der man anonym Apps direkt aus dem Google-Playstore installieren kann.

Einrichten des Launchers

Im Yalp-Store sucht man nun nach dem Nova-Launcher. Diesen gibt es in zwei Versionen: eine kostenlose und eine kostenpflichtige.
Die kostenlose Version reicht für dieses Projekt aus.
Ist der Launcher installiert, drückt man zu erst kurz den Home-Button, damit der Launcher aktiviert wird. Jetzt kann man dann nach und nach seine favorisierten Apps in den Launcher schieben.
Und schon hat man eine fast normales Tablet 😉

Mit den App-Stores F-Droid, Yalp (Google) und Amazon hat man nun genug Möglichkeiten die Apps zu installieren, die man für sein tägliches Leben braucht.

Whatsapp installieren

Um Whatsapp zu installieren gibt es jetzt im Prinzip zwei Möglichkeiten, entweder über den Yalp-Store oder man lädt das APK-Packet direkt von der Webseite runter https://www.whatsapp.com/android/

Offiziell unterstützt Whatsapp keine Tablets, worauf auch nach der Installation hingewiesen wird. Whatsapp funktioniert aber trotzdem einwandfrei.
Für die Registrierung muss man eine Telefonnummer angeben, mit der man SMS-Empfangen kann, d.h. es kann auch eine Festnetznummer sein, wenn der Provider die für dem SMS-Empfang freigeschaltet hat.

Ist die Registrierung abgeschlossen, kann man sofort loslegen.

Für Telefonate sollte man noch einen Klingelton installieren, ansonsten bekommt man unter Umständen nicht mit, wenn jemand anruft, weil es nicht klingelt, denn das Fire HD hat standardmäßig keine Klingeltöne installiert -ist ja auch kein Smartphone.

Als Klingeltöne kann man beliebige MP3-Dateien verwenden, die man einfach in das Verzeichnis „Ringtones“ kopiert.
Wenn man einen Klingelton installiert hat, muss man diesen dann noch in der Whatsapp-Konfiguration bekannt machen.

Um die ersten Kontakte einzutragen, geht man auf „Anrufen“ und fügt dort neue Kontakte hinzu.

To translate this page you can use Deepl

Veröffentlicht unter Allgemein | Kommentare deaktiviert für Fire HD 10 als normales Tablet mit Whatsapp

Building Openssl for Qt and Android

Here I’m describing howto build and use OpenSsl with Qt 5.11 on Android.

Using Openssl with Qt5 is a real hard stuff, because:

  • Qt  does not support an actual NDK  version r18b. The latest NDK version supported is version r17c
  • Qt does also not support the actual version of OpenSsl 1.1.1. So you have to use OpenSsl 1.0.2.p
  • The official description from Qt-Documentation does not describe what NDK and what OpenSsl is supported.
  • Even the OpenSsl-Wiki does not help

The main problem is that the structure of NDK packages may change from time to time. The result is, that the actual setup script does not evaluate the correct path to the include directory.

So what to do?

First you have to build your own toolchain

In your NDK-directory go to build/tools and create your own toolchain.  

./make_standalone_toolchain.py --arch arm --api 24 --install-dir $HOME/tmp/my-android-toolchain

For more information about how to build your own toolchain have a look here.

Add a the include path to your environment

Then export the path where the include directory is located  to your build environment.

This path is the same as you used before as install-dir for the toolchain plus  „/sysroot/user“

export ANDROID_DEV=$HOME/tmp/my-android-toolchain/sysroot/usr

Build OpenSsl

Finally build the libraries with the following three commands

> ./Configure android shared
> make depend
> make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" build_libs

Do not use any other option for these commands!

The options of the last make command ensures that the libraries a compiled without a version number. This is because Android don’t like versioned libraries and won’t load them.

Verify libraries

If everything works well, you will find two libraries in your build directory:

libssl.so and libcrypt.so

If you see versioned libraries like libssl.so.1.0.0 or libcrypt.so.1.0.0 something went wrong.

Check if the library is not versioned:

> readelf -d libcrypto.so
:
0x0000000e (SONAME)        Library soname: [libcrypto.so]

If you see a version number like this:

0x0000000e (SONAME) Library soname: [libcrypto.so.1.0.0]

something went wrong.

To check if you have build for arm run:

> readelf -h ./libcrypto.0 | grep -i 'class\|machine' | head -2
    Class:                             ELF32
    Machine:                           ARM

This shows that the library was build for a 32Bit ARM CPU.

Now you can copy this libraries to the path of your Qt-Android project.

Deploy it to your phone and hope that every thing works a expected.

Check if OpenSsl works with Qt

Unfortunately Qt does not throw any error during compiling the code, even if you use a complete incompatible ssl library. You can build your project and run it without problems.

While testing your app you may notice that your encrypted network functions may not work, but all other network functions are working correctly. If your are using qDebug() you can see some ssl errors on your console like:

QSslSocket: cannot resolve TLSv1_1_client_method
QSslSocket: cannot resolve TLSv1_2_client_method

In this case its time to look if Qt is using the library.  You can do it like this:

if (QSslSocket::supportsSsl())
   qDebug() << "SSL supported" << QSslSocket::sslLibraryVersionString();
else
   qDebug() << "No SSL-Support " ;

If your output is „No SSl-Support“ your ssl library is not used by Qt, check the steps before 😉

Veröffentlicht unter Allgemein | Kommentare deaktiviert für Building Openssl for Qt and Android

Using openSUSE Build Service (OBS)

This is a small article is for programmers who want their application run on different Linux distributions.
OpenSUSE Build Service (OBS) offers such a service where  programmers can compile their applications for various Linux distributions. OBS offers a web client and command line tool.
In this article I only describe how to use the web client to compile a Qt application for some openSUSE versions.
The challenge for this job is to find the right Qt packages and define an appropriate spec file, because unfortunately a standard distribution by default does not deliver all the Qt packages needed for a compilation.

Create a package

The first step is to create a login and a project at OBS.
Done, the next step is to create a package for your application. After creating your package your should see it in the package list in the Overview section. In this example its … Example 😉

 

 

Now you can select some repositories i.e. Linux distributions you want to build your application for.  As you can see there a already some repositories activated. This is why these repositories are defined in the 1st Package.

By clicking Add repositories a form appears where you can select and deselect the repositories your application should run on.

If the selected repositories provides all libraries your application needs for a compilation, all is done here.

Add an extra path to the repository

Sometimes a repository does not provide all the libraries needed by your application, in this case you have to add a special path where the build process can find all the libraries needed.

To add a new path to first click on

A dialog form appears where  you can click   The form for adding an additional path appears. Adding a new path is a little bit tricky, because the root directory for looking for additional path is /repositories/ . For example if you need libraries from Qt5.9 you have put KDE:Qt5.9into the form.  This points to http://download.opensuse.org/repositories/KDE:/Qt59/.  Repository: is selected automatically. finally you can add the path to the repository.

Modify the .spec file

The next step is to modify the spec file.  In this section I only point to some pitfalls you may trap into if you want to use a remote repository.

A word on meta data tag  Version: this is tricky because you can define a variable %{version} by %define version 1.0.0  or setting the meta tag  Version:   1.0.0in which setting the meta tag is the appropriated way. Then you define your buildroot BuildRoot: %{_tmppath}/%{name}-%{version}-build
This works fine if your .tar.gz file follows the standard syntax myapp-1.0.0.tar.gz

This may not work if you omit a version number in your .tar.gz file or you load your package from a remote repository e.g. from github. In this cases %{version} is set automatically.

This means the build process will overwrite the %{version} variable defined by the Version: tag and this may cause some errors where it’s used: e.g.  build path is not found.

So, in this case you leave the tag Version:      empty but don’t leave if out.

If you want to make your package available for multiple distributions you normally have to set some conditions. Especially on openSUSE the distribution numbering is not very consistent so you better have look at this site to checkout how to make it.

Interesting links

Veröffentlicht unter Uncategorized | Kommentare deaktiviert für Using openSUSE Build Service (OBS)

Enable RFID/NFC reader on Dell laptops

Some Dell Laptops have a Broadcom 5880 chip set which controls all the smart card and fingerprint readers installed. On Windows there are some tools you can use to work with the RFID-card reader. On linux you can use libchipcard, opensc and openct.

By default the NFC communication is disabled. To enable it first you have to turn in the Bios menu. Enable PM Security under the Security section.

After doing this you use the RFID-card reader only for Dell special authentication issues. Read this article for more information.

For using the contactless reader in your own applications you have to disable the „CV Only Radio Mode“. To do this for your Linux box you have to do the following.

1. Create a DOS bootable USB-Stick

Follow the instructions on this website

2. Get the required software

Download the file Broadcom_Unified-Security-Hu_A07_R210234.exe from this location http://ftp.us.dell.com/Security/

Rename Broadcom_Unified-Security-Hu_A07_R210234.exe to Broadcom_Unified-Security-Hu_A07_R210234.zip

mv Broadcom_Unified-Security-Hu_A07_R210234.exe Broadcom_Unified-Security-Hu_A07_R210234.zip

unzip it to a directory

unzip Broadcom_Unified-Security-Hu_A07_R210234.zip

copy the DOS folder to the usb stick

cp -R DOS /path/to/usbstick

3. Disable CV-mode

Boot your laptop from the prepared usb stick without any driver (4th menu point)

Enter into the DOS folder

cd DOS

Check chip status

ushdiag -u -stat

you should see something like this

... 
RFID Radio: Present; Enabled 
RFID: Not Locked CV Only Radio: Enabled

We have to disable „CV Only Radio“

ushdiag -u -dd 4

Now ushdiag -u -stat should show

...
RFID Radio: Present; Enabled
RFID: Not Locked
CV Only Radio: Disabled

If something goes wrong call

ushdiag -h

this shows all the options available

4. Test NFC-reader on Linux

Before you can run a test you have to install the following packages:

    • pcscd
    • pcsc-tools
    • opensc
    • openct

When everything went fine, on Linux you should do the following:

Start pcscd daemon, this depends on your Linux distribution. On opensuse type

rcpcscd start

When you call

opensc-tool -l

you should see something like this

# Detected readers (pcsc) Nr.  Card  Features  Name 
0    No              Broadcom Corp 5880 [Contacted SmartCard] (0123456789ABCD) 00 00 
1    No              Broadcom Corp 5880 [Contactless SmartCard] (0123456789ABCD) 01 00

When you put a an NFC-Card over the reader and your output is like this

# Detected readers (pcsc)
Nr.  Card  Features  Name
0    No              Broadcom Corp 5880 [Contacted SmartCard] (0123456789ABCD) 00 00
1    Yes             Broadcom Corp 5880 [Contactless SmartCard] (0123456789ABCD) 01 00

everything works fine 🙂

This work is based on this articles:

  • http://ridrix.wordpress.com/2009/10/13/how-to-enable-pcsc-support-for-dell-contactless-reader/
  • http://natisbad.org/E4300/index.html
Veröffentlicht unter Uncategorized | Verschlagwortet mit , | Kommentare deaktiviert für Enable RFID/NFC reader on Dell laptops

Programming SOAP

Hi,

This is a short tutorial that is dedicated to help PHP programmers who get in trouble connecting a SOAP-service using the native php5 soap functions.

This part describes how to check a SOAP-call on a command line. If you have trouble connecting a SOAP-Service you should do this first, to ensure you have created a valid SOAP-Request.

To check if your soap-request is well-formed, put it into a file e.g. soaptest.xml and check it with xmllint
xmllint soaptest.xml

If everything is ok, the program will output the file content, otherwise it will throw an error message.

When there appears no error, the second step is to check if the soap-request will produce a response without errors. To check this out we can use the curl program.
Sometimes you have to send several requests to the soap-server. To simplify the requests we create a curl config file (e.g. soapheader.txt) with the appropriate parameters:

header = "Content-Type: text/xml; charset=utf-8"
header = "SOAPAction: urn:<uri to soap-function>"
data = "@soaptest.xml"
url = "<url to soap-service>"

Do the test request:

curl -K soapheader.txt

to format the output we can use xmllint again

curl -K soapheader.txt | xmllint --format -

If you are lucky you will receive a soap-response and if you are very lucky the xml-response is what you expected.
Otherwise there appears no response or rather no output, this occurs when your request produces a server error. To have a look to the server response you can dump the header information to a file (e.g. header.txt):

curl -K soapheader.txt -D header.txt

With this information you should be able to solve your problems 😉

Veröffentlicht unter soap | Hinterlasse einen Kommentar