Pull to refresh

Есть ли API для Kiosk-приложений в Android?

Reading time3 min
Views12K
Этой публикацией я бы хотел спровоцировать обсуждение проблемы, которая имеет место в системе Android: невозможность без ухищрений и хаков, методами, одобренными официальными гайдлайнами, создавать приложения для выполнения в защищенном окружении (kiosk-приложения).

Программное обеспечение kiosk должно обеспечивать защиту интернет-киоска (в данном случае — android-терминала) от несанкционированной активности. Киоск должен быть защищен от возможности вызова системных диалогов, доступа к настройкам устройства, доступа к файловой системе, и т.д.
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments20

Стримим экран на несколько устройств по сети

Reading time4 min
Views9.3K


Возникла у меня необходимость выводить дашборд с мониторингом на несколько экранов в офисе. В распоряжении имеется несколько стареньких Raspberry Pi Model B+ и гипервизор с практически неограниченным количеством ресурсов.


По видимому Raspberry Pi Model B+ не обладает достаточной произвольностью чтобы держать постоянно запущенным браузер и отрисовывать большое количество графики в нем, из-за чего бывает, что страница частично глючит и часто вылетает.


Нашлось достаточно простое и элегантное решение, которым я и хочу с вами поделиться.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments5

Hypercube. How we gave developers test devices without losing any

Reading time11 min
Views4.9K
You can’t properly test and debug mobile apps without test devices, which there should be plenty of considering how the same code may behave differently on different models. So how do we keep track of these devices? How do we quickly provide developers and testers with the smartphones they need, configured the way they need, and without much red tape?

I’m Alexey Lavrenuke. Over the years, I’ve worn many hats: one of the authors behind Yandex.Tank, a speaker on load testing, and the guy who calculated energy consumption by mobile phones. Now I’m a Yandex.Rover developer on the self-driving car team.

After the phones and before Yandex.Rover, there was Hypercube.

A few years ago, the head of mobile development popped in to the load testing department and mentioned a problem they were having with test devices: phones had a tendency to inexplicably migrate from one desk to another. Picking the right device and then finding it had become a challenge. We already experienced working with mobile devices from building a digital ammeter to calculate energy consumption, so we decided to help our coworkers out and quickly rig up a handy contraption. We figured the whole thing wouldn’t take more than three months. Oh how wrong we were. Let me tell you what we were really in for.


''Dallas cube''
Read more →
Total votes 13: ↑12 and ↓1+11
Comments2

Киоск Raspberry Pi для графического интерфейса на Kivy

Reading time5 min
Views10K
Привет, Хабр!

Хочется поделиться опытом настройки Raspberry Pi 3B+ в качестве киоска с GUI на базе библиотеки Kivy для Python 3. Почему именно Kivy? Просто мы уже имеем продукт, разработанный на Python, нам бы хотелось добавить к нему графический интерфейс. Стоит отметить, что до Kivy мы перепробовали несколько вариантов, включая wxWidgets и даже браузер на Chromium с веб-приложением. Все эти альтернативы оказались бессильны против Kivy, лёгкой и быстрой. Очень хороший обзор этой библиотеки уже есть на Хабре.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments7

kiosk-type windows shell или как окружить сотрудников заботой и пониманием

Reading time2 min
Views1.3K
Не так давно один мой хороший знакомый попросил заблокировать на своих рабочих компьютерах все программы, кроме одной и это был не эксплорер :).

Попробавал заблокировать запуск всех программ кроме нужной через политики — но explorer по горячим клавишам все равно запускался, а ведь с его помощью можно много чего натворить при желании.

Попробовал заменить windows shell — поставил запуск той нужной программы вместо explorer.exe. Но выяснилось, что во-первых нужная программа работает в графическом режиме, и direct-x, похоже, не успевал инициализироваться и программа жаловалась на его отсутствие. Также, при выходе из программы, пользовательская сессия не заканчивалась.

Я все еще надеялся решить задачу подручными средствами.

Следующим этапом был бат файл с запуском нужной программы и logoff.exe после — для того, чтобы при выходе из программы сессия закрывалась. Все вроде бы как ничего — но во-первых, программа продолжала жаловаться на отсутствие директ икса (хотя потом запускалась), во-вторых, даже запустив батник в минимизированном состоянии, его окно было видно — можно его прервать, т.е. пользователь мог при желании поучаствовать в процессе и создать проблемы, что в общем-то недопустимо.

Попробовал вижауал бейсиковый скрипт — но для его запуска нужно запускать эксплорер со всеми вытекающими обстоятельствами (возможно можно как-то без эксплорера, но я не нашел как).

Так как простого решения я не нашел, решил быстренько написать простейший shell, который будет запускать нужную программу и по ее завершении завершать сессию.

В качестве орудия написания скачал последнюю с++ экспресс вижуал студию, сваял програмку.

Выяснилось, что если сразу сходу запускать графическую программу, она также жалуется на отсутствие direct-x, а вот если запускать ее из меню — она запускалась молча и с удовольствием.

Понес ставить этот shell на компы — обнаружил, что код скомпилирован под .net — а ставить его только для моей микро программы я посчитал кощунством. Прийдя домой и порывшись в настройках вижуал студии я понял, что получить чистый win32 код я не смогу — я ж жеж вообще php программер и особого влечения к программирования толстых решений для мелкомягкой платформы просто нету.

Не особо расстраиваясь я решил сделать то-же самое на win32 api с помощью старой доброй вижуал студии 6.0. Заодно решил добавить немного удобств для себя, любимого — например, конфигурирование списка разрешенных программ через реестр (файл защитить от изменений сложнее), т.е. все настройки этого шелла хранятся в глобальном разделе реестра, недоступном для изменения для простых смертных. Также думаю повесить хук на запуск программ (если какой продвинутый пользователь запустит игру в карты через окно диалога открытия или сохранения файла) и либо прерывать неразрешенные процессы либо не давать им запускаться вовсе — еще не разбирался, как правильней/проще сделать). Еще думаю разобраться с копированием файлов через диалог открытия или сохранения файла — блокировать их тоже, в общем. Также нужно по идее запретить монтировать устройства простому пользователю.

В общем закат солнца вручную :)

Может кто уже решал подобные задачи? вот чувтвую, что решается в три пинка, а я тут развел бог весть что уже.
Total votes 17: ↑13 and ↓4+9
Comments28

Развёртывание встраиваемой системы на базе Windows и Linux

Reading time14 min
Views21K
В статье описаны методы быстрого развёртывания встраиваемой системы на базе Windows 10 и Debian Linux. Приведены примеры сборки защищённого интерфейса.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments17