mirror of
https://github.com/Gh0stByte/Blackboard-AutoLogin-iOS.git
synced 2025-06-25 09:26:47 +00:00
Initial Commit
This commit is contained in:
1
BlackBoardHVCCAutoLogin.plist
Normal file
1
BlackBoardHVCCAutoLogin.plist
Normal file
@ -0,0 +1 @@
|
|||||||
|
{ Filter = { Bundles = ( "com.blackboard.student" ); }; }
|
43
License.md
Normal file
43
License.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
Copyright (c) 2018 Gh0stByte
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, or distribute copies of the Software,
|
||||||
|
and to permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
In addition to the above terms, you are prohibited from charging money for the
|
||||||
|
Software. You may not accept donations, purchases, or any other form of monetary
|
||||||
|
transactions for your work on or hosting Melody.
|
||||||
|
|
||||||
|
You may not modify the included list of developers and other people who have
|
||||||
|
contributed to the software or any donation links in the compiled tweak
|
||||||
|
or source code without the express approval of Gh0stByte beforehand.
|
||||||
|
|
||||||
|
You may not submit a compiled version of this Software or any other software using
|
||||||
|
its source code to any repository included upon the initial installation of Cydia
|
||||||
|
("default repositories") or commercial Cydia repository without the consent of
|
||||||
|
Gh0stByte. What is defined as a "commercial Cydia repository" in this license is
|
||||||
|
up to the descretion of Gh0stByte.
|
||||||
|
|
||||||
|
By using any of the source code of the Software in any other pieces of software,
|
||||||
|
you agree to the terms of this license. You must also include the original Credits
|
||||||
|
from the Software in that piece of software.
|
||||||
|
|
||||||
|
When distributing this tweak, you must provide notices which make it clear that
|
||||||
|
the Software is originally and mainly developed by Gh0stByte, you are not associated
|
||||||
|
with AppleBetas in any way, shape, or form. If necessary,
|
||||||
|
please also state that your version of the Software has been modified and may behave
|
||||||
|
incorrectly or differently than the original Software.
|
10
Makefile
Normal file
10
Makefile
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
include $(THEOS)/makefiles/common.mk
|
||||||
|
|
||||||
|
TWEAK_NAME = BlackBoardHVCCAutoLogin
|
||||||
|
BlackBoardHVCCAutoLogin_FILES = Tweak.xm
|
||||||
|
BlackBoardHVCCAutoLogin_FRAMEWORKS = UIKit
|
||||||
|
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||||
|
|
||||||
|
after-install::
|
||||||
|
install.exec "killall -9 BbStudent"
|
||||||
|
|
59
Readme.md
Normal file
59
Readme.md
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# Auto-login / Auto-fill for Blackboard's iOS app (Hudson Valley Community College)
|
||||||
|
======
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
This tweak will auto-fill your username and password for HVCC's single sign-on. Very helpfull if you use blackboard across multiple devices and keep having to re-login manually on your mobile.
|
||||||
|
|
||||||
|
## Media
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Go to Releases and download latest deb & install with iFile, Filza, dpkg or whatever suits your fancy.
|
||||||
|
|
||||||
|
OR
|
||||||
|
|
||||||
|
Clone repo and compile with theos
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Setup Auto-fill
|
||||||
|
|
||||||
|
* Select "SUNY - Hudson Valleu Community College" from the dropdown menu
|
||||||
|
* Click the "Web Login"
|
||||||
|
* Enter your username & password and hit "OK"
|
||||||
|
* Click Web Login button again and give it a second.
|
||||||
|
* Enjoy never having to type your username and password in again!
|
||||||
|
|
||||||
|
### Resetting your login information
|
||||||
|
|
||||||
|
* Logout if not already
|
||||||
|
* Press the help button
|
||||||
|
* Choose "Change"
|
||||||
|
* Fill out user & pass then "OK"
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
1. Fork it!
|
||||||
|
2. Create your feature branch: `git checkout -b add-my-uni`
|
||||||
|
3. Commit your changes: `git commit -am 'Add support for my college'`
|
||||||
|
4. Push to the branch: `git push origin add-my-uni`
|
||||||
|
5. Submit a pull request :D
|
||||||
|
|
||||||
|
## History/Changelog
|
||||||
|
|
||||||
|
#### 1.0.0 (1/16/2018)
|
||||||
|
* Initial Release
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
Made by [Gh0stByte](http://twitter.com/Gh0stByte)
|
||||||
|
|
||||||
|
## License
|
||||||
|
### Modified MIT License. READ IN FULL *BEFORE* USE
|
||||||
|
[License.md](../License.md)
|
91
Tweak.xm
Normal file
91
Tweak.xm
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
NSString *username, *password;
|
||||||
|
|
||||||
|
// Hook into the main view controller
|
||||||
|
%hook BBLFTWViewController
|
||||||
|
|
||||||
|
// Hook into when the login page finishes loading
|
||||||
|
- (void)webViewDidFinishLoad:(UIWebView *)webView {
|
||||||
|
// The javascript that we're gonna execute, which will set the username & password to what we've stored
|
||||||
|
NSString *inject = [NSString stringWithFormat:@"document.getElementById('username').value = '%@';document.getElementById('password').value = '%@';", username, password];
|
||||||
|
// Inject the JS
|
||||||
|
[webView stringByEvaluatingJavaScriptFromString:inject];
|
||||||
|
|
||||||
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void)
|
||||||
|
{
|
||||||
|
// Submit the form by pressing the button.
|
||||||
|
[webView stringByEvaluatingJavaScriptFromString:@"document.forms[\"fm1\"].submit.click();"];
|
||||||
|
});
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Interface so we can call our custom method
|
||||||
|
@interface BBLFTWViewController : UIViewController
|
||||||
|
-(void)getAutofillInfo;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Hook into the login view controller
|
||||||
|
%hook BBLoginViewController
|
||||||
|
|
||||||
|
// Hook into when the login button is pressed
|
||||||
|
-(void)loginBtnTapped {
|
||||||
|
// Grab your username and password from the userdefaults
|
||||||
|
username = [[NSUserDefaults standardUserDefaults] objectForKey:@"USERNAME"];
|
||||||
|
password = [[NSUserDefaults standardUserDefaults] objectForKey:@"PASSWORD"];
|
||||||
|
// If you don't have an username & password setup
|
||||||
|
if(!(username && password) || ([username isEqualToString:@""] || [password isEqualToString:@""])) {
|
||||||
|
// Setup your username & password
|
||||||
|
[self getAutofillInfo];
|
||||||
|
} else {
|
||||||
|
// Otherwise, load up the webview
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hook into when the help button is tapped
|
||||||
|
-(void)helpBtnTapped {
|
||||||
|
// Ask the user if they want to change their information
|
||||||
|
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Auto-Login" message:@"Would you like to change your login information?" preferredStyle:UIAlertControllerStyleAlert];
|
||||||
|
UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"Change" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||||
|
// If so, setup their username and pass
|
||||||
|
[self getAutofillInfo];
|
||||||
|
}];
|
||||||
|
[alertController addAction:confirmAction];
|
||||||
|
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
|
||||||
|
// Otherwise, use the normal function for the help button
|
||||||
|
%orig;
|
||||||
|
}];
|
||||||
|
[alertController addAction:cancelAction];
|
||||||
|
// Present the alert
|
||||||
|
[self presentViewController:alertController animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
// New function to get the login info
|
||||||
|
%new
|
||||||
|
-(void)getAutofillInfo {
|
||||||
|
// Ask the user to enter their input
|
||||||
|
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Auto-Login" message:@"Enter your username & password\n(Note: Information stored plaintext in the standard app defaults. To change the information, press the help button)" preferredStyle:UIAlertControllerStyleAlert];
|
||||||
|
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||||
|
textField.placeholder = @"Username";
|
||||||
|
}];
|
||||||
|
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||||
|
textField.placeholder = @"Password";
|
||||||
|
textField.secureTextEntry = YES;
|
||||||
|
}];
|
||||||
|
UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||||
|
//Store the information
|
||||||
|
[[NSUserDefaults standardUserDefaults] setObject:[[alertController textFields][0] text] forKey:@"USERNAME"];
|
||||||
|
[[NSUserDefaults standardUserDefaults] setObject:[[alertController textFields][1] text] forKey:@"PASSWORD"];
|
||||||
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||||
|
|
||||||
|
}];
|
||||||
|
[alertController addAction:confirmAction];
|
||||||
|
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
|
||||||
|
}];
|
||||||
|
[alertController addAction:cancelAction];
|
||||||
|
// Show the alert
|
||||||
|
[self presentViewController:alertController animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
%end
|
11
control
Normal file
11
control
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Package: ga.gh0stbyte.blackboardhvcc
|
||||||
|
Name: BlackBoard AutoLogin (HVCC)
|
||||||
|
Depends: mobilesubstrate
|
||||||
|
Version: 1.0.0
|
||||||
|
Architecture: iphoneos-arm
|
||||||
|
Description: Auto HVCC SSO login
|
||||||
|
Allows you to login to HVCC through
|
||||||
|
the blackboard app automatically
|
||||||
|
Maintainer: Gh0stByte<gh0stbyte01@gmail.com>
|
||||||
|
Author: Gh0stByte<gh0stbyte01@gmail.com>
|
||||||
|
Section: Tweaks
|
BIN
media/IMG_5010.PNG
Normal file
BIN
media/IMG_5010.PNG
Normal file
Binary file not shown.
After Width: | Height: | Size: 102 KiB |
BIN
media/IMG_5011.PNG
Normal file
BIN
media/IMG_5011.PNG
Normal file
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
BIN
packages/ga.gh0stbyte.blackboardhvcc_1.0.0_iphoneos-arm.deb
Normal file
BIN
packages/ga.gh0stbyte.blackboardhvcc_1.0.0_iphoneos-arm.deb
Normal file
Binary file not shown.
Reference in New Issue
Block a user