اطلاعیه

Collapse
هیچ اطلاعیه ای هنوز ایجاد نشده است .

آموزش ساختن سورس برای Cydia

Collapse
این تاپیک مهم علامت‌گذاری شده است.
X
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
new posts

  • آموزش ساختن سورس برای Cydia

    چند تا از دوستان راجع به ساختن سورس برای Cydia سوال داشتند واسه همین تصمیم گرفتم آموزش ساختن سورس رو اینجا بزارم .
    شما به این مشخصات و برنامه ها نیاز دارید :

    ۱. سیستم عامل مک ورژن ۱۰.۵.۴ به بالا .
    ۲. Fink . دانلود
    ۳. اینترنت و Text Editor

    ۴. برنامه AppleOff : دانلود

    روی دسکتاپ یه فولدر به اسم New درست کنید .

    فولدر رو باز کنید و دو فولدر دیگه توش بسازید به اسم های DEBIAN و Applications



    توضیح : تمام پکیج هایی که میخواین بسازید باید DEBIAN رو داشته باشند و فولدر بعدی که میسازید در واقع دارید مسیری که برنامه مورد نظرتون فایل هاشو پیاده میکنه رو میدید. اگه بخواید یه برنامه تو پکیجتون داشته باشید کافیه برنامتون رو به شاخه Applications اضافه کنید . مثلا برنامه Mcleaner.app رو وقتی تو فولدر applications قرار بدیم بعد از ساختن Package این برنامه به شاخه Applications توی گوشی اضافه میشه . مثل موقعی که شما بصورت دستی یه برنامه رو کپی میکنید تو گوشی .و یا اگه میخواید مثلا Wallpaper اضافه کنید به ترتیب تو فولدر New دو فولدر به اسم های DEBIAN و Library میسازید و تو فولدر Library فولدر Wallpapers میسازید و عکس هاتونو اینجا کپی میکنید .

    خب حالا باید فهمیده باشید که DEBIAN برای ساختن پکیج و معرفی به Cydia بکار میره و فولدر Applications یا System و یا ... مسیر برنامه موردنظر رو برای کپی کردن به شما میده .

    حالا میرسیم به مرحله اصلی یعنی محتویات فولدر DEBIAN :

    ساختن فایل Control


    Text Editor رو باز کنید .
    این مشخصات رو عینا کپی کنید .

    کد:
    Package: iphone.ir.markthatmessage
    Name: MarkThatMessage
    Version: 1.0
    Architecture: iphoneos-arm
    Description: timestamps ALL entries on SMS screen
    Installed-Size: 14
    Maintainer: Yasin Jamali
    Author: Yasin Jamali
    Section: IR (Apps)
    Depends: mobilesubstrate, firmware (>= 3.0), iphone.ir.icon
    اون نوشته های قرمز رنگ رو که میبینید قابل تغییر هستند ولی به بقیه نباید دست بزنید .

    Package : یعنی اسم Package که باید یه اسم منحصر به فرد باشه که با برنامه های دیگه قاطی نشه و اسم پکیج هم باید بصورت بالا باشه و فقط سه کلمه قرمز رنگ iphone و ir و markthatmessage رو با اسم مورد نظرتون عوض کنید . ( توجه کنید که باید بعد از هرکدام یک دات بگذارید )

    Version : خب مشخصه که ورژن برنامه رو مشخص میکنه .

    Section : تو Cydia دیدید که برنامه ها تو Section های مربوطه قرار دارن . شما هم مشخص میکنید که برنامتون تو چه Section ای قرار بگیره .

    Maintainer : منظور اینجا سازنده بازی یا اسپانسر یا حالا هر چی که خودتون اسم میزارید هست .

    Depends : بعضی از برنامه ها قبل از نصب لازم دارن که چیز دیگه ای نصب باشه . اینجا شما باید اسم اون Package که نیاز دارید رو بنویسید . مثلا اکثر برنامه ها به mobile substrate نیاز دارن پس شما هم باید این رو ذکر کنید که اگه احیانا نصب نبود بطور اتوماتیک نصب کنه . البته باید بطور دقیق اسم پکیج رو وارد کنید . برای مثال برای نصب یک برنامه ای من میخوام چک کنم ببینم اگر پکیج آیکون سورس نصب نیست بطور اتومات نصب بشه . باید تو قسمت Depends برنامه جدید وارد کنم : iphone.ir.icon

    Name : خب اسم برنامه هست دیگه !

    Author : اسم سازنده برنامه .

    Description : توضیح راجع به برنامه .

    بعد از انجام این مراحل کافیه فایلتون رو به اسم control سیو کنید . طریقه سیو کردن به این صورت هست :



    توضیح : برای راحتی کار شما و سردر گم نشدنتون من یک نمونه کار رو واستون آپلود کردم . این فایل رو دانلود کنید و بعد از دانلود تغییرات لازم رو انجام بدید .


    فایل control رو درون فولدر DEBIAN قرار بدید .

    برنامه AppleOff رو که اول گفتم دانلود کنید رو نصب کنید و فایل New که ساختید رو به این برنامه اضافه کنید و Clean Now رو بزنید تا فایل های اضافه رو پاک کنه . بعد از انجام این عملیات بهتره دیگه کار اضافه ای نکنید و مستقیما به مرحله بعدی برید !

    Terminal رو باز کنید و دستور cd /Users/your username/Desktop رو وارد کنید .

    حالا این دستور رو وارد کنید :
    کد:
    dpkg-deb -b New
    خب حالا روی دسکتاپ باید یه فایل به اسم New.deb داشته باشید .

    بعد از اینکار نوبت به ساختن فایل Release میرسه که اطلاعاتی راجع به repo شما به دیگران میده .

    دوباره Text Editor رو باز کنید و متن زیر رو کپی کنید .

    کد:
    Origin: اسم repo ی شما
    Label: اسمی که بالای repo ی شما نمایش داده میشه .
    Suite: stable
    Version: 1.0
    Codename: stable
    Architectures: darwin-arm
    Components: main
    Description: توضیحاتی راجع به repo ی شما .
    حالا به اسم release سیو کنید .

    حالا یه فولدر به اسم مثلا cydiarepo بسازید و یک فولدر دیگه به اسم debs توش بسازید .

    فایل New.deb رو که ساختید به این فولدر debs کپی کنید .
    ویرایش توسط oosin : https://i-phone.ir/forums/member/22-oosin در ساعت 09-05-2009, 06:15 PM

  • #2
    ترمینال رو باز کنید و به مسیر فولدر cydiarepo بروید .

    برای مثال :
    کد:
    cd /Users/Yasin/Desktop/cydiarepo
    و این command رو وارد کنید :
    کد:
    dpkg-scanpackages -m . /dev/null -->Packages
    میبینید که فایلی به اسم Packages تو همین فولدر ایجاد شده که مشخصات فایل control فایل یا فایل های deb شما توش قرار داره .

    میتونید برای مطمئن شدن یکبار چک کنید .

    فایل رو سیو کنید .

    دوباره ترمینال رو باز کنید و به مسیر cydiarepo بروید و دستور زیر رو وارد کنید .

    کد:
    bz2 -f Packages
    میبینید که فایل Packages.bz2 درست شده . این فایل رو با دابل کلیک باز کنید تا دوباره فایل Packages رو هم داشته باشید .

    ( حتما به case sensitive بودن این فایل ها دقت کنید . )

    خب حالا نوبت به جمع و جور کردن میرسه . شما الان باید این فایل هارو داشته باشید .

    Release , Packages , Packages.bz2 , New.deb .

    سه فایل Release , Packages , Packages.bz2 تو فولدر cydiarepo قرار داره و New.deb تو زیرفولدر debs تو همین فولدر قرار داره .



    خب تبریک میگم . اگه همه کار های بالارو درست انجام داده باشید شما یک repo ساختید ! کافیه فایل cydiarepo رو روی یک هاست آپلود کنید و مسیرش رو به cydia بدید .

    البته این همه کار نیست . بزودی راجع به چگونگی Back Up گرفتن و ساختن فایل های postinst preinst ... ساختن آیکون برای repo و ... توضیح میدم .

    تا اینجا اگه مشکلی بود بپرسید .

    نظر


    • #3
      مطلب بعدی اینه که خیلی دقت کنین موقعی که دارین فولدرتون رو به deb تبدیل میکنید قبلش با برنامه appleoff فایل های itunes_de رو پاک کرده باشین !

      حالا راجع به back up گرفتن توضیح میدم . این مرحله خیلی حساسه و باید خوب دقت کنید چون یه اشتباه کوچیک به گوشیتون ( نرم افزاری ) آسیب میزنه و شاید مجبور به ریستور شید .

      تو شاخه DEBIAN که تو فولدر مورد نظرتون ساختین کنار فایل control باید چند فایل txt دیگه بسازید . میتونین همون فایل control رو با txt باز کنید ولی آخرش Save As رو بزنید و به یه اسم دیگه سیو کنید .

      به چه اسمی سیو کنم ؟

      شما به دو تا فایل نیاز دارید . اسم یه فایل رو بزارید : postrm و اسم دیگری رو بزارید : preinst

      همونطور که از اسمشون میتونین حدس بزنید preinst یعنی دستور های قبل ار نصب .و بعدی هم ( postrm ) دستور های بعد از پاک کردن

      این دستور ها چی هستن ؟

      یه سری دستور که من نفهمیدم از چه تابعی پیروی میکنن چون fn های جدیدی دیدم توشون ولی شبیه به c++ هستند !
      به هر حال من براتون یه پیش فرض آماده کردم که میتونین با استفاده از اون حتی با نداشتن دانش برنامه نویسی رفع احتیاج کنید .

      به دستور زیر که یک دستور preinst برای مثلا نصب یک برنامع تغییر فونت روی گوشی شماست دقت کنید :

      کد:
      #!/bin/bash
      
      declare -a cydia
      cydia=($CYDIA)
      
      if [[ $1 == install || $1 == upgrade ]]; then
        if [ -f /System/Library/Fonts/Cache/Helvetica.ttf.back ]; then
          echo "Helvetica.ttf.back already present, skip BackUp."
        else
          cp /System/Library/Fonts/Cache/Helvetica.ttf /System/Library/Fonts/Cache/Helvetica.ttf.back
          echo "Helvetica.ttf.back created."
        fi
        if [ -f /System/Library/Fonts/Cache/HelveticaBold.ttf.back ]; then
          echo "HelveticaBold.ttf.back already present, skip BackUp."
        else
          cp /System/Library/Fonts/Cache/HelveticaBold.ttf /System/Library/Fonts/Cache/HelveticaBold.ttf.back
          echo "HelveticaBold.ttf.back created."
        fi
        if [[ ${CYDIA+@} ]]; then
            eval "echo 'finish:restart' >&${cydia[0]}"
        fi
      fi
      #end script
      خب اگه یکم برنامه نویسی کار کرده باشین خیلی راحت متوجه دستورات بالا میشین . به هر حال یه توضیحی هم میدم .
      تا اونجایی که به دستور if میرسید رو نباید دستکاری کنید . ولی از if به بعد :

      if [ -f /System/Library/Fonts/Cache/Helvetica.ttf.back ]; then
      echo "Helvetica.ttf.back already present, skip BackUp."
      else
      cp /System/Library/Fonts/Cache/Helvetica.ttf /System/Library/Fonts/Cache/Helvetica.ttf.back
      echo "Helvetica.ttf.back created."
      fi

      ببینید دستور بالا منظورش اینه که اگه فایل Helvetica.ttf.back تو مسیر نشون داده شده وجود داره اون موقع نیازی به back upگرفتن نیست و از این مرحله چشم پوشی کن و این نوشته رو نمایش بده ولی اگه وجود نداشت اون موقع فایل Helvetica.ttf رو به Helvetica.ttf.back تغییر بده . fi آخر هم به معنی end if هستش .

      پس شما فقط برای بک آپ گرفتن نیاز دارین که تو دستورات بالا یه تغییرات جزیی بدید . به این شکل که جای خط های قرمز رن

      آدرس و مشخصات برنامه خودتون رو بزارید .

      به تعداد فایل هایی که میخواید بک آپ بگیرید همینطور این دستور رو تکرار میکنید و آدرس فایل ها رو جابجا میکنین .

      و اما تیکه آخر :



      if [[ ${CYDIA+@} ]]; then
      eval "echo 'finish:restart' >&${cydia[0]}"
      fi
      fi
      #end script

      finish:restart یعنی گوشی شما ریسپرینگ میشه .
      اگه جاش reload بزارید اتفاقی نمیافته و return to cydia میده .
      اگه reboot بزارید گوشی خاموش روشن میشه .



      خب حالا نوبت به ساختن فایل دوم یعنی postrm میرسه که درواقع موقع remove کردن فایل بک آپ های گرفته شده رو restore میکنه .

      نمونه زیر رو ببینید :

      کد:
      #!/bin/bash
      
      declare -a cydia
      cydia=($CYDIA)
      
      if [[ $1 == remove ]]; then
      
         cp /System/Library/Fonts/Cache/Helvetica.ttf.back /System/Library/Fonts/Cache/Helvetica.ttf
         cp /System/Library/Fonts/Cache/HelveticaBold.ttf.back /System/Library/Fonts/Cache/HelveticaBold.ttf
        if [[ ${CYDIA+@} ]]; then
            eval "echo 'finish:restart' >&${cydia[0]}"
        fi
      fi
      #end script
      همونطور که میبینین باز هم دستورات ساده . به این شکل که این بار میاد میگه اون فایل *.back رو به فایل سابق برگردون !

      فقط به if و fi ها دقت کنید . اگه یه جا if و fi ها با هم نخونن ( کم و زیاد بزارید ) برنامتون مشکل پیدا میکنه .

      نظر


      • #4
        حالا نوبت میرسه به گذاشتن آیکون برای برنامه هایی که روی سورستون release میکنین . ساده ترین کار !

        یه فولدر بسازید روی دسکتاپ . اسمش رو بزارین مثلا oosin

        حالا توی oosin دو تا فولدر دیگه بسازید به اسم های DEBIAN و Applications



        تو DEBIAN یه فایل txt به اسم control بسازید و این مشخصات رو توش کپی کنید :

        کد:
        Package: com.iphoneir.repo
        Version: 1.6
        Priority: standard
        Section: IR (Apps)
        Maintainer: ooSin <yasin.jamali@gmail.com>
        Architecture: iphoneos-arm
        Name: Source Icons
        Author: Yasin Jamali <yasin.jamali@gmail.com>
        Description: Adds the icons for the iPhone.ir sources & sections
        جاهایی که دوست دارین عوض کنین رو عوض کنین . ( با توجه به توضیحات پست اولم دیگه نیاز به ریز ریز توضیح دادن نمیبینم !

        این فایل رو دانلود کنید : DOWNLOAD

        فایل رو باز کنید و cydia.app رو بریزید تو فولدر Applications . فایل cydia.app رو باز کنید و ۲ تا فولدر به اسم های Sections و Sources میبینید . آیکونی که تو بخش Sections میبینید درواقع آیکونیه که برای برنامه هاتون نمایش داده میشه . بسته به اینکه شما هر برنامه رو تو چه Sections ای گذاشته باشید . مثلا من تو Section ای به اسم IR قرار دادم بنابراین اسم آیکونم IR.png هست . IR رو به اسم section خودتون تغییر بدید .
        و Sources هم اسمیه که برای سورس خودتون انتخاب میکنید تو قسمت Release . اون آیکون رو هم به اسمی که روی Repo خودتون قرار میدین تغییر بدید .



         خب تمومه دیگه . کافیه که همه چیو سیو کنید و فولدر oosin رو تبدیل به فایل deb کنین و مثل یک پکیج عادی بزارینش روی سورستون .

        سوال : آقا اینطوری که الان شما گفتین که باید هر کسی بیاد پکیج فونت رو نصب کنه تا براش آیکون ها نمایش داده بشه . پس چطوری بقیه سورس ها بدون اینکه ما پکیج سورسشون رو نصب کنیم آیکونشون نمایش داده میشه ؟

        جواب : خیلی سادست ! اگه خاطرتون باشه تو پست اول گفته بودم که یه گزینه به اسم dependency هست که میگرده و پکیج های مورد نیاز رو همراه برنامه نصب میکنه . خب شما هم کافیه اسم این پکیج رو ( مثلا تو مثال من com.iphoneir.repo ) رو به dependency
        اضافه کنید تا همراه هر کدوم از برنامه های سورستون که کاربر نصب میکنه این پکیج نصب شه و آیکون های شما به نمایش در بیاد .

        اگه به پست قبلی هم دقت کنید اولش که عکس فایل پکیج خودم رو گذاشتم میتونین نحوه گذاشتن dependency رو متوجه شید .


        خب دیگه تموم شد . کل داستان ساختن سورس همین بود ! شما میتونین حالا یه سورس شخصی داشته باشید با برنامه های مفید . امیدوارم واضح توضیح داده باشم ولی هر جا براتون نا مفهوم بود بگید تا واضح تر بگم .

        موفق باشید
        ویرایش توسط oosin : https://i-phone.ir/forums/member/22-oosin در ساعت 14-04-2009, 04:26 PM

        نظر


        • #5
          یاسین جان آیا حتما باید مک داشته باشیم؟
          نمیشه لینوکس دبیان باشه؟ اگه دبیان میشه، اون برنامه هایی که اول معرفی کرده بودی قابل استفاده هستن؟

          نظر


          • #6
            نه حتما مک نباید باشه . میتونه ویندوز هم باشه و با آیفون کارای مربوط به Debian رو انجام بدی . با لینوکس هم میشه اگه Debian supp باشه . اون برنامه fink و apple off هم برای موقعی که با مک بخوای استفاده کنی نیاز میشه وگرنه بدون اون ها هم میشه .

            نظر


            • #7
              با تشکر از پست خوبتون
              یه سوال که من درست متوجه نشدم.فرض کنید من الان سورس رو کاملا ساختم حالا کجا باید اپلودش کنم تا دیگران بتوانند استفاده کنند

              نظر


              • #8
                روی یه هاست ! یعنی یه فضایی روی اینترنت که توسط شما خریداری شده .
                مثلا سورس این سایت روی هاست سایت یعنی i-phone.ir/cydia آپلود شده .

                نظر


                • #9
                  من متوجه نشدم.
                  فکر کنید من یه فضای خالی روی اینترنت خریدم مثلا به نام Hossein.com/cydia وبعد برنامه های ساخته شده در مرحله اخر رو توی اون سایت اپلود می کنم و قتی سورسHossein.com/cydia رو Add میکنم خودش می ره برنامه ها رو می ارد.درسته متوجه شدم؟

                  یه سوال دیگه مثلا اگه من یه عکس رو تو پکیج هام بزارم Cydia از کجا میفهمه اون رو باید کجا نصب کنه؟اصلا می فهمه؟یا من باید ادرسش بدم؟چطور؟

                  با تشکر از رسیدگی شما
                  ویرایش توسط Dj Hossein : https://i-phone.ir/forums/member/446-dj-hossein در ساعت 08-05-2009, 05:13 PM

                  نظر


                  • #10
                    نوشته اصلی توسط Dj Hossein نمایش پست ها
                    من متوجه نشدم.
                    فکر کنید من یه فضای خالی روی اینترنت خریدم مثلا به نام Hossein.com/cydia وبعد برنامه های ساخته شده در مرحله اخر رو توی اون سایت اپلود می کنم و قتی سورسHossein.com/cydia رو Add میکنم خودش می ره برنامه ها رو می ارد.درسته متوجه شدم؟

                    یه سوال دیگه مثلا اگه من یه عکس رو تو پکیج هام بزارم Cydia از کجا میفهمه اون رو باید کجا نصب کنه؟اصلا می فهمه؟یا من باید ادرسش بدم؟چطور؟

                    با تشکر از رسیدگی شما
                    بله درسته وقتی شما این آدرس رو وارد کنید سورس اضافه میشه..
                    همونطور که دوستم oosin در بالا توضیح دادن شما باید یه فولدر میسازید و درون آن هر مسیری که میخواهید رو به جاش یه فلدر میسازید...
                    far-shad.ir

                    نظر


                    • #11
                      نوشته اصلی توسط Dj Hossein نمایش پست ها
                      من متوجه نشدم.
                      فکر کنید من یه فضای خالی روی اینترنت خریدم مثلا به نام Hossein.com/cydia وبعد برنامه های ساخته شده در مرحله اخر رو توی اون سایت اپلود می کنم و قتی سورسHossein.com/cydia رو Add میکنم خودش می ره برنامه ها رو می ارد.درسته متوجه شدم؟

                      یه سوال دیگه مثلا اگه من یه عکس رو تو پکیج هام بزارم Cydia از کجا میفهمه اون رو باید کجا نصب کنه؟اصلا می فهمه؟یا من باید ادرسش بدم؟چطور؟

                      با تشکر از رسیدگی شما
                      عکسی که تو پکیج میزارید باید به ترتیب نصب شدنش تو آیفون مسیر بدید بهش . مثلا وقتی شما تو فایل پکیجتون یه فولدر به اسم Applications میسازید و بعد یه فولدر دیگه توش به اسم DJ HOSSEIN میسازید . موقع نصب Cydia میاد اول وارد فولدر Applications گوشیتون میشه و بعد اونجا وارد فولدر DJ HOSSEIN میشه . اگه فولدر DJ HOSSEIN وجود نداشته باشه یه فولدر به این اسم ایجاد میکنه . همینطور به تعداد فولدر هایی که شما ایجاد میکنید درواقع مسیر برنامتون رو مشخص میکنید .

                      نظر


                      • #12
                        با تشکد اذ شما

                        یه سوال دارم من موقع ذخیره کردن فایل با نام contorol با نوعی که گفتید مشکل دارم چون نمی توانم با نوع code که گفتید ذخیره کنم چون اصلا وجود نداره
                        ایا برنامه ی خاصی باید نصب کنم تا با اون نوع یعنی Unicode ذخیره کنه
                        ویرایش توسط Dj Hossein : https://i-phone.ir/forums/member/446-dj-hossein در ساعت 08-05-2009, 07:12 PM

                        نظر


                        • #13
                          دوستان لطفا کمک کنید من نمی توانم با فرمت unicode فایل control را بسازم.چرا؟ایا شما برنامه ی خاصی نصب کردین.

                          نظر


                          • #14
                            خیر برنامه خاصی نباید نصب کنید . شما مک یوزر هستید ؟

                            نظر


                            • #15
                              من منظورتون رو از مک User نمی فهمم؟
                              من فقط یهmac leopard 10.5.6 نصب کردم روی کامپیوترم همین بدون هیچ تنظیم خاصی.

                              نظر

                              صبر کنید ..
                              X