You are viewing grey_olli

geeky nerds blog

--------------------------------------------------------------------------------

5/8/13 02:41 am - end to end encryption for android: calls and sms

Subj, http://www.whispersystems.org/ . The publish source code. Interesting - has anybody dig sources for covert channels and weakness of the crypto?

5/8/13 01:55 am - android: google account manager

Включил двухфакторную авторизацию в гугломыле. Отодрал в настройках безопасности права для моего андроида. Сразу отвалилось две аппликухи - google play services и google account manager . Первое необходимо для апдейта установленных аппликух, так что выделил ему отдельный пароль на вход - этого достаточно.

А вот нужно ли давать логиниться google account manager я пока не знаю. Прав эта аппликуха требует выше крыши. Однако вопрос - что испортится если логиниться ей не давать?

5/4/13 10:48 pm - взгляд на privacy со стороны сотрудника следственных органов в U$

http://bohn.ru/news/chastnoj_zhizni_bolshe_net/2011-05-07-395
http://bohn.ru/news/chastnoj_zhizni_bolshe_net_chast_2/2011-05-07-396

Старьё. Но по прежнему актуальное. Читать всем любителям нарушать свою и чужую прайваси.=)

PS: Кстати, c некоторых пор я пользуюсь android и многими сервисами гугл, в т.ч. храню в гугле записную книжку и много чего ещё. Моё фото есть в профиле гуля и скайпа. И меня это не напрягает. Потому что я давно поделил своё существование на части. Моему реальному пользователю нечего скрывать, впрочем и виртуальному тоже. И мой виртуал не пользуется android, фейсбучеком и ещё много чем и при этом это он всё тот же неуловимый джо. =)

И тем не менее - анонимность и прайваси в сети надо поддерживать как обязательно существующую возможность. А уж как воспользоваться этим - лично дело каждого.

5/4/13 08:43 pm - firefox для андроид

Нет в настройках отключения загрузки картинок. Поминаю их нехорошими словами каждый раз когда лезу в сеть с телефона.
Tags: ,

5/3/13 03:04 pm - почему не стоит покупать поделия от nokia и microsoft на мобильном рынке

http://sporaw.livejournal.com/174287.html
Tags: ,

5/1/13 09:59 pm - YouTube & yandex video & firefox & chrome & android

из-за идиотского алгоритма работы всего упомянутого в subj проигрывание одного и того же ролика вызывает его скачивание по новой. по новой качаем если решили сделать ресайз уже скачанного клипа даже когда окошко вернули к размеру для которого данные уже скачивались. При работе через телефонный wifi это вызывает желание постучать по голове каждому из коллектива разработчиков этого гуано чем нибудь тяжёлым. Научитесь использрвать кэш в 21м веке. То же мне разработчики. :/
Tags:

5/1/13 10:47 am - покупка приложений в гугл-play

Если я купил приложение, а потом снёс операционку и поставил другую - в play оно доступно по прежнему или надо опять покупать?
Tags:

5/1/13 09:31 am - google glass и российская фемида

В свете скорого появления в широкой продаже в США, а затем по всему миру очков google glass нижеследующее выглядит мягко говоря неадекватным проявлением фемиды. Надеюсь google потратит усилия своих юристов на вывод очков из списка устройств подходящих в РФ под определение спецтехники скрытого применения. Тем более что очки благодаря рекламной кампании легко узнаваемы, наличие камеры в них широко известно и техническое устройство на виду. Я надеюсь купить это устройство когда оно появится в продаже и думаю, что не я один. Думаю не сложно найти человека, который при поддержке юристов google станет первым пользователем очков готовым отстаивать разрешение их ношения в судах РФ. Если бы у меня прямо сейчас были свободные 1.5 тысячи долларов - я бы обратился в гугл с таким предложением.


Взято вот тут: http://newsland.com/news/detail/id/1168211/

и тут: http://hitech.newsru.com/article/24apr2013/ochki

66-летнего жителя Новочебоксарска (Чувашия) обвиняют в приобретении "шпионских" очков. Как сообщил ИА REGNUM старший помощник руководителя СУ СКР по Чувашии Олег Дмитриев, товар поступил из Китая и был изъят из незаконного оборота сотрудниками Самарской таможни.

По версии следствия, 30 ноября 2012 года в Новочебоксарске обвиняемый заказал через интернет очки со встроенными видеокамерой и микрофоном. "Указанный товар является специальным техническим средством для негласного получения информации, оборот которых в России ограничен", - сказал Дмитриев.

Со слов обвиняемого, он случайно увидел в интернете баннер с рекламой товара и решил приобрести. "Новочебоксарец говорит, что заказал продукцию из любопытства: с его слов, он решил приобрести очки с функцией скрытой видеозаписи, чтобы снимать своих внуков во время игр с ними, во время общения. Чтобы дети не знали о том, что их снимают и не позировали на камеру. Записи он хотел сохранить для них на память, чтобы в будущем показать, какими они были", - сказал Дмитриев.

Новочебоксарца обвиняют в совершении преступления, предусмотренного ч.3 ст.30 - ст.138.1 УК РФ (покушение на незаконное приобретение специального технического средства, предназначенного для негласного получения информации).

Уголовное дело направлено суд для рассмотрения по существу.

Напомним, в 2010 году в России вступили в силу поправки к ст. 138 УК, в которой говорится о запрете продавать и производить без специального разрешения так называемую "спецтехнику для скрытого наблюдения". Новым в статье стало слово "приобретение". То есть теперь статья предписывает наказывать людей не только за нелегальное производство или продажу шпионских устройств, но и за их покупку. При этом законодательством до сих пор не определены признаки понятий "закамуфлированность" и "бытовой предмет".

4/30/13 08:13 pm - многословарный спелчекер?

Используемый мной под линухом софт умеет делать spell check на одном языке. Есть ли возможность подцепить много словарей (мне нужно сейчас русский и английский) средствами ОС так чтобы можно было выбрать в редакторе один язык а реально получить два и более?
Tags: ,

4/29/13 10:29 pm - :)

http://dianna-project.org/forum/index.php?t=tree&th=38&start=0&#page_top

Цитата:

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



Это девиз P2P Foundation.

4/29/13 08:19 pm - какой софт под андроид может помочь и есть ли он?

Есть масса полезных аппликух которые слишком много хотят. Если посмотреть какой нибудь официальный твиттер клиент - там чего только нет - чуть ли не draw over other apps - посмотрел я на это и ставить это гуано отказался. Фейсбучек опять же я тоже пока ставить не стал по тем же причинам.

Ещё по мотивам http://www.xakep.ru/56319/ захотелось явный фильтр чтоб спрашивал моего разрешения на INSTALL_ASSET и REMOVE_ASSET от кого бы то ни было включая сам гугл - нехрен в моём девайсе без меня софт ставить/удалять. =)

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

При этом у меня уже стоит дохрена всякого удобного софта который достаточно удобен чтобы простить ему излишнюю любовь к моим данным. И этот софт я бы тоже частично с удовольствием обломал бы.

Насколько я сейчас понимаю (весьма поверхостно) машинерию доступа в android - многое сделано за счёт стандартных unix permissions, но не всё.

Варианты для переделки весьма обширны. Модули в ядро например. Или (IMO - ещё лучше) - виртуализация с частичным пробросом к реальному железу. Ну и подмена библиотек разумеется с включением в них соответствующих прерывающих инструкций. Может быть патчи на java vm, если она open source..

Про софт реализующий часть нужного функционала я уже слышал - кто-то сделал модуль отдающий фиктивные координаты при попытке получить точную локацию. Вот только не помню как оно называлось и вышло ли за уровень PoC.

Я надеюсь ближе к середине-концу лета (ну или осенью может) пойти на курсы по java или scala чтобы в дальнейшем научиться писать под android. Если никто ничего подобного ещё не делал - будет повод начать самому. =)

4/26/13 08:28 am - отличная фантастика

Пришла реклама от литрес - 100 рублей которые можно потратить только до 5го мая кидаем на ваш счёт. Я как любитель жанра пошёл искать про попаданцев. И не прогадал. Новый для меня автор и безусловно стоящий.

«Случайный попаданец»

Электронная книга «Случайный попаданец» , Сергей Змеевский , на http://litres.ru она стоит менее 60 рублей.

Для человека который работает в IT и немного связанного с программированием + интересовавшегося взломом и защитой считаю книгу ничуть не хуже произведений Ясинского, которого я прочитал всего бесплатно в сети (и продолжаю читать по мере появления обновлений) а затем с удовольствием купил все книги серии на бумаге (и намерен покупать и впредь - да не оставит он эту серию :) ). Думаю, что те кто имеют отношение к IT - администрированию, прогарммированию, тестированию и кому нравится серия Ясинского эту книгу тоже оценят.

Вполне логичный мир.

Введены некоторые допущения (построение сложных систем на базе уязвимых технологий), но это пожалуй допущение из жизни. Больше из жизни 90х чем сегодняшней, но почему бы не привести простой пример - существует доступная технология клонирования бесконтактных карт метрополитена (и социальных (москвича и подобных ), как минимум части информации) с которой метрополитен успешно борется внесением в чёрные списки некорректно ведущих себя дубликатов - совместно с приличной морокой по восстановлению заблокированной карты это вполне себе успешное чисто экономическое
препятствие к получению выгоды от подделок. А ведь не 96й год на дворе, а 13й . И в гражданских технологиях этого вполне достаточно.

Ставшие в наши дни классическими методы взлома очень понятно описаны, т.е. достаточно просто чтобы суть была понятно даже человеку далёкому от подробностей тематики.

Самая главная проблема не затронутая в серии Ясинского решена довольно изящным способом - а именно скорость решения задач и работы "аппаратуры". В эпизоде с первым спасением личинки от атаки герой обнаруживает месяцы записанного видео с закрытых глаз (по каким-то особенностям метрики рассматривавшихся взаимодействий пространств уложившиеся в один сон).

Реальность такова, что в своё время (когда это ещё даже не было незаконно в РФ) для разработки сервера аналогичного по способностям ранним версиям nginx для управления спамерским ботнетом человек тратил не один и не три месяца на разработку (разумеется постепенно улучшая "продукт").
"Ракетные технологии" с тех пор не стали проще, впрочем о текущем состоянии войны можно довольно подробно почитать на форумах по ИБ от Касперского и прочих вендоров - приятно бывает не вдаваясь в подробности почитать о текущем уровне борьбы щита и меча на примере какого нибудь ботнета построенного на каком нибудь рутките и всяческих мерах противодействия. =)

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

Да, герою везёт. Везёт в том что он выживает. Но в разумных пределах и ему реально есть куда расти .

Очень надеюсь на серию, а окончание явно на неё намекает. Если конечно последующие книги в серии будут не хуже первой книги.

Автор молодец - книгу прочёл на одном дыхании. Рекомендую всем ITшникам любящим фантастику. И не только.

Я точно куплю эту книгу на бумаге. Но не в литрес. Моё отношение к управленцам этой площадки сильно испортилось после претензий о якобы нарушении авторских прав читалками способными загружать контент из файлов и из сети в google play. На литрес зашёл по случаю 100 рублей на счёт по акции для тех у кого давно лежит на счету половина стоимости книги. По крайней мере до тех пор пока литрес не прекратит тактику подложных обвинений в адрес создателей ПО на их площадке за живые деньги я покупать не собираюсь. Кстати это почти копипаста рецензии на литрес. Не знаю хватит ли им политкорректности разместить мою рецензию у себя - ведь в ней критика политики ресурса, так что на всякий случай размещаю у себя в блоге до прохода премодерации у них на ресурсе буде таковая окажется пройденной. =)
Tags: , ,

4/25/13 03:05 pm - erlang ?config

Common Test provides a simple macro named ?config, which returns a value of an item in Config given the key (exactly like proplists:get_value). Example: PrivDir = ?config(priv_dir, Config).

4/23/13 09:30 pm - google reader replacement

Кто что себе подобрал взамен гуглоридера? Полно апликух под андроид которые используют api от google reader. Есть что нибудь под линух чтобы на standalone поставить и коннектиться к нему из какой нибудь андроидной программы? А то я последнее время новости и всякие соцсети только с планшета читаю.
Tags: ,

4/19/13 08:40 am - launchy

оказывается есть не только под венду но и под линух. must have. :) Никаких больше ползаний по менюшкам оконного менеджера.:)

4/18/13 09:46 pm - излишний интеллект в google play

У меня везде где только можно в настройках выбран английский интерфейс. И тем не менее google play выводит информацию на русском. Где у них зарыты эти настройки? ?-)

update: настройки зарыты в самом низу страницы google play. Ещё бы по дефолту искало на google.com - вообще была бы радость )

4/17/13 04:01 pm - erlang: из массива кортежей получить массив ключей кортежей

> X=[{a,[c,d,e]},{b,[f,g,h]}].
[{a,[c,d,e]},{b,[f,g,h]}]
> [ Key || {Key,_} <- X ].
[a,b]
>

Коассический ведь приём - никак не привыкну.

4/17/13 12:07 pm - порекомендуйте агрегатор на андроид?

Subj. Кто чем пользуется? Всякие апликухи от мылру и риановости не радуют тем, что подсасывают кучу всего не нужного даже не смотря на фильтры в настройках.
Хочется чтобы софтина подсасывала новости для offline чтения, потому как читать из сети едучи в метро не айс - тормозит всё. Ну и ещё хочется чтобы можно было натравить на страницу и чтоб обновления давала даже если там нет rss фида.
Tags: ,

4/16/13 08:58 pm - android root - что выбрать?

Я пока вижу три варианта:

1) сделать chmod +s на shell и положить под видом su. Меня не устраивает ибо это будет root для всех и никто не уйдёт обиженным.
2) SuperSU
3) SuperUser

Вот тут пишут про комплект из обычного su и superuser.apk: http://android.stackexchange.com/questions/18601/what-exactly-is-superuser-apk-and-su .
Вот тут подробности о том как это работало некоторое время назад: http://www.koushikdutta.com/2008/11/fixing-su-security-hole-on-modified.html . С тех пор многое могло измениться, но если это работает примерно так - выглядит ОК.
Вот любопытный talk с комментами о текущем уровне безопасности апдейтов: https://github.com/ChainsDD/Superuser/issues/52 .

Меня бы кстати очень порадовал бы вариант с модулем к ядру который делал бы подмену результатам вызовов stat на su и возвращал наличие su только определённому списку приложений. В принципе задача относительно простая - взять ядерный руткит под линух (вероятно такое есть в любом) и выдрать из него соответствующий код по скытию его бинарей и адаптировать под su. Может кому такое попадалось?

Помимо специфичных требований к видимости su мне хочется чтобы каждый раз запрашивался пин-код когда апликуха хочет выполнить su .

Есть ещё варианты?

И, кстати, вот это до сих пор так:
"dumpstate didn't produce any popups to grant access, though I was informed by toast notification that access was granted. This is probably because dumpstate already runs with shell permissions, and Superuser auto-grants the shell user root access. In my opinion, that is a terrible idea, but it is how Superuser currently works (and not everybody may agree on my opinion here)." (from http://www.chainfire.eu/articles/131/SuperSU_the_dumpstate_situation/ )
?

4/16/13 08:36 pm - bitcoin pool mining

Собрался по случаю удорожания биткоинов заняться minig'ом . С точки зрения получения существенной прибыли я уже несколько лет как опоздал, но машинки всё равно работают - пусть ещё и майнят до кучи. Почитал про варианты и решил что лучше всего участвовать в каком нибудь пуле в режиме оплаты за каждую шару (а не только за удачную). При этом мне не хочется нагружать свои машины когда они заняты чем-то более полезным. То есть я готов отдать в режиме 24/7 не более 5% производительности когда я работаю за компом и до 80% когда меня у компа нет. Плюс к тому я не готов отдать ни тика когда я работаю на ноуте от батареи. Всвязи с чем вопросы:

1. Посоветуйте пул не банящий за низкие объёмы рассчётов.
2. Порекомендуйте софт под linux и windows который можно профилировать по соответствию времени и объёма загрузки камня/GPU + на батарее или от сети. Если софт недорогой - можно и платный - рано или поздно отобъётся, хотя конечно freeware предпочтительно.

О моём железе: основная машинка - ноут corei7 с Nvidia (asus n56vz), dualboot: Linux,Win7 . Есть ещё шлюз который малозагружен на стареньком AMD с Linux и еще пара машинок - тоже старьё более чем четырехгодичной давности. =)

4/14/13 04:20 pm - по мотивам подзамкового поста по восстановлению зашифрованных файлов в бубунте

Subj, чтобы было в открытом доступе - вдруг пригодится.

Для тех кто помнит пассфразу от последнего удачного логина:

http://otvety.google.ru/otvety/thread?tid=02ab21427aee3c85
http://askubuntu.com/questions/224950/ecryptfs-recover-private-creating-unreadable-encrypted-folders

Для тех кто вынужден заняться перебором - подробности по взлому ecryptfs: http://blog.dustinkirkland.com/2009/01/daemon-challenge-3-how-efficient-are.html и http://blog.dustinkirkland.com/2009/01/daemon-challenge-3-we-have-winner.html - просмотрел по диагонали. Похоже можно прикрутить ещё и rainbow tables. Аффтар кстати тот самый чувак, что является автором и maintain'ером ecryptfs.=)

4/13/13 11:13 pm - ээ.. а кто нить разбирался как работает photorec и вообще undelete для ext3/ext4?

From the ext3FAQ:

Q: How can I recover (undelete) deleted files from my ext3 partition?
A: Actually, you can’t! [...]
In order to ensure that ext3 can safely resume an unlink after a crash, it actually zeros out the block pointers in the inode, whereas ext2 just marks these blocks as unused in the block bitmaps and marks the inode as “deleted” and leaves the block pointers alone. [...]

Have backups, move to /tmp, move to the trash bin, but be careful with rm.

Вообще-то можно вытащить довольно много. Кто нить может в двух словах пояснить как они это делают?
Tags: ,

4/13/13 09:00 am - lj app

Эти [cansored] убрали из настроек галочку promote app. Теперь она мусорит в постах постоянно. :F

4/12/13 05:45 pm - [SOLVED] какая-то бяда с firefox: тормозит

Периодически начинает ужасно медленно загружать контент в linux. Минутами. При том что одновременно с этим в другом браузере загрузка ОК.Перелопатил все настройки. Даже не знаю что и думать.
Tags: ,

4/11/13 06:57 am - и ещё фантастика

Руслан Араматов, "Принцип невмешательства". С удовольствием купил в бумажном виде. И дочитал за вечер - большая часть была доступна у автора на сайте. Концовка порадовала - неожиданно. :) С не меньшим удовольствием купил как-то зайдя в книжный его фэнтезийную серию в одной книге.
Tags: ,

3/31/13 09:49 pm - и ещё фэнтези

Очередное попаданство и мери-сью. На фоне остального неплохо - ненавязчивое чтиво с массой роялей: http://www.flibusta.net/b/262195/read , Евгений Владимирович Щепетнов, "Истринский цикл"
Tags: ,

3/25/13 01:49 pm - time zones

Оказывается Etc\GMT+4 и Europe/Moscow различаются на 8 часов - в POSIX принято + от GMT исчислять влево (на запад), а не так как принято у всех людей - вправо (на восток). То есть Europe/Moscow это Etc\Gmt-4 . Интересно - о чём они думали назначая такой способ вычисления таймзон для POSIX?
Tags:

3/21/13 06:15 am - варианты рута для android?

После недолгого гугления стало ясно, что есть как минимум два варианта программы su, которую push'ат в устройство. Никому не попадалось описаниея всех вариантов с объяснением отличий?
Tags:

3/19/13 10:26 am - replacing recovery on google asus nexus 7 tablet quick detailed howto for linux users

Before starting with installing new recovery software you must have already unlocked bootloader. I wrote a separate howto post about unlocking google asus nexus 7 here: http://grey-olli.livejournal.com/697276.html . You may use it or any other howto on the net.

0. You succeeded unlocking your bootloader.
All commands below are executed by user w/ uid=0 (root). Use 'su -' to gain root. Or use 'sudo' prefix if you prefer run from ordinary user.
'#' below is the root prompt sign.
You've Linux Android SDK (or only platform tools) installed.
The 'fastboot' and 'adb' are in your $PATH. If not - use full path for each command.
You micro-USB cables are compatible with adb and fastboot (USB 2.0 cables are OK). Compatible cable would show your device by both commands:
'adb devices' in normal mode and 'fastboot devices' when device stays in bootloader prompt.
Just mind that cable may work OK with adb but not good enough for fastboot.

1. Connect your tablet to your USB port.

2. # adb reboot bootloader

3. Wait till bootloader prompt appear.

4. # fastboot devces
This should give you something like this:
016d331fad5c0916 fastboot
If not - you cannot continue.

5. Download replacement recovery files. For Google Asus Nexus 7 we 've two choices. Both work and differ just in interface - using touch or device harware keys (Volume Up/Down, Power). I prefer tocuh interface (the hardware keys also work w/ touch interface).
So lunch your browser and point to http://www.clockworkmod.com/ , click ROM Manager . On http://www.clockworkmod.com/rommanager choose you Google Nexus 7 model (WiFi or GSM). Download recovery image.

</b>6.</b> # fastboot flash recovery /home/olli/Downloads/recovery-clockwork-touch-6.0.2.3-grouper.img
The output should be similar to this:
------------
sending 'recovery' (6530 KB)...
OKAY [ 0.791s]
writing 'recovery'...
OKAY [ 0.448s]
finished. total time: 1.239s
------------
If flashing time is too long or result is flashing error - replacing cable may work (at least it helped me).

</b>7.</b> # fastboot erase cache
The output should be similar to this:
------------
******** Did you mean to fastboot format this partition?
erasing 'cache'...
OKAY [ 0.081s]
finished. total time: 0.081s
[root@sunrise ~]#
------------

8. Now you can either flash new recovery permanently either use it just once. This is because bootloader will reflash recovery on boot to the original version unless you tell it not to do that. If the clockworkmod recovery is flashed as above , then on exit it asks you this question:
------------
ROM may flash stock recovery on boot. Fix?
THIS CAN NOT BE UNDONE
------------
If you wish to use this recovery just once - answer NO to this question later on step . I.e. if you want just backup all data or wish to deal w/ vendor warranty.
Later you may use somthing like 'fastboot boot /home/olli/Downloads/recovery-clockwork-touch-6.0.2.3-grouper.img' to just boot recovery.
Also mind that after making backups described on step 12 you will be able to install back your original (stock) recovery (use install zip -> choose zip -> open /sdcard/clockworkmod/ and choose zip image by name assigned at step 13.

9

10. Now take your tablet and use volume keys to choose 'Recovery mode', then press power button.

11 Wait till recovery loads. You will see the clockworkmod recovery screen.

12. Take you tablet, choose 'backup and restore'. Choose create image zip. This will make your 1st backup including stock recovery and boot image, but not only. Choose 'backup'. This will make a directory with backup under /sdcard/clockworkmod/backup/ .

13 Return to your PC. # adb shell
Now you're with shell inside your tablet and prompt has changed to '~ #'. This means you're root on your device. Execute this:
~ # cd /sdcard/clockworkmod
~ # mv image.zip original-system-backup.zip
~ # exit
Now you're back to your PC shell. Your backup with stock files are in file /sdcard/clockworkmod/original-system-backup.zip . We renamed it just to never overwrite.
That's nice to be able to use adb as root while in reovery.:) If you're not rooted your device in non-recovery adb prompt will be '~ $' - user w/ no permissions for system commands.

14 Return to main menu on your tablet. Choose 'reboot system now' entry. If the recovery is not flashed permanently it will prompt you on exit:
------------
ROM may flash stock recovery on boot. Fix?
THIS CAN NOT BE UNDONE
------------
Choose 'Yes - Disable recovery flash' to store clockworkmod for a long time. Since we have backup from step 12 we will be able to restore original state (UNDONE 'Yes' choice). After 'Yes - Disable recovery flash' the clockworkmod wouldn't ever prompt this again.

Now it's time to root your tablet. I'm willing to write a separate howto post for it.

3/14/13 08:46 pm - unlocking Google ASUS Nexus 7 quick detailed howto for Linux users

Like many people I've Nexus 7 tablet which is already 7 months old. And as a technical person I wish to be able to change anything in my device - not only parts. This howto is for people who has some technical background - ordinary users usually have no need to use root.

I wish to install firewall. Firewall require root. Root is normally achieved after changing recovery. Recovery cannot be replaced till device is locked. So lets start w/ unlocking it.

Howtos already present in the net seem to omit details required for understanding the process step by step. The most time wasting option was using windows 7 and the program 'Nexus Root Toolkit'. It supposed to do do all the work - just install one of 3 possible driver packs and press software buttons then. Unfortunately for me it was a waste of time and it was not clear why. I lost two evenings trying different drivers. The problem in my OS/hardware combination was that the tablet was invisible for software installing drivers when being in bootloader mode. But the procedure for any windows OS require two driver installs - one in normal mode, one when the tablet is in bootloader prompt. Windows way is not transparent to find a reason of failure in following Nexus Root Toolkit howto.

After all I've quickly succeeded with Linux. It took less than 30 minutes including searching the net for a recipe, downloading huge files, unpacking them and running commands.

So, the entire process of unlocking should look like this:

0. Some technical info in English about what is adb & fastboot: http://forum.xda-developers.com/showpost.php?p=29638315&postcount=2

Or some similar technical info in Russian to get a clue on what is adt, adb, fastboot and may be more:
http://www.4tablet-pc.net/reviews-a-articles/143-program-adb-installing-and-configuring-the-system-user.html
http://www.4tablet-pc.net/reviews-a-articles/1036-what-is-it-clockworkmod-recovery-complete-manual.html

1. Get an adb an fastboot which are included in the Android SDK .
For Linux you should get 32 or 64 bit file from 'Download for other platforms'.
I've downloaded adt-bundle-linux-x86_64-20130219.zip, so the instructions are exactly for it, but should be similar for other files.
It may look like overkill, but I just like to have all tools available. Even those that are not needed right now.
All comands below are made by uid 0 (root) in a terminal. You may use 'su -' to become root or use a 'sudo ' prefix for all your user commands.
'#' is a root prompt below.

2. Extract it someware. I've choosed /opt/android-sdk.

3. Ensure that you have correct permissions. Mine are:
[root@sunrise platform-tools]# pwd
/opt/android-sdk/sdk/platform-tools
[root@sunrise platform-tools]# ls -l
total 27944
-rwxrwx---. 1 root root 1122758 Feb 13 19:33 aapt
-rwxrwx---. 1 root root 1226659 Feb 13 19:33 adb
-rwxrwx---. 1 root root 269818 Feb 13 19:33 aidl
drwxrwx---. 2 root root 4096 Feb 13 19:33 api
-rwxrwx---. 1 root root 444481 Feb 13 19:33 dexdump
-rwxrwxr-x. 1 root root 2603 Feb 13 19:33 dx
-rwxrwx---. 1 root root 176550 Feb 13 19:33 fastboot
drwxrwx---. 2 root root 4096 Feb 13 19:33 lib
-rwxrwx---. 1 root root 24867619 Feb 13 19:33 llvm-rs-cc
-rw-rw----. 1 root root 467531 Feb 13 19:33 NOTICE.txt
drwxrwx---. 4 root root 4096 Feb 13 19:33 renderscript
-rw-rw----. 1 root root 37 Feb 13 19:33 source.properties
[root@sunrise platform-tools]#

4. Backup all you think is important from your tablet - the unlocking procedure does factory reset that wipes all user data.
I've saved all my data from windows. In linux you may use 'mtpfs /path/to/mount_point', but in my distro it looks like broken somehow.
Other things were saved by Google (use google account for backup, you may enable it in settings).
Note that it doesn't wipe files on a filesystem - only settings within installed programs.

5. Unhide developer settings: click 7 times on your 'build number' in 'About tablet' in settings.

6. Turn ON usb debugging in developer settings.

7. # cd $your_sdk_platform_tools_dir

8. # PATH=$PATH:`pwd`
Now you may omit './' for sdk platform tools.

9.Connect your tablet to usb port.

10. # adb devices
This will 1st start a server process, it's OK.

11. Allow access from your OS in your tablet - the pop-up window will arrive at 1st access from PC. Check 'Always allow from ..' checkbox.
The hash tag describing accessing computer differs for different OS. Take in mind that anyone will be able to hack into your tablet device from your computer with similar tools once you've _always_ allowed it (Precisely - from hardware/OS pair that is always allowed). The permission dialog is hidden by a device lock screen. So you may configure your device to be locked by timeout.

12. # adb devices
Now you should see your device, if c
It may fail for some reason. Just pull out usb and push back.Also this fails if you
Ensure you have correct cable. Only some of all my micro-usb cables were OK. Recomendations are USB2.0 port and original cable.
If you can't reboot the tablet to bootloader with adb command - the bad cable may be the problem.

13. # adb reboot bootloader
This will reboot your device to bootloader prompt.
If this fails - try replace cable. Also changing a USB port may help.
After successful boot you will see a repair-android picture with a few lines of text, last one describing boot tells that it's locked.

14. # fastboot oem unlock
This is hidden option - it's absent in program help message. There're chances that it will wait after printing 'waiting for device'. If so - unplug/plug usb cable.On success the message arrives on your tablet describing warning and a choice.
If you can't success - replace usb cable. I had this issue: 'adb devices' shows device, but after 'adb reboot bootloader' fastboot did not show any device. Other fustboot commands told just 'waiting for device'. Also when replacing bootloader I had once an error while flashing recovery - that is also was a cable problem. I've replaced a cable with usb 2.0 and after that the device become visible for fastboot.
Also if 'fastboot devices' once showed device and later it doesn't - try reboot into bootloader again. Remember - fastboot works only when device is in bootloader mode.

15. Press power button on 'Unlock' choice.

16. The device will unlock and than proceed to factory reset.

17. You're done with unlocking bootloader . Now your tablet will proceed to initial configuration dialog.

18. Repeat step 5 and 6 - become a developer and enable usb debugging.

Now it's time to replace the recovery. I wrote separate howto post for this: http://grey-olli.livejournal.com/697453.html

If this howto looks too hard or boring for you - you may consider to use this software package that claims to do all the work in a menu driven manner:
# wget galaxy-nexus-linux-toolkit.googlecode.com/files/unlt201.tgz

There is an easy howto in Russian for it: http://www.4tablet-pc.net/reviews-a-articles/2369-root-unlock-all-google-nexus-devices-on-linux-install-cwm-recovery.html

3/14/13 06:50 pm - screen

Если вдруг кто не в курсе:

для меня оказалось открытием поведение screen в части копирования декскрипторов текущего каталога открытого в сессии. А именно screen _при детаче_ запоминает текущее состояние каталога и новые файлы вы в нём не увидите до команды cd в текущий каталог (как и изменения сделанные кем-то за время простоя вашей screen сесссии). А ещё если производить изменения в файлах - они не видны остальным. Так что если у вас расклад с детачнутой сессией котороая открыта в каталоге с файлами часто изменяемыми другими пользователями - будьте бдительны. :)

Возможно это поведение и описано в мануале, но читать его влом )

3/11/13 09:23 pm - wtf?

[root@sunrise ~]# ls /mnt/android/Internal\ storage/covering-letter-sample.txt
/mnt/android/Internal storage/covering-letter-sample.txt
[root@sunrise ~]# head /mnt/android/Internal\ storage/covering-letter-sample.txt
head: cannot open ‘/mnt/android/Internal storage/covering-letter-sample.txt’ for reading: No such file or directory
[root@sunrise ~]# mount | grep andro
mtpfs on /mnt/android type fuse.mtpfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
[root@sunrise ~]#


Subj. :/ На винде нет проблем с доступом.

3/2/13 05:57 am - litres на android

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

3/1/13 08:51 pm - сборка rebar в windows

клонируем репо, затем запускаем батник и он собирается + создаёт rebar.cmd, потом добавляем в пути и rebar работает. rebar используется для сборки проектов на erlang, так например мне rebar потребовался для сборки ibrowse .

2/21/13 06:37 pm - ipv6 & v4

orderdb# netstat -ltpn |grep 6551
tcp6 0 0 :::6551 :::* LISTEN 27179/java
orderdb#

orderdb# netstat -ltpn |grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26575/sshd
tcp6 0 0 :::22 :::* LISTEN 26575/sshd
orderdb#

Будет ли в первом случае доступно соединение по v4 ? Мне кажется естественным что если слушают только в 6м стеке, то пакетам из 4го будет отлуп.

Однако:

orderdb# telnet localhost 6551
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
ODC1^]close

telnet> close
Connection closed.
orderdb#

То есть он явно пишет, что конектится на адрес в 4м стеке. И это работает. Почему же netstat писал только про tcp6?

2/19/13 10:49 am - и ещё про два монитора

Вроде работает, но хочется независимых workspace переключателей на разные мониторы - чтоб были отдельные workspace'ы, а иначе если я переключаю workspace на одном мониторе, то на втором он тоже переключается, а как следствие на втором мониторе меняется картинка, которую хочется оставить как была. Допустим я на втором мониторе хочу видеть логи независимо от того на каком workspace я работаю на первом мониторе. Единственный вариант - перетаскивать на тот же workspace приложение отображавщееся на другом мониторе. При этом было бы не плохо сохранить возможность перетаскивать программу с монитора на монитор, хотя этим можно и пожертвовать.

2/19/13 09:06 am - любопытный метод удалённого сбора хэшей

http://www.xakep.ru/post/60125/ , англоязычный источник: http://www.packetstan.com/2011/03/nbns-spoofing-on-your-way-to-world.html

2/18/13 01:31 pm - второй монитор

Почему-то монитор по hdmi у меня иксы не видели (а в 7ке не было проблем).
Пришлось подключить по vga кабелю.
При конфигурировании двухмониторного рабочего места наиболее удобной из интерфейсных к xrandr программ мне показалась утилита arandr .

2/16/13 11:52 pm - где бы отключить warning не пересобирая софтину?

/* completely guess, to avoid getting zero values */
g_warning ("no voltage values, using 10V as approximation");

upower заспамил мне логи:

Feb 17 03:48:05 sunrise upowerd[1790]: (upowerd:1790): UPower-Linux-WARNING **: no voltage values, using 10V as approximation

И так ежесекундно. Какие варианты отключить этот конкретный warning кроме перекомпиляции?

2/12/13 07:51 pm - uEFI and full disk encryption - TrueCrypt is not an option yet :(

http://www.nber.org/sys-admin/uefi-efi-wde-fde-whole-disk-encryption.html

Pity. :(

Hope the solution like 'Linux Foundation UEFI Secure Boot System' will arrive soon and TrueCrypt will become compatible.

2/12/13 05:07 pm - VirtualBox в федоре

http://blogs.reverse4you.org/entry.php?b=107

---------------- на всяякий случай выжимки текста из url выше:
..на машине с Fedora, виртуальные машины не хотели запускаться.
Проблема была решена следующим образом .. от рута надо запустить:
#/etc/init.d/vboxdrv setup

после чего VirtualBox перенастроится, и все будет работать.
Я так подозреваю что на ядре Fedora это приходится часто делать по той причине что там очень часто ядро обновляется

После решения этой проблемы у меня возник еще один вопрос, как пробросить USB-порты внутрь машины
...
Для начала нам нужно добавить своего пользователя в группу vboxusers,
...
Теперь идем редактировать /etc/fstab, в конец с новой строки дописываем такую строчку:

none /proc/bus/usb usbfs devgid=117,devmode=664 0 0
----------------

Помимо прочего мне понадобилось ставить софт для сборки + исходники ядра .
Tags: , ,

2/10/13 04:27 pm - create logical volume using entire free space in volume group

# data - name of logical volume, vg_data - name of volume group .
[root@localhost ~]# lvcreate -l 100%FREE vg_data --name data

так - на память. %)
Tags: , ,

2/10/13 05:35 am - linux(luks+lvm) mount & grub reinstall / fedora rescue bootloader on EFI h/w and encrypted root

This howto is for advanced users. All the time I assume you understand what I show.
This proven to work for me w/ ASUS N56VZ notebook w/ Fedora configured to use lvm and luks encrypted root.
It may help w/ other devices, but may not - no warranty of any kind.

1# Boot from your OS install CD, i.e. I used fedora xfce spin (fits to 700Mb CD).
# Take care: Use UEFI boot option from BIOS when booting. This is required for proper reading uefi variablesand storing them to /sys/firmware/efi/ so that efibootmgr don't fail later on.
# Open root terminal (or just logout and logon as root and open just a terminal, or use 'su -')
# You must know which partittion to use. 'parted' may help, especially in case of GPT partititon table .
[root@localhost ~]# parted
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sda
Using /dev/sda
(parted) print free
Model: ATA ST1000LM024 HN-M (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 211MB 210MB fat32 EFI system partition boot
2 211MB 345MB 134MB Microsoft reserved partition msftres
3 345MB 400GB 400GB ntfs Win7_C
4 400GB 401GB 416MB pv dev_sda4_luks lvm
6 401GB 616GB 215GB vg_data lvm
8 616GB 616GB 105MB fat16 fedora EFI system partition boot
9 616GB 616GB 210MB ext4 fedora /boot
10 616GB 973GB 357GB vg_fedora /,/var/log,swap
7 973GB 1000GB 26.8GB ntfs Basic data partition hidden, diag
1000GB 1000GB 729kB Free Space

(parted) quit
[root@localhost ~]#
# for such a descriptive names as I have you should use 'name' parted command available for GPT partitions. (i.e. 'name 4 "pv dev_sda4_luks"' ).
# make phisical volume of your LUKS encrypted install available.
[root@localhost ~]# cryptsetup luksOpen /dev/sda10 pv_fedora
# make all logical volumes available as kernel devices
[root@localhost ~]# vgchange -a y
[root@localhost ~]# lvdisplay | grep "LV Path"
LV Path /dev/fedora/root
LV Path /dev/fedora/var_log
LV Path /dev/fedora/swap
[root@localhost ~]# mount /dev/fedora/root /mnt/
[root@localhost ~]# mount /dev/fedora/var_log /mnt/var/log
[root@localhost ~]# mount /dev/sda9 /mnt/boot/
[root@localhost ~]# mount /dev/sda8 /mnt/boot/efi/
[root@localhost ~]# mount -o bind /proc /mnt/proc
[root@localhost ~]# mount -o bind /dev /mnt/dev
[root@localhost ~]# mount -o bind /sys /mnt/sys
[root@localhost ~]# xhost +127.0.0.1
[root@localhost ~]# chroot /mnt
[root@localhost /]# export DISPLAY=:0.0
[root@localhost /]# mount -a
# All above was just to make lost (due to bootloader problems) installation available to us. Now time to reinstall grub.

# making a copy for safety
[root@localhost /]# mkdir /grub-related-backup; cp -r /boot/efi /etc/grub.d /etc/default/grub /grub-related-backup
# Note, that if you changed encryption setup - take care on 'rd.luks.uuid=' params listing encrypted partittions to start on boot.
# Note, that if you changed lvm setup - take care on 'rd.lvm.lv=' params listing lvm partitions required to be present on boot.
# remove part of string 'rhgb quiet' from GRUB_CMDLINE_LINUX in /etc/default/grub, also set 'GRUB_DEFAULT=0' :
[root@localhost /]# vim /etc/default/grub
[root@localhost ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/swap rd.md=0 rd.dm=0 rd.luks.uuid=luks-093dbff3-12a2-494a-8485-0991a5fae3c9 $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || :) vconsole.keymap=us rd.lvm.lv=fedora/root rd.luks.uuid=luks-c949f08e-e051-4392-8ef7-22e31fee8c9f rd.luks.uuid=luks-14a7989b-3634-42fe-b3af-0ea134a2dddb"
GRUB_DISABLE_RECOVERY="true"
GRUB_THEME="/boot/grub2/themes/system/theme.txt"
[root@localhost ~]#
# the command below assumes that you reinstall grub with the same configs:
[root@localhost /]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub.cfg ...
Found theme: /boot/grub2/themes/system/theme.txt
Found linux image: /boot/vmlinuz-3.7.6-201.fc18.x86_64
Found initrd image: /boot/initramfs-3.7.6-201.fc18.x86_64.img
Found linux image: /boot/vmlinuz-3.7.5-201.fc18.x86_64
Found initrd image: /boot/initramfs-3.7.5-201.fc18.x86_64.img
Found linux image: /boot/vmlinuz-3.6.10-4.fc18.x86_64
Found initrd image: /boot/initramfs-3.6.10-4.fc18.x86_64.img
Found Windows 7 (loader) on /dev/sda3
Found Windows Recovery Environment (loader) on /dev/sda7
done
[root@localhost /]# cp /boot/grub2/grub.cfg /boot/efi/EFI/fedora/grub.cfg
[root@localhost /]# grub2-install --efi-directory=/boot/efi --boot-directory /boot --recheck
# if above fails - try specify device, i.e. 'grub2-install --efi-directory=/boot/efi --boot-directory /boot --recheck /dev/sda'
# also this will fail if you didn't choose EFI CD ROM boot option to boot.
[root@localhost /]# sync; sync; exit
[root@localhost /]# reboot

2/3/13 09:07 pm - WTF?

Err http://http.us.debian.org squeeze/updates/main Sources
404 Not Found [IP: 128.61.240.89 80]
Fetched 195 kB in 7s (25.8 kB/s)
W: Failed to fetch http://http.us.debian.org/debian/dists/squeeze/updates/main/source/Sources.gz 404 Not Found [IP: 128.61.240.89 80]

and this is for all mirrors and official site. :/

2/3/13 08:59 pm - how to make software raid clean again.

Say you have degraded array with some faulty drives shown as removed, i.e. with 'mdadm -D /dev/md0'.
If you have two good devices left, then do: 'mdadm -G -n 2 /dev/md0' - this will set raid to consist of two devices.

2/1/13 07:05 pm - Erlang, такой Erlang..

 case MatchResult = re:run(ToParse, "^SPOT$") of
    {match,[{0,4}]} -> StrType=1, Month=Day=Year=MonthCode="Fuck error: var is unsafe in case";
    _ ->  case MatchResult1 = re:run(ToParse, "^(\\d+)(\\S)(\\d+)$", [{capture, all_but_first, list}]) of
           {match,[Day,MonthCode,Year]} -> StrType=2, Month="Fuck error: var is unsafe in case";
           _ ->   case MatchResult2 = re:run(ToParse, "^(\\S)(\\d+)$", [{capture, all_but_first, list}]) of
                    {match,[MonthCode,Year]} -> Day=Month="Fuck error: var is unsafe in case", StrType=3;
                    _ ->   case MatchResult3 = re:run(ToParse, "^(\\d+)M$", [{capture, all_but_first, list}]) of % i.e. +3 months from now().
                           {match,[Day]} -> Month=MonthCode=Year="Fuck error: var is unsafe in case", StrType=4;
                              _ -> StrType = error, Day=Month=Year=MonthCode="Fuck error: var is unsafe in case"
                           end
                  end
          end
 end,



Для несведущих поясню, что конструкция:

case A of
 1 -> Var1 = 2;
 2 -> Var2 = 3
end

должна выдать не менее двух ошибок вроде "... variable 'Var*'; unsafe in 'case' (line 1054)";.

1/28/13 01:13 pm - вакансия для начинающего тестировщика (девушки), 30-50 т.р.

Младший тестировщик (quality assurance) 30000 руб. редактировать
Компания: EXANTE
Обязанности:

Ручное тестирование проектов (сайт, а также клиентские приложения на Java/Netbeans)
Поддержка тестовых сценариев в актуальном состоянии, написание новых тестов.

Требования:
опытный пользователь ПК,
студентка/высшее образование (технический или экономический профиль),
усидчивость, внимательность, аккуратность.
Средний уровень английского (intermediate, т.е.хорошие оценки в школе и институте по английскому + немного читает на нём).
Опыт работы в тестировании является преимуществом, но при необходимости проводится обучение
Девушка.

Условия:
Офис класса "А" в Хамовниках (Фрунзенская, Киевская, Спортивная, от Киевской 15 минут пешком).
Оплачиваемые обеды заказываются прямо в офис
50% оплата страховки
Молодой, профессиональный коллектив, широкие возможности для развития
Возможен вариант с неполным рабочим днем (как минимум 30 часов в неделю).
Уровень оплаты от 30 до 50 т.р.

Контакт: oa @ exante . eu , либо сюда: http://hh.ru/vacancy/7119370 .
Tags: ,

1/24/13 01:39 pm - git и .gitignore

Пичаль и огорчение - есть репа. В ней каталог с бинарями. Бинари обновляются у меня каждый раз. Убрать бинари из репы нельзя.
Добавление пути к каталогу с бинарями в .gitignore не помогает - каждый раз git status пишет что были изменения и предлагает что-то с этим сделать. Как бы мне сделать так чтобы изменения этих файлов игнорировались не удаляя их из репозитория? :?

1/21/13 06:01 pm - erlang и его странная имплементация PCRE.

[17:42:38] grey_olli: (autotest@olli-notebook)34> re:run("TESTSTOCK.TEST", "^(\\S+)\\.(\\S+)$", [{return,list}]).
** exception error: bad argument
in function re:run/3
called as re:run("TESTSTOCK.TEST","^(\\S+)\\.(\\S+)$",[{return,list}])

Если сделать без опций, то всё ОК:

(autotest@olli-notebook)36> re:run("TESTSTOCK.TEST", "^(\\S+)\\.(\\S+)$").
{match,[{0,14},{0,9},{10,4}]}
(autotest@olli-notebook)37>
[17:42:40] grey_olli: ?
[17:46:56] grey_olli: и в то же время работает пример из документации с теми же опциями:

(autotest@olli-notebook)37> re:split("Erlang","([ln])",[{return,list}]).
["Er","l","a","n","g"]
[17:55:34] grey_olli: решение таково:

re:run("TESTSTOCK.TEST", "^(\\S+)\\.(\\S+)$", [{capture, all_but_first, list}]).

если убрать all_but_first будет ошибка. Почему - загадка. =)
Ещё один вариант работающий:
(autotest@olli-notebook)41> re:run("TESTSTOCK.TEST", "^(\\S+)\\.(\\S+)$", [{capture, [1,2], list}]).
{match,["TESTSTOCK","TEST"]}
(autotest@olli-notebook)42>

в чём смысл я пока не проникся.

Кстати необходимость экранировать \ там где в perl экранирование не требуется меня так же не радует.

12/13/12 01:23 pm - if у erlang

Казалось бы - всё правильно:

if
A>= 1 -> something;
A<1 -> something
end

а между тем: ** exception error: no true branch found when evaluating an if expression

то есть нужно делать вот так:

if
A>= 1 -> something;
true -> something
end

Ну не уроды?

UPDATE:

Оказывается не уроды.

A=1.
if
A >= 2 -> greater;
A < 2 -> lower
end

работает. У меня в момент сравнения был третий случай - ошибка при сравнении, потому и выпадало с ошибкой отсутствия "true ->" . В общем я был не прав.
Powered by LiveJournal.com