Please note: this page is a translation provided for your convenience. Only the German version is legally binding. You will find it at geier-it.eu/lvcompass-behoerdenunterlage.html.
This document describes LV Compass for review by a public body: data processed, data flows, security measures as well as development and delivery. It is a self-declaration by the manufacturer and does not replace certification. The privacy policy and the accessibility statement belong with it.
1. Purpose and use
LV Compass displays bills of quantities on an Android device – on the building site, in the field or in the office. The files are either on the device or on a server named by the user (WebDAV, e. g. the authority's Nextcloud or ownCloud). The app is purely a viewing and search tool: it does not change the bills of quantities, does not calculate bids and does not transmit any content to the manufacturer.
Supported file formats
| Area | Formats |
|---|---|
| GAEB (DA XML) | X81, X82, X83, X84, X85, X86 |
| GAEB 90 (DA 90) | D81, D82, D83, D84, D85, D86 |
| GAEB 2000 | P81, P82, P83, P84, P85, P86 |
| ÖNORM | ONLV, ONLB |
| Tables (can be switched off) | XLSX, CSV with columns such as item, short text, quantity, unit price, total price |
Bid or price files (e. g. an X84 belonging to an X83) are recognised and assigned to the items. Long texts are displayed including the RTF formatting.
2. Brief profile
| Feature | Item |
|---|---|
| Platform | Android 8.0 (API 26) and above, tested up to Android 16 (API 36) |
| Technology | Java, standard Android components; no web view for app content, no embedded browser |
| Third-party libraries | AndroidX (activity, appcompat, core-splashscreen, preference), Google Material Components, OkHttp 4.12 – none others |
| Advertising, tracking, analytics | none – no advertising SDKs, no analytics tools, no crash reports to third parties |
| Android permissions | exclusively INTERNET; no location, no camera, no contacts, no storage access outside the app |
| Distribution channels | Google Play, managed Google Play (MDM) or direct delivery of the signed APK file |
| Operation without a network | fully possible: downloaded bill-of-quantities files remain readable |
3. Data processed and data flows
3.1 On the device
| Data | Purpose | Location |
|---|---|---|
| Downloaded bill-of-quantities files | Viewing without a network | Folder LV in the app area of the device, optionally only in the private app storage (section 7.2) |
| Server address, user identifier | Connection to the authority's server | private app storage |
| Password for the server | Login to the server | private app storage, encrypted with AES-256/GCM; the key is kept in the Android Keystore and does not leave the device |
| Company name, user name, licence key, licence record | Licence check | private app storage |
| Display settings (language, colours, prices on/off, expanded sections) | Ease of use | private app storage |
Backup by Android is switched off (allowBackup="false"), so files and settings do not migrate into a cloud backup of the device manufacturer. On uninstallation everything is deleted.
3.2 Connections to the outside
| Destination | When | Data transferred | Protection |
|---|---|---|---|
| The authority's server (WebDAV, freely selectable) | When retrieving the project list (once a day or on tapping) and when downloading a file | Login data for the server, folder and file names, file contents | HTTPS enforced (plain-text connections are blocked in the app) |
Geier-IT licence server (keygen.gdyn.de, located in Germany) |
At startup, at most once per start | Licence key, company name, user name, hash of the device identifier (SHA-256 of the Android ID, cannot be reversed), app version, product identifier | HTTPS; the response is a record signed with ECDSA (SHA-256, P-256) which the app verifies against the built-in public key |
No other connections. Bill-of-quantities content, quantities, prices or file names do not reach the manufacturer. The licence server only learns which device was last active with which key and which user name.
3.3 Write access to the authority's server
In normal operation the app only reads (PROPFIND, SEARCH, GET). The server is written to exclusively on an express instruction: via the menu item „Copy to cloud folder“ the app creates the selected target folder if necessary (MKCOL) and has the server copy the file there (COPY); a file of the same name in the target folder is replaced in the process. The app cannot delete (DELETE), move (MOVE) or upload (PUT). Where the permissions of the server account are not meant to allow copying, an account with read rights is sufficient.
4. Security measures
| Level | Measure |
|---|---|
| Transmission | TLS only; plain-text connections are prevented via the Android network security configuration. Certificate validation according to the Android standard (system trust store, so that the authority's own CAs are also possible if they are installed on the device). |
| Storage | Server password with AES-256/GCM, key in the Android Keystore (hardware-backed where the device offers this). Other data in the private app area; bill-of-quantities files there as well if desired (section 7.2). |
| Licence record | Signed (ECDSA P-256/SHA-256), verified offline against the public key stored in the app; a manipulated or foreign record is rejected. |
| Device identifier | Only a hash (SHA-256) of the Android ID is transferred, not the identifier itself; the Android ID differs per app signature and device. |
| Attack surface | Only a single permission (INTERNET). None of the screens apart from the launcher can be called by other apps (exported="false"), there are no open content providers, no services, no broadcast receivers. |
| Delivery | Release files are signed with a key held exclusively by the manufacturer; the program code is shrunk and obfuscated with R8, and debug switches are not contained in release versions. |
| Third-party code | Six widely used libraries (AndroidX, Material, OkHttp), no advertising or analytics components. The complete list is in section 2; a bill of materials (SBOM) can be supplied on request. |
5. Development and delivery
- Development: sole proprietorship Geier-IT; the source code is held by the manufacturer and is not passed on to third parties. Development and building of the release files take place at a workstation in Germany.
- Checks before every delivery: automated tests (currently 22, including reading GAEB files, sorting, search, storage in the LV folder, licence record, colour contrasts), followed by a run on a real Android device. Every version is checked on the device as a preview app before release.
- Versioning: consecutive version number and build number; every delivered version is archived with its installation file, signature record and mapping file, so that questions about a particular version can be answered.
- Updates: automatically via Google Play or managed Google Play; with direct delivery via MDM or by providing the signed file.
- Security reports: reports to info@geier-it.eu; a response as a rule within two working days, security-relevant defects are fixed with priority. Deadlines can be agreed as binding in the maintenance contract.
6. Data protection (short version)
- The body deploying the app is responsible for the processing in the app; Geier-IT processes only the licence data named in section 3.2 and is itself the controller in that respect.
- A processing agreement (Art. 28 GDPR) is not mandatory for the deployment, because the bill-of-quantities files do not leave the authority's server in the direction of the manufacturer. If the company or user name contains the real names of employees, this concerns the licence data; a processing agreement or a joint determination can be concluded for this. A model text is available.
- The authority can also specify a functional designation as the user name (e. g. „Building authority device 4“); the app does not require a real name. This can be set centrally via the managed configuration.
- Deletion: uninstallation removes all data on the device; licence data is deleted by the manufacturer on request.
7. Operation within a public authority
7.1 Managed configuration (Android Enterprise / MDM)
From version 1.1.0 the IT department can preconfigure the app via its management system. The specified fields are locked on the device and marked as „Specified by IT“.
| Key | Type | Meaning |
|---|---|---|
cloud_enabled | Switch | Use a cloud server |
cloud_url | Text | Server address (WebDAV) |
cloud_user | Text | User identifier for the server |
cloud_password | Text | Password; stored encrypted on the device (recommended: a dedicated app password of the server) |
cloud_path | Text | Folder on the server |
private_storage | Switch | Keep bill-of-quantities files only in the private app storage |
include_tables | Switch | Include Excel and CSV files |
company_name | Text | Company or authority name for the licence |
user_name | Text | User or functional designation for the licence |
license_key | Text | Licence key; the device activates it itself at the next start |
This makes it possible to roll out a device without any user input: after the first start the app is connected, licensed and asks neither for a key nor for a name.
7.2 Storage location of the bill-of-quantities files
By default, downloaded files are stored in the folder LV in the app area of the device storage – useful if they are also needed on a computer via a USB cable. The setting „Keep bill-of-quantities files only in private storage“ (which can also be specified via MDM) instead places them in the protected area of the app: no file manager, no other app and no connected computer can then reach the bills of quantities. When switching over, the app moves the existing files by itself.
7.3 Network
The app requires access to the authority's WebDAV server as well as to keygen.gdyn.de (TCP 443) for the licence check. Without the licence server, an app that has already been activated continues to work; the record is verified locally. For devices without internet access, a licence form without recurring checks can be agreed.
8. Accessibility
The state of conformity and the limitations are described in the accessibility statement (self-assessment according to EN 301 549 / BITV 2.0, as at 23 September 2026). In brief: controls and lists are prepared for the screen reader, all supplied colour schemes reach at least 4.5:1, font sizes up to 200 % remain fully usable, target sizes from 48 dp. Not confirmed: assessment by an independent testing body and a documented complete TalkBack run; the preparation of third-party long texts in bills of quantities is outside the app's influence.
9. Limits of this self-declaration
- There are no certifications (no ISO 27001, no C5 attestation, no BSI certificate) and no external penetration test has taken place. Geier-IT is a sole proprietorship.
- The information on accessibility is based on a self-assessment; a BITV test by a testing body can be commissioned.
- The operation of the WebDAV server (availability, assignment of rights, logging, backup) is the responsibility of the authority.
- The managed configuration has not yet been tried out in a productive MDM; the manufacturer is available for a pilot phase.
10. Contact
Anton Geier – Geier-IT
Untere Bergstraße 2, 55487 Sohren, Germany
E-mail: info@geier-it.eu · Phone: +49 (0) 152 042 02 892
Geier-IT · LV Compass 1.1.0 · Last updated: 23 September 2026