Доработка андроид магнитолы 2 din китайской

Опубликовано: 29.04.2024

Аппаратные и программные доработки ГУ ML-CK1018 и аналогичных на платах YT9213-18 YT9260 (процессор AC8227L)
YT9213 YT9216 YT9217 YT9218 YT9260
Обсуждение » YT9213 YT9216-18 YT9218DL DSP

В теме не обсуждается как прошить, как починить кирпич, "помогите сломал". Только "технический флуд" по усовершенствованию ГУ

Операционная система: Android 6.0 версия API 23 ( 8.1GO - фейк)

Процессор: АС8227L 4 ядра 1,2 ГГц
Оперативная память: 1/2 Гб
Встроенная память: 16/32 Гб

Размер дисплея: 7"/9"/10"
Разрешение дисплея: 600*1024
Тачскрин: емкостный

Усилитель (УНЧ): TDA7388/AC7315
Выходная мощность: 4*60 Вт

WiFi: ЕСТЬ
BT: ЕСТЬ (работает как гарнитура; подключение OBD сканера)

USB: 2шт
Разъем для MicroSD: НЕТ (в FAQ описана возможность установки)
GPS: ЕСТЬ
AV-Out (подключение к монитору подголовника)
Подключение камеры заднего вида: ЕСТЬ

Язык интерфейса: английский, русский, немецкий, французский и другие 50 языков.

Устройства (ГУ) должны содержать на борту следующие чипы :
процессор андроида - АС/МТ 8227L
питание и кодек MT6323
аудиопроцессор - TDA7729 (TDA7719 , CSC37033 , SCS37534)
DSP ADAU1701(1401)
блютуз - MT6625
радио - NXP A5105(NXP6851?)
контроллер MCU - STM32F030C8T6
У устройств YT9216 , YT9217 отсутствует чип радио NXP6851 (A5105) - используется встроенное радио в комбочипе MT6625.
Основное - процессор , MCU, кобмочип MT6625 , питание, остальные чипы могут иметь различные комбинации . или 7729 , или dsp или ни того ни другого ! Также не имеет значения горизонтальный или вертикальный экран

Убедительная просьба, если нет опыта , нет уверенности и понимания что ты делаешь, НЕ НУЖНО пытаться сделать описываемое тут самостоятельно! Обратитесь к специалистам! Имеющим необходимый инструмент и опыт!
В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку "Жалоба" под сообщениями, на которые необходимо добавить ссылки.

Судя по всему это обработчик потери фокуса , и как раз нужный нам для приглушения AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK делает все равно тоже самое что и потеря фокуса Без приглушения - код одинаковый !
Как бы это изменить так чтобы оно стало нормально приглушать ?
Попробовал разобрать приложение GalaMusiс это вроде как плеер наш , но или оно както у меня разбирается с ошибками и не полностью .. или . но вопщем я там не нахожу этих строк (
А так бы подсмотреть как сделано там и сделать также в радио ! и может быть оно станет нормально притухать !
А по этому коду получается как раз оно отключает на 1 сек и снова включается , что у меня и было с 7729 , но прошло после перехода на DSP , что странно конечно тоже )

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

Stranger21ufa,

Этой прогой можно хорошо коды посмотреть, ставится на ГУ
и можешь редактировать АПК.

Смотрел сегодня logcat с ключём fm .
Так вот там есть записи, когда говорит Алиса, там есть fm_mute и fm_volume =0
И радио замолкает
Когда говорит Оксана, то есть в логе fm_volume =0.5 но радио ноль эмоций. Вероятно он просто игнорирует так как нет в коде обработки.

В приложении плеера, сделано не через аудиоменеджер.
Там через сообщения оболочки видимо сделано. И есть обработка приглушения.
Я могу попробовать этот код перенести в радио. Но в Ява коде не знаю как.
В смали тяжело. Но думаю тоже можно попробовать.
На ходу в магнитоле трудно. Да и тормозит она. Я поставил одну прогу которая вроде тоже разбирает приложение.

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

Идея такая . в логе я вижу что есть у него какойто прям отдельный поток FM и он идет по шине i2S . И это прям реализовано на уровне звуковых библиотек . в ALSA
Есть предположение , которое многое обьяснит
с 6625 выходит шина i2S , и я вот не знаком с ней подробно - кто знает подскажите, и она физически соединяет все устройства , на ней висит и центральный проц , и 6625 и 6323 . в моем случае уже висит еще и DSP .
Итого дроид только запускает поток с 6625 , а потом его уже просто декодирует или 6323 или dsp . При этом звуки дроида , просто в эту же шину подкидываются паралельно !
Поэтому управлять , типо того чтобы приглушить , скорее всего не получится , так как приглушить можно только в самом DSP или 7729 . Но может быть можно в 6323 .

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

Это предположение обьяснит многое . например то почему в ЦАП ЮСБ не выходит звук радио - потом что ЦП его не обрабатывает !
Это также обьяснит почему у меня пропал секундный затык уведомлений при переходе на DSP , я просто читаю шину напрямую без 6323 .
Это также обьясняет почему на 9213 не работает эквалайзер и все подобное на радио - потому что звук с радио идет сразу в 6323 !

Это как бы и хорошая и плохая новость - хорошая , я попробую прозвонить шину на 6625 , и всем остальным можно будет туда подключать DSP .
Но если у когото есть мертвая плата то неплохо бы сдуть 6323 и ЦП и прозвонить шину i2S .

Однако если верить схеме на Lonovo 5500H , то с 6625 выходит только FM DATA и FM CLK , оно идет в CPU а с него отдельно шина на 6323 и отдельно шина i2S
Так что все равно это проходит через ЦП , значит этим МОжно управлять .. вот почему не получается то ни у кого ? ..

Подскажите как то можно Руками в терминале давать команды аналогичные тем что дают приложения ?

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

Если я правильно понял код

status_t AudioALSAFMController::setFmVolume(const float fm_volume) <
ALOGD("%s(), mFmVolume = %f => fm_volume = %f", __FUNCTION__, mFmVolume, fm_volume);

const float kMaxFmVolume = 1.0;
ASSERT(0 <= fm_volume && fm_volume <= kMaxFmVolume); // valid volume value: 0.0

if (WCNChipController::GetInstance()->IsSupportFM() == false) <
ALOGW("-%s(), Don't support FM in the platform", __FUNCTION__);
return INVALID_OPERATION;
>

// Set HW Gain for Direct Mode // TODO(Harvey): FM Volume
if (mFmEnable == true && mIsFmDirectConnectionMode == true) <
mAudioALSAVolumeController->setFmVolume(mFmVolume);
> else <
ALOGD("%s(), Do nothing. mFMEnable = %d, mIsFmDirectConnectionMode = %d", __FUNCTION__, mFmEnable, mIsFmDirectConnectionMode);
>

То какойто Harvey написал - СДЕЛАТЬ регулировку громкости (((
в данной конструкции только заведена процедура , но не описано что ей делать ( .

кто то понимает что можно сделать с этими библиотеками и дописать эту функцию ?

Machomotofan,

Я прошелся по вызовам , открою лог посмотрю Кто в логе вызвыал запрос на рег громкости .
Примерная цепь событий
AudioALSAHardware

status_t AudioALSAStreamManager::setFmVolume(float volume) <
ALOGV("+%s(), volume = %f", __FUNCTION__, volume);

if (volume < 0.0 || volume > 1.0) <
ALOGE("-%s(), strange volume level %f, something wrong!!", __FUNCTION__, volume);
return BAD_VALUE;
>

status_t AudioALSAFMController::setFmVolume(const float fm_volume) <
ALOGD("%s(), mFmVolume = %f => fm_volume = %f", __FUNCTION__, mFmVolume, fm_volume);

const float kMaxFmVolume = 1.0;
ASSERT(0 <= fm_volume && fm_volume <= kMaxFmVolume); // valid volume value: 0.0

if (WCNChipController::GetInstance()->IsSupportFM() == false) <
ALOGW("-%s(), Don't support FM in the platform", __FUNCTION__);
return INVALID_OPERATION;
>

// Set HW Gain for Direct Mode // TODO(Harvey): FM Volume
if (mFmEnable == true && mIsFmDirectConnectionMode == true) <
mAudioALSAVolumeController->setFmVolume(mFmVolume);
> else <
ALOGD("%s(), Do nothing. mFMEnable = %d, mIsFmDirectConnectionMode = %d", __FUNCTION__, mFmEnable, mIsFmDirectConnectionMode);
>

status_t AudioALSAVolumeController::setFmVolume(const float fm_volume) <
ALOGV("%s(), fm_volume = %f", __FUNCTION__, fm_volume);

// Calculate HW Gain Value
uint32_t volume_index = logToLinear(fm_volume); // 0

// Set HW Gain
return mHardwareResourceManager->setHWGain2DigitalGain(hw_gain);
>

status_t AudioALSAHardwareResourceManager::setHWGain2DigitalGain(const uint32_t gain) <
ALOGD("%s(), gain = 0x%x", __FUNCTION__, gain);

const uint32_t kMaxAudioHWGainValue = 0x80000;

if (gain > kMaxAudioHWGainValue) <
ALOGE("%s(), gain(0x%x) > kMaxAudioHWGainValue(0x%x)!! return!!", __FUNCTION__, gain, kMaxAudioHWGainValue);
return BAD_VALUE;
>

int retval = 0;
if (WCNChipController::GetInstance()->IsFMMergeInterfaceSupported() == true) <
retval = mixer_ctl_set_value(mixer_get_ctl_by_name(mMixer, "Audio Mrgrx Volume"), 0, gain);
> else <
retval = mixer_ctl_set_value(mixer_get_ctl_by_name(mMixer, "Audio FM I2S Volume"), 0, gain);
>

if (retval != 0) <
ALOGE("%s(), retval = %d", __FUNCTION__, retval);
ASSERT(retval == 0);
>

и вроде как , пришло все к миксеру . почему же не работает .

/// FM / mATV
int AudioFtm::FMLoopbackTest(char bEnable __unused) <
ALOGD("%s()", __FUNCTION__);
return true;
>

int AudioFtm::Audio_FM_I2S_Play(char bEnable) <
ALOGD("%s()", __FUNCTION__);

const float kMaxFmVolume = 1.0;

if (mStreamOut == NULL) <
if (mStreamManager->getStreamOutVectorSize() == 0) < // Factory mode
uint32_t devices = 0x2;
int format = 0x1;
uint32_t channels = 0x3;
uint32_t sampleRate = 44100;
status_t status = 0;

if (bEnable == true) <
// force assigned earphone
AudioParameter paramRouting = AudioParameter();
paramRouting.addInt(String8(AudioParameter::keyRouting), AUDIO_DEVICE_OUT_WIRED_HEADPHONE);
mStreamOut->setParameters(paramRouting.toString());

// enable
mStreamManager->setFmVolume(0);
mStreamManager->setFmEnable(true);
mStreamManager->setFmVolume(kMaxFmVolume);
> else <
// disable
mStreamManager->setFmVolume(0);
mStreamManager->setFmEnable(false);
>

Как видно поток открывается только в наушники )
А не в Дефаулт аудио ))))

Блин .. как все это компилировать ? и какие библиотеки получатся ? .

Это уровень "бог " для меня )

но я кажется понял эта ветка что я выше дал ссылку это сборка библиотеки наподобие нашей
audio.primary.mt6737t.so

у нас она audio.primary.ac8227l.so

Тоесть , чисто вот если понять ЧЕМ скопилировать эту ветку , то можно попробовать просто из исходника этого собрать эту библиотеку , ну и переименовав подложить
Теперь хотябы понятно в каком файле вся эта красота .

Но также и в самом apk радио наверное нужно-можно , попробовать переписать обработчик приглушения
В этом стиле

приглушать звук выставлением FMVolume = 0.5 но если оно не работает то и не сработает наверное . в плеере можно подсмотреть как получают от оболочки Максимальный уровень для канала , я так понял что ползунок Микс .

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

Не сохранил видимо лог с громкостью 0.5
Больше повторить не удалось .
Только полное приглушение в 0.0

какие логи можно вообще снимать ? снял полный , все галочки поставил , logcat , но не нахожу в нем вот этих используемых в приложении широковещательных сообщений , про приглушение.

Приложение плеер тоже не совсем корректно работает , с Алисой оно приглушается , а должно Мутится .

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

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

зы смешно - "Log.wtf() - очень серьезная ошибка! (What a Terrible Failure!, работает начиная с Android 2.2)" ))) почемуто я прочитал его более просто и понятно ) вотафак )))))

самое интересное то что , на Redmi 5 радио ведет себя товершенно также ! .. на Алису мутится , на Оксану ноль эмоций и ее еле слышно (
блин
неужели никто нигде радио нормально не написал ? или есть другие причины ?

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

но вот от U708 меняет механизм регулировки громкости , на Андроидный , как в телефонах или как в 9213, и поэтому на ЮСБ тоже будет регулировать . у наших устройств громкость станет тише в самом начале , очень плавной . и возможно на 30 не максимум .

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

;) :rolleyes:
Ну вопщем все получилось )
Думаю и 7ZIP сделает тоже самое .. но сделал прям в ГУ
® MT Manager с помощью MT manager
Для начала достал папку sounds из ресурсов
потом этой программой MP3GAIN , всю папку поднял на 9дб звук , она написала что клип уже есть вроде как , но я не услышал , нормально.
Ну и запихал обратно прям на "горячую" в apk ) и все ! Антирадар говорит Громче чем радио прям комфортно офигенно !
Прикладываю архив , там есть установщик , ну по сути это и есть просто апк ) но и папка с уже установленным в /system/priv-apk/ оно прекрасно работает как системное , никаких таскеров не нужно , все авто просыпается из сна , все говорит и показывает ! )

Пользуемся ! )) теперь очередь за Янави )
+9 все таки лишнего . ниже с шагом 1.5 архивы для системной папки, можно и просто установить конечно же , 1.5 и 3 самое лучшее вроде как

Проверил что просто установкой файлы не работают с подписью накосячил ) исправляюсь , делаю файлы для установки )

Представленные ниже установщики , вроде верно устанавливаются . Но звука нет вообще ! . блин . чего то я опять не допонял и не доделал ( . на живую только ручная установка чтоли .

Китайский 2DIN: заводской апгрейд и его Твик

Приветствую всех!
В 2-х словах предыстория: в Китае у OEM была заказана модернизация базовой модели ГУ на win ce, так как на просторах инета столько много примитивных твиков уже проработано.
Советы и окончательный выбор по компонентам помогли сделать ребята с форума магнитола.орг (там есть моя тема "Доработка дешевой магнитолы 2 din типа 7023 в заводских условиях").
Думаю, все в курсе какое г..о в таких ГУ ставят по умолчанию. Мы договорились, что завод изготовит новую плату и доработает софт, чтобы новые модули работали на своих заявленных параметрах.
Вот что будет доработано и установлено по сравнению с дешевыми базовым вариантом:
- усилитель TDA7850
- аудиопроцессор TDA7715
- fm модуль TEF6686
- bluetooth v 5.0 CSR 8675 с поддержкой APTx-HD
- емкостный экран 7" с мультитачем 1024*600
- 2 пары линейных выходов + выход на саб уже будут распаяны и выведены.

В принципе набор, довольно неплохой получился, к середине июля должны прислать 3 тестовых образца.
Так как я не специалист, к сожалению, в этой теме - мне хотелось бы найти грамотных специалистов, которые смогли бы изучить и сравнить базовую и доработанную версию завода, а, главное, продолжить твик этого доработанного ГУ, чтобы "вытянуть из него по максимуму".
Далее, китайцы учитывает наши окончательные требования к модернизации (в пределах доступности компонентов для этого) и производят серийную партию 1000 штук.

Буду рад услышать мнения знающих людей и есть ли желающие поучаствовать в этом процессе (варианты сотрудничества оговорим индивидуально).

не по теме - это правда.
Цену точную не могу озвучить, но ориентир 4444 рубля с бесплатной доставкой до терминала СДЭК в городе покупателя.
В отличии от известной китайской площадки гарантия будет на всей территории РФ.

ps
чтобы тему и меня не пинали на нашем форуме, пожалуйста, давайте по существу писать: будем уважать форумчан и тему.

Вот настал тот момент когда я наконец-то доехал до чип и дип купить запчасти для модернизации магнитолы.

Спасибо m1rag3 за его БЖ />Почти все сделано как он писал, только запчасти купил немного другие, так как оригинал сложно найти, изначально хотел ставить TDA7560 или TDA7580, в чип и дипе в Москве на ул. Гиляровского были одни подделки (в сети много видео как отличить их) хорошо мультиметр взял с собой. Но не беда есть ещё один аналог от Pioneer — PAL007C из 7 штук что были в наличии только один настоящий MOSFET (видать из старых запасов) — 450 р.
Также куплен:
— цифровой аудиопроцессор TDA7313D — 82 p.
— электролитические конденсаторы 4700 мкФ 25в 2 шт. — 176 р.
— керамический конденсатор 1 мкФ 16в (размер 0805) 2 шт. — 28 р.
И так было:

Ещё много пролазил широт нашего интернета, нашел интересную статейку и тоже воплотил ее в жизнь:
Частый дефект даже новых китайских магнитол и китайских подделок — очень слабая регулировка тембра (при норме ±14dB) : Bass не более -3/+6dB, Treble не более ±8dB, а при включении Loud звук бубнит как из посылочного ящика .
Нужно обязательно проверить соответствие номиналу конденсаторы и резисторы в цепях регулировки тембра и Loud . Значительно улучшить качество регулировки тембра Bass можно увеличением ёмкости конденсаторов на 18 и 20 ножках до 1 мкФ .

После увеличения ёмкости нет провалов регулировки ниже частоты 100 Гц

Если не помогло, а в магнитоле установлен процессор звука SC2313 или TM2313 (чаще всего низкокачественная китайская подделка) — желательно его менять на TDA7313D, PT7313, PT2313L, которые можно найти в старых неремонтопригодных магнитолах и которые очень широко использовались даже в фирменных магнитолах (KENWOOD, BLAUPUNKT, PIONEER, PANASONIC и во многих других).

Я для себя решил если менять так сразу все, стоит всеравно копейки.

Намазываем усилитель всеми любимой термопастой КПТ-8 и собираем.

Осталось поставить магнитолу в авто, но это в следующей серии. Всем спасибо за внимание!

Всем привет!
Ранее я рассказывал, что установил днищенскую 2din магнитолу)
Покатавшись пол года, я к ней привык и тот трепет новой вещи спал) А значит настало время разбирать и улучшать))))
К сожалению в процессе работы много фоток забыл сделать, но не важно, распишу на пальцах)

1.Раскручиваем и мафон у нас разваливается на две части: морда и зад. Так как звук у нас размещен в заднице, берем заднюю часть и смотрим.

Там стоит конденсатор 25v 2200mF и усилитель TDA7388 какого то китайского самопального производства, т.к. никаких маркировок больше нет)))

Звуковую микруху я не планировал пока трогать, поэтому не запомнил ее)
А вот усилитель и накопитель решил поменять, порывшись в закромах, была найдена тда-шка 7560, тоже китайская к сожалению, но уже заводского исполнения, купленная в свое время в хорошем радиомагазине.

Ставим ее на свое место)

И накопитель… скромничать не стал, вколхозил 25v10000mF))))

2.Вычитал, чтоб убрать наводки надо везде раскидать заземление, раскидал)

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

4.Плохое качество радио тоже было решено улучшить и был прикуплен фм-усилитель. Антенный штекер вставляется в усилитель, штекер усилителя вставляется в антенное гнездо мафона, плюс усилителя подключаем к синему проводу, на него подается напряжение 12V при включенной магнитоле.

Итоги:
1.Сказать, чтоб я ошалел от звука — не скажу, но звук изменился. И я, и все знакомые, наблюдавшие этот процесс, отметили тот факт, что сразу появился низ. А в режиме Loud on, появился плотный такой бас)))

Штатные динамики начали давить в ногу! НО! На саб это не повлияло, он как работал в режиме подзвучки, так и остался, надо усилок покрутить потом, подраскачать эту дуру)))

2.Звук стал чище и шумы не ушли полностью, но ушли далеко на задний план, перестали мешать и привлекать к себе внимание

3.Радио стало ловить везде, просто там где пропадало вообще в городе ловит с помехами, но и это хороший результат) А вот минусом стало то, что в определенных местах стало ловить посторонние какие-то сигналы, которые наглухо забивают радиостанцию на этой частоте))) То ли в этих местах какие таксисткие станции стоят, что рядом с ними так реагирует шарманка, то ли скорой помощи, хз.

4.Пульт стал ловить ото всюду, но как подтупливал, так и подтупливает, тут уже слабенький проц не справляется видимо)

Так что дальше у меня мысли перепаять микруху, занимающуюся обработкой звука, но это уже совсем другая история) До новых встреч в эфире! ;)

А еще у нас снова наступила пора, когда все валят боком, а я который год подряд расчищаю дворы(((

Решил создать данную тему по двум причинам:
1. Думаю у всех назрела мысль, что в Китайских магнитолах (при всем моём уважении к их разработчикам за скорость, с которой они успевают за рынком) их работа сведена только к продаже, причем они используют в своей работе все самое "недорогое" и не думают об удобстве пользователей (возвращать я им свою не собираюсь по этому надо думать, что с ней можно сделать, если меня спросить купил бы этого "Китайца" я сейчас, сказал бы однозначно - да, этих денег он стоит). И в этой связи, стоит подумать как самим можно тем или иным способом усовершенствовать данные аппараты. Так вот: в этой теме хотел, чтоб люди не стонали и жаловались, что их обманули китайцы, а писали реальные методы "улучшения", ведь в большинстве своём все эти магнитолы внутри одинаковы.
2. Ну и конечно сам первым хотел похвастать, тем, что я добился звука от Хулигана HL-8976GB, не хуже чем в штатной магнитоле XL-я.

Итак по порядку:
есть у меня мастер по ремонту сотовых телефонов Антон, снял я сегодня своего Хулигана, отдал ему, говорю смотри что можно сделать со звуком, прошивкой и т.д.
Вердикт Антона: можно попробовать "над звуком поработать пока", надо поменять усилитель звука.
снял "родной" TDA 7850 (он стоит около радиатора сбоку), и сказал купить PAL 007A или B + термопасту.
Хоть сегодня выходной (праздник) нашел я всё-таки усилитель, только немного другой PAL 006 Pioneer .
Поставили.
Вы не поверите, звук стал совсем другим - музыка ожила!
Бас стал Басом а не хрипом, и высокие преобразились, я очень доволен.

Цена данной Модернизации:
Усилитель PAL 006A = 389р.
Термопаста = 38р.
Снятие пломбы гарантии = наплевал.
зарплату Антона отнесу на другие затраты

На счет остальных микросхем: Антон сказал, что ему бы схему данного агрегата, он посмотрит и еще может чего придумает. Как я его понял проц у нас стоит Samsung, такой же как на коммуникаторах GLOFIISH и он всем управляет (и винда и GPS на нем). В понедельник буду просить у Лильки схему.

Читайте также: