Обновить
51
0
Отправить сообщение

Андроид: [DirectoryBind] Простой способ связать внешнюю sd карту и внутреннюю память, чтобы освободить место

Время на прочтение4 мин
Количество просмотров778K
Сразу оговорюсь, что речь пойдет не о программах типа link2sd. Принцип похож, но связывать мы будем не программные каталоги, а каталоги данных этих программ, например /sdcard2/Navigon -> /sdcard/Navigon или /mnt/extSdCard/Books -> /sdcard/Books и т.д.
Кроме того, нам нужен рут (куда ж без него). Кстати, после того как я узнал про эту программу, это для меня очередной аргумент за root.

Многие владельцы андроид смартфонов или таблеток с небольшей встроеной памятью наверняка сталкивались со следущей проблемой: вставлена большая sd карта (например 16, 32 или даже 64 Гигабайт), но после установки нескольких тяжеловесных программ наше устройство или очередная программа с наглостью заявляет, что на карте не хватает места. Иногда сама программа небольшая, но после установки лезет в интернет и тянет на смартфон гигабайты данных.
В очередной раз получив сообщение «Нет места» и заглянув на карточку видим, что она практически пуста, зато внутренняя память устройства забита под завязку.
Это происходит потому, что внутренняя память часто используется как каталог по умолчанию для многих программ. Дело в том, что она монтируется как /sdcard, что исторически всегда было внешней sd картой (раньше так оно и было на всех смартфонах). Внешняя же sd карта монтируется в этом случае как /sdcard2, /mnt/sdcard2, /mnt/extSdCard или даже /sdcard/.externalSD. Я так понимаю, что это делается изготовителями, чтобы устройство работало из коробки, т.е. совсем без sd карты.

Многие «недобросовестные» программы всегда хотят читать/писать данные из/в каталог /sdcard/НазваниеПодставить. Редко это можно изменить в настройках программы.
В результате имеем, что имеем, и несколько возможностей чтобы поправить сложившееся положение:
  • перемонтировать каталоги: внешнюю sd карту на /sdcard, а внутреннюю на /sdcard2 (нужен рут, если нет в настройках). По моему недостаточно гибкий способ, т.к. теперь уже внутренняя память лежит у нас мертвым грузом. Еще один недостаток этого способа — скорость работы системы.
    Если вы все же решитесь пойти этим путем, внизу я добавил как это можно сделать.
  • создать символьную ссылку на внешние каталоги, как нам нужно, например
    ln -sf /mnt/externalSD/Books /sdcard/Books.
    Не работает, если файловая система не поддерживает симлинк (например fat).
  • при загрузке андроида примонтировать внешние каталоги на внутреннюю память, используя что-то типа
    mount -o bind /mnt/externalSD/Books /sdcard/Books
    и добавить это в автозагрузку, например используя Autostart (root), чтобы это происходило автоматически при включении или после перезагрузки устройства.

Два последних способа тоже не являются панацеей, т.к. требуют определенных навыков от пользователя, кроме того не достаточно «чисты», например известны проблемы при подключении смартфона к компьютеру через usb (не отмонтируются) и т.д.

Читать дальше →

Windows RT запущена… на HD2

Время на прочтение1 мин
Количество просмотров109K
В твиттере хорошо известного в узких кругах персонажа Cotulla появились интересные скриншоты и фотографии вполне себе работающей Windows RT, запущенной на, наверно, самом популярном смартфоне для разработчиков — HTC HD2.



Похоже, в ходе портирования Windows 8 ему удалось запустить загрузчик UEFI.
Запуск Windows RT был лишь вопросом времени, поскольку обе ОС ипользуют, фактически, одно ядро.

Напомню, HTC HD2 известен как смартфон, попавший в магазины в 2010 году с ОС Windows Mobile 6.5 и, благодаря огромному количеству девелоперов, позволяющий запустить любую мобильную (и не очень) операционную систему, которая только была выпущена.

Сам я, как обладатель HD2, действительно удивлен тем фактом, что множество людей до сих пор занимается портированием свежайших продуктов на него, включая последие ветки Android, Windows Phone 7+ и пр. вопреки сообщениям производителей о том, что на таком хламе их последине ОСи не взлетят по разным причинам.
Хочется только сказать огромное спасибо и пожелать успехов в работе вам, ребята.

Под катом — еще несколько скриншотов системы.
Читать дальше →

ООП. Неспешная беседа возле кулера

Время на прочтение4 мин
Количество просмотров15K


Юрий Моисеевич (ЮМ) — невысокий, гладко выбритый молодой человек лет сорока пяти, всё ещё подающий надежды. Имеет горделивый изгиб спины и маслянистый взгляд. Говорит тихо, почти шепчет.
Михаил Валерьевич (МВ) — широкоплеч и пузат, с окладистой кучерявой бородой. Говорит зычным, густым басом. Являясь признанным профессионалом, невольно вызывает уважение сам у себя.

Офисная кухня: небольшая каморка без окон, в центре стоит пластмассовый стол, в углу — кулер с водой, вдоль стен — табуретки. Около кулера затаился Юрий Моисеевич. На кухню заходит Михаил Валерьевич, чтобы попить воды. В правой руке он несёт чашку.

ЮМ (преграждая дорогу к кулеру, заискивающе): — Позвольте поинтересоваться!
МВ (учтиво кланяясь): — Прошу вас, Юрий Моисеевич, я всецело к вашим услугам.
ЮМ: — Не поведаете ли вы мне, любезный друг, о тонкостях своей столь нелёгкой работы?
МВ: — С превеликим удовольствием. Но моя работа столь многогранна, и, как вы сейчас верно заметили, столь нелегка, что я, право же, не знаю, с чего начать.
ЮМ: — А начните, пожалуй, с самых, так сказать, основ. Поведайте, какие технологии вы используете?
Читать дальше →

VKFS — Файловая система для VKontakte на основе Fuse

Время на прочтение1 мин
Количество просмотров48K
Не так давно на хабре (и на лепре, и еще где-то) появилась такая гифка:
image
Я посидел и подумал: «А почему бы и нет?»
Прошло некоторое время и, как я и обещал
Встречайте! VKFS — файловая система vkontakte, основаная на fuse.
Это не релиз — пока что реализована только возможность чтения собственной стены, но уже готов весь «каркас» для этого всего.
Читать дальше →

Windows на RAM-диске

Время на прочтение10 мин
Количество просмотров374K

В наш век мы все любим скорость. Мы любим быстрый транспорт, быстрые службы доставки, скоростной интернет. И, разумеется, быстрые компьютеры. У нас есть шестое чувство, которым мы детектируем милли/микросекундные задержки. Частенько появляется желание что-нибудь да разогнать.
Вы уже поняли из названия, как именно будем разгонять

Добавляем WDS универсальности

Время на прочтение6 мин
Количество просмотров143K
Добрый день, уважаемые хабра-жители!

Целью данной статьи является написание небольшого обзора возможностей по развертыванию различных систем через WDS (Windows Deployment Services)
В статье будут приводиться краткие инструкции для развертывания Windows 7 x64, Windows XP x86, Ubuntu x64 и добавление таких полезных инструментов в загрузку по сети как Memtest и Gparted.
История будет рассказывать в порядке приходящих мне в голову идей. И начиналось все с Microsoft…
Читать дальше →

Шпаргалка по управлению сервисами CentOS 7 с systemd

Время на прочтение7 мин
Количество просмотров346K
Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремились спроектировать обратно совместимым со скриптами инициализации SysV init и предоставить полезные функции, такие, как параллельный запуск системных сервисов во время загрузки, активацию демонов по требованию, поддержку снепшотов состояния системы и логику управления сервисами, основанную на зависимостях. В CentOS 7 systemd заменяет Upstart как систему инициализации по умолчанию.

В этой статье мы рассмотрим процесс управления сервисами в systemd для пользователя CentOS 7. Эти знания будут полезны и в других дистрибутивах, ведь systemd уже давно используется в Fedora и планируется в Ubuntu 14.10 и Debian 8. Хорошо это или нет — оставим за кадром.

CentOS 7 Systemd Infobox

В процессе чтения статьи вы можете попробовать systemd на классических VPS и облачных VPS от Infobox. Мы стремимся своевременно добавлять поддержку современных ОС, чтобы вы могли использовать последние технологии для более эффективной работы. Сама идея написания статьи родилась после очередного вопроса пользователей об использовании сервисов в CentOS 7.
Читать дальше →

Балансировка входящих соединений на iptables

Время на прочтение3 мин
Количество просмотров27K
Предположим, что у вас есть некий сервис, принимающий входящие соединения и возникла задача балансировки нагрузки и/или отказоустойчивости.

В общем виде схема выглядит так:
клиент ----> балансировщик ---> бэкенд (сервис)


Готовых балансировщиков под конкретные нужды множество. Например, nginx — отличный балансировщик для веб-приложений, haproxy для tcp-соединений.

Так почему iptables?

LVM — это просто!

Время на прочтение4 мин
Количество просмотров677K
Собственно, хочется просто и доступно рассказать про такую замечательную вещь как Logical Volume Management или Управление Логическими Томами.
Поскольку уже давно пользуюсь LVM-ом, расскажу что он значит именно для меня, не подглядывая в мануалы и не выдёргивая цитаты из wiki, своими словами, чтобы было понятно именно тем кто ничего о нем не знает. Постараюсь сразу не рассказывать о всяческих «продвинутых» функциях типа страйпов, снапшотов и т.п.
Читать дальше →

Полноценный доступ ко всем Linux-файловым системам в Windows 2000/XP/Vista/7 с помощью coLinux

Время на прочтение5 мин
Количество просмотров116K
В данной статье я расскажу вам, как получить практически полноценный доступ для чтения и записи ко всем файловым системам, используемым в Linux (Ext2/3/4, ReiserFS, XFS, JFS, etc) из-под сабжевых операционных систем. Статья является вольным переводом данного руководства, причем написано оно уже довольно давно, но догуглился я до него только сейчас. :)
Читать дальше →

Еще несколько слов о Path MTU Discovery Black Hole

Время на прочтение14 мин
Количество просмотров159K

Еще несколько слов о Path MTU Discovery Black Hole



Вместо вступления


Однажды для каждого настоящего системного администратора (или исполняющего обязанности такового) наступает момент истины. Ему выпадает судьба настроить маршрутизатор на компьютере с установленной ОС GNU/Linux. Те, кто это уже прошел, знают, что ничего сложного в этом нет и можно уложиться в пару команд. И вот наш админ находит эти команды, вбивает их в консоль и гордо идет к пользователям сказать, что уже все работает. Но не тут-то было – пользователи говорят что их любимые сайты не открываются. После траты некоторой части своей жизни на выяснение подробностей обнаруживается, что большая часть сайтов ведет себя следующим образом:
1. При открытии страницы загружается заголовок и больше ничего;
2. В таком состоянии страница висит неопределенно долгое время;
3. Строка статуса браузера все это время показывает что загружает страницу;
4. Пинги и трассировка до данного сайта проходят нормально;
5. Соединение по telnet на 80 порт тоже проходит нормально.
Обескураженный админ звонит в техподдержку провайдера, но там от него быстро избавляются, советуя попробовать настроить маршрутизатор на OC Windows, а если уж и там не работает тогда… купить аппаратный маршрутизатор.
Я думаю, эта ситуация знакома многим. Некоторые в нее попадали сами, у кого-то с ней сталкивались знакомые, а кто-то встречал таких админов на форумах и прочих конференциях. Итак: если у Вас Такая Ситуация, то — Поздравляю! Вы столкнулись с Path MTU Discovering Black Hole. Данная статья посвящается тому, отчего это бывает, и как решить эту проблему.

Читать дальше →

Защищаем систему. Или как настроить и использовать port knocking

Время на прочтение2 мин
Количество просмотров35K
Салам-папалам всем!

Тут озадачился как же можно сделать свой сервер более безопаснее. Использование напрямую iptables с блокировкой по IP не решало проблемы, т.к. я могу к серверу подсоединяться не только с рабочего ПК, но и издому, или с другого города, или в автобусе (когда в пробках стою).
Решил использовать port knocking.
Кто ни разу не пользовался этим, милости прошу под кат.
Читать дальше →

Ночь фракталов

Время на прочтение4 мин
Количество просмотров54K
Шёл уже последний час этого воскресенья, я уже думал идти спать, но добрый sourcerer прислал мне картинку с моего заброшенного сайта, которую можно увидеть ниже, и текст «красиво!». Эти картинки я рисовал лет пять назад, с помощью т. н. алгоритма времени убегания, но для применимости данного алгоритма, нужно уметь для заданного набора преобразований разбивать плоскость на регионы, тогда я не придумал, как это сделать, и больше к этому алгоритму не возвращался. Но сейчас я сразу сообразил, что делать, и написал Диме: «Сначала Random IFS, потом kNN, а затем Escape-Time Algorithm!»



Под рукой у меня был только старый нетбук, который мне дали друзья на время, пока мой ноутбук в ремонте. Дима мне ещё что-то говорил, я ему что-то отвечал, но у меня уже в голове писался код, и я искал на нетбуке хоть какой-нибудь компилятор или интерпретатор и нашёл C++ Builder 6! После этого я понял, что утро я встречу наедине с борландовским компилятором. Через пять часов я отправил Диме новых картинок, но он, как нормальный человек, давно спал…



Читать дальше →

Можно ли украсть деньги из мобильного банкинга? Часть 2

Время на прочтение13 мин
Количество просмотров31K
image
Продолжаем тему безопасности мобильного банкинга, которую мы начали в первой части. Наверное, многие уже догадались, речь в данной статье пойдет об атаке «человек посередине», MitM. Данная атака была выбрана не случайно. В случае, если канал передачи данных между приложением мобильного банкинга и сервером контролируется злоумышленником, последний может украсть деньги со счета клиента, то есть нанести прямой финансовый ущерб. Но обо всем по порядку.

Читать дальше →

Можно ли украсть деньги из мобильного банкинга? Часть 1

Время на прочтение6 мин
Количество просмотров42K
image

Второй год подряд мы проводим независимый анализ безопасности приложений для мобильного банкинга (МБ) российских банков. За это время накопилось много наблюдений, мыслей, идей, которыми и хотелось бы поделиться. Особое внимание уделим МБ, но общие замечания актуальны и для других приложений, работающих с критичной информацией пользователя.

Читать дальше →

Тестирование безопасности клиент-серверного API

Время на прочтение6 мин
Количество просмотров41K
2 года назад я выступал на конференции CodeFest с темой «Пентест на стероидах. Автоматизируем процесс» и делал пересказ выступления в качестве статьи. В этом году я с большим удовольствием снова принял участие в конференции и выступил с темой «BlackBox тестирование безопасности клиент-серверного API» и, видимо уже в качестве традиции, также делаю пересказ выступления.



Уязвимости в API встречаются. Правда.

О чем разговор?


Разговор про API, но API бывает разным — API операционной системы, сайта, десктопной программы, да хоть чего. Вкратце — API это обращение к методам чего-либо (например в случае ОС — запись в файл) через определенный метод. И запуск какого-нибудь файла с т.ч. зрения разработки произойдет схожим образом (тоже через API метод ОС), хотя результат выполнения команды совершенно разный. В веб-технологиях многие тоже реализуют API к своим проектам, и если на пальцах: можно отправить сообщение в соц. сети зайдя на сайт, а можно — сформировав специальный HTTP запрос. И при реализации подобного альтернативного использования функционала допускаются (как и везде) ошибки в безопасности. Статья как раз о специфичных ошибках при реализации подобного функционала в веб-проектах.
Читать дальше →

Рекурсивный zip-архив

Время на прочтение5 мин
Количество просмотров40K
Многие хабрапользователи наверняка знакомы с квайнами — программами, выводящими собственный исходный код. Сегодня я хочу показать как сделать интересный вариант квайна — ZIP-архив, который распаковывается сам в себя.

Читать дальше →

История про realloc (и лень)

Время на прочтение9 мин
Количество просмотров48K

Простой макрос


Все началось с простого макроса: (приблизительный код)
#define ADD_BYTE(C) do {            \
  if (offset == capa) {             \
    if (capa < 16) {                \
      capa = 16;                    \
    } else {                        \
      capa <<= 1;                   \
    }                               \
    buffer = realloc(buffer, capa); \
    assert(buffer != NULL);         \
  }                                 \
  buffer[offset++] = (C);           \
} while(0)


Для тех, кто не знаком с языком программирования C, поясню: этот простой макрос добавляет байт «C» в динамически выделяемый буфер (buffer), размер которого (в байтах) равен capa. Следующая позиция для записи определяется при помощи параметра offset. При каждом заполнении буфера происходит двукратное увеличение его объема (начиная с минимального размера в 16 байт).

Мы добавляем байты в динамический буфер — это одна из наиболее распространенных операций практически в любой программе (для работы со строками, массивами и т. п.).

Но как понять, насколько эффективна стратегия перераспределения?
Читать дальше →

Установка приложений Google в эмулятор Android

Время на прочтение3 мин
Количество просмотров37K


В этой статье описано как установить дополнительные программы (в частности, Google Apps) в эмулятор Android. Это может понадобиться если вы хотите на эмуляторе:
1. Настроить синхронизацию с аккаунтом Google.
2. Установить календарь и календарь провайдер.
3. Установить Android Market.
4. И прочее…

Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность