Saturday, February 18, 2012

MESH телефончик

Идея для маленькой программки - полурация - полуmesh сеть :-) В принципе уже есть аналог http://www.servalproject.org/ - вобщем-то, если верить описанию всем хорош - можно звонить без сети, можно передавать файлы, слать SMS. Программа может сама управлять сетью, но она мне кажется не удобной - слишком много функционала или мне просто хочется создать свой велосипед - единственное, что не удобно для отправки SMS используется, как я понял, внешняя сеть и SMS будет отослан через http://code.google.com/p/websmsdroid/ веб-сайты. Основной проблемой как по мне является не возможность аутентифицировать звонящего - так как можно спокойно менять свой номер. Другим аналогом может быть http://sipdroid.org/ - все хорошо - но нужно постоянное соединение с интернетом и регистрация SIP аккаунта.

В общем моя идея - приложение которое будет заменять стандартные с минимальный функционалом - возможно с интеграцией в стандартные приложения отправки сообщений, может нет, скорее это дополнительное приложение объединяющее обе возможности: дешевая связь через локальную сеть и дорогую, но более классическую отправку через оператора. Так как если оставить стандартные приложение в них можно посмотреть, что и как реально отправлялось. 

Принцип работы приложения:
  1. во время запуска мы, делаем широковещательный запрос в сеть ограниченный локальной сетью, на поиск возможно запущенных других клиентов, все ответившие сообщают хеш он текущего номера. 
  2. когда возникает необходимость звонить ищем по хешу от номера собеседника и если в локальной сети - подобный есть - то запрашиваем полный - хеш от номера телефона плюс случайное число(например время). 
  3. если у нас уже в базе такие есть - просто соединяем и говорим - считая что это правильный абонент. 
  4. если нет - то выводим на экран что таких не знаем и просим конечного абонента сказать что за циферки он выбрал как случайные и пользователь их вводит - сами тоже показываем циферки и просим собеседника их тоже ввести. 
  5. при каждой процедуре связи для проверки просим вернуть хеш от случайного числа плюс наше запомненное значение - в принципе этого должно хватить. 
Это тоже не идеально - но по идее позволяет примерно убедиться, что это тот же абонент что и раньше был. Хотя кто то может подсмотреть циферки и узнать по какому коду мы раньше проверили - но все же нет возможности легко выдать себя за кого-то другого - поменяв настройки.

Saturday, February 4, 2012

OpenWRT

Интересная сборка OpenWRT:-) Прям мечта...

  1. svn co svn://svn.openwrt.org/openwrt/branches/backfire backfire
  2. wget http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/config
  3. mv config backfire/.config
  4. cd backfire 
  5. make
  6. смотрим каталог bin/brcm63xx/


И все:-) Конечно можно зайти и по настраивать: make menucofig

Но куда уже проще:-) Ставить пока не пробовал, ADSL функционала что-то все нет.... 

Sunday, January 15, 2012

Fastboot

Есть маленькая особенность при прошивке через fastboot - идентификатор устройства в режиме fastboot не совпадает с идентификатором после загрузки поэтому adb видит устройство после загрузки, но если не прописать правильные идентификаторы udev - fastboot не увидит устройство. Потому желательно поискать телефон через lsusb(телефон должен быть в режиме fastboot) - там должна быть строка вида: 
Bus 001 Device 016: ID 0bb4:0fff High Tech Computer Corp. Android Fastboot Bootloader 




И 0fff - нужно записать в '/etc/udev/rules.d/11-android.rules' в виде строки: 

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0fff", MODE="0666", OWNER="mylogname" 

После этого телефон должен появиться в списке fastboot devices, в том случае если телефон поддерживает этот режим прошивки,  я пробовал только на Nexus One и HTC Desire HD. Другие производители я думаю не используют High Tech Computer в идентификаторах. Причем Nexus One точно можно разблокировать прошивку через fastboot( fastboot oem unlock ), на Desire не пробовал.

Friday, December 16, 2011

Android и вирусы


Андроид стал очень популярной системой под него есть вирусы и их даже не нужно компилить:-) Правда они пока ориентированы на невнимательность пользователя - так как нужно подтвердить установки и если не включено разрешение установки пакетов не из Android Market(Application Settings -> Unknow sources) - то вообще установку выполнить нельзя. Но вообще это очень положительный момент - значит эта операционная система очень популярна среди пользователей.

Это произведение хорошо определяется DrWeb (можно установить из маркета бесплатно). А вот clamav не захотел определять как вирус :-(

 По заголовкам пакета это произведение хотело сказать что оно опера:-)

Sunday, November 6, 2011

Мелочи о Radeon и не только

В автоматическом режиме никогда не устанавливается минимальный уровень потребления по умолчанию, если судить по сообщению на сайте freedescktop причина прозаична некоторые карты после этого не работают.

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

Разработчикам MESA и Gnome удалось достигнуть интересного прогресса в разработке программного рендеринга, теперь его можно будет использовать для стандартной верии третьего гнома требующего поддержки OpenGL обещают еще проработать и ускорить его чтобы при подключении програмного рендеренга использовался немного упращенные эфекты когда видеокарта не тянет. Также собитаються создать упрощенную программую реализацию DRI модуля для случая когда нет реальной видокарты или поддердки 3d ускорения на уровне видокарты чтобы через нее выполнять простейшие операции копировани проецирования областей памяти для вывода изображения и избежать лишнего копирования данных. 

Разработчики Ubuntu обсуждают возможность создания абстрактого интерфейса скрывающего реальный вариант интерфейса OpenGL (OpenGL 2.0 vs  OpenGL ES) и подключающего нужный вариант или эмулируя нужный вариант на уровне этого интерфейса - это позвоит использовать упрошенную версию когда полная реализация не нужна или не возможна. 

Android Air Scanner

Создал маленькое приложение под Android. Основной смысл его это получить уровни сигналов и видимость передатчиков для все доступных для Android видов источников. Интерфейс у приложения отсутствует - есть только большое текстовое поле - с которого нельзя копировать.
  • Для мобильных вышек, WiFi получить оказалось не очень сложно, пришлось конечно по разбираться в документации, но все же. 
  • Для общей статистики по подключениям тоже удалось получить какую-то информации - вообщем-то сомнительной ценности, что там нужно мне пока не понятно - вывожу чтобы было. GPS почему не хочет выдавать видимые спутники и включаться.
  • Bluetooth,NFC- я пока решил не трогать они уж очень близкого действия.
  • FMRadio - непосредственно в классическом андроиде поддержки нет. Есть сторонние реализации с интерфейсом которых я не разбирался - GPS интереснее пока. 
Жаль только что в эмуляторе работает только общая информация о сети - WiFi не включается и сеть(точнее не полная эмуляция сети, можно получить только оператора) никаким образом не эмулируеться.

Saturday, October 29, 2011

ScriptCoverage

Гугл открыл код нового расширения для своего браузера показывающего какой код вызывался, правда в необычной манере. На главной странице проекта нет ссылки на загрузку дополнения и инструкции как установить, сразу идет ссылка на загрузку кода. Но в вики проекта есть описание как его запустить и в коде есть скрипт с примечательным названием build.py. Краткая инструкция как его запустить:

  • Грузим исходник:
    $ git clone https://code.google.com/p/script-cover/
    Cloning into script-cover...
    remote: Counting objects: 47, done.
    remote: Finding sources: 100% (47/47), done.
    remote: Total 47 (delta 12)
    Unpacking objects: 100% (47/47), done.
    
  • Запускаем сборку, подгружаются не достающее исходники(используется closure compiler), и все собирается:
    $ cd script-cover/
    $  python build.py 
    Running command: svn checkout http://closure-library.googlecode.com/svn/trunk/ closure-library
    Running command: java -jar SoyToJsSrcCompiler.jar --shouldProvideRequireSoyNamespaces --outputPathFormat build_gen/src/coverage_report.soy.js src/coverage_report.soy
    Running command: java -jar SoyToJsSrcCompiler.jar --shouldProvideRequireSoyNamespaces --outputPathFormat build_gen/src/popup.soy.js src/popup.soy
    Running command: closure-library/closure/bin/build/closurebuilder.py --root=src --root=closure-library --root=build_gen --output_mode=compiled --output_file=build/content_compiled.js --compiler_jar=compiler.jar --input=src/scriptLoader.js --input=src/instrumentation.js --input=src/startTool.js
    Running command: closure-library/closure/bin/build/closurebuilder.py --root=src --root=closure-library --root=build_gen --output_mode=compiled --output_file=build/background_compiled.js --compiler_jar=compiler.jar --input=src/showCoverageHelper.js --input=src/background.js
    Running command: closure-library/closure/bin/build/closurebuilder.py --root=src --root=closure-library --root=build_gen --output_mode=compiled --output_file=build/inject_compiled.js --compiler_jar=compiler.jar --input=src/backgroundInteraction.js
    Running command: closure-library/closure/bin/build/closurebuilder.py --root=src --root=closure-library --root=build_gen --output_mode=compiled --output_file=build/popup_compiled.js --compiler_jar=compiler.jar --input=src/popup.js --input=src/background.js
    
  • В хроме выбираем Tools->Extensions(или chrome://extensions/) , включаем Developer Mode и выбираем загрузку не упакованных расширений и выбираем папочку build.
  • После этого расширения появляется в toolbar-е и мы немного ждем результатов анализа - и радуемся:-)
  • И выключаем его после теста чтобы не занимался не нужным анализом.