Android image kitchen для windows

Android image kitchen для windows

2016-06-21 Update to version 1.2 stable
Changelog:
— improved the clean menu;
— added option to clean the output folder;
— new binary for coloring dos in windows;
— added the command to apped execute rights to executables in windows;
CarlivImageKitchen_Windows_v1.2.zip ( 6,47 МБ )
CarlivImageKitchen_Windows_x64_v1.2.zip ( 6,71 МБ )
CarlivImageKitchen-Linux_v1.2.zip ( 105,9 КБ )
CarlivImageKitchen-Linux_v1.2_x64.zip ( 108,67 КБ )

2016-06-30 Update to version 1.3 stable
Changelog:
— detect mtk header during unpacking;
— removed grep method
CarlivImageKitchen_Windows_v1.3.zip ( 6,29 МБ )
CarlivImageKitchen_Windows_x64_v1.3.zip ( 6,53 МБ )
CarlivImageKitchen-Linux_v1.3.zip ( 105,88 КБ )
CarlivImageKitchen-Linux_x64_v1.3.zip ( 108,63 КБ )

А как прога может писать разным цветом? o.O

А, не, всё понял.
В директории приложения есть скрытая папка «bin».

Там есть файл ctext.exe, который и делает такой текст.

Для распаковки тащим на boot_recovery_unpack.bat свой образ и он распаковывает.
Для запаковки тащим на boot_recovery_repack.bat папку и он запаковывает.

Бонусом идет распаковка образов System.img, userdata.img, system.new.dat (для распаковки system.new.dat необходим файл system.transfer.list) так же перетаскиванием на system_unpack.bat.

blackeangel,
system_unpack.bat не работает с распаковкой system.new.dat.

Вот так работает, я правда для себя выводы оставил и удаление system.new.img убрал, т.к c образами из некоторых прошивок ImgExtractor не справляется, так хоть system.new.img будет.

Посмотришь?
system_unpack.zip ( 457 байт )

blackeangel, Здравствуйте. firmware_MK908II-kk-20140521-vl.img это прошивка для смарт тв приставки на android. мне внутри нужно кое что изменить. точнее чтобы поменять диски. Как Вашим модом это сделать. если не трудно. Подскажите. Спасибо

Diman_3452, У меня приставка Akai SM 601M на андроид. Процессор: ARM Cortex A9 Quard core

Источник

Android image kitchen для windows

2016-06-21 Update to version 1.2 stable
Changelog:
— improved the clean menu;
— added option to clean the output folder;
— new binary for coloring dos in windows;
— added the command to apped execute rights to executables in windows;
CarlivImageKitchen_Windows_v1.2.zip ( 6,47 МБ )
CarlivImageKitchen_Windows_x64_v1.2.zip ( 6,71 МБ )
CarlivImageKitchen-Linux_v1.2.zip ( 105,9 КБ )
CarlivImageKitchen-Linux_v1.2_x64.zip ( 108,67 КБ )

2016-06-30 Update to version 1.3 stable
Changelog:
— detect mtk header during unpacking;
— removed grep method
CarlivImageKitchen_Windows_v1.3.zip ( 6,29 МБ )
CarlivImageKitchen_Windows_x64_v1.3.zip ( 6,53 МБ )
CarlivImageKitchen-Linux_v1.3.zip ( 105,88 КБ )
CarlivImageKitchen-Linux_x64_v1.3.zip ( 108,63 КБ )

А как прога может писать разным цветом? o.O

А, не, всё понял.
В директории приложения есть скрытая папка «bin».

Там есть файл ctext.exe, который и делает такой текст.

Для распаковки тащим на boot_recovery_unpack.bat свой образ и он распаковывает.
Для запаковки тащим на boot_recovery_repack.bat папку и он запаковывает.

Бонусом идет распаковка образов System.img, userdata.img, system.new.dat (для распаковки system.new.dat необходим файл system.transfer.list) так же перетаскиванием на system_unpack.bat.

blackeangel,
system_unpack.bat не работает с распаковкой system.new.dat.

Вот так работает, я правда для себя выводы оставил и удаление system.new.img убрал, т.к c образами из некоторых прошивок ImgExtractor не справляется, так хоть system.new.img будет.

Посмотришь?
system_unpack.zip ( 457 байт )

blackeangel, Здравствуйте. firmware_MK908II-kk-20140521-vl.img это прошивка для смарт тв приставки на android. мне внутри нужно кое что изменить. точнее чтобы поменять диски. Как Вашим модом это сделать. если не трудно. Подскажите. Спасибо

Diman_3452, У меня приставка Akai SM 601M на андроид. Процессор: ARM Cortex A9 Quard core

Источник

osm0sis

Senior Recognized Developer / Recognized Contribut

Windows ports of the necessary Linux utils for Android image (kernel/recovery) mod work:

See the Mobile Edition (AIK-mobile) initial release notes for the specifics on the native Android version.
Likewise for the Linux/macOS Edition (AIK-Linux) initial release notes.

My original intent was to have this package dependency-free, but as you can see, I did have to include Cygwin. Initially just for mkbootimg since the huaixzk standalone version wouldn’t work (it wasn’t loading the kernel as binary, thanks trevd); then I discovered that using the GNUWin32 cpio to unpack somehow didn’t play nice with repacking the ramdisk in a usable state, so at that point I decided I might as well go Cygwin across the board. As it is, I’ve included the latest Cygwin-dependent executables and required libraries from their repos and built my own custom Cygwin image and ramdisk utilities built from the latest sources.

Originally only for Google Pixel/Nexus/AOSP standard boot.img files, built-in support has now expanded to Android Verified Boot (AVBv1)/ChromeOS/SignBlob signed boot.img files, Barnes & Noble Nook «Green Loader» signed boot.img files, Samsung/Spreadtrum DHTB header signed boot.img files, the Samsung/Marvell PXA1088/1908 board boot.img variant (AOSP-PXA), Loki patched boot.img files, amonet patched boot.img files, Sony SIN signed/packaged kernel.elf extraction, Sony ELF kernel.elf files, Intel OSIP Android image files, DENX U-Boot uImage files, Rockchip KRNL signed ramdisk image files, MTK headers for zImage/ramdisk, and LG Bump/Samsung SEAndroid footers for boot.img.

The main advantage here is you don’t need Cygwin shell or PERL scripts. Other guides exist but none of them are universal for target device, compression and/or developed for Windows, Android ARM/x86/MIPS + ARM64/x86_64/MIPS64, and now macOS. With this universality in mind I’ve automated the whole process with batch/shell scripts.

My development work on my many projects comes out of my free time, so if you enjoy this project or anything else I’ve done on xda, please consider sponsoring my ongoing work using my GitHub Sponsors profile. For a one-time donation you can hit the donate link from my profile. Thank you for your support!

1) Unzip.
2) Either use the command-line «unpackimg «, or simply drag-and-drop the image. This will split the image and unpack the ramdisk to a subdirectory.
3) Alter the ramdisk as you like.
4) The repackimg batch script requires no input and simply recombines the previously split zImage with the newly packed modified ramdisk using all the original image information (which was also split and saved).
5) The cleanup batch script resets the folder to its initial state, removing the split_img+ramdisk directories and any new packed ramdisk or image files.

There are a few optional, advanced command-line arguments for repackimg: «—original», which will cause it to repack using the original split ramdisk instead of repacking, this is useful for testing or trimming dumps; «—origsize», which will cause it to repack then pad it to the size of the original image, this is useful for repacking dumps to then be fastboot flashed; «—level» with 1-9 and possibly 0 allows changing the compression level used to repack to more closely match the original; «—avbkey» with (optionally path and) a keyname allows changing from the default AOSP verity key; «—forceelf» to make an older unpacked Sony ELF file repack as an ELF.

All scripts also allow unpacking/repacking with the current directory instead of the AIK directory if «—local» is the first command-line argument.

Usage is similar for the Android and Linux versions, again, just review the release notes for them.

Hopefully this is some help to someone. It’s been extremely useful for me in my messing around with kernel ramdisks, which is why I created it in the first place.

Читайте также:  Windows server 2008 r2 standard настройка

Enjoy!
Questions, comments and feedback welcome.

Credits & Thanks: All authors of the included binaries and libraries for their amazing work, as linked (or linked via GitHub) above. Peteragent5, alansj & iridaki for the general methods used in their PERL scripts and Linux guides. SuperR. & tobias.waldvogel for the general methods used in their kernel.elf unpacking scripts. _that and rayman for the general methods used to repack a working boot.blob. Chainfire for the ChromeOS and SEAndroid general methods. cybojenix for the Bump general method. xyz` & k4y0z for the amonet general method.

Thanks to Goatshocker for testing out things for the HTC image issues, leading to the workaround and subsequent fix, avinashrocks1990 & tajimura for testing out compression support and the large pagesize fix, civato for testing out dtb support, talich for testing out the Linux version, shoey63 for testing out Linux + ELF support, moonbutt74 for testing out Android-x86 support, nathanchance for testing out the new AIK-mobile cpio method on his Pixel 2, leading to important fixes for its support, and shakalaca for the great help with completing and testing Intel OSIP support. Huge thank you to trevd and Modding.MyMind/SHM for all the contributing work they’ve each done and support they’ve provided.

Disclaimer: Naturally, you take all the responsibility for what happens to your device when you start messing around with things.

Attachments

osm0sis

Senior Recognized Developer / Recognized Contribut

AIK should be universal for devices that accept Android, ELF, OSIP, U-Boot and KRNL format images in theory, but there is always a chance it doesn’t work for your device due to image packing differences, etc. Here is a running list of confirmed working and questionably/confirmed not working devices. If your device isn’t in either list odds are that it will still work fine.

Known Working Devices

Everyone please let me know if AIK works for your devices or if you encounter any problems, so I can make these lists more comprehensive.

If you are reporting a problem with your device, please clearly state your device name and model/variant as well as provide a link to the image file.

dancer_69

Senior Member

osm0sis

Senior Recognized Developer / Recognized Contribut

Was the image in the same directory as the batch files? If so then PM me a link to the image, if not, copy it in and try again.

dancer_69

Senior Member

trevd

Inactive Recognized Developer

My initial intention with this was to gather Windows ports of the necessary Linux utils for Android image (kernel/recovery) mod work with as few dependencies (like Cygwin, etc.) as possible. Here’s what I ended up with:

As you can see, in the end I did have to include Cygwin for mkbootimg since the huaixzk standalone version doesn’t appear to work for some reason. I’ve left a note with the author and will update the package to remove Cygwin if he ever fixes the issue. As it is, I’ve included the cygwin1.dll as it’s the only one required, and grabbed the working Cygwin-dependent executable from another thread.

I like what you’re doing here, cygwin dependencies are no good. native on whatever platform you’re using is the way to go. with that in mind here’s a mkbootimg compiled from the aosp source tree.using the MIN_GW toolchain, not a cygwin in sight

not tested it but should be alright for you. I think I’ll finish the job and smash it althought into one tool, saving f***king about., it’ll will come in useful on linux too

Attachments

osm0sis

Senior Recognized Developer / Recognized Contribut

Crap. I’ll take it down for now and do some testing. Might be a few days. Things were working over here with the few images I’d tried before. Maybe I messed something up once the scripts got more robust. Batch is an ugly way to do things.

Thanks for the help testing.

I like what you’re doing here, cygwin dependencies are no good. native on whatever platform you’re using is the way to go. with that in mind here’s a mkbootimg compiled from the aosp source tree.using the MIN_GW toolchain, not a cygwin in sight

not tested it but should be alright for you. I think I’ll finish the job and smash it althought into one tool, saving f***king about., it’ll will come in useful on linux too

Thanks bro! I’ll throw that in with the new (hopefully working) version. :good:

And hey go ahead and finish the job if you like. Coding is better than scripting so I’d be happy to get a mod to remove this thread once something better comes along.

osm0sis

Senior Recognized Developer / Recognized Contribut

Alright people, sorry about those initial issues. OP updated with the new, fully working, v1.0. There was just some craziness in the one before with cpio not behaving like it should.

It’s all Cygwin for now but trevd has been great and offered to port some things over properly while weeding out the issues, so expect a new release, completely dependency free and automated as always in the coming months, all thanks to him.

ZeRo2o9

Senior Member

Goatshocker

Senior Member

osm0sis

Senior Recognized Developer / Recognized Contribut

ZeRo2o9

Senior Member

Yes i confirm it worked for me on htc vivid jellybean

Sent from my HTC Vivid 4G

trevd

Inactive Recognized Developer

This is just «finger in the air» guessing but just something I’ve noticed :laugh:

osm0sis

Senior Recognized Developer / Recognized Contribut

This is just «finger in the air» guessing but just something I’ve noticed :laugh:

No that doesn’t seem to be the issue here, though I think that’s what the issue was when I was using the gnuwin32 cpio. I was also worried about permissions being set correctly but I haven’t seen any issues with that yet either. I just made sure of both by unpacking and repacking the maguro CWM recovery image then flashing it to my device, and both symlinks and permissions are restored correctly in the filesystem. What’s going on with Goatshocker’s One S is a bit more bizarre.

Oddly enough, even just recombining the original zImage and ramdisk from split_img doesn’t work for him, meaning it’s either unpackbootimg, or more likely mkbootimg at fault. All the commandline variables match for the original and built images (cmdline, pagesize, base), and I’ve tried the Cygwin executable and the native one you posted, so it’s leading me to believe there is something different about how images must be packaged for the HTC One S. Another One S user that can confirm would be good though.

trevd

Inactive Recognized Developer

I’ve just done this with an HTC Sensation stock boot image and it unpacked alright after that. not sure about repacking though

Читайте также:  Epson 1660 photo драйвер windows 10

You can check if an additional header is present by opening the boot image in an hex editor, A standard boot image starts with the android magic, which is the byte sequence

This spells ANDROID! in ascii text. If it doesn’t you can normally strip the additional header without any problems.

Looking at the various boot images in my htc sensation backups it seems my CM boot images don’t have the special header..
HTC do have some specialness going on with the S-ON/OFF business etc but I’d just be speculating If I said anymore as my knowledge of the htc boot sequence is limited.

osm0sis

Senior Recognized Developer / Recognized Contribut

Goatshocker

Senior Member

osm0sis

Senior Recognized Developer / Recognized Contribut

Was looking into this again today and found a nice build.sh on the One S Fusion Kernel github..

The mkbootimg command does have an extra parameter:

Not yet sure if that ramdiskaddr is the magic difference or not. That ramdiskaddr parameter doesn’t even exist in any win32 compile I’ve seen of mkbootimg. I just downloaded a few images (the Dark Jelly ones we tested before) to hexedit and compare. I’ll post again shortly on that.

osm0sis

Senior Recognized Developer / Recognized Contribut

Took a look with HxD and «ANDROID!» is present in all of them, so it’s not the HTC header problem.

Since repacking the original ramdisk still wouldn’t boot for the HTC One S in my tests with Goatshocker (which is crazy because it should all be exactly the same), I did just that with Fusion v3.2 and then ran a diff on the original and repack. Doing the same for a GN kernel produces zero differences, ie. the files are identical, but interestingly enough for the One S images there is a single difference, and it’s in the header.

fv32-boot.xxd versus repack-boot.xxd:

Same change with the TWRP recovery images for the One S (ville) and One X (evita). So somehow I believe that’s our problem with certain HTC devices. No idea why such a thing would occur. I looked into S-ON a bit and it seems that’s controlled from the radio, and would prevent the image from being written, so it shouldn’t have to do with that either. Perhaps it has to do with that extra ramdiskaddr parameter somehow affecting the header.

I could write an extra batch file that flips that byte as a workaround, but I’d prefer to actually figure out why it happens and fix that..

osm0sis

Senior Recognized Developer / Recognized Contribut

OP updated with the workaround zip, instructions in the 2nd post. Tested and working fully, many thanks to Goatshocker for the assistance. :good:

Any ideas or leads on why this single byte difference would occur are welcome, but in the meantime the workaround should make this «universal» again.

Similar threads

Top Liked Posts

They added terminfo for nano, and it includes files with the same name except for case, and of course Windows doesn’t handle those. Pretty much nothing I can do about that other than suggest you use AIK-mobile or AIK-Linux instead;
maybe AIK-Linux would work on WSL2?

The errors could likely be ignored without issue since those are all terminfo setups that will never be used on Android.

You could also try this registry hack, but I definitely won’t be forcing that on everybody:

Alright, thanks! I’ll make the switch and see how it goes.

EDIT: Made the change manually in regedit, but the warnings still popped up. I’ll try rebooting once just because Windows can be finicky that way.

Windows ports of the necessary Linux utils for Android image (kernel/recovery) mod work:

See the Mobile Edition (AIK-mobile) initial release notes for the specifics on the native Android version.
Likewise for the Linux/macOS Edition (AIK-Linux) initial release notes.

My original intent was to have this package dependency-free, but as you can see, I did have to include Cygwin. Initially just for mkbootimg since the huaixzk standalone version wouldn’t work (it wasn’t loading the kernel as binary, thanks trevd); then I discovered that using the GNUWin32 cpio to unpack somehow didn’t play nice with repacking the ramdisk in a usable state, so at that point I decided I might as well go Cygwin across the board. As it is, I’ve included the latest Cygwin-dependent executables and required libraries from their repos and built my own custom Cygwin image and ramdisk utilities built from the latest sources.

Originally only for Google Pixel/Nexus/AOSP standard boot.img files, built-in support has now expanded to Android Verified Boot (AVBv1)/ChromeOS/SignBlob signed boot.img files, Barnes & Noble Nook «Green Loader» signed boot.img files, Samsung/Spreadtrum DHTB header signed boot.img files, the Samsung/Marvell PXA1088/1908 board boot.img variant (AOSP-PXA), Loki patched boot.img files, amonet patched boot.img files, Sony SIN signed/packaged kernel.elf extraction, Sony ELF kernel.elf files, Intel OSIP Android image files, DENX U-Boot uImage files, Rockchip KRNL signed ramdisk image files, MTK headers for zImage/ramdisk, and LG Bump/Samsung SEAndroid footers for boot.img.

The main advantage here is you don’t need Cygwin shell or PERL scripts. Other guides exist but none of them are universal for target device, compression and/or developed for Windows, Android ARM/x86/MIPS + ARM64/x86_64/MIPS64, and now macOS. With this universality in mind I’ve automated the whole process with batch/shell scripts.

My development work on my many projects comes out of my free time, so if you enjoy this project or anything else I’ve done on xda, please consider sponsoring my ongoing work using my GitHub Sponsors profile. For a one-time donation you can hit the donate link from my profile. Thank you for your support!

1) Unzip.
2) Either use the command-line «unpackimg «, or simply drag-and-drop the image. This will split the image and unpack the ramdisk to a subdirectory.
3) Alter the ramdisk as you like.
4) The repackimg batch script requires no input and simply recombines the previously split zImage with the newly packed modified ramdisk using all the original image information (which was also split and saved).
5) The cleanup batch script resets the folder to its initial state, removing the split_img+ramdisk directories and any new packed ramdisk or image files.

There are a few optional, advanced command-line arguments for repackimg: «—original», which will cause it to repack using the original split ramdisk instead of repacking, this is useful for testing or trimming dumps; «—origsize», which will cause it to repack then pad it to the size of the original image, this is useful for repacking dumps to then be fastboot flashed; «—level» with 1-9 and possibly 0 allows changing the compression level used to repack to more closely match the original; «—avbkey» with (optionally path and) a keyname allows changing from the default AOSP verity key; «—forceelf» to make an older unpacked Sony ELF file repack as an ELF.

Читайте также:  Nvidia gtx 1070 driver windows 10

All scripts also allow unpacking/repacking with the current directory instead of the AIK directory if «—local» is the first command-line argument.

Usage is similar for the Android and Linux versions, again, just review the release notes for them.

Hopefully this is some help to someone. It’s been extremely useful for me in my messing around with kernel ramdisks, which is why I created it in the first place.

Enjoy!
Questions, comments and feedback welcome.

Credits & Thanks: All authors of the included binaries and libraries for their amazing work, as linked (or linked via GitHub) above. Peteragent5, alansj & iridaki for the general methods used in their PERL scripts and Linux guides. SuperR. & tobias.waldvogel for the general methods used in their kernel.elf unpacking scripts. _that and rayman for the general methods used to repack a working boot.blob. Chainfire for the ChromeOS and SEAndroid general methods. cybojenix for the Bump general method. xyz` & k4y0z for the amonet general method.

Thanks to Goatshocker for testing out things for the HTC image issues, leading to the workaround and subsequent fix, avinashrocks1990 & tajimura for testing out compression support and the large pagesize fix, civato for testing out dtb support, talich for testing out the Linux version, shoey63 for testing out Linux + ELF support, moonbutt74 for testing out Android-x86 support, nathanchance for testing out the new AIK-mobile cpio method on his Pixel 2, leading to important fixes for its support, and shakalaca for the great help with completing and testing Intel OSIP support. Huge thank you to trevd and Modding.MyMind/SHM for all the contributing work they’ve each done and support they’ve provided.

Disclaimer: Naturally, you take all the responsibility for what happens to your device when you start messing around with things.

AIK should be universal for devices that accept Android, ELF, OSIP, U-Boot and KRNL format images in theory, but there is always a chance it doesn’t work for your device due to image packing differences, etc. Here is a running list of confirmed working and questionably/confirmed not working devices. If your device isn’t in either list odds are that it will still work fine.

Known Working Devices

Everyone please let me know if AIK works for your devices or if you encounter any problems, so I can make these lists more comprehensive.

If you are reporting a problem with your device, please clearly state your device name and model/variant as well as provide a link to the image file.

Android ARM/ARM64, x86/x86_64 + MIPS/MIPS64 version of Android Image Kitchen! Now you can easily modify ramdisks on the go!

Now also possible to run entirely from a file explorer app, see this post for details!

To run from TWRP (recovery shell), follow the instructions in this post.

Originally all but busybox were compiled natively on my Nexus 7 2013 using a KBox2 build environment, now cross-compiled with the NDK on my PC and my own AIK Build Farm.

Notes: You may delete /data/local/AIK-mobile/bin/busybox if you want to use your ROM’s busybox instead.

Linux will be next on the list, and should be pretty easy since I did all of the shell script leg work with the Android version. :good:

If you are reporting a problem with your device, please clearly state your device name and model/variant as well as provide a link to the image file.

Another longtime request. New Linux version of Android Image Kitchen up in the OP! Bringing my updated binaries back home!

Now also supporting macOS out-of-the-box (i.e. no Homebrew or MacPorts addons needed) with v3.0+!

Most included binaries were compiled using my patched crosstool-ng i686 and x86_64 Cygwin to Linux cross-compiler toolchains, now as part of my own AIK Build Farm.

macOS compiles built with osxcross. Instructions available via my Build Farm post.

I’m not going to interfere with anyone’s Linux installations, nor needlessly bundle a ton of commonly available binaries, so if you need extra compression support you need to have those packages installed. In my Ubuntu Server VM gzip, bzip2 and xz/lzma all seem to come pretty much by default, and «apt-get install lzop» handles lzop. Java depends on your setup, but openjdk-8-jre will be what most will want if not already included. lz4 would be the only one that would have to be built from source on many distros, so I have considered it an exception, built it and included it myself.

Thanks to shoey63 and talich for testing. Cheers!

If you are reporting a problem with your device, please clearly state your device name and model/variant as well as provide a link to the image file.

It’s been a busy few weeks!

After a Herculean effort to get the DENX U-Boot utilities to build with the NDK, which required me firing up my Ubuntu VM (for more than testing for once) and then hacking both the NDK toolchains and tool sources, say hello to U-Boot support! It’s a *nix standard, and pretty rare on Android but it does exist (e.g. LG Optimus 3D) and I’m extremely pleased to add support for this completely different type of image format to AIK!

I then added support for the Samsung/Marvell variant of the AOSP standard for their pxa1088 board, which I’ve termed «AOSP-PXA», by updating a modified bootimg tools fork to continue the excellent work done by @ketut.kumajaya and @akuhak. There aren’t a lot of known examples of these either (e.g. Samsung Galaxy Core Mini 4G, Samsung Galaxy Tab 4 7.0 & Samsung Galaxy Xcover 3) but it was pretty straightforward and removes another entry from the «Confirmed Not Working» list in the OPs.

Next up, Sony SIN packaging/signature unpack support, thanks to the brilliant research and development of @munjeni for his closed-source kernel_dump binary, of which he also supplied the builds.

Per usual, the AIK Build Farm has been updated accordingly. Enjoy!

NOTE: Downloads have switched to being hosted on the XDA DevDB Project Downloads page since AIK-mobile now exceeds the 20mb zip attachment size limit.

I work on these projects in my limited time off, so if you like the progress I’m making, or enjoy anything else I’ve done on xda, please do hit the donate link from my profile. Thanks for your support!

Installation information and details on each edition can be found in the OP for Win32 or the AIK-mobile and AIK-Linux initial release notes.

If you are reporting a problem with your device, please clearly state your device name and model/variant as well as provide a link to the image file.

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector