Архив автора: admin

Головоломка, которую под силу решить лишь одному из 100! Проверьте гибкость своего ума

Головоломка, которую под силу решить лишь одному из 100! Проверьте гибкость своего умаПроверьте себя на сообразительность! На самом деле далеко не каждый может решить эту задачку. Это не простое школьное уравнение — все намного сложнее. Итак, сколько получилось у вас?

Для решения этой загадки требуется нестандартное мышление!

На первый взгляд, это выглядит как обычное школьное уравнение, но на самом деле все намного сложнее. Кроме того, оказывается, у этой головоломки есть два правильных решения! Проверьте, сможете ли вы дать хотя бы один правильный ответ. Читать

Что такое английская соль? Шесть способов применения магнезии для красоты и здоровья!



Магнезия, сульфат магния или английская соль, — незаменимый препарат, который пользуется огромным спросом в медицинской сфере. Многие знакомы с этим веществом не понаслышке, так как магнезия является прекрасным успокоительным, противосудорожным и спазмолитическим препаратом.

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

Шесть способов применения сульфата магния
1. Для волос
Чтобы укрепить волосы и немного подпитать их, достаточно смешать столовую ложку сульфата магния с таким же количеством кондиционера для волос. После тщательного мытья головы нанеси смесь по всей длине волос и оставьте действовать в течение 5 минут. 

После такой питательной процедуры следует смыть средство теплой водой. Людям, которые страдают от выпадения волос, магнезия поможет избавиться от этой проблемы.

2. Для лица и тела
С помощью сульфата магния можно легко приготовить действенный скраб для лица. Достаточно смешать небольшое количество увлажняющего крема и такое же количество английской соли. Затем следует нанести это средство на увлажненное лицо и оставить действовать в течение 3 минут. 

В конце процедуры смойте средство теплой водой. Также подобный скраб можно приготовить для всего тела. Необходимо смешать в равных пропорциях любой увлажняющий крем и такое же количество английской соли. Полученную смесь нанеси на тело и оставить действовать на 3–5 минут. В конце процедуры смойте средство тёплой водой.

3. Для хорошей работы сердечно-сосудистой системы
Ванны с добавлением небольшого количества сульфата магния помогают снять мышечную боль, снижают высокое артериальное давление, а также являются отличной профилактикой такого заболевания, как тромбоз. Чтобы приготовить лечебную ванну, достаточно добавить в воду 2 стакана английской соли.

4. В качестве средства для похудения
В борьбе с лишним весом помогут обертывания с английской солью. Для этого необходимо смешать 1/4 стакана воды и 1 столовую ложку сульфата магния. Смесь нужно поместить на небольшой отрез хлопчатобумажной ткани, затем обернуть ее вокруг живота или бедер и закрепить с помощью пищевой пленки. Процедура должна длиться 20–25 минут. Курс обертываний для похудения — 10 дней.

5. В качестве лечебного компресса
Сульфат магния также используют в компрессах при ушибах, растяжениях, сильной мышечной боли и укусах насекомых. Для этого необходимо в 1 стакан горячей воды добавить такое же количество английской соли. Эту смесь следует использовать для лечебного компресса.

6. В качестве противогрибкового средства
Ванночки с небольшим количеством сульфата магния помогут избавиться от грибка стоп и ногтей. Для этого следует соединить в небольшой миске 2 литра горячей воды и 100 граммов сульфата магния. Держать ноги в воде нужно не менее 15 минут. Минимальный курс лечебных ванночек — 10 процедур.
В следующий раз, когда посещаете аптеку, не забудьте купить сульфат магния. Теперь ты точно знаете, как применять её для здоровья и красоты.

Будьте здоровы!

Автор: Культура Процветания

МТС Smart Race2 4G. Первый операторский смартфон с Android Nougat.

В конце мая 2017 года в розничные торговые точки оператора МТС поступила очередная операторская новинка — МТС Smart Race2 4G. Фактически новый аппарат представляет собой очередное бюджетное устройство на базе уже хорошо знакомого нам по другим моделям SoC от Mediatek — MT6737M с тактовой частотой 1.1 GHz (Quad Core), однако, отличительной особенностью нового гаджета является ОС, Smart Race2 4G — это первое операторское устройство на российском рынке с Android 7.0 (Nougat) на борту. Появление новинки прошло без каких-либо анонсов и т.п., так, что даже на момент написания этого поста в официальном интернет-магазине оператора модель отсутствует в списке в категории «Смартфоны МТС», однако, фактически во многих регионах она уже есть на прилавках. Поэтому я как всегда решил рассказать вам о ней одним из первых.
Читать

Как минимизировать содержание нитратов во фруктах и овощах?

    Сезон нитратов
    Если вы решились купить, к примеру, огурцы и помидоры в зимнее или весеннее время года, то обязательно учтите тот факт, что купленные вами ранние овощи обязательно содержат в себе n-ное количество нитратов. 

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

    Поэтому если вы хотите обезопасить себя от «накаченных» нитратами овощей и фруктов на своем столе, употребляйте в пищу только те продукты, сезон которых уже наступил, и они были выращены без химических добавок.




    Как минимизировать содержание нитратов во фруктах и овощах

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

    Выделяют следующие советы по минимизации содержания нитратов в овощах и фруктах:

    При приготовлении салата лучше всего использовать зелень без стеблей, так как в них могут скапливаться нитраты;

    Овощи, морковь и свеклу замочите в растворе соды на полчаса, а затем промойте продукты под холодной водой. Рецепт прост: литр воды на 1 ст.ложку соды;

    При варке овощей не закрывайте кастрюлю крышкой – нитраты начнут испаряться;

    Овощи и зелень перед приготовлением опустите в холодную воду на 1 час;

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

    Автор Иванов Дмитрий


    Автор: Культура Процветания

    Овсяный квас — супер-напиток для здоровья

     Овсяный квас — супер-напиток для здоровьяКвас из овса – исконно русский напиток. В старых рецептах встречается большое количество способов приготовления этого замечательного напитка. В современное время квас из овса утратил популярность и уступил место хлебному. А жаль, ведь овсяный напиток не только хорошо утоляет жажду и приятен на вкус. Благодаря наличию биологически активных компонентов, овсяный квас – польза для всего организма.

    Приготовление этого напитка не требует много времени и особого умения. Читать

    История одного recovery. На примере МТС Smart Race2 4G.


    Не так давно я рассказывал вам о первом операторском смарфтоне с Android 7.0 (Nougat) на борту — МТС Smart Race2 4G, до полноценного обзора нового устройства руки по не дошли, но он обязательно появится на страницах этого ресурса в ближайшее время. Сегодня же я бы хотел поговорить о «кастомизации», а именно особенностях сборки кастомного recovery (TWRP) под этот аппарат. Пост ориентирован скорее не на конечных пользователей, которые используют возможности TWRP в повседневной жизни, а на разработчиков. Честно говоря, начиная собирать TWRP (естественно из исходников) для данного аппарата я и не предполагал, что придется столкнуться с какими-либо сложностями, т.к. по большому счету платформа Mediatek на базе которой построен гаджет, также как и чипсет MT6737M хорошо изучены и никаких потенциальных проблем со сборкой TWRP для подобных устройств никогда не возникало. Однако в случае с МТС Smart Race2 4G, именно из-за Android 7.0, пришлось столкнуться с определенными сложностями и этот пост — небольшое «руководство-размышление» об их решении.

    Сразу скажу, что т.к. аппарат построен на базе Nougat, то собирать TWPR для него обязательно на базе исходников из ветки 7.1 OmniROM (можно конечно собрать android_bootable_recovery и в составе CyanogenMod / LineageOS), но опять же, «платформа» 7.1 обязательна. Почему? Если опустить аргумент об идеологической правильности подобного подхода, скажу, что на базе Marshmallow TWRP также прекрасно соберется, но при попытке запуска под его управлением любых стоковых бинарников, например, vold, logcat и т.п. вы неизбежно получите ошибку cannot locate symbol «__write_chk», т.к. все стоковые бинарники используются экспортируемую функцию __write_chk из libc, которой в Marshmallow просто нет. Таким образом собирая TWRP на исходниках от 6.0 вы автоматически собираете libc без __write_chk, что приведет к неработоспособности части бинарников собранных под Nougat внутри получившегося TWRP. Поэтому если вы часто собираете TWRP для различных устройств и еще не успели склонировать репозитарий того же OmniROM 7.1 — сейчас самое время сделать это, т.к. по всей видимости устройств с Nougat на Mediatek будет появляться все больше и вам рано или поздно придется это сделать.

    Других особенностей, касающихся именно процесса сборки TWRP — вообщем-то нет, все штатно, также как и в случае с 6.0. Собранный у меня кастомный recovery отлично запустился на аппарате, но вот как раз тут и начались «приключения». Как известно, раздел userdata в Android N является шифрованным, т.к. объявлен в fstab’е как forceencrypt с хранением ключей шифрования в metadata. Вот как раз это и послужило началом всей истории. Загрузившись в только что собранный TWRP я обнаружил что он запрашивает пароль для дешифровки userdata и не монтирует его. При этом пароль в устройстве, т.е. ни PIN-код для разблокировки, либо загрузки Android, ни графический ключ не был явно задан.

    Т.е. фактически TWRP по каким-то причинам не смог расшифровать раздел с помощью default_password. Включение отладочных средств TARGET_USES_LOGD и TWRP_INCLUDE_LOGCAT в BoardConfig.mk при сборке также не помогло установить причину проблемы. Вывод logcat и dmesg в этом плане был малоинформативен.

    Конечно в данной ситуации можно было поступить проще (подобное решение можно увидеть в многочисленных сборках TWRP, в котором разработчикам было лень разбираться с шифрованием), например, просто разобрав boot и изменив forceencrypt на encryptable с последующим форматированием раздела userdata и потерей всех данных. Но это ведь не наш путь, т.к. в моем понимании у пользователя устанавливающего TWRP на аппарате уже есть какие-то данные и терять их из-за того что TWRP не может справиться с расшифровкой раздела, как минимум не хотелось бы. Другими словами, TWRP должен монтировать существующий на устройстве раздел userdata, все другие варианты (отключение шифрования и т.п.) являются «полумерами», к тому же еще и снижающими безопасность устройства.

    Тогда я вспомнил, что начиная с определенной версии TWPR в нем появилась возможность использования стоковых бинарников vold с помощью включения TW_CRYPTO_USE_SYSTEM_VOLD в сборку, информация об этом есть в этом коммите — crypto: Use system’s vold for decryption. Бегло изучив все что там говорится, а также проанализировав содержимое исходников в /bootable/recovery/crypto/vold_decrypt/ я включил этот флаг в BoardConfig.mk и пересобрал recovery. Т.е. теперь уже TWRP использовал бинарник vold находящийся в system … Однако дешифрование раздела и его монтирование все равно не происходило, т.к. при сборке vold в стоковой прошивке разработчиками была включена проверка boot_mode. Что она из себя представляет?

    Для лучшего понимания приведу следующий исходник:


    int get_boot_mode(void)
    {
    int fd;
    ssize_t s;
    char boot_mode[4] = {'0'};
    char boot_mode_sys_path[] = "/sys/class/BOOT/BOOT/boot/boot_mode";

    fd = open(boot_mode_sys_path, O_RDONLY | O_NOFOLLOW | O_CLOEXEC);
    if (fd < 0)
    {
    SLOGE("fail to open %s: %s", boot_mode_sys_path, strerror(errno));
    return 0;
    }

    s = read(fd, boot_mode, sizeof(boot_mode) - 1);
    close(fd);

    if(s <= 0)
    {
    SLOGE("could not read boot mode sys file: %s", strerror(errno));
    return 0;
    }

    boot_mode[s] = '';
    return atoi(boot_mode);
    }

    Здесь get_boot_mode возвращает текущий режим загрузки устройства, который она читает из /sys/class/BOOT/BOOT/boot/boot_mode . Так вот стоковый vold вызывает некий аналог этой get_boot_mode и если устройство загружено в режиме отличном от system, т.е. в recovery mode или в любом другом доступном режиме, то монтирование / дешифрование userdata невозможны в принципе. В логах вы увидите нечто вроде <5>fs_mgr: %s: bootmode(%d) is NOT normal mode, disable ‘default encrytion’, flag=(0x%x -> 0x%x)». Скачав и установив бесплатную demo версию IDA v6.95.160810 мы можем увидеть эту проверку самостоятельно:

    Где в дальнейшем используются результаты этой проверки и как именно — разбираться досконально я не стал, однако, факт отключения default encryption в vold при загрузке в режиме recovery, естественно, нас не устраивал. Из этой сложившейся ситуации есть несколько выходов:

    • Непосредственный патч vold для обхода этой проверки.
    • Написание собственной библиотеки с размещением ее в LD_PRELOAD, которая перехватывала бы попытки обращения в цепочке open(«/sys/class/BOOT/BOOT/boot/boot_mode») -> __read_chk -> close от любых приложений и всегда возвращала бы нужное значение (т.е. 0 = normal_mode).
    • Сборка vold из исходников Android N для MT6737M от Mediatek с корректировкой всех проверок в исходниках.
    Любая из этих реализаций должна привести к успеху, поэтому какой именно воспользоваться — не имеет большого значения. Здесь главное не забыть, что собранный из исходников или модифицированный vold должен корректно загружаться из init.recovery.vold_decrypt.rc, например так:

    service sys_vold /path_to_your_vold/vold
    --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0
    --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0
    socket vold stream 0660 root mount
    socket cryptd stream 0660 root mount
    setenv PATH /system/bin
    setenv LD_LIBRARY_PATH /system/lib64:/system/lib
    disabled
    oneshot
    Однако, даже решив эту проблему — мы не получим полноценного решения по дешифрованию userdata в TWRP, т.к. платформа использует еще и teei_daemon для поддержки шифрования. Изучить как он запускается и работает можно посмотрев внутрь init.microtrust.rc из boot’а. И наконец последний шаг на пути к успеху, это обеспечение корректного запуска и работы этого демона при дешифровании, «красивым» и правильным шагом здесь, на мой взгляд, является помещение его инициализации в соответствующий init.recovery.vold_decrypt.$(item).rc (разобраться с этим подробнее вам поможет /bootable/recovery/crypto/vold_decrypt/Android.mk).

    В качестве результата проделанной работы я получил незаменимый опыт (что главное), а также полноценной работающий TWRP 3.1.1-0:

    Как видно из фото — раздел userdata успешно расшифрован и примонтирован (Data succefully decrypted, new block device: ‘/dev/block/dm-0’) created). Mission accomplished 😉

    p.s. Во-избежание наболевшего вопроса «а где можно скачать готовую сборку TWRP» — скажу сразу что дата public релиза пока не определена. Однако все необходимые для сборки моменты уже рассмотрены в этой статье и любой желающий, ориентируясь на мои наработки может пройти тем же путем. 



    Источник: decker.su