Browse Source

Initial Commit

tags/1.0.0
Matthew Matter 6 years ago
parent
commit
f4165c0d91
9 changed files with 215 additions and 0 deletions
  1. +1
    -0
      BlackBoardHVCCAutoLogin.plist
  2. +43
    -0
      License.md
  3. +10
    -0
      Makefile
  4. +59
    -0
      Readme.md
  5. +91
    -0
      Tweak.xm
  6. +11
    -0
      control
  7. BIN
      media/IMG_5010.PNG
  8. BIN
      media/IMG_5011.PNG
  9. BIN
      packages/ga.gh0stbyte.blackboardhvcc_1.0.0_iphoneos-arm.deb

+ 1
- 0
BlackBoardHVCCAutoLogin.plist View File

@@ -0,0 +1 @@
{ Filter = { Bundles = ( "com.blackboard.student" ); }; }

+ 43
- 0
License.md View 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
- 0
Makefile View 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
- 0
Readme.md View 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

![Screenshot](../media/IMG_5010.PNG "Setup Screen")
![Screenshot](../media/IMG_5011.PNG "When 'Help' is pressed")


## 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
- 0
Tweak.xm View 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
- 0
control View 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 View File

Before After
Width: 640  |  Height: 1136  |  Size: 102KB

BIN
media/IMG_5011.PNG View File

Before After
Width: 640  |  Height: 1136  |  Size: 64KB

BIN
packages/ga.gh0stbyte.blackboardhvcc_1.0.0_iphoneos-arm.deb View File


Loading…
Cancel
Save