Program az img kiterjesztésű firmware-rel rendelkező táblagép villogásához. Img firmware szerkesztése. Az ext4 rendszerkép szétszerelése

Az MTwinTools egy segédprogram, amely lehetővé teszi a boot.img, recovery.img és system.img firmware-fájlok és -képek kezelését. A segédprogram szerzője vin2809 a 4pda fórumról. Az MTwinTool hasznos lesz a tulajdonosok számára Huawei okostelefonok MTK processzorokra épül.

Használati útmutató az MTwinTools használatához

1. Bemutatkozás.

1.1. Célja.

Az MTwinTools eszköz az MT chipeken alapuló eszközök képeinek szétszedésére/összeállítására szolgál.

Beltéri használatra készült parancs sor az RKwinTools eszközön alapul, amelyet RK29xx-RK31xx lapkán lévő eszközökkel és néhány szabadon terjesztett programra terveztek.

Csak Windows 7 és újabb alatt működik a CYGWIN telepítése nélkül, és nem igényel további útvonalak regisztrációját Környezeti változók OS.

Az eszköz lehetővé teszi, hogy:

  • csomagolja ki és csomagolja be a Boot.img képet;
  • csomagolja ki és csomagolja be a Recovery.img képet;
  • csomagolja ki és csomagolja be a Kernel.img képet;
  • csomagolja ki és csomagolja be a System.img képet, mind a yaffs típusú, mind az ext2-ext4;
  • konvertálja a ritka típusú sparse fájlt ext4 típusú képpé;
  • kiszámítja egy fájl ellenőrző összegét md5 formátumban;
  • kezdeményezni a SuperUser-t.

1.2. Az MTwinTools telepítése.
Az eszköz telepítése az archívum kicsomagolásával történik az Ön számára megfelelő helyen. Ezzel létrehoz egy MTwinTools mappát, amely a következőket tartalmazza:

  • mappák _In/, App/ és Cygwin/;
  • valamint a Readme.txt és a menu.bat fájlokat.

A _In mappa üres, és a feldolgozáshoz szükséges forrásképeket tartalmazza. Az App/mappa parancsfájlokat tartalmaz, amelyek képeket dolgoznak fel. A Cygwin/ mappa szabadon terjeszthető segédprogramkönyvtárakat és fájlokat tartalmaz. A Readme.txt fájl felhasználói utasításokat tartalmaz, pl. az éppen olvasott szöveget. A menu.bat fájl az MTwinTools eszköz menüjének létrehozására szolgál.

FIGYELEM. NEM SZÜKSÉGES a szolgáltatásfájlok elérési útvonalának megadására a Windows operációs rendszer környezeti változóiban.

Munka közben további szükséges mappák jelennek meg:

  • Csomag, amely azután tartalmazza a rendszerindítási, helyreállítási és rendszerfájlokat
    csomagok, egy ellenőrző összegű fájlokat tartalmazó md5 mappa, valamint egy mappa
    Firmware, amelynek Image almappájában az összeállított rendszerindító fájlok lesznek,
    Helyreállítás és rendszer;
  • Kicsomagolás, amelyben a rendszerindítási, helyreállítási és rendszerfájlok TELJESEN ki vannak csomagolva
    a Firmware mappában, a Kép almappában található.

1.3. Az MTwinTools eltávolítása.

Az eszköz eltávolítása az eszköz gyökérmappájának törlésével történik, pl. MTwinTools mappák.

2. A munkavégzés alapvető szabályai.

2.1.A kezdéshez futtassa a menu.bat fájlt, amely elindítja az eszköz menüt.

2.2.A kicsomagolásra szánt képeket az eszköz _In mappájába kell helyezni. A bemeneti fájlok nevének KELL kulcsszavakat tartalmaznia, és a következőhöz hasonló nevek lehetnek:

  • *boot*.img;
  • *helyreállítás*.img;
  • *kernel*.img;
  • *rendszer*.img.

2.3.Az első indításkor inicializálja a szerszámot. Az eszköz inicializálása után a _In mappában található ÖSSZES fájl át lesz másolva a Kicsomagolás/Firmware/Kép munkabemeneti mappába. Ez az eredeti fájlok megőrzése érdekében történik.

2.4.A kép kibontása után annak tartalma a Kicsomagolás mappába kerül, amelyben az alábbi mappastruktúra jön létre:

Boot(helyreállítás)/cfg/
kernel/
ramdisk/

A cfg/ mappa tartalmazza majd a képbeállításokat, a kernel mappában találod a kernelt, pl. zImage bináris fájl, és a ramdisk mappa minden mást tartalmazni fog. A kép összeállításához, annak alkotóelemei, pl. Helyezze el a ramdisket, a kernelt és esetleg a beállításokat a Kicsomagolás megfelelő mappáiba. A létrehozott kép a Pack kimeneti mappában található.

3. A termék leírása.

3.1. Fő parancsmenü.

Az eszközparancsok főmenüje így néz ki:

**************************
* MTwinTools_V_0.6 *
**************************
*Képparancsok:*
* ————— *
*1-Boot*
*2-Helyreállítás*
*3-Kernel*
*4-Rendszer*
*5-Egyéb parancsok*
* *
**************************
* Tools parancsok: *
* ————— *
*6-Init Tools*
*7-Tiszta*
* *
**************************
*8-Kilépés*
**************************
Kérjük, válassza a parancsot:

A parancs kiválasztása az előtte jelzett szám beírásával történik. A jelenlegi verzióban a következőket teheti:

— lépjen a Boot képfeldolgozás menübe az „1” szám beírásával;
— lépjen a Helyreállítási képfeldolgozás menübe – „2”;
— lépjen a Kernel képfeldolgozási menüjébe — „3”;
— lépjen a Rendszer képfeldolgozás menübe – „4”;
— lépjen a többi parancs menüjébe — „5”;
- inicializálja a szerszám munkaterületét - „6”;
- tisztítsa meg a termék munkaterületét - „7”;
— befejezni a munkát, azaz. kilép a létesítményből - „8”.

3.2. Rendszerinditási menü.

A rendszerindító lemezkép feldolgozásához futtassa az „1-Boot” parancsot. Ezzel a „Boot parancsok” menübe kerül.

A Boot képfeldolgozó menü így néz ki:

**************************
* Indító parancsok: *
* ————— *
*1 - Boot kicsomagolás*
*2 csomagtartó*
* *
**************************
*3-Vissza*
**************************
Kérjük, válassza a parancsot:

Az „1” parancs kicsomagolja a rendszerindító képeket, a „2” parancs pedig a rendszerindító képeket. A „3” parancs visszatér az eszköz főmenüjébe.

2.2.1. A boot.img kép szétszerelése.

2.2.2. Készítse el a boot.img képet.

A rendszerindító lemezkép összeállításakor megjelenik egy menü az adatforrás kiválasztásához.

**************************
* Választható forráskép: *
* 1. Csomagolja ki a mappát *
* 2. Csomagolási útmutató *
*3.Vissza*
**************************
Kérem válasszon forrást:

Lehetősége van az Unpack/Boot mappában található kicsomagolt képből képet készíteni ehhez válassza az „1. Csomagold ki a dirt.” Ha a „2. Pack dir", akkor a kép a Pack/boot mappában található adatokból jön létre. A művelet megszakításához válassza a „3. Visszatérés". Ugyanakkor te
térjen vissza a „Boot parancsok” menübe.

3.3. Helyreállítás menü.

A helyreállítási lemezkép feldolgozásához futtassa a „2-Recovery” parancsot. Ezzel a „Helyreállítási parancsok” menübe kerül. A Helyreállítási képfeldolgozás menü így néz ki:

**************************
* Helyreállítási parancsok: *
* —————— *
* 1-Recovery kicsomagolás *
* 2-helyreállító csomag *
* *
**************************
*3-Vissza*
**************************
Kérjük, válassza a parancsot:

Az „1” parancs kicsomagolja a helyreállítási képeket, a „2” parancs pedig a helyreállítási képeket. A „3” parancs visszatér az eszköz főmenüjébe.
2.3.1. A recovery.img kép szétszerelése.

Minden művelet automatikusan történik, pl. A részvételed nélkül nincs itt mit leírni.

2.3.2. Készítse el a recovery.img képfájlt.

A helyreállítási kép elkészítésekor megjelenik egy menü az adatforrás kiválasztásához.

**************************
* Választható forráskép: *
* 1. Csomagolja ki a mappát *
* 2. Csomagolási útmutató *
*3.Vissza*
**************************
Kérem válasszon forrást:

Lehetősége van a Kicsomagolás/helyreállítás mappában található kicsomagolt képből képet készíteni ehhez válassza az „1. Csomagold ki a dirt.” Ha a „2. Pack dir", akkor a kép a Pack/Recovery mappában található adatokból jön létre.

A művelet megszakításához válassza a „3. Visszatérés". Ezzel visszatér a „Helyreállítási parancsok” menübe.

3.4. Kernel menü.

A kernelkép feldolgozásához futtassa a „3-Kernel” parancsot. Ezzel a „Kernel parancsok” menübe kerül.

A Kernel képfeldolgozó menüje így néz ki:

**************************
* Kernel parancsok: *
* —————— *
* 1 - Kernel kicsomagolása *
*2-kernel csomag*
* *
**************************
*3-Vissza*
**************************
Kérjük, válassza a parancsot:

Az „1” parancs kicsomagolja a kernelképeket, a „2” parancs pedig a kernelképeket. A „3” parancs visszatér az eszköz főmenüjébe.

3.4.1. A kernel.img kép szétszerelése.

Minden művelet automatikusan történik, pl. A részvételed nélkül nincs itt mit leírni.

3.4.2. A kernel.img kép elkészítése.

A kernel kép elkészítésekor megjelenik egy menü az adatforrás kiválasztásához.

**************************
* Választható forráskép: *
* 1. Csomagolja ki a mappát *
* 2. Csomagolási útmutató *
*3.Vissza*
**************************
Kérem válasszon forrást:

Lehetősége van a Kicsomagolás/Kernel mappában található kicsomagolt képből képet készíteni ehhez válassza az „1. Csomagold ki a dirt.” Ha a „2. Pack dir", akkor a kép a Pack/Kernel mappában található adatokból jön létre.

A művelet megszakításához válassza a „3. Visszatérés". Ezzel visszatér a „Kernel parancsok” menübe.

3.5. Menürendszer.

A rendszerkép feldolgozásához futtassa a „3-System” parancsot. Ezzel a „Rendszerparancsok” menübe kerül.

A Rendszer képfeldolgozás menü így néz ki:


* Rendszerparancsok: *
* ——————————————— *
* 1 csomagos yaff * 2 csomagos yaff *
* 3 kicsomagolt ext3 * 4 csomagos ext3 *
* 5 kicsomagolt ext4 * 6 csomagos ext4 *
* 7 ritka - ext4 * *
* * *
***************************************************
*8-Vissza*
***************************************************
Kérjük, válassza a parancsot:

3.5.1. Rendszerkép szétszedése, mint a yaffs.

Az „1” parancs kicsomagolja a yaffs típusú rendszerképeket a Kicsomagolás/Rendszer mappába.

3.5.2. Rendszerképet építeni, mint a yaffs.

A „2” parancs a yaffs típusú rendszerképeket csomagolja. Megjelenik egy menü az adatforrás kiválasztásához.

**************************
* Választható forráskép: *
* 1. Csomagolja ki a mappát *
* 2. Csomagolási útmutató *
*3.Vissza*
**************************
Kérem válasszon forrást:

Lehetősége van a Kicsomagolás/rendszer mappában található kicsomagolt képből képet készíteni ehhez válassza az „1. Csomagold ki a dirt.” Ha a „2. Pack dir", akkor a kép a Pack/system mappában található adatokból jön létre.

A művelet megszakításához válassza a „3. Vissza” és visszatér az előző „Rendszerparancsok” menühöz.

3.5.3. Az ext3 típusú rendszerkép szétszerelése.

A „3” parancs kicsomagolja az ext2-ext3 típusú rendszerképeket a Kicsomagolás/Rendszer mappába.

3.5.4. Ext3 típusú rendszerkép készítése.

A „4” parancs létrehozza az ext2-ext3 típusú rendszerképet. A csomagolás a 3.5.2. ponthoz hasonlóan történik. csak a kimeneti kép lesz ext3 típusú.

3.5.5. Az ext4 típusú rendszerkép szétszerelése.

Az „5” parancs kicsomagolja az ext4 rendszerképeket a Kicsomagolás/Rendszer mappába.

3.5.6. Ext4 típusú rendszerkép készítése.

A „6” parancs létrehozza az ext4 típusú rendszerképet. A csomagolás a 3.5.2. ponthoz hasonlóan történik. csak a kimeneti kép ext4 típusú lesz.

3.5.7. A ritkán tömörített kép konvertálása ext4-re.

A „7” parancs átalakítja (konvertálja vagy átkódolja) a ritka típusú tömörített képeket ext4 típusú képekké (a simg2img művelethez hasonlóan).

3.5.8. Visszatérés a főmenübe.

A „8” parancs visszatér az eszköz főmenüjébe.

3.6. Egyéb parancsok menüje.

Az egyéb parancsok végrehajtásához való továbblépéshez hajtsa végre az „5-Other commands” parancsot. Ezzel az „Egyéb parancsok” menübe kerül. A többi parancs végrehajtásának menüje így néz ki:

**************************
* Egyéb parancsok: *
* —————- *
*1-Init SuperUser*
* 2-Md5 kiszámítása *
* *
**************************
*3-Vissza*
**************************
Kérjük, válassza a parancsot:

Az „1” parancs inicializálja a SuperUser-t a rendszerképben, a „2” parancs pedig a fájl ellenőrző összegét számítja ki. A „3” parancs visszatér az eszköz főmenüjébe.

3.6.1. SuperUser inicializálás.

A SuperUser inicializálása során megjelenik egy forrásválasztó menü:

**************************
* Választható forráskód: *
* 1. Csomagolja ki a mappát *
* 2. Csomagolási útmutató *
*3.Vissza*
**************************
Kérem válasszon forrást:

Lehetősége van a Kicsomagolás/rendszer mappában található kicsomagolt kép inicializálására, ehhez válassza az „1. Csomagold ki a dirt.” Ha a „2. Pack dir", akkor a Pack/system mappában található kép inicializálódik. A művelet megszakításához válassza a „3. Visszatérés".
Az inicializálás másolással történik szükséges fájlokat(su és SuperSU.apk) a szétszerelt System.img képbe. Root hozzáféréshez a következőkre van szüksége:

— csomagolja ki a rendszerképet a főmenü „3” parancsával
eszközöket, vagy helyezze a kicsomagolt képet a Kicsomagolás (vagy Pack)/Rendszer/ mappába;
— hajtsa végre az „1-init SuperUser” parancsot az „Egyéb parancsok” menüben.

A System.img kép felvillantása után root hozzáféréssel fog rendelkezni az eszközön. Ha más verziójú fájlokat használnak a root hozzáférés megszerzéséhez az eszközön, akkor csak frissítenie (cserélnie) kell az App/ mappában található su és SuperSU.apk fájlokat.

3.6.2. Ellenőrzőösszeg számítás.

Egy fájl vagy fájlok ellenőrző összegének kiszámításához helyezze őket a Pack/md5/ mappába. A „2-Calculate md5” parancs végrehajtása után a Pack/md5 mappában található összes fájl hozzáadódik. csekk összeg, md5 algoritmussal számolva. Csak az .img, .tar, .zip kiterjesztéssel rendelkező fájlok kerülnek feldolgozásra.

3.7. Inicializálás.

Az inicializálás végrehajtásához futtassa a „6-init Tools” parancsot. Ez létrehozza az MTwinTools működéséhez szükséges összes mappastruktúrát, és a bemeneti képeket a Kicsomagolás/Firmware/Kép munkamappába másolja.

3.8. Tisztítószer.

A munkaterület törléséhez írja be a „7-CLEAN” parancsot. Ebben az esetben az ÖSSZES további mappa a tartalommal együtt törlődik, az MTwinTools eszköz befejezi munkáját, és a telepítés után azonnal a régi formáját ölti.

3.9. Kijárat.

A kilépéshez tárcsázza a „8-Exit” gombot. Ebben az esetben CSAK a termék kerül ki tisztítás nélkül.

Interpoláció, interpoláció- a számítási matematikában egy mennyiség köztes értékeinek megtalálásának módszere az ismert értékek meglévő diszkrét halmazából.

A tudományos és mérnöki számításokkal foglalkozók közül sokan gyakran empirikusan vagy véletlenszerű mintavétellel nyert értékkészletekkel dolgoznak. Általában ezekre a halmazokra alapozva meg kell alkotni egy függvényt, amelybe más kapott értékek nagy pontossággal eshetnek. Ezt a feladatot az ún közelítés. Az interpoláció egy olyan közelítés, amelyben a megszerkesztett függvény görbéje pontosan áthalad a rendelkezésre álló adatpontokon.

Számos véges különbségű interpolációs módszer létezik. A legtöbb
Elterjedt a Newton-féle előremenő interpolációs módszer (Newton-Gregory módszer). Az interpolációs polinom ebben az esetben a következőképpen alakul:

A C együtthatókat a következő képlettel találjuk meg:

A program megvalósítása C# nyelven:
Rendszer használata; névtér Interpoláció ( osztály Program…

Rendezési algoritmusok megjelenítése

A program két szálra oszlik, amelyek közül az egyikben a rendezés, a másikban az újrarajzolás történik GUI. A „Rendezés” gomb megnyomása után a program meghívja a „RunSorting” metódust, amelyben a rendezési algoritmus definiálódik, és egy új szál jön létre, amelyben a rendezési folyamat fut.
privát üres RunSo…

Kacher Brovina a KT819G-n

Ma szeretném megmutatni a Kacheremet, amit a múlt téli ünnepeken készítettem. Nem írom le a teljes gyártási folyamatot, mivel sok cikk található az interneten. Csak a főbb paramétereiről írok.

Az alábbiakban néhány fotót láthatunk, amelyek a készülék összeszerelése során készültek.

A tekercset körülbelül 2000 menetnyi 0,08 mm-es huzallal 50 mm átmérőjű és 200 mm magas PVC csőre tekerjük.

Terminálként egy régi lemezt használtak. merevlemez. Minden mást a lap alján található diagram szerint szereltünk össze.

Az első opciót egy régi számítógép tápegységéről táplálták, 12 V-os feszültséggel. Ezután külön tápegység készült, 30 V-os feszültséggel, beépített hűtéssel.

Készülék diagram:

Mi a CORS és hogyan kell használni

A tartományok közötti erőforrás-megosztás (CORS) egy W3C-specifikáció, amely lehetővé teszi a tartományok közötti kommunikációt a böngészőben. Az XMLHttpRequest objektumra építve a CORS lehetővé teszi a fejlesztők számára, hogy ugyanazokkal az idiómákkal dolgozzanak, mint az azonos tartományhoz tartozó kérések. A CORS használati esete egyszerű. Képzelje el, hogy az alice.com rendelkezik bizonyos adatokkal, amelyeket a bob.com szeretne megszerezni. Ez a fajta kérés hagyományosan nem engedélyezett ugyanazon böngésző eredetre vonatkozó szabályzata szerint. Azonban a CORS kérések támogatásával az alice.com hozzáadhat néhány speciális válaszfejlécet, amelyek lehetővé teszik a bob.com számára, hogy hozzáférjen az adatokhoz. Amint ebből a példából látható, a CORS-támogatás koordinációt igényel a szerver és az ügyfél között. Szerencsére, ha Ön ügyféloldali fejlesztő, védve van a legtöbb ilyen részlettől. A cikk további része bemutatja, hogy az ügyfelek hogyan indíthatnak több eredetű kérelmet, és hogyan konfigurálhatják magukat a kiszolgálók a CORS támogatására. Folytatás…

Majdnem mindenki android felhasználó okostelefonnal, felmerült a vágy a firmware létrehozására vagy szerkesztésére, hogy megfeleljen az Ön igényeinek és vágyainak. Ebben a cikkben megvizsgáljuk a firmware CWM (zip formátumban) szerkesztésének elvét.

Készítmény:

Először is el kell döntenünk, hogy melyik firmware-t használjuk alapul. Jobb kikapcsolni. firmware zip-ben. Szinte minden elterjedt eszközhöz van tiszta firmware + root.
A firmware kiválasztásakor le kell tölteni a számítógépén található tetszőleges helyre (nem kell kicsomagolni).
Szükségünk lesz egy archiválóra is, ajánlom a használatát 7zipés a maga nemében a legjobb szöveg szerkesztő Jegyzettömb++.

Firmware felépítése:

Az archívumot a firmware-rel megnyitva a következőket látja:
META-INF- A firmware-telepítési szkriptek a mappában vannak tárolva.
rendszer- egy mappa az összes firmware fájllal (alkalmazások, módosítások, szkriptek stb.).
boot.img- a rendszer magja.

Szinte minden manipulációt a mappában hajtanak végre rendszer, felépítése:
kb- rendszeralkalmazások.
kuka- magának a rendszernek az erőforrásai.
stb- Szkriptek, módosítások, konfigurációk, profilok és rendszerbeállítások.
betűtípusok- Rendszer betűtípusok.
keretrendszer- itt tárolódnak a fő rendszerfájlok (grafikák, animációs szövegbeállítások stb.).
lib- rendszerkönyvtárak.
média- multimédiás fájlok (értesítési csengőhangok, betöltési animáció, háttérkép stb.).
usr- a rendszer által a jövőben nem módosítható beállítások (csak olvasható módban működnek).
xbin- ismét rendszerkonfigurációk és egyéb módosítások.
build.prop- információk a rendszerről, a területi beállításokról és a rendszer teljesítményéről.

Alkalmazások:

Mielőtt szoftvert adna hozzá/eltávolítaná a rendszert, ellenőriznie kell, hogy a firmware deodexált-e (vagyis ellenőrizze, hogy az alkalmazás mappájában vannak-e .odex fájlok. Ha vannak fájlok, akkor itt meg kell szabadulnia tőlük utasítás .
Szoftver hozzáadása a firmware-hez:
Először is telepítenie kell azokat a programokat a smart-ba, amelyeket hozzá szeretne adni az összeállításhoz. Telepítés után a segítségével eltávolítjuk őket a rendszerből Root Explorerés analógjai, az adat/alkalmazás útvonalon találhatók, szükségünk van a lib-jeikre is (természetesen ha vannak), az adat/adatútvonalon találhatók. Az alkalmazás azonos nevű mappájában találhatók, és rendelkeznek a kiterjesztéssel .így. Aztán lefoglalták .apk helyezze el a fájlokat az archívumban a rendszer/alkalmazás elérési útja mentén és a kiterjesztésű fájlokat .így(libs) a system/lib útvonalon.
Eltávolítjuk a szoftvert a firmware-ből:
Itt minden egyszerű, lépjen a mappába kb- eldöntjük, mire nincs szükségünk, és eltávolítjuk az összes felesleges szoftvert (jobb, ha nem nyúlunk a rendszerhez).

Nyelvi és firmware verzió:

Másolja a build.prop fájlt az asztalra. Nyissa meg a jegyzettömbbel, és keresse meg a sorokat:

ro.product.locale.language=en
ro.product.locale.region=USA

az orosz nyelvhez ezt kell tennie:

ro.product.locale.language=en
ro.product.locale.region=RU

írja be a mod nevét a sorba

ugyanabban a felépítésben.prop

Grafika:

A firmware teljes grafikus része két fájlban, framework-res.apk fájlban van tárolva rendszerkeretés a SystemUI.apk fájlt systemapp. A beállítások alkalmazás grafikus része pedig természetesen a Settings.apk alkalmazásban tárolódik.

Szkriptek és módosítások (rendszergyorsítás és -optimalizálás):

A legtöbb beállítás a fájlban történik build.prop, erről olvashatsz. Továbbá, ha a kernel támogatja init.d Számos szkript létezik a rendszer optimalizálására, ezek egyikét ebben a cikkben ismertetjük (RAM optimalizálás)és ebben a cikkben Az init.d szkriptjei módosítása

Rendszer betűtípusok cseréje:

Ahogy fentebb említettük, az összes betűtípus a mappában található betűtípusok, a fő betűtípusok: DroidSans.ttf és DroidSans-Bold.ttf bármilyen betűtípusra lecserélhetők, a fentiekhez hasonlóan átnevezve és cserével áthelyezve az archívumba a mappában lévő firmware-rel betűtípusok.

Mag:

Elméletileg elég kicserélni boot.img saját, de bizonyos esetekben a magokhoz további szkriptek is társulnak. Ezért azt tanácsolom, hogy ne tegyen semmit, ha kétségei vannak.



Kezdjük azzal, hogy szükség van Linuxra. Windowsban csak a firmware-t lehet szétszedni, de pusztán technikai okok miatt nem fogod tudni újra összerakni. Most a firmware-ről. Általában ZIP-archívumok formájában kerülnek terjesztésre, amelyeket egyéni helyreállításon keresztül hajtanak végre. Ezek egyikére lesz szükségünk a kísérletekhez. Azt javaslom, hogy a romodel útját valamivel kezdje, ami a lehető legközelebb áll az AOSP-hez egyedi firmware, mert sokszor könnyebben érthető, mint a készlet.

  1. Csomagolja ki az archívumot a firmware-rel bármelyik mappába.
  2. Töltse le a szkriptet a hivatkozásról, és csomagolja ki bármelyik mappába.
  3. Elindítjuk az ext fájlt (ha a Java hiányára panaszkodik, az y megnyomásával hagyja ki; a Java csak a csomagoláshoz szükséges).
  4. Most válassza ki a kicsomagolást az 1, majd az Enter megnyomásával.
  5. Egy új kivonat_* nevű mappa jelenik meg az ext fájl és az eszközök mappa mellett. Másolja be a system.new.dat és a system.transfer.list fájlokat.
  6. A fájlok másolása után nyomja meg az Enter billentyűt, és várjon. Egy idő után ismét meg kell nyomnia az Enter billentyűt, be kell írnia a rendszergazdai jelszót, és ismét meg kell nyomnia az Enter billentyűt.
  7. Kész. A rendszer tartalma a kivonat_*/output mappában található.

Kézi módszer

Csomagolja ki az archívumot a firmware-rel bármely mappába (például rom):

$ mkdir ~/rom $ kicsomagolás az archívum_útvonala -d ~/rom/

Töltse le a szükséges eszközöket ebbe a mappába:

$ cd ~/rom $ wget https://github.com/xpirt/sdat2img/raw/master/sdat2img.py

Futtassuk a szkriptet:

$ chmod +x sdat2img.py $ ./sdat2img.py system.transfer.list system.new.dat system.img

A system.new.dat fájlt egy system.img nevű nyers képpé alakítja. Illessze be a képet az mnt almappába:

$ mkdir mnt $ sudo mount -t ext4 -o loop system.img ~/rom/mnt

Android címtárszerkezet

A rendszer kicsomagolása után a következő könyvtárstruktúra jelenik meg:

  • kb - előre telepített alkalmazások szabványos jogosultságokkal;
  • priv-app- előre telepített alkalmazások emelt szintű jogosultságokkal, beleértve egyes rendszerelemeket;
  • kuka- bináris fájlok ELF formátumban, a Linux /bin és /usr/bin könyvtárának analógja. Különféle rendszerelemeket tartalmaz, amelyeket magasabb szintű rendszerelemek használnak;
  • stb- beállítási fájlok. A /etc teljes analógja Linuxban, de csak ugyanazok a rendszerkomponensek használják. Android alkalmazások bolt egyéni beállításokat a /data/data/ könyvtárakban;
  • betűtípusok- betűtípusok. Alapértelmezés szerint csak Roboto márkájú betűtípusokat tartalmaz;
  • keretrendszer- a rendszer és az alkalmazások által használt Java osztályok könyvtárai. Van egy framework-res.apk fájl is, amely a felület teljes leírását tartalmazza operációs rendszer, beleértve az összes grafikus fájlt;
  • libÉs lib64- Alacsony szintű rendszerkomponensek által használt Linux könyvtárak. A Linux /lib és /usr/lib könyvtárának analógja, beleértve a következőket szabványos könyvtárak, mint a libc, libz, libssl. Az ARMv7 és régebbi architektúrájú eszközökön a lib64 könyvtár hiányzik;
  • média- médiafájlok: csengőhangok, értesítési hangok, interfész hangok és az operációs rendszer betöltési animációja;
  • tts- a beszédszintetizátorhoz szükséges fájlok;
  • usr- egy könyvtár, amely általában az alkalmazások futtatásához szükséges fájlokat tartalmazza a bin könyvtárból. Lényegében a /usr/share analógja;
  • eladó- az eszköz gyártója által biztosított fájlok. Általában bináris firmware-t tartalmaz különféle hardverösszetevőkhöz, például egy Wi-Fi modulhoz;
  • xbin- opcionális könyvtár; az egyéni firmware-ek olyan dolgok tárolására használják, mint a bash interpreter, SSH, PowerTOP, BusyBox és más hasznos eszközök;
  • build.prop- egy fájl, amely információkat tartalmaz az összeállításról, valamint különféle alacsony szintű beállításokat;
  • addon.d- olyan szkripteket tartalmaz, amelyek a firmware telepítése után indulnak el. A GApps itt is saját szkriptet ír, aminek köszönhetően a firmware újratelepítése után újra életre kelnek.

Most, hogy ismerjük az Android alapvető felépítését, kezdjük el a változtatásokat.

Alkalmazások eltávolítása és hozzáadása

Minden előre telepített programokat két mappában található:

  • /rendszer/alkalmazás/;
  • /rendszer/priv-app/.

A hozzáférési jogosultságokban különböznek egymástól. Ha az alkalmazásból származó programok ugyanazokkal az engedélyekkel rendelkeznek, mint harmadik féltől származó programok(például a Play Áruházból telepítve), akkor a priv-appból származó alkalmazások privilegizált API-kat (kiváltságos jogokat) használhatnak. Erről többet megtudhat a.

Egy alkalmazás firmware-be történő előtelepítéséhez egyszerűen dobja be az APK-fájlt a /system/app/ mappába. Természetesen létrehozhatunk külön mappát is, de a mi esetünkben ennek semmi értelme, mert a mappa könyvtárak és odex fájlok tárolására szolgál, amikkel egyszerűen nem rendelkezünk. Az eltávolításhoz egyszerűen törölje a mappát.

Továbbléphet, és lecserélheti az állományalkalmazásokat analógokra. Például a naptár lecseréléséhez törölje a mappát Naptárés másold a kedvenc com.rpagyc.simplecalendar.apk fájlunkat a /system/app mappába. És nem kell másolni. Ekkor a firmware naptár nélkül lesz.

A legfontosabb dolog, amit emlékezni kell: készletprogramok kapcsolatban lehetnek egymással. Ezért egy program törlése egy másik program teljes működésképtelenségéhez vezethet (például CalendarProvider és Calendar: az első törlésével nem csak a készletnaptárt, hanem minden más naptárat is működésképtelenné tesz). Szerencsére a tiszta AOSP firmware-ben nincs sok összeköttetés.

Betöltési animáció módosítása

Az animációt PNG-képként tárolja a rendszer, tömörítés nélkül a /system/media/bootanimation.zip archívumba csomagolva. Az archívumban a következők találhatók:

  • desc.txt- az animációt leíró fájl;
  • rész0- egy mappa az elsőként lejátszott animációs fájlokkal;
  • 1. rész- egy mappa animációs fájlokkal, amelyek másodikként játszódnak le;
  • rész?- az utolsó mappa, amelyből a képek a végén lejátszásra kerülnek.

A desc.txt fájl tartalmazhat ilyesmit

1920 1080 60 p 1 0 rész0 p 0 0 rész1

E sorok célja intuitív: 1920 × 1080 a képfelbontás, 60 a másodpercenkénti képkockák száma. Part0 és part1 jelzi azokat a mappákat, amelyekből az animációt lejátszani fogja, és a lejátszási sorrendet. Általában egy vagy több (három vagy több) rész lehet.

Az alkatrészmappákban található képek lejátszási sorrendben öt számmal vannak számozva: 00000.png, 00001.png, 00002.png... Ezek a képek lecserélhetők saját készítésűre, ezzel eredeti animációt készítve. Vagy egyszerűen törölheti a bootanimation.zip fájlt. Ezután az eszköz a szabványos Android animációit jeleníti meg. Vagy használjon egy kész animációgyűjteményt a w3bsit3-dns.com oldalon.

A hangterv megváltoztatása

Valójában a rendszer által lejátszott összes hang a /system/media/audio mappában van tárolva. Belül a következő mappákat találod:

  • riasztók- ébresztőóra dallamok;
  • értesítéseket- értesítési hangok;
  • csengőhangok- csengőhangok;
  • ui- rendszerhangok, például alacsony akkumulátor, kamera fókuszálás, interfész elemek kiválasztása.

A riasztásokhoz, értesítésekhez, csengőhangokhoz tetszőleges számú dallamot adhat hozzá. Például ide viheted őket:

  • szabványos csengőhangok különböző Nokia telefonokról és okostelefonokról;

És egy kis life hack: a fájlok törlése az ui mappából nem összeomláshoz és hibákhoz vezet, hanem a rendszerhangok eltűnéséhez. Emiatt egyszerűen kikapcsolhatja a fényképezőgépről készült kép vagy képernyőkép készítésének hangját, egyszerűen az ezeket a hangokat tartalmazó fájlok törlésével (a nevük intuitív).

Betűtípusok hozzáadása

A betűtípusok a betűtípusokban tárolódnak. A fontfájlokat tartalmazó archívumok a w3bsit3-dns.com és az XDA oldalon találhatók. A telepítéshez csak másolja és cserélje ki a ttf fájlokat az archívumból a fonts mappába.

Rendszerbeállítások módosítása (build.prop)

A rendszerkép egy érdekes build.prop fájlt tartalmaz, amely sok hasznos információt tartalmaz az eszköz hardveréről és a különféle állományalkalmazások alapértelmezett beállításairól. Az igazság kedvéért megjegyzem, ez nem mindig van így. Például a Gigaset ME és ME Pro esetében a build.prop két részre oszlik. Az egyik rész a Gigaset ME beállításait tartalmazza, a ME Pro esetében pedig néhány vonal duplikált, de a gombok (okostelefon neve stb.) eltérőek. Ez azért történt, hogy biztosítsák ugyanazon firmware többé-kevésbé helyes működését különböző eszközökön.


A Build.prop rengeteg beállítást tartalmaz (vagy tartalmazhat). Némelyik nem változtat semmit, van, amelyik javít egy dolgot a másik rovására, de vannak, amelyek valóban hasznosak:

  • ro.product.modelÉs ro.product.manufacturer- az okostelefon modellje és a gyártó neve. E sorok lecserélésével azt gondolhatja a Play Áruház, hogy egy másik okostelefonja van, amely további szoftverekhez nyit hozzáférést. Mindazoknak, akik kevéssé ismertek Kínai okostelefonok ezek a vonalak életmentővé válhatnak;
  • hw.qemu.mainkeys- csak két értéket vesz fel: 0 - a képernyőn megjelenő navigációs gombok megjelenítése, 1 - a gombok nem jelennek meg. A vonal hiánya 0-nak felel meg;
  • debug.sf.nobootanimation- az 1-es érték letiltja az animáció betöltését, ami kissé megnöveli a sebességét. Ha 0-ra állítja, vagy törli a sort, az animáció visszakerül a helyére;
  • ro.telephony.default_network- közli a rendszerrel, hogy melyik üzemmódba kell kapcsolni mobilhálózat rakodás közben;
  • ro.sf.lcd_density- Display DPI, a kijelző legpontosabb értéke egy kényelmes weboldalon keresztül számítható ki. De senki sem tiltja, hogy tetszés szerint magasabb vagy alacsonyabb értéket állítson be: a magasabb értékek nagyobbra, az alacsonyabb értékek pedig kisebbre teszik az interfész elemeket;
  • ro.config.vc_call_vol_steps- a hangerő fokozatok száma hívás közben (alapértelmezett 8);
  • ro.config.media_vol_steps- a média hangerejének lépéseinek száma (alapértelmezett 15).

A Google Alkalmazásokat a firmware-ben implementáljuk

Szinte mindig egyedi firmware nélkül érkezik Google szolgáltatásokés alkalmazásbolt. A fejlesztők azt javasolják, hogy a GApps csomag segítségével külön telepítsük őket. Azonban közvetlenül integrálható a firmware-be.

Először le kell töltenie a GApps csomagot. Azt javaslom, hogy vegye át az Open GApps archívumát. Te választasz Android verzió, processzor architektúra és konfigurációs lehetőség (Pico, Nano, Stock...), amely meghatározza, hogy hány különböző Google alkalmazások archívumot tartalmaz. Javaslom a Pico verzió letöltését. Csak a Play Áruházat és a működéséhez szükséges könyvtárakat tartalmazza.

A GApps integrálása a firmware-be a következőképpen történik:

  1. Csomagolja ki a GApps ZIP archívumot bármelyik archiváló segítségével.
  2. Lépjen a Core mappába.
  3. Sok archívumot látunk .tar.lz kiterjesztéssel. Kivonat az lzip segítségével.
  4. Kicsomagolás után másolja át a fájlokat a mappákból a rendszer megfelelő mappáiba. Könnyű kitalálni, hogy mit hova kell dobni az archívum könyvtárszerkezetéből. Például a configupdatert (a képernyőképről) a priv-app mappába kell helyezni.
  5. Lépjen a GApps mappába (a Core mellett található), és kövesse a 3. és 4. lépést a benne lévő fájlokhoz.
  6. Ez az, integráltuk a GApp-okat a firmware-ünkbe!

Szabad hely

Meg kell érteni, hogy a firmware telepítésének helye korlátozott. Nem telepíthet olyan firmware-t, amelynek mérete meghaladja az eszköz rendszerpartíciójának méretét. Értékét a következő használatával tekintheti meg:

$ adb shell df /rendszer

Második lehetőség: helyezzen terminált az eszközre, és írja be a parancsot

$df/rendszer

Megtudhatja a partíció méretét bájtban, ha telepíti a BusyBoxot okostelefonjára, és futtatja a parancsot a terminálban

$ busybox df -B 1 /rendszer

Vagy ugyanezt ADB használatával:

$ adb shell busybox df -B 1 /rendszer

A firmware által elfoglalt hely megközelítőleg megegyezik a rendszer méretével, amikor kicsomagolják. Általánosságban elmondható, hogy a firmware készítésekor figyelembe kell venni, hogy a felhasználó különféle módosításokat is flashelhet rá (SuperSU, Xposed), vagy alkalmazásokat vihet át a rendszer részébe. Például a Google minimális alkalmazáscsomagja (Pico) legalább 150 MB további telepítési területet igényel.

Szükség esetén a firmware fájl mérete nem csak törléssel csökkenthető felesleges programokat a /system/app (/system/priv-app) és a hívási hangok a system/media/audio és a bootanimation.zip fájlból, de még:

  • /system/tts/lang_pico- a Pico TTS primitív hangmotor nyelveit, a Google hangmotorját ez nem érinti;
  • /system/usr/srec/config/- offline nyelvek. Szükség esetén később letöltheti online.

Szerelés

A változtatások elvégzése után mindent újra össze kell raknia. Először is csomagoljuk be a rendszer részt a system.new.dat fájlba. Töltse le a szükséges eszközöket:

$ wget https://github.com/xpirt/img2sdat/raw/master/img2sdat.py $ wget https://github.com/xpirt/img2sdat/raw/master/blockimgdiff.py $ wget https://github. com/xpirt/img2sdat/raw/master/common.py $ wget https://github.com/xpirt/img2sdat/raw/master/rangelib.py $ wget https://github.com/xpirt/img2sdat/raw/ master/sparse_img.py $ sudo apt-get install android-tools-fsutils

Alakítsuk vissza a mappánkat RAW képpé. Nevezzük system_new.img-nek:

$ sudo make_ext4fs -T 0 -S file_contexts -l 1073741824 -a rendszer system_new.img kimenete/

Az 1073741824 a rendszerpartíció méretére módosul bájtokban. Célszerű lenne még kicsinyíteni is. A RAW képből ritka képet készítünk:

$ img2simg system_new.img system_snew.img

Alakítsuk át a képünket system.transfer.list és system.new.dat fájlokra, amelyeket a firmware-rel együtt be kell dobni az archívumba, de előbb töröljük a régi fájlokat:

$ rm -rf system.transfer.list $ rm -rf system.new.dat $ rm -rf system.patch.dat $ chmod +x img2sdat.py $ ./img2sdat.py system_snew.img

Különítsük el a firmware fájlokat a felesleges héjtól (a munkához letöltött fájlok. Ehhez kényelmesen használható az archívum a firmware-rel). Törölve? Most be kell csomagolnia a firmware-t egy ZIP archívumba (bármilyen archiválóval).

Már csak az archívum aláírása van hátra. Ez megtehető magán az Androidon a ZipSigner segítségével, és számítógépen (telepített Java-ra lesz szüksége):

$ wget https://github.com/appium/sign/raw/master/dist/sign.jar $ java -jar file.zip

Víz alatti sziklák

A system.new.da fájl felépítése során számos problémával találkozhat, amelyeket a generálási mechanizmusok állandó változásai okoznak Android firmware. A fent leírt módszernek jól kell működnie az Android 5.1-re épülő firmware esetén, az újabbakkal nehézségek adódhatnak, ezért az építési eszközök más verzióit kell használnia. Sajnos nem tudjuk leírni az összeszerelés minden árnyalatát, ezért előfordulhat, hogy a Google-ba kell keresnie.

Telepítés

Egyéni firmware telepítéséhez egyedi firmware szükséges helyreállítási TWRP, amely lehetővé teszi aláírás nélküli vagy tesztkulccsal aláírt firmware telepítését (mi pontosan ezt hoztuk létre). A magazinban többször leírtuk a telepítés folyamatát, és a készülékednek szentelt fórumszálakban általában elegendő információ található ehhez.

TWRP

következtetéseket

Ez a cikk csak a csúcsát írja le egy hatalmas jéghegynek, az úgynevezett „firmware-módosításnak”. A „komoly” firmware nemcsak kiegészíti a kernelt és magát a firmware-t számos funkcióval (amelyeket gyakran más kernelekből és firmware-ből vettek át), megszervezve vagy akár megváltoztatva azok interakciójának elveit, hanem radikálisan megváltoztathatja a rendszer működési elveit is. az OS. Igaz, egy ilyen feltörés már nem Android, hanem egy külön operációs rendszer, még akkor is, ha a Play-szolgáltatások telepíthetők oda (egyébként az ilyen akciókat finoman szólva sem ösztönzi a Google). Nos, ne felejtsd el: a gyártók összes shellje - TouchWiz, ZenUI, HTC Sense és így tovább - csak közönséges egyedi, maximálisan az eszköz hardveréhez és egymáshoz kötve.

Interpoláció, interpoláció- a számítási matematikában egy mennyiség köztes értékeinek megtalálásának módszere az ismert értékek meglévő diszkrét halmazából.

A tudományos és mérnöki számításokkal foglalkozók közül sokan gyakran empirikusan vagy véletlenszerű mintavétellel nyert értékkészletekkel dolgoznak. Általában ezekre a halmazokra alapozva meg kell alkotni egy függvényt, amelybe más kapott értékek nagy pontossággal eshetnek. Ezt a feladatot az ún közelítés. Az interpoláció egy olyan közelítés, amelyben a megszerkesztett függvény görbéje pontosan áthalad a rendelkezésre álló adatpontokon.

Számos véges különbségű interpolációs módszer létezik. A legtöbb
Elterjedt a Newton-féle előremenő interpolációs módszer (Newton-Gregory módszer). Az interpolációs polinom ebben az esetben a következőképpen alakul:

A C együtthatókat a következő képlettel találjuk meg:

A program megvalósítása C# nyelven:
Rendszer használata; névtér Interpoláció ( osztály Program…

A program két szálra oszlik, amelyek közül az egyikben a rendezés történik, a másikban pedig a grafikus felületet rajzolják át. A „Rendezés” gomb megnyomása után a program meghívja a „RunSorting” metódust, amelyben a rendezési algoritmus definiálódik, és egy új szál jön létre, amelyben a rendezési folyamat fut.
privát üres RunSo…

Ma szeretném megmutatni a Kacheremet, amit a múlt téli ünnepeken készítettem. Nem írom le a teljes gyártási folyamatot, mivel sok cikk található az interneten. Csak a főbb paramétereiről írok.

Az alábbiakban néhány fotót láthatunk, amelyek a készülék összeszerelése során készültek.

A tekercset körülbelül 2000 menetnyi 0,08 mm-es huzallal 50 mm átmérőjű és 200 mm magas PVC csőre tekerjük.

Terminálként egy régi merevlemez lemezét használták. Minden mást a lap alján található diagram szerint szereltünk össze.

Az első opciót egy régi számítógép tápegységéről táplálták, 12 V-os feszültséggel. Ezután külön tápegység készült, 30 V-os feszültséggel, beépített hűtéssel.

Készülék diagram:

A tartományok közötti erőforrás-megosztás (CORS) egy W3C-specifikáció, amely lehetővé teszi a tartományok közötti kommunikációt a böngészőben. Az XMLHttpRequest objektumra építve a CORS lehetővé teszi a fejlesztők számára, hogy ugyanazokkal az idiómákkal dolgozzanak, mint az azonos tartományhoz tartozó kérések. A CORS használati esete egyszerű. Képzelje el, hogy az alice.com rendelkezik bizonyos adatokkal, amelyeket a bob.com szeretne megszerezni. Ez a fajta kérés hagyományosan nem engedélyezett ugyanazon böngésző eredetre vonatkozó szabályzata szerint. Azonban a CORS kérések támogatásával az alice.com hozzáadhat néhány speciális válaszfejlécet, amelyek lehetővé teszik a bob.com számára, hogy hozzáférjen az adatokhoz. Amint ebből a példából látható, a CORS-támogatás koordinációt igényel a szerver és az ügyfél között. Szerencsére, ha Ön ügyféloldali fejlesztő, védve van a legtöbb ilyen részlettől. A cikk további része bemutatja, hogy az ügyfelek hogyan indíthatnak több eredetű kérelmet, és hogyan konfigurálhatják magukat a kiszolgálók a CORS támogatására. Folytatás…




Top