HTML

Hackstock

Hack the planet! Hackers unite!

Címkék

Címkefelhő

Saját csengőhangok

2007.11.27. 22:55 :: theshadow

Ugye, hogy felmerült már, hogy egyedi csengőhang kellene, de nem szeretnénk (vagy éppen nem is lehet) iTunes-on $2-t kicsengetni érte? Rablás. Gyártsunk helyette magunknak!
Egy tetszőleges zeneszerkesztővel komponáljuk meg, vágjuk ki, effekteljük, tegyünk vele, amit akarok, de lehetőleg legyen rövidebb 30 másodpercnél. Ha kész a mű mentsük el MP3 vagy éppen WAV formátumba. A lényeg, hogy az iTunes kezelni tudja.
Dobjuk is rögtön a művet az iTunes-ba és konvertáljuk AAC formátumba és keressük meg, hova jött létre az eredmény. Egy M4A file-t kell keresni (Get info és alul látszik az elérési útvonal). Készítsünk róla egy másolatot M4R kiterjesztéssel is. Mindkét állományt másoljuk a telefon /private/var/root/Media/iTunes_Control/Ringtones könyvtárába.
Most menjünk a /private/var/root/Media/iTunes_Control/iTunes könyvtárba és ott nyissuk meg a Ringtones.plist filet, ami így néz ki, amikor nincsenek csengőhangok még regisztrálva benne.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Ringtones</key>
    <dict>

    </dict>
</dict>
</plist>
A legbelső dict tag-ek között kell létrehozni egymás után, csengőhangokként a következő XML darabot:
        <key>[filenév].m4r</key>
        <dict>
            <key>GUID</key><string>[egyedi azonosítószám]</string>
            <key>Name</key><string>[név a listában]</string>
        </dict>
        <key>[filenév].m4a</key>
        <dict>
            <key>GUID</key><string>[egyedi azonosítószám]</string>
            <key>Name</key><string>[név a listában]</string>
        </dict>
A filenév mindkét esetben legyen azonos, úgy, mint az egyedi azonosító és a listában megjelenítendő név is. Még nem tudom mi a két bejegyzés megtételének oka, de fogadjuk el, hogy így működik.
Ez még csak a megoldás egyik fele. Ha most megpróbáljuk a szinkronizálást az iTunes-szal, akkor felülírja a plist file-r és nem jelenik meg a választható hangok között a mienk. Ennek megakadályozására a következő trükköt találtam.
Ha a telefon gyökérkönyvtárában nem szerepelne a iTunes_Control symlink, akkor hozzuk létre:
ln -s /private/var/root/Media/iTunes_Control /iTunes_Control
Most átnevezzük az eredeti Ringtones.plist file-t és egy symlinket készítünk az eredeti nevével:
mv /iTunes_Control/iTunes/Ringtones.plist /iTunes_Control/iTunes/Invincible.plist
ln -s /iTunes_Control/iTunes/Invincible.plist /iTunes_Control/iTunes/Ringtones.plist
Elméletileg kész van, de egyes esetekben nem működik. Próbáljuk ki! Ha a szinkronizálás után a file tartalma újraíródna, akkor tegyük a következőket:
mv /private/var/root/Media/iTunes_Control/iTunes/Ringtones.plist /private/var/root/Media/iTunes_Control/iTunes/Invincible.plist
ln -s /private/var/root/Media/iTunes_Control/iTunes/Invincible.plist /private/var/root/Media/iTunes_Control/iTunes/Ringtones.plist
így már nekem is működött. Az iTunes ugyan sopánkodik, hogy egyes file-okat nem tud szinkronizálni, de ez nem érdekes.

Szólj hozzá!

Címkék: iphone csengőhang

A bejegyzés trackback címe:

https://hackstock.blog.hu/api/trackback/id/tr14244910

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása