Page 1 of 8 123 ... LastLast
Results 1 to 10 of 73

Thread: How to make a Cydia Package/Repo on Windows

          
    Bookmark and Share
  1. #1
    Supervisor adlyr's Avatar
    Join Date
    Jul 2009
    Posts
    704
    iDevice
    iPhone 4

    Default How to make a Cydia Package/Repo on Windows

    Here is a Tutorial on how to create a Cydia Package and Cydia Repository on a Windows system.
    Requirements:
    For Cydia Package (Debian file):
    Windows Computer (im using Windows 7)
    iDevice on Wifi connection (with OpenSSH installed)
    WinSCP

    For Repo creation:
    7Zip
    A way to generate an MD5sum hash for you debian
    i use HashCheck Shell Extension as it integrates it directly into windows, and can get it when right clicking on file.

    First you will need to create a Package or two for your Repo:
    To start out, you will need to create a folder to contain your files. Name this whatever you want your package to be called, but avoid special characters other + or - and do not include spaces (this is NOT the name that will show up in Cydia, just the name of the Debian file Cydia will look for). For my example i will be packaging a theme i made and released on Macciti's repo called Darque Skulls. I will add others to the repo to show how it is done.

    So i create a folder and calle it DarqueSkulls (no spaces, and the D and S are capitalized, it is probably a good idea to use only lower case letters for this part however, spaces and caps can sometimes cause errors when packaging the file).


    First lets create our control file, this contains the information needed for Cydia to find and install the package correctly
    Create a new folder in your empty Main folder. Name this folder DEBIAN in all caps.

    Inside the DEBIAN folder create a new text document (using notepad). Name this control. You can leave the extension on for now, to open and work on it, but you will have to save it without the .txt extension when finished. You can also create it, and remove the .txt and then open it with Word to add/edit the fields below. Either way is fine. As long as the finished product says control and not control.txt.
    Open it and enter the following info can copy/paste:
    Package:
    Name:
    Version: 1.0
    Architecture: iphoneos-arm
    Description:
    Depiction:
    Homepage:
    Maintainer:
    Author:
    Section:
    Depends:
    Conflicts:
    Here is the break down of those fields (and a couple extra you may wish to use)

    The Package filed must be in all lowercase letters.
    You do not need all of these files in your control file. Most are optional.
    The fields in Red Need to be, or at least Should be included in most basic packages. Optionally you can use the Depiction field in Green. It loads a web image in an iframe displayed on the device. It generally takes the place of the Description/Maintainer/Homepage/and Author fields, as they will be displayed on the webpage's php, as well as any other info or adds built into it.

    note: on the last line in ALL documents created in this tutorial you will need to hit the Enter key. The cursor must be on the blank line below the last entry in your file! this is important. And i also suggest hitting the down arrow key a few times, and if the cursor moves down (leaving two or more empty spaces) backspace it until it is directly below your last line, in the first spot. It can create errors when packaging your .deb file otherwise


    Here is an example (using the depiction from Macciti's repo for my DarqueSkulls package as an example, i do not have any depictions in my personal deb file so it shows the normal description).


    When you are finished you will save your control file without an extension. It will look like this:


    Next we need to add the actual content of your package to the folder.
    Back out of the DEBIAN folder, to your main folder (DarkSkulls in my example). Now you need to create a folder tree that has the exact same file path as the Theme/Application/file would have inside the iDevice (from root)
    For example if you were creating an Application you would make an Application folder and put your App in it (since the path for Applications from root is /Applications).
    For a theme it would be Library>>Themes.
    So for my example I will create a Folder called Library, and inside it I will make another Folder and call it Themes


    I will place my theme inside the Themes folder:


    Now it is Time to create the Debian file itself (the Cydia Package).
    Open WinSCP and connect to your iDevice. It should open to the /private/var/root/ directory. Drag your entire folder containing your app/theme to the iDevice. Once it has transfered over click on the little black box in the top bar of WinSCP or press Ctrl+T on your keyboard to open its Terminal (you can also do this on your device using Mobile Terminal)
    Once it is open type this command into it:
    dpkg -b XXXX where XXXX is your pagkage name. For my theme it would look like this:


    You will get one or more warnings, depending on which fileds you used in your package control file. Those are normal and perfectly fine. As long as you do not get any Errors it worked.
    You now have your .deb file and can drag it back to your PC.


    Createing the Repo

    Now the fun part. Packaging your deb files(s) for your own repo. You will need to have your own (or access to) web host for this.

    Create a new folder, generally called cydia or repo (i used repo). This will be the folder that contains your (is) your Cydia Repository. It will appear exactly as it needs to be typed into Cydia to appear. Including Capitalization. (which is why i use repo with no caps, easy to type and remember). It does not have to be named either of these. It is up to you.

    Inside that folder (called repo for this tutorial) you will create another document without an extension. It needs to be called Release (no extension, NOT Release.txt).
    Inside it you will need the following info (basic info about your repository):

    Origin: Official Title of your Repo
    Label: Same as Orgin
    Suite: stable
    Version: 1.0
    Codename: stable
    Architectures: iphoneos-arm
    Components: main
    Description: Description of your repo
    Do not alter the Suite:/Codename:/Architectures:/ or Components: fields at all. They are as they need to be.

    Next you will ceate another plain text document called Packages (no extension).
    In it, will be basically the same ifnormation as your control file. You can copy and paste it to this, but you will need the following 3 fields added to the end of it:
    Filename: ./debs/yourpackagename.deb
    Size:
    MD5sum:

    For Filename, it will need to be Filename: (space)./debs/XXXX.deb where XXXX is your deb filename exactly as it appears.
    Size is the size you get when you right click on the deb file and go to properties:
    Enter it from the Size in () in bytes, as shown:


    For the MD5sum filed, you will need some form of hash sum program to generate this. I use hascheck since it automatically generates the sum when you rightclick and get properties for the deb file, adds a different tab for it, but get Size and MD5sum at one time:


    If you are adding more than one package to your repo you will simply add another entry below your first, leaving a space in between (copy the controlfile from the next deb, add your Filename, Size and MD5sum fields, then leave another space) and so on for each one.

    When your Packages file is finished, with all your entries you need to open 7zip and use the following settings to create a Bzip2 or GZip file out of it (both work ( have switched to using GZip lately):


    Next you will need to add a folder called debs. You will drop all your .deb files into this folder.
    Once that is done you simply need to upload your entire repo folder into the root directory of your website (the www folder)
    For example, my repo folder is called repo (for simplicity) and im hosting it at www.jailbreakcentral.com so my repo i would enter into cydia would be http://jailbreakcentral.com/repo/ that is all there is to it. It should show up in cydia just fine (just checked, and mine does - although i currently pulled it down because of conflicts with some packages not being useable on 4.0 - my repo was for personal use, I made it and placed a few packages in it that were blank apps (no files other than control file) and it was only for dependancies. It would auto install several apps at once, such as Winterboard, Rock, Five icon doeck, FCSB, etc. saving me TONS of time when jailbreaking and setting up phones, i do several a week some weeks).

    Here it is on my phone after im done:



    On a side note, we lost the Jailbreak Central domian. Now my repo is http://repo.ig33kstas.com
    Last edited by adlyr; 06-17-2012 at 04:05 AM. Reason: forgot some pics

  2. #2
    Supervisor Mroberts531's Avatar
    Join Date
    Oct 2009
    Location
    Guildford, Surrey (UK)
    Posts
    622
    iDevice
    iPhone 5s
    iOS
    7.0.4
    Carrier
    O2

    Default

    great tutorial mate really good stuff!

  3. #3
    Supervisor adlyr's Avatar
    Join Date
    Jul 2009
    Posts
    704
    iDevice
    iPhone 4

    Default

    well, certainly not my best, needs cleaned up a bunch. was kinda distracted on it. Kids always know when im working on something
    Just thought it would be interesting, since all the the tuts i seen were for Mac and Linux (and its easier to do on Windows and an iPhone). Actually used iPHone a lot more in past, but coudlnt get Mobile Terminal to run on my iPhone 4.

  4. #4
    SuperMod pwnapple's Avatar
    Join Date
    Jun 2009
    Location
    New Jersey
    Posts
    965
    iDevice
    iPhone 5S
    iOS
    7.0.4
    Carrier
    AT&T :(

    Default

    Quote Originally Posted by adlyr View Post
    well, certainly not my best, needs cleaned up a bunch. was kinda distracted on it. Kids always know when im working on something
    Just thought it would be interesting, since all the the tuts i seen were for Mac and Linux (and its easier to do on Windows and an iPhone). Actually used iPHone a lot more in past, but coudlnt get Mobile Terminal to run on my iPhone 4.
    mobile terminal doesnt work right now for iphone 4. u could always use iSSH (we did this for the ipad to gain root access hehe) and by the way.. STICKY!

  5. #5
    Supervisor adlyr's Avatar
    Join Date
    Jul 2009
    Posts
    704
    iDevice
    iPhone 4

    Default

    Yay, a sticky. Thanks!

  6. #6
    Super Moderator macpro's Avatar
    Join Date
    Oct 2008
    Location
    Seattle
    Posts
    407
    iDevice
    iPhone 4
    iOS
    4.2.6
    Carrier
    Verizon

    Default

    great job man! good screen shots!

  7. #7
    New Here carterlee1's Avatar
    Join Date
    Aug 2010
    Posts
    1
    iDevice
    iPod Touch
    iOS
    4.0

    Default

    I followed all these instructions,
    But I added my repo to cydia and tried to install a package, it says size mismatch. Any Suggestions?
    Last edited by carterlee1; 08-13-2010 at 08:35 PM.

  8. #8
    Supervisor adlyr's Avatar
    Join Date
    Jul 2009
    Posts
    704
    iDevice
    iPhone 4

    Default

    Yep, on the step (i should have numbered them) with the SIZE in big print, that you are adding to your package file, make sure you use the size in bytes, as the deb file. And not the actual theme/app, and it cannot be the "size on disk field". It cannot have commas. That is the size its talking about. It means your size listed does not match that of the deb file. So it thinks something is wrong.

    Macpro, nice avatar. are you a pastor/youth pastor?

  9. #9
    Hacking Legend NictraSavios's Avatar
    Join Date
    Aug 2010
    Location
    Sydney, Nova Scotia, Canada
    Posts
    877
    iDevice
    myPod 4G
    iOS
    6.0

    Default

    um ... for the package name... how do i know what to put there? like com.macciti. theme

    ? would that be right?

  10. #10
    Supervisor adlyr's Avatar
    Join Date
    Jul 2009
    Posts
    704
    iDevice
    iPhone 4

    Default

    Yes, pretty much, but its actually the deb name, not nescessarily the theme name (can be- probably should be a little different). It is a reverse address.
    If your website was htt://www.coolsite.net and the name of your debian file was mytheme.deb (and name of the theme itself is My Theme in the Name: field)
    It would be net.coolsite.mytheme

    Plus there is also Myrepospace.com to make your debs and even your own repo - but makes for a really long URL to enter in Cydia)


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •