rsync -SPaz --copy-links saurik@carrier.saurik.com:menes/cydia/cydia_iphoneos-arm.deb .
dpkg -i cydia_iphoneos-arm.deb
touch /tmp/cydia.log
+chown mobile.mobile /tmp/cydia.log
openURL "${1-cydia://}"
exec tail /tmp/cydia.log -fn0
});
},
- append: function (html) {
+ append: function (children) {
+ if ($.type(children) == "string")
+ $.each(this, function (node) {
+ var doc = $.document(node);
+
+ // XXX: implement wrapper system
+ var div = doc.createElement("div");
+ div.innerHTML = children;
+
+ while (div.childNodes.length != 0) {
+ var child = div.childNodes[0];
+ node.appendChild(child);
+ }
+ });
+ else
+ $.each(this, function (node) {
+ $.each(children, function (child) {
+ node.appendChild(child);
+ });
+ });
+ },
+
+ xpath: function (expression) {
+ var value = $([]);
+
$.each(this, function (node) {
var doc = $.document(node);
+ var results = doc.evaluate(expression, node, null, XPathResult.ANY_TYPE, null);
+ var result;
+ while (result = results.iterateNext())
+ value.add([result]);
+ });
- // XXX: implement wrapper system
- var div = doc.createElement("div");
- div.innerHTML = html;
+ return value;
+ },
- while (div.childNodes.length != 0) {
- var child = div.childNodes[0];
- node.appendChild(child);
- }
- });
+ clone: function (deep) {
+ return $($.map(this, function (node) {
+ return node.cloneNode(deep);
+ }));
},
descendants: function (expression) {
-webkit-border-radius: 0;
box-sizing: border-box;
-moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
font-family: inherit;
font-size: 100%;
font-style: inherit;
margin: 0;
outline: 0;
padding: 0;
+ text-decoration: none;
vertical-align: baseline;
}
+a {
+ color: inherit;
+}
+
sup {
font-size: smaller;
margin-top: -6px;
padding: 1px 0;
}
-a {
- color: inherit;
- text-decoration: none;
- text-underline-style: dotted;
-}
-
a {
color: blue;
+ text-underline-style: dotted;
}
strong {
}
panel > block > p,
-fieldset > div > p {
+fieldset > div > p,
+fieldset > div > ul {
margin: 11px 0;
- text-align: center;
}
fieldset > div > ul {
- margin-left: -20px;
+ margin-left: 13px;
+}
+
+panel > block > p,
+fieldset > div > p {
+ text-align: center;
}
fieldset > div > p:first-child,
</a>
</fieldset>
-<label class="warnings">Warnings</label>
<fieldset class="warnings" id="warnings">
<div id="warning">
<img class="icon" src="warning.png"/>
}
a.giant-button {
+ background-color: rgba(0, 0, 0, 0.15);
+ -webkit-border-radius: 10px;
color: #193250;
display: block;
margin: 8px 10px;
+ position: relative;
text-decoration: none;
- }
-
- a.giant-button > div.contents {
- position: absolute;
- text-align: left;
width: 300px;
- -webkit-background-size: 75px auto;
- z-index: 2;
}
- a.giant-button > div.contents > piechart {
+ a.giant-button > piechart {
float: left;
margin: 10px;
vertical-align: middle;
}
- a.giant-button > div.contents > label {
+ a.giant-button > label {
display: block;
float: left;
font-size: 25px;
width: 155px;
}
- a.giant-button > div.contents > div.text {
+ a.giant-button > div.text {
display: block;
float: left;
font-size: 14px;
width: 50%;
}
- a.giant-button > div.contents > div.legend {
+ a.giant-button > div.legend {
float: left;
font-size: 14px;
left: 15px;
width: 290px;
}
- a.giant-button > div.background {
- background-color: #000000;
- opacity: 0.15;
- -webkit-border-radius: 10px;
- }
-
div.key {
margin-bottom: 4px;
}
<dialog>
<panel>
-<a class="giant-button">
- <div class="contents">
- <piechart><div>
- <div id="system-left"></div>
- <div id="system-right">
- <div class="lslice"></div>
- <div class="rslice"></div>
- <div class="tslice"></div>
- <div class="bslice"></div>
- </div>
- <div class="nslice"><div id="system-size"></div></div>
- </div></piechart>
-
- <label>System</label>
- <div class="text">A small partition used to store iPhone OS. Cydia adds a few important programs and libraries.</div>
-
- <div class="legend" id="system-legend"></div>
- </div>
-
- <div class="background" style="height: 149px"></div>
+<a class="giant-button" style="height: 149px">
+ <piechart><div>
+ <div id="system-left"></div>
+ <div id="system-right">
+ <div class="lslice"></div>
+ <div class="rslice"></div>
+ <div class="tslice"></div>
+ <div class="bslice"></div>
+ </div>
+ <div class="nslice"><div id="system-size"></div></div>
+ </div></piechart>
+
+ <label>System</label>
+ <div class="text">A small partition used to store iPhone OS. Cydia adds a few important programs and libraries.</div>
+
+ <div class="legend" id="system-legend"></div>
</a>
-<a class="giant-button">
- <div class="contents">
- <piechart><div>
- <div id="private-left"></div>
- <div id="private-right">
- <div class="lslice"></div>
- <div class="rslice"></div>
- <div class="tslice"></div>
- <div class="bslice"></div>
- </div>
- <div class="nslice"><div id="private-size"></div></div>
- </div></piechart>
-
- <label>Private</label>
- <div class="text">Most content is stored on this partition: from applications (Cydia and Apple) to multimedia.</div>
-
- <div class="legend" id="private-legend"></div>
- </div>
-
- <div class="background" style="height: 189px"></div>
+<a class="giant-button" style="height: 189px">
+ <piechart><div>
+ <div id="private-left"></div>
+ <div id="private-right">
+ <div class="lslice"></div>
+ <div class="rslice"></div>
+ <div class="tslice"></div>
+ <div class="bslice"></div>
+ </div>
+ <div class="nslice"><div id="private-size"></div></div>
+ </div></piechart>
+
+ <label>Private</label>
+ <div class="text">Most content is stored on this partition: from applications (Cydia and Apple) to multimedia.</div>
+
+ <div class="legend" id="private-legend"></div>
</a>
</panel>
[warnings addObject:@"illegal package identifier"];
else for (size_t i(0); i != length; ++i)
if (
+ /* XXX: technically this is not allowed */
+ (name[i] < 'A' || name[i] > 'Z') &&
(name[i] < 'a' || name[i] > 'z') &&
(name[i] < '0' || name[i] > '9') &&
(i == 0 || name[i] != '+' && name[i] != '-' && name[i] != '.')
if (strcmp(name, "cydia") != 0) {
bool cydia = false;
+ bool _private = false;
bool stash = false;
+ bool repository = [[self section] isEqualToString:@"Repositories"];
+
if (NSArray *files = [self files])
for (NSString *file in files)
if (!cydia && [file isEqualToString:@"/Applications/Cydia.app"])
cydia = true;
+ else if (!_private && [file isEqualToString:@"/private"])
+ _private = true;
else if (!stash && [file isEqualToString:@"/var/stash"])
stash = true;
- if (cydia)
+ /* XXX: this is not sensitive enough. only some folders are valid. */
+ if (cydia && !repository)
[warnings addObject:@"files installed into Cydia.app"];
+ if (_private)
+ [warnings addObject:@"files installed with /private/*"];
if (stash)
[warnings addObject:@"files installed to /var/stash"];
}
Indices_ = [[NSMutableDictionary alloc] init];*/
Indices_ = [NSMutableDictionary dictionaryWithObjectsAndKeys:
- //@"http://"/*"cache.saurik.com/"*/"cydia.saurik.com/server/rating/@", @"Rating",
+ @"http://"/*"cache.saurik.com/"*/"cydia.saurik.com/server/rating/@", @"Rating",
@"http://"/*"cache.saurik.com/"*/"cydia.saurik.com/repotag/@", @"RepoTag",
nil];
Documents_ = [[[NSMutableArray alloc] initWithCapacity:4] autorelease];
#endif
- if (substrate && access("/Library/MobileSubstrate/MobileSubstrate.dylib", F_OK) == 0)
- dlopen("/Library/MobileSubstrate/MobileSubstrate.dylib", RTLD_LAZY | RTLD_GLOBAL);
+ if (substrate && access("/Applications/WinterBoard.app/WinterBoard.dylib", F_OK) == 0)
+ dlopen("/Applications/WinterBoard.app/WinterBoard.dylib", RTLD_LAZY | RTLD_GLOBAL);
+ /*if (substrate && access("/Library/MobileSubstrate/MobileSubstrate.dylib", F_OK) == 0)
+ dlopen("/Library/MobileSubstrate/MobileSubstrate.dylib", RTLD_LAZY | RTLD_GLOBAL);*/
if (access("/User", F_OK) != 0)
system("/usr/libexec/cydia/firmware.sh");